diff --git a/devtools/client/debugger/new/debugger.css b/devtools/client/debugger/new/debugger.css
index 84171bea14c5..f2a611f34192 100644
--- a/devtools/client/debugger/new/debugger.css
+++ b/devtools/client/debugger/new/debugger.css
@@ -12,7 +12,7 @@
/* Customs properties */
--title-font-size: 24px;
--ui-element-font-size: 16px;
- --primary-line-height: 30px;
+ --primary-line-height: 22px;
--secondary-line-height: 25px;
--base-spacing: 20px;
--base-transition: all 0.25s ease;
@@ -55,7 +55,7 @@
justify-content: center;
}
-.landing-page .panel input[type=button] {
+.landing-page button {
background-color: var(--theme-tab-toolbar-background);
color: var(--theme-comment);
font-size: var(--ui-element-font-size);
@@ -63,6 +63,7 @@
padding: calc(var(--base-spacing) / 2);
margin: 0 var(--base-spacing);
transition: var(--base-transition);
+ cursor: pointer;
}
.landing-page .panel header h1 {
@@ -103,6 +104,27 @@
font-size: 14px;
color: var(--theme-comment);
}
+
+.landing-page .panel .launch-action-container {
+ text-align: center;
+}
+
+.landing-page .panel .under-construction {
+ display: flex;
+ width: 417px;
+ color: var(--theme-comment);
+ font-size: calc(var(--ui-element-font-size) / 1);
+ margin: var(--base-spacing) auto;
+ line-height: 1.4em;
+}
+
+.landing-page .panel .under-construction .under-construction-message {
+ max-width: 350px;
+}
+
+.landing-page .panel .under-construction .github-link {
+ display: block;
+}
/* 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/. */
@@ -170,9 +192,10 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
.landing-page .sidebar {
+ --sidebar-width: 200px;
display: flex;
background-color: var(--theme-tab-toolbar-background);
- width: 200px;
+ width: var(--sidebar-width);
flex-direction: column;
border-right: 1px solid var(--theme-splitter-color);
}
@@ -182,8 +205,8 @@
font-size: var(--title-font-size);
margin: 0;
line-height: var(--primary-line-height);
- font-weight: normal;
- padding: calc(2 * var(--base-spacing)) var(--base-spacing);
+ font-weight: bold;
+ padding: var(--base-spacing) var(--base-spacing);
}
.landing-page .sidebar ul {
@@ -222,6 +245,35 @@
.landing-page .sidebar li:focus a {
color: inherit;
}
+
+.landing-page .sidebar li:last-child {
+ border-top: 2px solid var(--theme-splitter-color);
+ margin: 2px;
+}
+
+.landing-page .sidebar .title-wrapper .launchpad-container {
+ padding-left: var(--base-spacing);
+}
+
+.landing-page .sidebar .title-wrapper .launchpad-container .launchpad-container-icon {
+ display: inline-block;
+}
+
+.landing-page .sidebar .title-wrapper .launchpad-container svg {
+ width: 24px;
+ height: 24px;
+}
+
+.landing-page .sidebar .title-wrapper .launchpad-container svg path {
+ width: 24px;
+ height: 24px;
+ fill: var(--theme-body-color);
+}
+
+.landing-page .sidebar .title-wrapper .launchpad-container .launchpad-container-title {
+ display: inline;
+ padding-left: 3px;
+}
/* 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/. */
@@ -439,11 +491,11 @@ menuitem:hover {
color: white;
}
-menuitem[disabled=true] {
+menuitem[disabled="true"] {
color: #cccccc;
}
-menuitem[disabled=true]:hover {
+menuitem[disabled="true"]:hover {
background-color: transparent;
cursor: default;
}
@@ -1006,13 +1058,14 @@ html[dir="rtl"] .managed-tree .tree .node > div {
display: flex;
flex-direction: column;
overflow-y: hidden;
+ height: 100%;
}
.project-text-search .result {
display: flex;
cursor: default;
- margin-bottom: 1px;
padding: 4px 0 4px 30px;
+ line-height: 16px;
font-size: 10px;
}
@@ -1049,8 +1102,7 @@ html[dir="rtl"] .managed-tree .tree .node > div {
font-weight: bold;
line-height: 20px;
cursor: default;
- margin: 2px 0;
- padding: 3px 0 3px 5px;
+ padding: 2px 0 2px 5px;
font-size: 12px;
}
@@ -1075,6 +1127,11 @@ html[dir="rtl"] .managed-tree .tree .node > div {
.project-text-search .managed-tree {
overflow-y: auto;
+ height: calc(100% - 81px);
+}
+
+.project-text-search .managed-tree .tree {
+ height: 100%;
}
.autocomplete {
position: relative;
@@ -1132,7 +1189,7 @@ html[dir="rtl"] .managed-tree .tree .node > div {
color: white;
}
-.theme-dark .result-list.small li.selected {
+.theme-dark .result-list.small li.selected {
background-color: var(--theme-body-background);
}
@@ -1324,7 +1381,7 @@ html[dir="rtl"] .managed-tree .tree .node > div {
transition: all 0.25s ease;
overflow: hidden;
padding: 5px;
- margin-bottom: 4px;
+ margin-bottom: 0px;
margin-top: -1px;
}
@@ -1925,7 +1982,7 @@ html[dir="rtl"] .arrow svg,
.bracket-arrow::before,
.bracket-arrow::after {
- content: '';
+ content: "";
height: 0;
width: 0;
position: absolute;
@@ -1970,7 +2027,7 @@ html[dir="rtl"] .arrow svg,
height: 5px;
padding-top: 5px;
}
-.popover .preview {
+.popover .preview-popup {
background: var(--theme-body-background);
width: 350px;
min-height: 80px;
@@ -1983,11 +2040,11 @@ html[dir="rtl"] .arrow svg,
box-shadow: 1px 2px 3px var(--popup-shadow-color);
}
-.theme-dark .popover .preview {
+.theme-dark .popover .preview-popup {
box-shadow: 1px 2px 3px var(--popup-shadow-color);
}
-.popover .preview .header {
+.popover .preview-popup .header {
width: 100%;
line-height: 20px;
border-bottom: 1px solid #cccccc;
@@ -1995,36 +2052,40 @@ html[dir="rtl"] .arrow svg,
flex-direction: column;
}
-.popover .preview .header .link {
+.popover .preview-popup .header .link {
align-self: flex-end;
color: var(--theme-highlight-blue);
text-decoration: underline;
}
-.selection,
-.debug-expression.selection {
+.preview-selection:hover {
+ cursor: default;
+}
+
+.preview-selection,
+.debug-expression.preview-selection {
background-color: var(--theme-highlight-yellow);
}
-.theme-dark .selection,
-.theme-dark .debug-expression.selection {
+.theme-dark .preview-selection,
+.theme-dark .debug-expression.preview-selection {
background-color: #743884;
}
-.theme-dark .cm-s-mozilla .selection,
-.theme-dark .cm-s-mozilla .debug-expression.selection {
+.theme-dark .cm-s-mozilla .preview-selection,
+.theme-dark .cm-s-mozilla .debug-expression.preview-selection {
color: #e7ebee;
}
-.popover .preview .function-signature {
+.popover .preview-popup .function-signature {
padding-top: 10px;
}
-.theme-dark .popover .preview {
+.theme-dark .popover .preview-popup {
border-color: var(--theme-body-color);
}
-.theme-dark .popover .preview .arrow svg {
+.theme-dark .popover .preview-popup .arrow svg {
fill: var(--theme-content-color3);
}
@@ -2033,7 +2094,7 @@ html[dir="rtl"] .arrow svg,
z-index: 100;
}
-.tooltip .preview {
+.tooltip .preview-popup {
background: var(--theme-toolbar-background);
max-width: inherit;
min-height: 80px;
@@ -2046,7 +2107,7 @@ html[dir="rtl"] .arrow svg,
overflow: auto;
}
-.theme-dark .tooltip .preview {
+.theme-dark .tooltip .preview-popup {
border-color: var(--theme-body-color);
}
@@ -2128,6 +2189,9 @@ html[dir="rtl"] .arrow svg,
.theme-dark .call-site-bp::before {
border-bottom-color: #dd4d4d;
}
+.empty-line .CodeMirror-linenumber {
+ opacity: 0.5;
+}
.editor-wrapper {
--debug-line-border: rgb(145, 188, 219);
--debug-expression-background: rgba(202, 227, 255, 0.5);
@@ -2827,6 +2891,10 @@ html .breakpoints-list .breakpoint.paused {
font-size: 12px;
}
+.accordion div:last-child ._content {
+ border-bottom: none;
+}
+
.accordion ._header .header-buttons {
display: flex;
margin-left: auto;
@@ -2864,6 +2932,10 @@ html .breakpoints-list .breakpoint.paused {
background-color: var(--theme-body-background);
}
+.command-bar.vertical {
+ width: 100vw;
+}
+
html[dir="rtl"] .command-bar {
border-right: 1px solid var(--theme-splitter-color);
}
@@ -3016,6 +3088,11 @@ html .command-bar > button:disabled {
z-index: 100;
}
+.alignlabel {
+ display: inline-block;
+ text-align: left;
+}
+
.welcomebox .toggle-button-end {
position: absolute;
top: auto;
@@ -3041,15 +3118,21 @@ html .welcomebox .toggle-button-end.collapsed {
}
.source-header .new-tab-btn {
- padding: 0px 4px;
+ padding: 4px;
margin-top: 4px;
+ margin-left: 2px;
fill: var(--theme-content-color3);
transition: 0.1s ease;
align-self: center;
}
+.source-header .new-tab-btn:hover {
+ background-color: var(--theme-toolbar-background-hover);
+}
+
.source-header .new-tab-btn svg {
width: 12px;
+ display: block;
}
.source-tabs {
diff --git a/devtools/client/debugger/new/debugger.js b/devtools/client/debugger/new/debugger.js
index 2bfeac5341ee..f37e5451c94a 100644
--- a/devtools/client/debugger/new/debugger.js
+++ b/devtools/client/debugger/new/debugger.js
@@ -540,7 +540,7 @@ function isDirectory(url) {
}
function isInvalidUrl(url, source) {
- return IGNORED_URLS.indexOf(url) != -1 || !source.get("url") || source.get("loading") || !url.group || (0, _source.isPretty)(source.toJS());
+ return IGNORED_URLS.indexOf(url) != -1 || !source.get("url") || source.get("loadedState") === "loading" || !url.group || (0, _source.isPretty)(source.toJS());
}
function partIsFile(index, parts, url) {
@@ -710,8 +710,8 @@ function getWasmText(sourceId, data) {
result = { lines: ["No luck with wast conversion"], offsets: [0], done };
}
- var offsets = result.offsets,
- lines = [];
+ var offsets = result.offsets;
+ var lines = [];
for (var i = 0; i < offsets.length; i++) {
lines[offsets[i]] = i;
}
@@ -5906,7 +5906,7 @@ var _require6 = __webpack_require__(1130),
showMenu = _require6.showMenu,
buildMenu = _require6.buildMenu;
-setConfig({"environment":"firefox-panel","logging":false,"clientLogging":false,"firefox":{"mcPath":"./firefox"},"workers":{"parserURL":"resource://devtools/client/debugger/new/parser-worker.js","prettyPrintURL":"resource://devtools/client/debugger/new/pretty-print-worker.js","searchURL":"resource://devtools/client/debugger/new/search-worker.js"},"features":{"blackbox":{"enabled":true},"chromeScopes":{"enabled":false},"eventListeners":{"enabled":false},"codeCoverage":{"enabled":false},"codeFolding":{"enabled":false},"searchNav":{"enabled":true},"collapseFrame":{"enabled":true},"outline":{"enabled":true}}});
+setConfig({"environment":"firefox-panel","logging":false,"clientLogging":false,"firefox":{"mcPath":"./firefox"},"workers":{"parserURL":"resource://devtools/client/debugger/new/parser-worker.js","prettyPrintURL":"resource://devtools/client/debugger/new/pretty-print-worker.js","searchURL":"resource://devtools/client/debugger/new/search-worker.js"},"features":{"blackbox":{"enabled":true},"chromeScopes":{"enabled":false},"eventListeners":{"enabled":false},"codeCoverage":{"enabled":false},"codeFolding":{"enabled":false},"searchNav":{"enabled":true},"collapseFrame":{"enabled":true},"outline":{"enabled":true},"wasm":{"enabled":true}}});
// Set various flags before requiring app code.
if (getValue("logging.client")) {
@@ -6773,13 +6773,15 @@ var sidePanelItems = {
name: "Chrome",
clientType: "chrome",
paramName: "chrome-tab",
- docsUrlPart: "chrome"
+ docsUrlPart: "chrome",
+ isUnderConstruction: true
},
Node: {
name: "Node",
clientType: "node",
paramName: "node-tab",
- docsUrlPart: "node"
+ docsUrlPart: "node",
+ isUnderConstruction: true
},
Settings: {
name: "Settings",
@@ -13909,7 +13911,7 @@ module.exports = {
var React = __webpack_require__(0);
-__webpack_require__(680);
+__webpack_require__(851);
var dom = React.DOM;
var ImPropTypes = __webpack_require__(150);
@@ -13926,7 +13928,8 @@ function getTabsByClientType(tabs, clientType) {
function firstTimeMessage(title, urlPart) {
return dom.div({ className: "footer-note" }, `First time connecting to ${title}? Checkout out the `, dom.a({
- href: `${githubUrl}/docs/getting-setup.md#starting-${urlPart}`
+ href: `${githubUrl}/docs/getting-setup.md#starting-${urlPart}`,
+ target: "_blank"
}, "docs"), ".");
}
@@ -13969,25 +13972,38 @@ var LandingPage = React.createClass({
}
},
- renderLaunchButton() {
+ renderLaunchOptions() {
var selectedPane = this.state.selectedPane;
- var name = configMap[selectedPane].name;
+ var _configMap$selectedPa = configMap[selectedPane],
+ name = _configMap$selectedPa.name,
+ isUnderConstruction = _configMap$selectedPa.isUnderConstruction;
var isConnected = name === configMap.Firefox.name ? this.state.firefoxConnected : this.state.chromeConnected;
var isNodeSelected = name === configMap.Node.name;
if (isNodeSelected) {
- return dom.h3({}, "Run a node script in the terminal with `--inspect`");
+ return dom.div({ className: "launch-action-container" }, dom.h3({}, "Run a node script in the terminal with `--inspect`"), isUnderConstruction ? this.renderExperimentalMessage(name) : null);
}
var connectedStateText = isNodeSelected ? null : `Please open a tab in ${name}`;
- return isConnected ? connectedStateText : dom.input({
- type: "button",
- value: `Launch ${configMap[selectedPane].name}`,
- onClick: () => this.launchBrowser(configMap[selectedPane].name)
- });
+ return isConnected ? connectedStateText : this.renderLaunchButton(name, isUnderConstruction);
+ },
+
+ renderLaunchButton(browserName, isUnderConstruction) {
+ return dom.div({ className: "launch-action-container" }, dom.button({ onClick: () => this.launchBrowser(browserName) }, `Launch ${browserName}`), isUnderConstruction ? this.renderExperimentalMessage(browserName) // eslint-disable-line max-len
+ : null);
+ },
+
+ renderExperimentalMessage(browserName) {
+ var underConstructionMessage = "Debugging is experimental and certain features won't work (i.e, seeing variables, attaching breakpoints)"; // eslint-disable-line max-len
+ var githubIssuesUrl = "https://github.com/devtools-html/debugger.html/issues?q=is%3Aopen+is%3Aissue+label%3A";
+ var underConstructionImageSrc = __webpack_require__(855);
+ return dom.div({ className: "under-construction" }, dom.img({ src: underConstructionImageSrc }), dom.div({ className: "under-construction-message" }, underConstructionMessage, // eslint-disable-line max-len
+ dom.a({ className: "github-link",
+ href: `${githubIssuesUrl}${browserName}`,
+ target: "_blank" }, "Help us make it happen")));
},
launchBrowser(browser) {
@@ -14009,7 +14025,7 @@ var LandingPage = React.createClass({
},
renderEmptyPanel() {
- return dom.div({ className: "hero" }, this.renderLaunchButton());
+ return dom.div({ className: "hero" }, this.renderLaunchOptions());
},
renderSettings() {
@@ -14027,9 +14043,9 @@ var LandingPage = React.createClass({
tabs = _props2.tabs,
_props2$filterString = _props2.filterString,
filterString = _props2$filterString === undefined ? "" : _props2$filterString;
- var _configMap$selectedPa = configMap[selectedPane],
- clientType = _configMap$selectedPa.clientType,
- paramName = _configMap$selectedPa.paramName;
+ var _configMap$selectedPa2 = configMap[selectedPane],
+ clientType = _configMap$selectedPa2.clientType,
+ paramName = _configMap$selectedPa2.paramName;
var targets = getTabsByClientType(tabs, clientType);
@@ -14054,10 +14070,10 @@ var LandingPage = React.createClass({
onTabClick = _props3.onTabClick,
tabs = _props3.tabs;
var selectedPane = this.state.selectedPane;
- var _configMap$selectedPa2 = configMap[selectedPane],
- name = _configMap$selectedPa2.name,
- clientType = _configMap$selectedPa2.clientType,
- paramName = _configMap$selectedPa2.paramName;
+ var _configMap$selectedPa3 = configMap[selectedPane],
+ name = _configMap$selectedPa3.name,
+ clientType = _configMap$selectedPa3.clientType,
+ paramName = _configMap$selectedPa3.paramName;
var clientTargets = getTabsByClientType(tabs, clientType);
@@ -14084,9 +14100,9 @@ var LandingPage = React.createClass({
title = _props4.title;
var selectedPane = this.state.selectedPane;
var onSideBarItemClick = this.onSideBarItemClick;
- var _configMap$selectedPa3 = configMap[selectedPane],
- name = _configMap$selectedPa3.name,
- docsUrlPart = _configMap$selectedPa3.docsUrlPart;
+ var _configMap$selectedPa4 = configMap[selectedPane],
+ name = _configMap$selectedPa4.name,
+ docsUrlPart = _configMap$selectedPa4.docsUrlPart;
return dom.div({
@@ -14322,7 +14338,7 @@ function combineReducers(reducers) {
var React = __webpack_require__(0);
-__webpack_require__(681);
+__webpack_require__(852);
var dom = React.DOM;
var classnames = __webpack_require__(175);
@@ -14558,7 +14574,9 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
var React = __webpack_require__(0);
-__webpack_require__(682);
+__webpack_require__(853);
+var rocketSvg = __webpack_require__(1126);
+
var dom = React.DOM;
var classnames = __webpack_require__(175);
@@ -14574,22 +14592,15 @@ var Sidebar = React.createClass({
onSideBarItemClick: React.PropTypes.func.isRequired
},
- render() {
- var connections = [];
+ renderTitle(title) {
+ return dom.div({ className: "title-wrapper" }, dom.h1({}, title), dom.div({ className: "launchpad-container" }, dom.div({
+ className: "launchpad-container-icon",
+ dangerouslySetInnerHTML: { __html: rocketSvg }
+ }), dom.h2({ className: "launchpad-container-title" }, "Launchpad")));
+ },
- if (this.props.supportsFirefox) {
- connections.push("Firefox");
- }
-
- if (this.props.supportsChrome) {
- connections.push("Chrome", "Node");
- }
-
- connections.push("Settings");
-
- return dom.aside({
- className: "sidebar"
- }, dom.h1({}, this.props.title), dom.ul({}, connections.map(title => dom.li({
+ renderItem(title) {
+ return dom.li({
className: classnames({
selected: title == this.props.selectedPane
}),
@@ -14602,9 +14613,24 @@ var Sidebar = React.createClass({
this.props.onSideBarItemClick(title);
}
}
- }, dom.a({}, title)))));
- }
-});
+ }, dom.a({}, title));
+ },
+
+ render() {
+ var connections = [];
+
+ if (this.props.supportsFirefox) {
+ connections.push("Firefox");
+ }
+
+ if (this.props.supportsChrome) {
+ connections.push("Chrome", "Node");
+ }
+
+ return dom.aside({
+ className: "sidebar"
+ }, this.renderTitle(this.props.title), dom.ul({}, connections.map(title => this.renderItem(title)), this.renderItem("Settings")));
+ } });
module.exports = Sidebar;
@@ -15213,7 +15239,7 @@ module.exports = {
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var classnames = __webpack_require__(175);
-__webpack_require__(684);
+__webpack_require__(856);
module.exports = function (className) {
var root = document.createElement("div");
@@ -15641,7 +15667,7 @@ function createPrettySource(sourceId) {
var source = (0, _selectors.getSource)(getState(), sourceId).toJS();
var url = (0, _source.getPrettySourceURL)(source.url);
- var id = sourceMaps.generatedToOriginalId(sourceId, url);
+ var id = yield sourceMaps.generatedToOriginalId(sourceId, url);
var _ref3 = yield (0, _prettyPrint.prettyPrint)({
source,
@@ -15664,7 +15690,7 @@ function createPrettySource(sourceId) {
text: code,
contentType: "text/javascript",
frames,
- loading: false
+ loadedState: "loaded"
};
return dispatch({
@@ -15900,8 +15926,10 @@ function thunk(makeArgs) {
/***/ }),
/* 225 */,
/* 226 */
-/***/ (function(module, exports, __webpack_require__) {
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+"use strict";
+Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
// @flow
const { isDevelopment } = __webpack_require__(828);
@@ -15929,6 +15957,7 @@ if (isDevelopment()) {
pref("devtools.debugger.file-search-regex-match", false);
pref("devtools.debugger.prefs-schema-version", "1.0.1");
pref("devtools.debugger.project-text-search-enabled", true);
+ pref("devtools.debugger.features.async-stepping", false);
}
const prefs = new PrefsHelper("devtools", {
@@ -15954,6 +15983,16 @@ const prefs = new PrefsHelper("devtools", {
false
]
});
+/* harmony export (immutable) */ __webpack_exports__["prefs"] = prefs;
+
+
+const features = new PrefsHelper("devtools.debugger.features", {
+ asyncStepping: ["Bool", "async-stepping", false]
+});
+/* harmony export (immutable) */ __webpack_exports__["features"] = features;
+
+
+debugger;
if (prefs.debuggerPrefsSchemaVersion !== prefsSchemaVersion) {
// clear pending Breakpoints
@@ -15961,8 +16000,6 @@ if (prefs.debuggerPrefsSchemaVersion !== prefsSchemaVersion) {
prefs.debuggerPrefsSchemaVersion = prefsSchemaVersion;
}
-module.exports = { prefs };
-
/***/ }),
/* 227 */
@@ -16019,8 +16056,16 @@ var _projectTextSearch = __webpack_require__(31);
var _projectTextSearch2 = _interopRequireDefault(_projectTextSearch);
+var _sourceSearch = __webpack_require__(1132);
+
+var _sourceSearch2 = _interopRequireDefault(_sourceSearch);
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+/* 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/. */
+
exports.default = {
expressions: _expressions2.default,
eventListeners: _eventListeners2.default,
@@ -16032,10 +16077,9 @@ exports.default = {
ui: _ui2.default,
ast: _ast2.default,
coverage: _coverage2.default,
- projectTextSearch: _projectTextSearch2.default
-}; /* 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/. */
+ projectTextSearch: _projectTextSearch2.default,
+ sourceSearch: _sourceSearch2.default
+};
/***/ }),
/* 228 */
@@ -16047,7 +16091,7 @@ exports.default = {
Object.defineProperty(exports, "__esModule", {
value: true
});
-exports.getVisibleExpressions = exports.getExpressions = exports.State = undefined;
+exports.getExpressions = exports.State = undefined;
exports.getExpression = getExpression;
var _makeRecord = __webpack_require__(230);
@@ -16056,6 +16100,8 @@ var _makeRecord2 = _interopRequireDefault(_makeRecord);
var _immutable = __webpack_require__(146);
+var _lodash = __webpack_require__(2);
+
var _reselect = __webpack_require__(993);
var _prefs = __webpack_require__(226);
@@ -16075,24 +16121,21 @@ function update() {
return appendToList(state, ["expressions"], {
input: action.input,
value: null,
- updating: true,
- visible: action.visible
+ updating: true
});
case "UPDATE_EXPRESSION":
var key = action.expression.input;
return updateItemInList(state, ["expressions"], key, {
input: action.input,
value: null,
- updating: true,
- visible: action.visible
+ updating: true
});
case "EVALUATE_EXPRESSION":
if (action.status === "done") {
return updateItemInList(state, ["expressions"], action.input, {
input: action.input,
value: action.value,
- updating: false,
- visible: action.visible
+ updating: false
});
}
break;
@@ -16112,7 +16155,9 @@ function restoreExpressions() {
}
function storeExpressions(state) {
- _prefs.prefs.expressions = state.getIn(["expressions"]).filter(e => e.visible).toJS();
+ var expressions = state.getIn(["expressions"]).map(expression => (0, _lodash.omit)(expression, "value")).toJS();
+
+ _prefs.prefs.expressions = expressions;
}
function appendToList(state, path, value) {
@@ -16144,8 +16189,6 @@ var getExpressionsWrapper = state => state.expressions;
var getExpressions = exports.getExpressions = (0, _reselect.createSelector)(getExpressionsWrapper, expressions => expressions.get("expressions"));
-var getVisibleExpressions = exports.getVisibleExpressions = (0, _reselect.createSelector)(getExpressions, expressions => expressions.filter(e => e.visible));
-
function getExpression(state, input) {
return getExpressions(state).find(exp => exp.input == input);
}
@@ -16392,13 +16435,13 @@ function update() {
case "NAVIGATE":
var source = getSelectedSource({ sources: state });
- var _url = source && source.get("url");
+ var url = source && source.get("url");
- if (!_url) {
+ if (!url) {
return initialState();
}
- return initialState().set("pendingSelectedLocation", { url: _url });
+ return initialState().set("pendingSelectedLocation", { url });
}
return state;
@@ -16410,15 +16453,15 @@ function getTextPropsFromAction(action) {
if (action.status === "start") {
- return { id: source.id, loading: true };
+ return { id: source.id, loadedState: "loading" };
} else if (action.status === "error") {
- return { id: source.id, error: action.error, loading: false };
+ return { id: source.id, error: action.error, loadedState: "loaded" };
}
return {
text: value.text,
id: source.id,
contentType: value.contentType,
- loading: false
+ loadedState: "loaded"
};
}
@@ -16612,7 +16655,7 @@ exports.default = update;
Object.defineProperty(exports, "__esModule", {
value: true
});
-exports.getMode = exports.getSourceLineCount = exports.getSourcePath = exports.getFilenameFromURL = exports.getFilename = exports.getRawSourceURL = exports.getPrettySourceURL = exports.shouldPrettyPrint = exports.isPretty = exports.isJavaScript = undefined;
+exports.isLoaded = exports.getMode = exports.getSourceLineCount = exports.getSourcePath = exports.getFilenameFromURL = exports.getFilename = exports.getRawSourceURL = exports.getPrettySourceURL = exports.shouldPrettyPrint = exports.isPretty = exports.isJavaScript = undefined;
var _devtoolsSourceMap = __webpack_require__(898);
@@ -16822,6 +16865,10 @@ function getMode(source) {
return { name: "text" };
}
+function isLoaded(source) {
+ return source.loadedState === "loaded";
+}
+
exports.isJavaScript = isJavaScript;
exports.isPretty = isPretty;
exports.shouldPrettyPrint = shouldPrettyPrint;
@@ -16832,6 +16879,7 @@ exports.getFilenameFromURL = getFilenameFromURL;
exports.getSourcePath = getSourcePath;
exports.getSourceLineCount = getSourceLineCount;
exports.getMode = getMode;
+exports.isLoaded = isLoaded;
/***/ }),
/* 234 */
@@ -16974,6 +17022,7 @@ exports.join = join;
Object.defineProperty(exports, "__esModule", {
value: true
});
+exports.getHiddenBreakpointLocation = exports.getHiddenBreakpoint = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
/* This Source Code Form is subject to the terms of the Mozilla Public
@@ -17004,6 +17053,8 @@ var _devtoolsSourceMap = __webpack_require__(898);
var _breakpoint2 = __webpack_require__(1057);
+var _reselect = __webpack_require__(993);
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
@@ -17151,6 +17202,18 @@ function getBreakpointsForSource(state, sourceId) {
});
}
+var getHiddenBreakpoint = exports.getHiddenBreakpoint = (0, _reselect.createSelector)(getBreakpoints, function (breakpoints) {
+ var hiddenBreakpoints = breakpoints.valueSeq().filter(breakpoint => breakpoint.hidden).first();
+ return hiddenBreakpoints;
+});
+
+var getHiddenBreakpointLocation = exports.getHiddenBreakpointLocation = (0, _reselect.createSelector)(getHiddenBreakpoint, function (hiddenBreakpoint) {
+ if (!hiddenBreakpoint) {
+ return null;
+ }
+ return hiddenBreakpoint.location;
+});
+
exports.default = update;
/***/ }),
@@ -17844,6 +17907,10 @@ var _projectTextSearch = __webpack_require__(31);
var projectTextSearch = _interopRequireWildcard(_projectTextSearch);
+var _sourceSearch = __webpack_require__(1132);
+
+var sourceSearch = _interopRequireWildcard(_sourceSearch);
+
var _breakpointAtLocation = __webpack_require__(1134);
var _breakpointAtLocation2 = _interopRequireDefault(_breakpointAtLocation);
@@ -17856,6 +17923,10 @@ var _visibleBreakpoints = __webpack_require__(1135);
var _visibleBreakpoints2 = _interopRequireDefault(_visibleBreakpoints);
+var _isSelectedFrameVisible = __webpack_require__(805);
+
+var _isSelectedFrameVisible2 = _interopRequireDefault(_isSelectedFrameVisible);
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
@@ -17864,7 +17935,12 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
* @param object - location
*/
-module.exports = Object.assign({}, expressions, sources, pause, breakpoints, pendingBreakpoints, eventListeners, ui, ast, coverage, projectTextSearch, { getBreakpointAtLocation: _breakpointAtLocation2.default, getInScopeLines: _linesInScope2.default, getVisibleBreakpoints: _visibleBreakpoints2.default });
+module.exports = Object.assign({}, expressions, sources, pause, breakpoints, pendingBreakpoints, eventListeners, ui, ast, coverage, projectTextSearch, sourceSearch, {
+ getBreakpointAtLocation: _breakpointAtLocation2.default,
+ getInScopeLines: _linesInScope2.default,
+ getVisibleBreakpoints: _visibleBreakpoints2.default,
+ isSelectedFrameVisible: _isSelectedFrameVisible2.default
+});
/***/ }),
/* 243 */
@@ -17895,13 +17971,13 @@ var _ui = __webpack_require__(1128);
var _devtoolsModules = __webpack_require__(830);
-__webpack_require__(685);
+__webpack_require__(857);
-__webpack_require__(686);
+__webpack_require__(858);
-__webpack_require__(687);
+__webpack_require__(859);
-__webpack_require__(688);
+__webpack_require__(860);
var _devtoolsSplitter = __webpack_require__(910);
@@ -18151,9 +18227,13 @@ var _projectTextSearch = __webpack_require__(37);
var projectTextSearch = _interopRequireWildcard(_projectTextSearch);
+var _sourceSearch = __webpack_require__(1143);
+
+var sourceSearch = _interopRequireWildcard(_sourceSearch);
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
-exports.default = Object.assign({}, navigation, breakpoints, expressions, eventListeners, sources, pause, ui, ast, coverage, projectTextSearch);
+exports.default = Object.assign({}, navigation, breakpoints, expressions, eventListeners, sources, pause, ui, ast, coverage, projectTextSearch, sourceSearch);
/***/ }),
/* 245 */
@@ -18183,6 +18263,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
exports.syncBreakpoint = syncBreakpoint;
exports.addBreakpoint = addBreakpoint;
+exports.addHiddenBreakpoint = addHiddenBreakpoint;
exports.removeBreakpoint = removeBreakpoint;
exports.enableBreakpoint = enableBreakpoint;
exports.disableBreakpoint = disableBreakpoint;
@@ -18193,6 +18274,7 @@ exports.removeBreakpoints = removeBreakpoints;
exports.remapBreakpoints = remapBreakpoints;
exports.setBreakpointCondition = setBreakpointCondition;
exports.toggleBreakpoint = toggleBreakpoint;
+exports.addOrToggleDisabledBreakpoint = addOrToggleDisabledBreakpoint;
exports.toggleDisabledBreakpoint = toggleDisabledBreakpoint;
var _promise = __webpack_require__(193);
@@ -18221,7 +18303,7 @@ function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, a
*
* @memberof actions/breakpoints
* @static
- * @param {String} $1.source Source value
+ * @param {String} $1.sourceId String value
* @param {PendingBreakpoint} $1.location PendingBreakpoint value
*/
function syncBreakpoint(source, pendingBreakpoint) {
@@ -18231,8 +18313,8 @@ function syncBreakpoint(source, pendingBreakpoint) {
client = _ref.client,
sourceMaps = _ref.sourceMaps;
- var sourceId = source.id;
- var _pendingBreakpoint$lo = pendingBreakpoint.location,
+ var sourceId = source.id;
+ var _pendingBreakpoint$lo = pendingBreakpoint.location,
line = _pendingBreakpoint$lo.line,
sourceUrl = _pendingBreakpoint$lo.sourceUrl,
column = _pendingBreakpoint$lo.column;
@@ -18259,8 +18341,8 @@ function syncBreakpoint(source, pendingBreakpoint) {
* @param {Boolean} $1.disabled Disable value for breakpoint value
*/
-function addBreakpoint(location, condition) {
- var breakpoint = (0, _breakpoint.createBreakpoint)(location, { condition });
+function addBreakpoint(location, condition, hidden) {
+ var breakpoint = (0, _breakpoint.createBreakpoint)(location, { condition, hidden });
return (_ref2) => {
var dispatch = _ref2.dispatch,
getState = _ref2.getState,
@@ -18273,6 +18355,21 @@ function addBreakpoint(location, condition) {
};
}
+/**
+ * Add a new hidden breakpoint
+ *
+ * @memberOf actions/breakpoints
+ * @param location
+ * @return {function(ThunkArgs)}
+ */
+function addHiddenBreakpoint(location) {
+ return (_ref3) => {
+ var dispatch = _ref3.dispatch;
+
+ return dispatch(addBreakpoint(location, "", true));
+ };
+}
+
/**
* Remove a single breakpoint
*
@@ -18280,10 +18377,10 @@ function addBreakpoint(location, condition) {
* @static
*/
function removeBreakpoint(location) {
- return (_ref3) => {
- var dispatch = _ref3.dispatch,
- getState = _ref3.getState,
- client = _ref3.client;
+ return (_ref4) => {
+ var dispatch = _ref4.dispatch,
+ getState = _ref4.getState,
+ client = _ref4.client;
var bp = (0, _selectors.getBreakpoint)(getState(), location);
if (!bp) {
@@ -18325,11 +18422,11 @@ function removeBreakpoint(location) {
*/
function enableBreakpoint(location) {
return (() => {
- var _ref4 = _asyncToGenerator(function* (_ref5) {
- var dispatch = _ref5.dispatch,
- getState = _ref5.getState,
- client = _ref5.client,
- sourceMaps = _ref5.sourceMaps;
+ var _ref5 = _asyncToGenerator(function* (_ref6) {
+ var dispatch = _ref6.dispatch,
+ getState = _ref6.getState,
+ client = _ref6.client,
+ sourceMaps = _ref6.sourceMaps;
var breakpoint = (0, _selectors.getBreakpoint)(getState(), location);
if (!breakpoint) {
@@ -18346,7 +18443,7 @@ function enableBreakpoint(location) {
});
return function (_x) {
- return _ref4.apply(this, arguments);
+ return _ref5.apply(this, arguments);
};
})();
}
@@ -18359,10 +18456,10 @@ function enableBreakpoint(location) {
*/
function disableBreakpoint(location) {
return (() => {
- var _ref6 = _asyncToGenerator(function* (_ref7) {
- var dispatch = _ref7.dispatch,
- getState = _ref7.getState,
- client = _ref7.client;
+ var _ref7 = _asyncToGenerator(function* (_ref8) {
+ var dispatch = _ref8.dispatch,
+ getState = _ref8.getState,
+ client = _ref8.client;
var bp = (0, _selectors.getBreakpoint)(getState(), location);
@@ -18386,7 +18483,7 @@ function disableBreakpoint(location) {
});
return function (_x2) {
- return _ref6.apply(this, arguments);
+ return _ref7.apply(this, arguments);
};
})();
}
@@ -18399,15 +18496,15 @@ function disableBreakpoint(location) {
*/
function toggleAllBreakpoints(shouldDisableBreakpoints) {
return (() => {
- var _ref8 = _asyncToGenerator(function* (_ref9) {
- var dispatch = _ref9.dispatch,
- getState = _ref9.getState;
+ var _ref9 = _asyncToGenerator(function* (_ref10) {
+ var dispatch = _ref10.dispatch,
+ getState = _ref10.getState;
var breakpoints = (0, _selectors.getBreakpoints)(getState());
- for (var _ref10 of breakpoints) {
- var _ref11 = _slicedToArray(_ref10, 2);
+ for (var _ref11 of breakpoints) {
+ var _ref12 = _slicedToArray(_ref11, 2);
- var breakpoint = _ref11[1];
+ var breakpoint = _ref12[1];
if (shouldDisableBreakpoints) {
yield dispatch(disableBreakpoint(breakpoint.location));
@@ -18418,7 +18515,7 @@ function toggleAllBreakpoints(shouldDisableBreakpoints) {
});
return function (_x3) {
- return _ref8.apply(this, arguments);
+ return _ref9.apply(this, arguments);
};
})();
}
@@ -18431,13 +18528,13 @@ function toggleAllBreakpoints(shouldDisableBreakpoints) {
*/
function toggleBreakpoints(shouldDisableBreakpoints, breakpoints) {
return (() => {
- var _ref12 = _asyncToGenerator(function* (_ref13) {
- var dispatch = _ref13.dispatch;
+ var _ref13 = _asyncToGenerator(function* (_ref14) {
+ var dispatch = _ref14.dispatch;
- for (var _ref14 of breakpoints) {
- var _ref15 = _slicedToArray(_ref14, 2);
+ for (var _ref15 of breakpoints) {
+ var _ref16 = _slicedToArray(_ref15, 2);
- var breakpoint = _ref15[1];
+ var breakpoint = _ref16[1];
if (shouldDisableBreakpoints) {
yield dispatch(disableBreakpoint(breakpoint.location));
@@ -18448,7 +18545,7 @@ function toggleBreakpoints(shouldDisableBreakpoints, breakpoints) {
});
return function (_x4) {
- return _ref12.apply(this, arguments);
+ return _ref13.apply(this, arguments);
};
})();
}
@@ -18461,22 +18558,22 @@ function toggleBreakpoints(shouldDisableBreakpoints, breakpoints) {
*/
function removeAllBreakpoints() {
return (() => {
- var _ref16 = _asyncToGenerator(function* (_ref17) {
- var dispatch = _ref17.dispatch,
- getState = _ref17.getState;
+ var _ref17 = _asyncToGenerator(function* (_ref18) {
+ var dispatch = _ref18.dispatch,
+ getState = _ref18.getState;
var breakpoints = (0, _selectors.getBreakpoints)(getState());
- for (var _ref18 of breakpoints) {
- var _ref19 = _slicedToArray(_ref18, 2);
+ for (var _ref19 of breakpoints) {
+ var _ref20 = _slicedToArray(_ref19, 2);
- var breakpoint = _ref19[1];
+ var breakpoint = _ref20[1];
yield dispatch(removeBreakpoint(breakpoint.location));
}
});
return function (_x5) {
- return _ref16.apply(this, arguments);
+ return _ref17.apply(this, arguments);
};
})();
}
@@ -18489,30 +18586,30 @@ function removeAllBreakpoints() {
*/
function removeBreakpoints(breakpoints) {
return (() => {
- var _ref20 = _asyncToGenerator(function* (_ref21) {
- var dispatch = _ref21.dispatch;
+ var _ref21 = _asyncToGenerator(function* (_ref22) {
+ var dispatch = _ref22.dispatch;
- for (var _ref22 of breakpoints) {
- var _ref23 = _slicedToArray(_ref22, 2);
+ for (var _ref23 of breakpoints) {
+ var _ref24 = _slicedToArray(_ref23, 2);
- var breakpoint = _ref23[1];
+ var breakpoint = _ref24[1];
yield dispatch(removeBreakpoint(breakpoint.location));
}
});
return function (_x6) {
- return _ref20.apply(this, arguments);
+ return _ref21.apply(this, arguments);
};
})();
}
function remapBreakpoints(sourceId) {
return (() => {
- var _ref24 = _asyncToGenerator(function* (_ref25) {
- var dispatch = _ref25.dispatch,
- getState = _ref25.getState,
- sourceMaps = _ref25.sourceMaps;
+ var _ref25 = _asyncToGenerator(function* (_ref26) {
+ var dispatch = _ref26.dispatch,
+ getState = _ref26.getState,
+ sourceMaps = _ref26.sourceMaps;
var breakpoints = (0, _selectors.getBreakpoints)(getState());
var newBreakpoints = yield (0, _remapLocations2.default)(breakpoints, sourceId, sourceMaps);
@@ -18524,7 +18621,7 @@ function remapBreakpoints(sourceId) {
});
return function (_x7) {
- return _ref24.apply(this, arguments);
+ return _ref25.apply(this, arguments);
};
})();
}
@@ -18542,15 +18639,15 @@ function remapBreakpoints(sourceId) {
* @param {Boolean} $1.disabled Disable value for breakpoint value
*/
function setBreakpointCondition(location) {
- var _ref26 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
- condition = _ref26.condition;
+ var _ref27 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
+ condition = _ref27.condition;
return (() => {
- var _ref27 = _asyncToGenerator(function* (_ref28) {
- var dispatch = _ref28.dispatch,
- getState = _ref28.getState,
- client = _ref28.client,
- sourceMaps = _ref28.sourceMaps;
+ var _ref28 = _asyncToGenerator(function* (_ref29) {
+ var dispatch = _ref29.dispatch,
+ getState = _ref29.getState,
+ client = _ref29.client,
+ sourceMaps = _ref29.sourceMaps;
var bp = (0, _selectors.getBreakpoint)(getState(), location);
if (!bp) {
@@ -18563,6 +18660,11 @@ function setBreakpointCondition(location) {
throw new Error("breakpoint must be saved");
}
+ if (bp.disabled) {
+ yield dispatch(enableBreakpoint(location));
+ bp.disabled = !bp.disabled;
+ }
+
yield client.setBreakpointCondition(bp.id, location, condition, sourceMaps.isOriginalId(bp.location.sourceId));
var newBreakpoint = _extends({}, bp, { condition });
@@ -18576,17 +18678,17 @@ function setBreakpointCondition(location) {
});
return function (_x9) {
- return _ref27.apply(this, arguments);
+ return _ref28.apply(this, arguments);
};
})();
}
function toggleBreakpoint(line, column) {
- return (_ref29) => {
- var dispatch = _ref29.dispatch,
- getState = _ref29.getState,
- client = _ref29.client,
- sourceMaps = _ref29.sourceMaps;
+ return (_ref30) => {
+ var dispatch = _ref30.dispatch,
+ getState = _ref30.getState,
+ client = _ref30.client,
+ sourceMaps = _ref30.sourceMaps;
var selectedSource = (0, _selectors.getSelectedSource)(getState());
var bp = (0, _selectors.getBreakpointAtLocation)(getState(), { line, column });
@@ -18614,12 +18716,40 @@ function toggleBreakpoint(line, column) {
};
}
+function addOrToggleDisabledBreakpoint(line, column) {
+ return (_ref31) => {
+ var dispatch = _ref31.dispatch,
+ getState = _ref31.getState,
+ client = _ref31.client,
+ sourceMaps = _ref31.sourceMaps;
+
+ var selectedSource = (0, _selectors.getSelectedSource)(getState());
+ var bp = (0, _selectors.getBreakpointAtLocation)(getState(), { line, column });
+
+ if (bp && bp.loading) {
+ return;
+ }
+
+ if (bp) {
+ // NOTE: it's possible the breakpoint has slid to a column
+ return dispatch(toggleDisabledBreakpoint(line, column || bp.location.column));
+ }
+
+ return dispatch(addBreakpoint({
+ sourceId: selectedSource.get("id"),
+ sourceUrl: selectedSource.get("url"),
+ line: line,
+ column: column
+ }));
+ };
+}
+
function toggleDisabledBreakpoint(line, column) {
- return (_ref30) => {
- var dispatch = _ref30.dispatch,
- getState = _ref30.getState,
- client = _ref30.client,
- sourceMaps = _ref30.sourceMaps;
+ return (_ref32) => {
+ var dispatch = _ref32.dispatch,
+ getState = _ref32.getState,
+ client = _ref32.client,
+ sourceMaps = _ref32.sourceMaps;
var bp = (0, _selectors.getBreakpointAtLocation)(getState(), { line, column });
if (bp && bp.loading) {
@@ -19008,55 +19138,44 @@ function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, a
* @static
*/
function addExpression(input) {
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
- _ref$visible = _ref.visible,
- visible = _ref$visible === undefined ? true : _ref$visible;
-
return (() => {
- var _ref2 = _asyncToGenerator(function* (_ref3) {
- var dispatch = _ref3.dispatch,
- getState = _ref3.getState;
+ var _ref = _asyncToGenerator(function* (_ref2) {
+ var dispatch = _ref2.dispatch,
+ getState = _ref2.getState;
if (!input) {
return;
}
var expression = (0, _selectors.getExpression)(getState(), input);
- if (expression && expression.visible) {
- return;
- }
-
- // Lets make the expression visible
if (expression) {
return dispatch({
type: "UPDATE_EXPRESSION",
expression,
- input,
- visible: true
+ input
});
}
dispatch({
type: "ADD_EXPRESSION",
- input,
- visible
+ input
});
var selectedFrame = (0, _selectors.getSelectedFrame)(getState());
var selectedFrameId = selectedFrame ? selectedFrame.id : null;
- dispatch(evaluateExpression({ input, visible }, selectedFrameId));
+ dispatch(evaluateExpression({ input }, selectedFrameId));
});
- return function (_x2) {
- return _ref2.apply(this, arguments);
+ return function (_x) {
+ return _ref.apply(this, arguments);
};
})();
}
function updateExpression(input, expression) {
- return (_ref4) => {
- var dispatch = _ref4.dispatch,
- getState = _ref4.getState;
+ return (_ref3) => {
+ var dispatch = _ref3.dispatch,
+ getState = _ref3.getState;
if (!input || input == expression.input) {
return;
@@ -19065,8 +19184,7 @@ function updateExpression(input, expression) {
dispatch({
type: "UPDATE_EXPRESSION",
expression,
- input: input,
- visible: expression.visible
+ input: input
});
var selectedFrame = (0, _selectors.getSelectedFrame)(getState());
@@ -19083,8 +19201,8 @@ function updateExpression(input, expression) {
* @static
*/
function deleteExpression(expression) {
- return (_ref5) => {
- var dispatch = _ref5.dispatch;
+ return (_ref4) => {
+ var dispatch = _ref4.dispatch;
dispatch({
type: "DELETE_EXPRESSION",
@@ -19101,10 +19219,10 @@ function deleteExpression(expression) {
*/
function evaluateExpressions(frameId) {
return (() => {
- var _ref6 = _asyncToGenerator(function* (_ref7) {
- var dispatch = _ref7.dispatch,
- getState = _ref7.getState,
- client = _ref7.client;
+ var _ref5 = _asyncToGenerator(function* (_ref6) {
+ var dispatch = _ref6.dispatch,
+ getState = _ref6.getState,
+ client = _ref6.client;
var expressions = (0, _selectors.getExpressions)(getState()).toJS();
if (!frameId) {
@@ -19116,17 +19234,17 @@ function evaluateExpressions(frameId) {
}
});
- return function (_x3) {
- return _ref6.apply(this, arguments);
+ return function (_x2) {
+ return _ref5.apply(this, arguments);
};
})();
}
function evaluateExpression(expression, frameId) {
- return function (_ref8) {
- var dispatch = _ref8.dispatch,
- getState = _ref8.getState,
- client = _ref8.client;
+ return function (_ref7) {
+ var dispatch = _ref7.dispatch,
+ getState = _ref7.getState,
+ client = _ref7.client;
if (!expression.input) {
console.warn("Expressions should not be empty");
@@ -19136,7 +19254,6 @@ function evaluateExpression(expression, frameId) {
return dispatch({
type: "EVALUATE_EXPRESSION",
input: expression.input,
- visible: expression.visible,
[_promise.PROMISE]: client.evaluate(expression.input, { frameId })
});
};
@@ -19359,8 +19476,24 @@ Object.defineProperty(exports, "__esModule", {
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
+// If a request has been made to show this source, go ahead and
+// select it.
+var checkSelectedSource = (() => {
+ var _ref = _asyncToGenerator(function* (state, dispatch, source) {
+ var pendingLocation = (0, _selectors.getPendingSelectedLocation)(state);
+
+ if (pendingLocation && !!source.url && pendingLocation.url === source.url) {
+ yield dispatch(selectSource(source.id, { line: pendingLocation.line }));
+ }
+ });
+
+ return function checkSelectedSource(_x, _x2, _x3) {
+ return _ref.apply(this, arguments);
+ };
+})();
+
var checkPendingBreakpoint = (() => {
- var _ref = _asyncToGenerator(function* (state, dispatch, pendingBreakpoint, source) {
+ var _ref2 = _asyncToGenerator(function* (state, dispatch, pendingBreakpoint, source) {
var sourceUrl = pendingBreakpoint.location.sourceUrl;
var sameSource = sourceUrl && sourceUrl === source.url;
@@ -19370,13 +19503,13 @@ var checkPendingBreakpoint = (() => {
}
});
- return function checkPendingBreakpoint(_x, _x2, _x3, _x4) {
- return _ref.apply(this, arguments);
+ return function checkPendingBreakpoint(_x4, _x5, _x6, _x7) {
+ return _ref2.apply(this, arguments);
};
})();
var checkPendingBreakpoints = (() => {
- var _ref2 = _asyncToGenerator(function* (state, dispatch, source) {
+ var _ref3 = _asyncToGenerator(function* (state, dispatch, source) {
var pendingBreakpoints = (0, _selectors.getPendingBreakpoints)(state);
if (!pendingBreakpoints) {
return;
@@ -19388,8 +19521,8 @@ var checkPendingBreakpoints = (() => {
}
});
- return function checkPendingBreakpoints(_x5, _x6, _x7) {
- return _ref2.apply(this, arguments);
+ return function checkPendingBreakpoints(_x8, _x9, _x10) {
+ return _ref3.apply(this, arguments);
};
})();
@@ -19449,42 +19582,33 @@ function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, a
* @module actions/sources
*/
-// If a request has been made to show this source, go ahead and
-// select it.
-function checkSelectedSource(state, dispatch, source) {
- var pendingLocation = (0, _selectors.getPendingSelectedLocation)(state);
-
- if (pendingLocation && !!source.url && pendingLocation.url === source.url) {
- dispatch(selectSource(source.id, { line: pendingLocation.line }));
- }
-}
-
function newSource(source) {
return (() => {
- var _ref3 = _asyncToGenerator(function* (_ref4) {
- var dispatch = _ref4.dispatch,
- getState = _ref4.getState;
+ var _ref4 = _asyncToGenerator(function* (_ref5) {
+ var dispatch = _ref5.dispatch,
+ getState = _ref5.getState;
dispatch({ type: "ADD_SOURCE", source });
+
if (_prefs.prefs.clientSourceMapsEnabled) {
yield dispatch(loadSourceMap(source));
}
- checkSelectedSource(getState(), dispatch, source);
+ yield checkSelectedSource(getState(), dispatch, source);
yield checkPendingBreakpoints(getState(), dispatch, source);
});
- return function (_x8) {
- return _ref3.apply(this, arguments);
+ return function (_x11) {
+ return _ref4.apply(this, arguments);
};
})();
}
function newSources(sources) {
return (() => {
- var _ref5 = _asyncToGenerator(function* (_ref6) {
- var dispatch = _ref6.dispatch,
- getState = _ref6.getState;
+ var _ref6 = _asyncToGenerator(function* (_ref7) {
+ var dispatch = _ref7.dispatch,
+ getState = _ref7.getState;
var filteredSources = sources.filter(function (source) {
return !(0, _selectors.getSource)(getState(), source.id);
@@ -19495,8 +19619,8 @@ function newSources(sources) {
}
});
- return function (_x9) {
- return _ref5.apply(this, arguments);
+ return function (_x12) {
+ return _ref6.apply(this, arguments);
};
})();
}
@@ -19507,10 +19631,10 @@ function newSources(sources) {
*/
function loadSourceMap(generatedSource) {
return (() => {
- var _ref7 = _asyncToGenerator(function* (_ref8) {
- var dispatch = _ref8.dispatch,
- getState = _ref8.getState,
- sourceMaps = _ref8.sourceMaps;
+ var _ref8 = _asyncToGenerator(function* (_ref9) {
+ var dispatch = _ref9.dispatch,
+ getState = _ref9.getState,
+ sourceMaps = _ref9.sourceMaps;
var urls = yield sourceMaps.getOriginalURLs(generatedSource);
if (!urls) {
@@ -19535,8 +19659,8 @@ function loadSourceMap(generatedSource) {
});
});
- return function (_x10) {
- return _ref7.apply(this, arguments);
+ return function (_x13) {
+ return _ref8.apply(this, arguments);
};
})();
}
@@ -19553,22 +19677,28 @@ function loadSourceMap(generatedSource) {
function selectSourceURL(url) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- return (_ref9) => {
- var dispatch = _ref9.dispatch,
- getState = _ref9.getState;
+ return (() => {
+ var _ref10 = _asyncToGenerator(function* (_ref11) {
+ var dispatch = _ref11.dispatch,
+ getState = _ref11.getState;
- var source = (0, _selectors.getSourceByURL)(getState(), url);
- if (source) {
- dispatch(selectSource(source.get("id"), options));
- } else {
- dispatch({
- type: "SELECT_SOURCE_URL",
- url: url,
- tabIndex: options.tabIndex,
- line: options.line
- });
- }
- };
+ var source = (0, _selectors.getSourceByURL)(getState(), url);
+ if (source) {
+ yield dispatch(selectSource(source.get("id"), options));
+ } else {
+ dispatch({
+ type: "SELECT_SOURCE_URL",
+ url: url,
+ tabIndex: options.tabIndex,
+ line: options.line
+ });
+ }
+ });
+
+ return function (_x15) {
+ return _ref10.apply(this, arguments);
+ };
+ })();
}
/**
@@ -19578,10 +19708,10 @@ function selectSourceURL(url) {
function selectSource(id) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- return (_ref10) => {
- var dispatch = _ref10.dispatch,
- getState = _ref10.getState,
- client = _ref10.client;
+ return (_ref12) => {
+ var dispatch = _ref12.dispatch,
+ getState = _ref12.getState,
+ client = _ref12.client;
if (!client) {
// No connection, do nothing. This happens when the debugger is
@@ -19621,11 +19751,11 @@ function selectSource(id) {
*/
function jumpToMappedLocation(sourceLocation) {
return (() => {
- var _ref12 = _asyncToGenerator(function* (_ref13) {
- var dispatch = _ref13.dispatch,
- getState = _ref13.getState,
- client = _ref13.client,
- sourceMaps = _ref13.sourceMaps;
+ var _ref14 = _asyncToGenerator(function* (_ref15) {
+ var dispatch = _ref15.dispatch,
+ getState = _ref15.getState,
+ client = _ref15.client,
+ sourceMaps = _ref15.sourceMaps;
if (!client) {
return;
@@ -19642,8 +19772,8 @@ function jumpToMappedLocation(sourceLocation) {
return dispatch(selectSource(pairedLocation.sourceId, { line: pairedLocation.line }));
});
- return function (_x13) {
- return _ref12.apply(this, arguments);
+ return function (_x17) {
+ return _ref14.apply(this, arguments);
};
})();
}
@@ -19669,10 +19799,10 @@ function moveTab(url, tabIndex) {
* @static
*/
function closeTab(url) {
- return (_ref14) => {
- var dispatch = _ref14.dispatch,
- getState = _ref14.getState,
- client = _ref14.client;
+ return (_ref16) => {
+ var dispatch = _ref16.dispatch,
+ getState = _ref16.getState,
+ client = _ref16.client;
(0, _editor.removeDocument)(url);
var tabs = (0, _selectors.removeSourceFromTabList)((0, _selectors.getSourceTabs)(getState()), url);
@@ -19688,10 +19818,10 @@ function closeTab(url) {
* @static
*/
function closeTabs(urls) {
- return (_ref15) => {
- var dispatch = _ref15.dispatch,
- getState = _ref15.getState,
- client = _ref15.client;
+ return (_ref17) => {
+ var dispatch = _ref17.dispatch,
+ getState = _ref17.getState,
+ client = _ref17.client;
urls.forEach(url => {
var source = (0, _selectors.getSourceByURL)(getState(), url);
@@ -19722,15 +19852,15 @@ function closeTabs(urls) {
*/
function togglePrettyPrint(sourceId) {
return (() => {
- var _ref16 = _asyncToGenerator(function* (_ref17) {
- var dispatch = _ref17.dispatch,
- getState = _ref17.getState,
- client = _ref17.client,
- sourceMaps = _ref17.sourceMaps;
+ var _ref18 = _asyncToGenerator(function* (_ref19) {
+ var dispatch = _ref19.dispatch,
+ getState = _ref19.getState,
+ client = _ref19.client,
+ sourceMaps = _ref19.sourceMaps;
var source = (0, _selectors.getSource)(getState(), sourceId).toJS();
- if (source && source.loading) {
+ if (source && !(0, _source.isLoaded)(source)) {
return {};
}
@@ -19748,29 +19878,30 @@ function togglePrettyPrint(sourceId) {
}));
}
- var _ref18 = yield dispatch((0, _createPrettySource.createPrettySource)(sourceId)),
- newPrettySource = _ref18.source;
+ var _ref20 = yield dispatch((0, _createPrettySource.createPrettySource)(sourceId)),
+ newPrettySource = _ref20.source;
yield dispatch((0, _breakpoints.remapBreakpoints)(sourceId));
+ yield dispatch((0, _ast.setEmptyLines)(newPrettySource.id));
return dispatch(selectSource(newPrettySource.id, {
line: selectedOriginalLocation.line
}));
});
- return function (_x14) {
- return _ref16.apply(this, arguments);
+ return function (_x18) {
+ return _ref18.apply(this, arguments);
};
})();
}
function toggleBlackBox(source) {
return (() => {
- var _ref19 = _asyncToGenerator(function* (_ref20) {
- var dispatch = _ref20.dispatch,
- getState = _ref20.getState,
- client = _ref20.client,
- sourceMaps = _ref20.sourceMaps;
+ var _ref21 = _asyncToGenerator(function* (_ref22) {
+ var dispatch = _ref22.dispatch,
+ getState = _ref22.getState,
+ client = _ref22.client,
+ sourceMaps = _ref22.sourceMaps;
var isBlackBoxed = source.isBlackBoxed,
id = source.id;
@@ -19782,8 +19913,8 @@ function toggleBlackBox(source) {
});
});
- return function (_x15) {
- return _ref19.apply(this, arguments);
+ return function (_x19) {
+ return _ref21.apply(this, arguments);
};
})();
}
@@ -19794,11 +19925,11 @@ function toggleBlackBox(source) {
*/
function loadSourceText(source) {
return (() => {
- var _ref21 = _asyncToGenerator(function* (_ref22) {
- var dispatch = _ref22.dispatch,
- getState = _ref22.getState,
- client = _ref22.client,
- sourceMaps = _ref22.sourceMaps;
+ var _ref23 = _asyncToGenerator(function* (_ref24) {
+ var dispatch = _ref24.dispatch,
+ getState = _ref24.getState,
+ client = _ref24.client,
+ sourceMaps = _ref24.sourceMaps;
// Fetch the source text only once.
if (source.text) {
@@ -19824,10 +19955,11 @@ function loadSourceText(source) {
});
yield dispatch((0, _ast.setSymbols)(source.id));
+ yield dispatch((0, _ast.setEmptyLines)(source.id));
});
- return function (_x16) {
- return _ref21.apply(this, arguments);
+ return function (_x20) {
+ return _ref23.apply(this, arguments);
};
})();
}
@@ -19839,16 +19971,16 @@ function loadSourceText(source) {
*/
function loadAllSources() {
return (() => {
- var _ref24 = _asyncToGenerator(function* (_ref25) {
- var dispatch = _ref25.dispatch,
- getState = _ref25.getState;
+ var _ref26 = _asyncToGenerator(function* (_ref27) {
+ var dispatch = _ref27.dispatch,
+ getState = _ref27.getState;
var sources = (0, _selectors.getSources)(getState());
var query = (0, _selectors.getTextSearchQuery)(getState());
- for (var _ref26 of sources) {
- var _ref27 = _slicedToArray(_ref26, 2);
+ for (var _ref28 of sources) {
+ var _ref29 = _slicedToArray(_ref28, 2);
- var src = _ref27[1];
+ var src = _ref29[1];
var source = src.toJS();
yield dispatch(loadSourceText(source));
@@ -19860,8 +19992,8 @@ function loadAllSources() {
}
});
- return function (_x17) {
- return _ref24.apply(this, arguments);
+ return function (_x21) {
+ return _ref26.apply(this, arguments);
};
})();
}
@@ -19876,11 +20008,31 @@ function loadAllSources() {
Object.defineProperty(exports, "__esModule", {
value: true
});
+exports.getPausedPosition = undefined;
+
+var getPausedPosition = exports.getPausedPosition = (() => {
+ var _ref = _asyncToGenerator(function* (pauseInfo, sourceMaps) {
+ var frames = pauseInfo.frames;
+
+ frames = yield updateFrameLocations(frames, sourceMaps);
+ var frame = frames[0];
+ var location = frame.location;
+
+ return location;
+ });
+
+ return function getPausedPosition(_x, _x2) {
+ return _ref.apply(this, arguments);
+ };
+})();
+
exports.updateFrameLocations = updateFrameLocations;
exports.getPauseReason = getPauseReason;
var _lodash = __webpack_require__(2);
+function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
+
function updateFrameLocations(frames, sourceMaps) {
if (!frames || frames.length == 0) {
return Promise.resolve(frames);
@@ -20145,6 +20297,11 @@ var _source = __webpack_require__(233);
var _wasm = __webpack_require__(23);
+var _devtoolsSourceEditor = __webpack_require__(994);
+
+var resizeBreakpointGutter = _devtoolsSourceEditor.SourceEditorUtils.resizeBreakpointGutter;
+
+
var sourceDocs = {};
function getDocument(key) {
@@ -20166,16 +20323,17 @@ function clearDocuments() {
function resetLineNumberFormat(editor) {
var cm = editor.codeMirror;
cm.setOption("lineNumberFormatter", number => number);
+ resizeBreakpointGutter(cm);
}
function updateLineNumberFormat(editor, sourceId) {
if (!(0, _wasm.isWasm)(sourceId)) {
- resetLineNumberFormat(editor);
- return;
+ return resetLineNumberFormat(editor);
}
var cm = editor.codeMirror;
var lineNumberFormatter = (0, _wasm.getWasmLineNumberFormatter)(sourceId);
cm.setOption("lineNumberFormatter", lineNumberFormatter);
+ resizeBreakpointGutter(cm);
}
function updateDocument(editor, sourceId) {
@@ -20810,7 +20968,78 @@ module.exports = hasPath;
/* 301 */,
/* 302 */,
/* 303 */,
-/* 304 */,
+/* 304 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__(84),
+ isSymbol = __webpack_require__(72);
+
+/** Used as references for various `Number` constants. */
+var NAN = 0 / 0;
+
+/** Used to match leading and trailing whitespace. */
+var reTrim = /^\s+|\s+$/g;
+
+/** Used to detect bad signed hexadecimal string values. */
+var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+
+/** Used to detect binary string values. */
+var reIsBinary = /^0b[01]+$/i;
+
+/** Used to detect octal string values. */
+var reIsOctal = /^0o[0-7]+$/i;
+
+/** Built-in method references without a dependency on `root`. */
+var freeParseInt = parseInt;
+
+/**
+ * Converts `value` to a number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {number} Returns the number.
+ * @example
+ *
+ * _.toNumber(3.2);
+ * // => 3.2
+ *
+ * _.toNumber(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toNumber(Infinity);
+ * // => Infinity
+ *
+ * _.toNumber('3.2');
+ * // => 3.2
+ */
+function toNumber(value) {
+ if (typeof value == 'number') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return NAN;
+ }
+ if (isObject(value)) {
+ var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
+ value = isObject(other) ? (other + '') : other;
+ }
+ if (typeof value != 'string') {
+ return value === 0 ? value : +value;
+ }
+ value = value.replace(reTrim, '');
+ var isBinary = reIsBinary.test(value);
+ return (isBinary || reIsOctal.test(value))
+ ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
+ : (reIsBadHex.test(value) ? NAN : +value);
+}
+
+module.exports = toNumber;
+
+
+/***/ }),
/* 305 */
/***/ (function(module, exports, __webpack_require__) {
@@ -21067,6 +21296,7 @@ exports.resume = resume;
exports.breakOnNext = breakOnNext;
exports.selectFrame = selectFrame;
exports.loadObjectProperties = loadObjectProperties;
+exports.astCommand = astCommand;
var _sources = __webpack_require__(254);
@@ -21078,6 +21308,18 @@ var _pause = __webpack_require__(255);
var _expressions = __webpack_require__(252);
+var _breakpoints = __webpack_require__(245);
+
+var _breakpoints2 = __webpack_require__(236);
+
+var _parser = __webpack_require__(827);
+
+var parser = _interopRequireWildcard(_parser);
+
+var _prefs = __webpack_require__(226);
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
+
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
/**
@@ -21207,7 +21449,7 @@ function stepIn() {
getState = _ref7.getState;
if ((0, _selectors.getPause)(getState())) {
- return dispatch(command({ type: "stepIn" }));
+ return dispatch(astCommand("stepIn"));
}
};
}
@@ -21224,7 +21466,7 @@ function stepOver() {
getState = _ref8.getState;
if ((0, _selectors.getPause)(getState())) {
- return dispatch(command({ type: "stepOver" }));
+ return dispatch(astCommand("stepOver"));
}
};
}
@@ -21241,7 +21483,7 @@ function stepOut() {
getState = _ref9.getState;
if ((0, _selectors.getPause)(getState())) {
- return dispatch(command({ type: "stepOut" }));
+ return dispatch(astCommand("stepOut"));
}
};
}
@@ -21337,6 +21579,47 @@ function loadObjectProperties(object) {
};
}
+/**
+ * @memberOf actions/pause
+ * @static
+ * @param stepType
+ * @returns {function(ThunkArgs)}
+ */
+function astCommand(stepType) {
+ return (() => {
+ var _ref15 = _asyncToGenerator(function* (_ref16) {
+ var dispatch = _ref16.dispatch,
+ getState = _ref16.getState,
+ sourceMaps = _ref16.sourceMaps;
+
+ if (!_prefs.features.asyncStepping) {
+ return dispatch(command({ type: stepType }));
+ }
+
+ var pauseInfo = (0, _selectors.getPause)(getState());
+ var source = (0, _selectors.getSelectedSource)(getState()).toJS();
+ var currentHiddenBreakpointLocation = (0, _breakpoints2.getHiddenBreakpointLocation)(getState());
+ if (currentHiddenBreakpointLocation) {
+ dispatch((0, _breakpoints.removeBreakpoint)(currentHiddenBreakpointLocation));
+ }
+ var pausedPosition = yield (0, _pause.getPausedPosition)(pauseInfo, sourceMaps);
+
+ var _ref17 = yield parser.getNextStep(source, stepType, pausedPosition),
+ nextStepType = _ref17.nextStepType,
+ nextHiddenBreakpointLocation = _ref17.nextHiddenBreakpointLocation;
+
+ if (nextHiddenBreakpointLocation) {
+ yield dispatch((0, _breakpoints.addHiddenBreakpoint)(nextHiddenBreakpointLocation));
+ }
+ return dispatch(command({ type: nextStepType }));
+ });
+
+ return function (_x3) {
+ return _ref15.apply(this, arguments);
+ };
+ })();
+}
+
/***/ }),
/* 320 */
/***/ (function(module, exports, __webpack_require__) {
@@ -21530,6 +21813,12 @@ function showSource(sourceId) {
getState = _ref4.getState;
var source = (0, _selectors.getSource)(getState(), sourceId);
+
+ dispatch({
+ type: "SHOW_SOURCE",
+ sourceUrl: ""
+ });
+
dispatch({
type: "SHOW_SOURCE",
sourceUrl: source.get("url")
@@ -21636,7 +21925,7 @@ var _Transition = __webpack_require__(333);
var _Transition2 = _interopRequireDefault(_Transition);
-__webpack_require__(737);
+__webpack_require__(952);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -23088,7 +23377,7 @@ var _classnames2 = _interopRequireDefault(_classnames);
var _resultList = __webpack_require__(343);
-__webpack_require__(695);
+__webpack_require__(867);
var _SearchInput = __webpack_require__(377);
@@ -23107,7 +23396,6 @@ class Autocomplete extends _react.Component {
this.onKeyDown = this.onKeyDown.bind(this);
this.state = {
- inputValue: props.inputValue,
selectedIndex: 0,
focused: false
};
@@ -23120,13 +23408,12 @@ class Autocomplete extends _react.Component {
}
getSearchResults() {
- var inputValue = this.state.inputValue;
-
+ var inputValue = this.props.inputValue;
if (inputValue == "") {
return [];
}
- return (0, _fuzzaldrinPlus.filter)(this.props.items, this.state.inputValue, {
+ return (0, _fuzzaldrinPlus.filter)(this.props.items, inputValue, {
key: "value"
});
}
@@ -23153,11 +23440,11 @@ class Autocomplete extends _react.Component {
if (searchResults.length) {
this.props.selectItem(e, searchResults[this.state.selectedIndex]);
} else {
- this.props.close(this.state.inputValue);
+ this.props.close(this.props.inputValue);
}
e.preventDefault();
} else if (e.key === "Tab") {
- this.props.close(this.state.inputValue);
+ this.props.close(this.props.inputValue);
e.preventDefault();
}
}
@@ -23177,7 +23464,7 @@ class Autocomplete extends _react.Component {
};
return _react2.default.createElement(_ResultList2.default, props);
- } else if (this.state.inputValue && !results.length) {
+ } else if (this.props.inputValue && !results.length) {
return _react2.default.createElement(
"div",
{ className: "no-result-msg absolute-center" },
@@ -23196,16 +23483,18 @@ class Autocomplete extends _react.Component {
var summaryMsg = L10N.getFormatStr("sourceSearch.resultsSummary1", searchResults.length);
var searchProps = {
- query: this.state.inputValue,
+ query: this.props.inputValue,
count: searchResults.length,
placeholder: this.props.placeholder,
size,
showErrorEmoji: true,
summaryMsg,
- onChange: e => this.setState({
- inputValue: e.target.value,
- selectedIndex: 0
- }),
+ onChange: e => {
+ this.props.onChangeHandler(e.target.value);
+ this.setState({
+ selectedIndex: 0
+ });
+ },
onFocus: () => this.setState({ focused: true }),
onBlur: () => this.setState({ focused: false }),
onKeyDown: this.onKeyDown,
@@ -23321,7 +23610,7 @@ var _Svg = __webpack_require__(345);
var _Svg2 = _interopRequireDefault(_Svg);
-__webpack_require__(690);
+__webpack_require__(862);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -23354,6 +23643,7 @@ var svg = {
"column-breakpoint": __webpack_require__(998),
"case-match": __webpack_require__(351),
close: __webpack_require__(352),
+ dojo: __webpack_require__(806),
domain: __webpack_require__(353),
file: __webpack_require__(354),
folder: __webpack_require__(355),
@@ -23395,10 +23685,14 @@ var svg = {
showOutline: __webpack_require__(1045)
};
-module.exports = function (name, props) {
- // eslint-disable-line
+function Svg(_ref) {
+ var name = _ref.name,
+ className = _ref.className,
+ onClick = _ref.onClick,
+ ariaLabel = _ref["aria-label"];
+
if (!svg[name]) {
- var error = "Unknown SVG: " + name;
+ var error = `Unknown SVG: ${name}`;
if (isDevelopment()) {
throw new Error(error);
}
@@ -23407,16 +23701,22 @@ module.exports = function (name, props) {
return;
}
- var className = name;
- if (props && props.className) {
- className = `${name} ${props.className}`;
- }
+ className = `${name} ${className || ""}`;
if (name === "subSettings") {
className = "";
}
- props = Object.assign({}, props, { className, src: svg[name] });
+ var props = {
+ className,
+ onClick,
+ ["aria-label"]: ariaLabel,
+ src: svg[name]
+ };
return React.createElement(InlineSVG, props);
-};
+}
+
+Svg.displayName = "Svg";
+
+module.exports = Svg;
/***/ }),
/* 346 */
@@ -23770,7 +24070,7 @@ var _Close = __webpack_require__(378);
var _Close2 = _interopRequireDefault(_Close);
-__webpack_require__(693);
+__webpack_require__(865);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -23786,7 +24086,7 @@ var arrowBtn = (onClick, type, className, tooltip) => {
return _react2.default.createElement(
"button",
props,
- (0, _Svg2.default)(type)
+ _react2.default.createElement(_Svg2.default, { name: type })
);
};
@@ -23809,10 +24109,10 @@ class SearchInput extends _react.Component {
renderSvg() {
if (this.shouldShowErrorEmoji()) {
- return (0, _Svg2.default)("sad-face");
+ return _react2.default.createElement(_Svg2.default, { name: "sad-face" });
}
- return (0, _Svg2.default)("magnifying-glass");
+ return _react2.default.createElement(_Svg2.default, { name: "magnifying-glass" });
}
renderArrowButtons() {
@@ -23916,7 +24216,7 @@ var _Svg = __webpack_require__(344);
var _Svg2 = _interopRequireDefault(_Svg);
-__webpack_require__(692);
+__webpack_require__(864);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -23932,7 +24232,7 @@ function CloseButton(_ref) {
onClick: handleClick,
title: tooltip
},
- (0, _Svg2.default)("close")
+ _react2.default.createElement(_Svg2.default, { name: "close" })
);
}
@@ -23967,7 +24267,7 @@ var _classnames = __webpack_require__(175);
var _classnames2 = _interopRequireDefault(_classnames);
-__webpack_require__(696);
+__webpack_require__(868);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -24124,7 +24424,7 @@ var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
-__webpack_require__(691);
+__webpack_require__(863);
var _devtoolsComponents = __webpack_require__(1007);
@@ -24315,8 +24615,6 @@ var _classnames2 = _interopRequireDefault(_classnames);
var _devtoolsConfig = __webpack_require__(828);
-var _lodash = __webpack_require__(2);
-
var _GutterMenu = __webpack_require__(655);
var _GutterMenu2 = _interopRequireDefault(_GutterMenu);
@@ -24329,6 +24627,10 @@ var _ConditionalPanel = __webpack_require__(711);
var _devtoolsLaunchpad = __webpack_require__(131);
+var _source = __webpack_require__(233);
+
+var _ast = __webpack_require__(1058);
+
var _selectors = __webpack_require__(242);
var _actions = __webpack_require__(244);
@@ -24347,7 +24649,7 @@ var _HighlightLines = __webpack_require__(1025);
var _HighlightLines2 = _interopRequireDefault(_HighlightLines);
-var _Preview = __webpack_require__(657);
+var _Preview = __webpack_require__(809);
var _Preview2 = _interopRequireDefault(_Preview);
@@ -24367,11 +24669,15 @@ var _DebugLine = __webpack_require__(313);
var _DebugLine2 = _interopRequireDefault(_DebugLine);
+var _EmptyLines = __webpack_require__(1144);
+
+var _EmptyLines2 = _interopRequireDefault(_EmptyLines);
+
var _editor = __webpack_require__(257);
-__webpack_require__(716);
+__webpack_require__(905);
-__webpack_require__(717);
+__webpack_require__(906);
var _devtoolsSourceEditor = __webpack_require__(994);
@@ -24403,10 +24709,8 @@ class Editor extends _react.PureComponent {
self.onEscape = this.onEscape.bind(this);
self.onGutterClick = this.onGutterClick.bind(this);
self.onGutterContextMenu = this.onGutterContextMenu.bind(this);
- self.onScroll = this.onScroll.bind(this);
self.onSearchAgain = this.onSearchAgain.bind(this);
self.onToggleBreakpoint = this.onToggleBreakpoint.bind(this);
- self.onMouseOver = (0, _lodash.debounce)(this.onMouseOver, 40);
self.toggleConditionalPanel = this.toggleConditionalPanel.bind(this);
}
@@ -24424,7 +24728,7 @@ class Editor extends _react.PureComponent {
if (this.props.selectedSource) {
this.showMessage("");
}
- } else if (selectedSource.get("loading")) {
+ } else if (!(0, _source.isLoaded)(selectedSource.toJS())) {
this.showMessage(L10N.getStr("loadingText"));
} else if (selectedSource.get("error")) {
this.showMessage(selectedSource.get("error"));
@@ -24464,7 +24768,6 @@ class Editor extends _react.PureComponent {
// Set code editor wrapper to be focusable
codeMirrorWrapper.tabIndex = 0;
codeMirrorWrapper.addEventListener("keydown", e => this.onKeyDown(e));
- codeMirrorWrapper.addEventListener("mouseover", e => this.onMouseOver(e));
var toggleFoldMarkerVisibility = e => {
if (node instanceof HTMLElement) {
@@ -24486,8 +24789,6 @@ class Editor extends _react.PureComponent {
codeMirrorWrapper.addEventListener("contextmenu", event => this.openMenu(event, codeMirror));
}
- codeMirror.on("scroll", this.onScroll);
-
this.setState({ editor });
return editor;
}
@@ -24619,10 +24920,6 @@ class Editor extends _react.PureComponent {
}
}
- onScroll() {
- this.clearPreviewSelection();
- }
-
onSearchAgain(_, e) {
var _props3 = this.props,
query = _props3.query,
@@ -24635,10 +24932,6 @@ class Editor extends _react.PureComponent {
(0, _editor.traverseResults)(e, ctx, query, direction, searchModifiers.toJS());
}
- clearPreviewSelection() {
- this.props.clearSelection();
- }
-
inSelectedFrameSource() {
var _props4 = this.props,
selectedLocation = _props4.selectedLocation,
@@ -24673,7 +24966,9 @@ class Editor extends _react.PureComponent {
onGutterClick(cm, line, gutter, ev) {
var _props6 = this.props,
selectedSource = _props6.selectedSource,
- toggleBreakpoint = _props6.toggleBreakpoint;
+ toggleBreakpoint = _props6.toggleBreakpoint,
+ addOrToggleDisabledBreakpoint = _props6.addOrToggleDisabledBreakpoint,
+ isEmptyLine = _props6.isEmptyLine;
// ignore right clicks in the gutter
@@ -24681,6 +24976,10 @@ class Editor extends _react.PureComponent {
return;
}
+ if (isEmptyLine(line)) {
+ return;
+ }
+
if (this.isCbPanelOpen()) {
return this.closeConditionalPanel();
}
@@ -24690,7 +24989,11 @@ class Editor extends _react.PureComponent {
}
if (gutter !== "CodeMirror-foldgutter") {
- toggleBreakpoint((0, _editor.toSourceLine)(selectedSource.get("id"), line));
+ if (ev.shiftKey) {
+ addOrToggleDisabledBreakpoint((0, _editor.toSourceLine)(selectedSource.get("id"), line));
+ } else {
+ toggleBreakpoint((0, _editor.toSourceLine)(selectedSource.get("id"), line));
+ }
}
}
@@ -24699,7 +25002,8 @@ class Editor extends _react.PureComponent {
selectedSource = _props7.selectedSource,
breakpoints = _props7.breakpoints,
toggleBreakpoint = _props7.toggleBreakpoint,
- toggleDisabledBreakpoint = _props7.toggleDisabledBreakpoint;
+ toggleDisabledBreakpoint = _props7.toggleDisabledBreakpoint,
+ isEmptyLine = _props7.isEmptyLine;
if (selectedSource && selectedSource.get("isBlackBoxed")) {
@@ -24711,6 +25015,10 @@ class Editor extends _react.PureComponent {
var line = (0, _editor.lineAtHeight)(this.state.editor, sourceId, event);
var breakpoint = breakpoints.find(bp => bp.location.line === line);
+ if (isEmptyLine(line - 1)) {
+ return;
+ }
+
(0, _GutterMenu2.default)({
event,
line,
@@ -24724,14 +25032,6 @@ class Editor extends _react.PureComponent {
});
}
- onMouseOver(e) {
- var target = e.target;
-
- if (this.inSelectedFrameSource()) {
- (0, _editor.updateSelection)(target, this.state.editor, this.props);
- }
- }
-
toggleConditionalPanel(line) {
if (this.isCbPanelOpen()) {
return this.closeConditionalPanel();
@@ -24855,7 +25155,7 @@ class Editor extends _react.PureComponent {
selectedSource = _props10.selectedSource;
- if (!selectedSource || selectedSource.get("loading") || !hitCount || !this.state.editor) {
+ if (!selectedSource || !(0, _source.isLoaded)(selectedSource.toJS()) || !hitCount || !this.state.editor) {
return;
}
@@ -24867,38 +25167,13 @@ class Editor extends _react.PureComponent {
}
renderPreview() {
- var _props11 = this.props,
- selectedSource = _props11.selectedSource,
- selection = _props11.selection;
+ var selectedSource = this.props.selectedSource;
if (!this.state.editor || !selectedSource) {
return null;
}
- if (!selection || selection.updating) {
- return;
- }
-
- var result = selection.result,
- expression = selection.expression,
- location = selection.location,
- cursorPos = selection.cursorPos;
-
- var value = result;
- if (typeof value == "undefined" || value.optimizedOut) {
- return;
- }
-
- var editorRange = (0, _editor.toEditorRange)(selectedSource.get("id"), location);
-
- return _react2.default.createElement(_Preview2.default, {
- value: value,
- editor: this.state.editor,
- range: editorRange,
- expression: expression,
- popoverPos: cursorPos,
- onClose: () => this.clearPreviewSelection()
- });
+ return _react2.default.createElement(_Preview2.default, { editor: this.state.editor });
}
renderInScopeLines() {
@@ -24925,11 +25200,11 @@ class Editor extends _react.PureComponent {
}
renderSearchBar() {
- var _props12 = this.props,
- selectSource = _props12.selectSource,
- selectedSource = _props12.selectedSource,
- highlightLineRange = _props12.highlightLineRange,
- clearHighlightLineRange = _props12.clearHighlightLineRange;
+ var _props11 = this.props,
+ selectSource = _props11.selectSource,
+ selectedSource = _props11.selectedSource,
+ highlightLineRange = _props11.highlightLineRange,
+ clearHighlightLineRange = _props11.clearHighlightLineRange;
if (!this.state.editor) {
@@ -24963,11 +25238,19 @@ class Editor extends _react.PureComponent {
return _react2.default.createElement(_Breakpoints2.default, { editor: this.state.editor });
}
+ renderEmptyLines() {
+ if (!this.state.editor) {
+ return null;
+ }
+
+ return _react2.default.createElement(_EmptyLines2.default, { editor: this.state.editor });
+ }
+
renderDebugLine() {
var editor = this.state.editor;
- var _props13 = this.props,
- selectedLocation = _props13.selectedLocation,
- selectedFrame = _props13.selectedFrame;
+ var _props12 = this.props,
+ selectedLocation = _props12.selectedLocation,
+ selectedFrame = _props12.selectedFrame;
if (!editor || !selectedLocation || !selectedFrame || !selectedLocation.line || selectedFrame.location.sourceId !== selectedLocation.sourceId) {
return null;
@@ -24981,9 +25264,9 @@ class Editor extends _react.PureComponent {
}
render() {
- var _props14 = this.props,
- coverageOn = _props14.coverageOn,
- pauseData = _props14.pauseData;
+ var _props13 = this.props,
+ coverageOn = _props13.coverageOn,
+ pauseData = _props13.pauseData;
return _react2.default.createElement(
@@ -25006,7 +25289,8 @@ class Editor extends _react.PureComponent {
this.renderPreview(),
this.renderCallSites(),
this.renderDebugLine(),
- this.renderBreakpoints()
+ this.renderBreakpoints(),
+ this.renderEmptyLines()
);
}
}
@@ -25042,13 +25326,13 @@ Editor.propTypes = {
regexMatch: _react.PropTypes.bool.isRequired,
wholeWord: _react.PropTypes.bool.isRequired
}).isRequired,
- selection: _react.PropTypes.object,
startPanelSize: _react.PropTypes.number,
endPanelSize: _react.PropTypes.number,
- clearSelection: _react.PropTypes.func.isRequired,
linesInScope: _react.PropTypes.array,
toggleBreakpoint: _react.PropTypes.func.isRequired,
- toggleDisabledBreakpoint: _react.PropTypes.func.isRequired
+ addOrToggleDisabledBreakpoint: _react.PropTypes.func.isRequired,
+ toggleDisabledBreakpoint: _react.PropTypes.func.isRequired,
+ isEmptyLine: _react.PropTypes.func
};
Editor.contextTypes = {
@@ -25074,7 +25358,7 @@ exports.default = (0, _reactRedux.connect)(state => {
query: (0, _selectors.getFileSearchQueryState)(state),
searchModifiers: (0, _selectors.getFileSearchModifierState)(state),
linesInScope: (0, _selectors.getInScopeLines)(state),
- selection: (0, _selectors.getSelection)(state)
+ isEmptyLine: line => (0, _ast.isEmptyLineInSource)(state, line, selectedSource.toJS())
};
}, dispatch => (0, _redux.bindActionCreators)(_actions2.default, dispatch))(Editor);
@@ -25121,7 +25405,7 @@ var _PaneToggle = __webpack_require__(428);
var _PaneToggle2 = _interopRequireDefault(_PaneToggle);
-__webpack_require__(705);
+__webpack_require__(875);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -25132,7 +25416,7 @@ class SourceFooter extends _react.PureComponent {
selectedSource = _props.selectedSource,
togglePrettyPrint = _props.togglePrettyPrint;
- var sourceLoaded = selectedSource && !selectedSource.get("loading");
+ var sourceLoaded = selectedSource && (0, _source.isLoaded)(selectedSource.toJS());
if (!(0, _editor.shouldShowPrettyPrint)(selectedSource)) {
return;
@@ -25153,7 +25437,7 @@ class SourceFooter extends _react.PureComponent {
title: tooltip,
"aria-label": tooltip
},
- (0, _Svg2.default)(type)
+ _react2.default.createElement(_Svg2.default, { name: type })
);
}
@@ -25162,7 +25446,7 @@ class SourceFooter extends _react.PureComponent {
selectedSource = _props2.selectedSource,
toggleBlackBox = _props2.toggleBlackBox;
- var sourceLoaded = selectedSource && !selectedSource.get("loading");
+ var sourceLoaded = selectedSource && (0, _source.isLoaded)(selectedSource.toJS());
var blackboxed = selectedSource.get("isBlackBoxed");
@@ -25185,7 +25469,7 @@ class SourceFooter extends _react.PureComponent {
title: tooltip,
"aria-label": tooltip
},
- (0, _Svg2.default)("blackBox")
+ _react2.default.createElement(_Svg2.default, { name: "blackBox" })
);
}
@@ -25309,7 +25593,7 @@ var _Svg = __webpack_require__(344);
var _Svg2 = _interopRequireDefault(_Svg);
-__webpack_require__(704);
+__webpack_require__(874);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -25343,7 +25627,7 @@ class PaneToggleButton extends _react.Component {
onClick: () => handleClick(position, collapsed),
title: title
},
- (0, _Svg2.default)("togglePanes")
+ _react2.default.createElement(_Svg2.default, { name: "togglePanes" })
);
}
}
@@ -25391,6 +25675,8 @@ var _editor = __webpack_require__(257);
var _search = __webpack_require__(1115);
+var _source = __webpack_require__(233);
+
var _resultList = __webpack_require__(343);
var _classnames = __webpack_require__(175);
@@ -25405,7 +25691,7 @@ var _SearchInput = __webpack_require__(377);
var _SearchInput2 = _interopRequireDefault(_SearchInput);
-__webpack_require__(706);
+__webpack_require__(876);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -25502,8 +25788,8 @@ class SearchBar extends _react.Component {
(0, _resultList.scrollList)(this.refs.resultList.refs, this.state.selectedResultIndex);
}
- var hasLoaded = selectedSource && !selectedSource.get("loading");
- var wasLoading = prevProps.selectedSource && prevProps.selectedSource.get("loading");
+ var hasLoaded = selectedSource && (0, _source.isLoaded)(selectedSource.toJS());
+ var wasLoading = prevProps.selectedSource && (0, _source.isLoaded)(prevProps.selectedSource.toJS());
var doneLoading = wasLoading && hasLoaded;
var changedFiles = selectedSource != prevProps.selectedSource && hasLoaded;
@@ -25739,7 +26025,7 @@ class SearchBar extends _react.Component {
onClick: () => toggleFileSearchModifier(modVal),
title: tooltip
},
- (0, _Svg2.default)(svgName)
+ _react2.default.createElement(_Svg2.default, { name: svgName })
);
}
@@ -26054,8 +26340,229 @@ exports.default = (0, _reactRedux.connect)(state => {
/* 648 */,
/* 649 */,
/* 650 */,
-/* 651 */,
-/* 652 */,
+/* 651 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__(84),
+ now = __webpack_require__(652),
+ toNumber = __webpack_require__(304);
+
+/** Error message constants. */
+var FUNC_ERROR_TEXT = 'Expected a function';
+
+/* Built-in method references for those with the same name as other `lodash` methods. */
+var nativeMax = Math.max,
+ nativeMin = Math.min;
+
+/**
+ * Creates a debounced function that delays invoking `func` until after `wait`
+ * milliseconds have elapsed since the last time the debounced function was
+ * invoked. The debounced function comes with a `cancel` method to cancel
+ * delayed `func` invocations and a `flush` method to immediately invoke them.
+ * Provide `options` to indicate whether `func` should be invoked on the
+ * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
+ * with the last arguments provided to the debounced function. Subsequent
+ * calls to the debounced function return the result of the last `func`
+ * invocation.
+ *
+ * **Note:** If `leading` and `trailing` options are `true`, `func` is
+ * invoked on the trailing edge of the timeout only if the debounced function
+ * is invoked more than once during the `wait` timeout.
+ *
+ * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
+ * until to the next tick, similar to `setTimeout` with a timeout of `0`.
+ *
+ * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
+ * for details over the differences between `_.debounce` and `_.throttle`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to debounce.
+ * @param {number} [wait=0] The number of milliseconds to delay.
+ * @param {Object} [options={}] The options object.
+ * @param {boolean} [options.leading=false]
+ * Specify invoking on the leading edge of the timeout.
+ * @param {number} [options.maxWait]
+ * The maximum time `func` is allowed to be delayed before it's invoked.
+ * @param {boolean} [options.trailing=true]
+ * Specify invoking on the trailing edge of the timeout.
+ * @returns {Function} Returns the new debounced function.
+ * @example
+ *
+ * // Avoid costly calculations while the window size is in flux.
+ * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
+ *
+ * // Invoke `sendMail` when clicked, debouncing subsequent calls.
+ * jQuery(element).on('click', _.debounce(sendMail, 300, {
+ * 'leading': true,
+ * 'trailing': false
+ * }));
+ *
+ * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
+ * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
+ * var source = new EventSource('/stream');
+ * jQuery(source).on('message', debounced);
+ *
+ * // Cancel the trailing debounced invocation.
+ * jQuery(window).on('popstate', debounced.cancel);
+ */
+function debounce(func, wait, options) {
+ var lastArgs,
+ lastThis,
+ maxWait,
+ result,
+ timerId,
+ lastCallTime,
+ lastInvokeTime = 0,
+ leading = false,
+ maxing = false,
+ trailing = true;
+
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ wait = toNumber(wait) || 0;
+ if (isObject(options)) {
+ leading = !!options.leading;
+ maxing = 'maxWait' in options;
+ maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
+ trailing = 'trailing' in options ? !!options.trailing : trailing;
+ }
+
+ function invokeFunc(time) {
+ var args = lastArgs,
+ thisArg = lastThis;
+
+ lastArgs = lastThis = undefined;
+ lastInvokeTime = time;
+ result = func.apply(thisArg, args);
+ return result;
+ }
+
+ function leadingEdge(time) {
+ // Reset any `maxWait` timer.
+ lastInvokeTime = time;
+ // Start the timer for the trailing edge.
+ timerId = setTimeout(timerExpired, wait);
+ // Invoke the leading edge.
+ return leading ? invokeFunc(time) : result;
+ }
+
+ function remainingWait(time) {
+ var timeSinceLastCall = time - lastCallTime,
+ timeSinceLastInvoke = time - lastInvokeTime,
+ result = wait - timeSinceLastCall;
+
+ return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
+ }
+
+ function shouldInvoke(time) {
+ var timeSinceLastCall = time - lastCallTime,
+ timeSinceLastInvoke = time - lastInvokeTime;
+
+ // Either this is the first call, activity has stopped and we're at the
+ // trailing edge, the system time has gone backwards and we're treating
+ // it as the trailing edge, or we've hit the `maxWait` limit.
+ return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
+ (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
+ }
+
+ function timerExpired() {
+ var time = now();
+ if (shouldInvoke(time)) {
+ return trailingEdge(time);
+ }
+ // Restart the timer.
+ timerId = setTimeout(timerExpired, remainingWait(time));
+ }
+
+ function trailingEdge(time) {
+ timerId = undefined;
+
+ // Only invoke if we have `lastArgs` which means `func` has been
+ // debounced at least once.
+ if (trailing && lastArgs) {
+ return invokeFunc(time);
+ }
+ lastArgs = lastThis = undefined;
+ return result;
+ }
+
+ function cancel() {
+ if (timerId !== undefined) {
+ clearTimeout(timerId);
+ }
+ lastInvokeTime = 0;
+ lastArgs = lastCallTime = lastThis = timerId = undefined;
+ }
+
+ function flush() {
+ return timerId === undefined ? result : trailingEdge(now());
+ }
+
+ function debounced() {
+ var time = now(),
+ isInvoking = shouldInvoke(time);
+
+ lastArgs = arguments;
+ lastThis = this;
+ lastCallTime = time;
+
+ if (isInvoking) {
+ if (timerId === undefined) {
+ return leadingEdge(lastCallTime);
+ }
+ if (maxing) {
+ // Handle invocations in a tight loop.
+ timerId = setTimeout(timerExpired, wait);
+ return invokeFunc(lastCallTime);
+ }
+ }
+ if (timerId === undefined) {
+ timerId = setTimeout(timerExpired, wait);
+ }
+ return result;
+ }
+ debounced.cancel = cancel;
+ debounced.flush = flush;
+ return debounced;
+}
+
+module.exports = debounce;
+
+
+/***/ }),
+/* 652 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var root = __webpack_require__(8);
+
+/**
+ * Gets the timestamp of the number of milliseconds that have elapsed since
+ * the Unix epoch (1 January 1970 00:00:00 UTC).
+ *
+ * @static
+ * @memberOf _
+ * @since 2.4.0
+ * @category Date
+ * @returns {number} Returns the timestamp.
+ * @example
+ *
+ * _.defer(function(stamp) {
+ * console.log(_.now() - stamp);
+ * }, _.now());
+ * // => Logs the number of milliseconds it took for the deferred invocation.
+ */
+var now = function() {
+ return root.Date.now();
+};
+
+module.exports = now;
+
+
+/***/ }),
/* 653 */,
/* 654 */,
/* 655 */
@@ -26192,6 +26699,8 @@ function getMenuItems(event, _ref) {
toggleBlackBox = _ref.toggleBlackBox,
addExpression = _ref.addExpression;
+ var copySourceLabel = L10N.getStr("copySource");
+ var copySourceKey = L10N.getStr("copySource.accesskey");
var copySourceUrlLabel = L10N.getStr("copySourceUrl");
var copySourceUrlKey = L10N.getStr("copySourceUrl.accesskey");
var revealInTreeLabel = L10N.getStr("sourceTabs.revealInTree");
@@ -26202,13 +26711,21 @@ function getMenuItems(event, _ref) {
var toggleBlackBoxLabel = selectedSource.get("isBlackBoxed") ? unblackboxLabel : blackboxLabel;
var copySourceUrl = {
- id: "node-menu-copy-source",
+ id: "node-menu-copy-source-url",
label: copySourceUrlLabel,
accesskey: copySourceUrlKey,
disabled: false,
click: () => (0, _clipboard.copyToTheClipboard)(selectedSource.get("url"))
};
+ var copySource = {
+ id: "node-menu-copy-source",
+ label: copySourceLabel,
+ accesskey: copySourceKey,
+ disabled: false,
+ click: () => (0, _clipboard.copyToTheClipboard)(codeMirror.getSelection())
+ };
+
var _codeMirror$coordsCha = codeMirror.coordsChar({
left: event.clientX,
top: event.clientY
@@ -26260,7 +26777,7 @@ function getMenuItems(event, _ref) {
return [blackBoxMenuItem];
}
- var menuItems = [copySourceUrl, jumpLabel, showSourceMenuItem, blackBoxMenuItem];
+ var menuItems = [copySource, copySourceUrl, jumpLabel, showSourceMenuItem, blackBoxMenuItem];
if (textSelected) {
menuItems.push(watchExpressionLabel);
@@ -26272,241 +26789,7 @@ function getMenuItems(event, _ref) {
exports.default = EditorMenu;
/***/ }),
-/* 657 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.Preview = undefined;
-
-var _react = __webpack_require__(0);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _reactRedux = __webpack_require__(151);
-
-var _redux = __webpack_require__(3);
-
-var _devtoolsConfig = __webpack_require__(828);
-
-var _devtoolsReps = __webpack_require__(924);
-
-var _devtoolsReps2 = _interopRequireDefault(_devtoolsReps);
-
-var _Popover = __webpack_require__(698);
-
-var _Popover2 = _interopRequireDefault(_Popover);
-
-var _previewFunction = __webpack_require__(701);
-
-var _previewFunction2 = _interopRequireDefault(_previewFunction);
-
-var _selectors = __webpack_require__(242);
-
-var _actions = __webpack_require__(244);
-
-var _actions2 = _interopRequireDefault(_actions);
-
-var _editor = __webpack_require__(257);
-
-__webpack_require__(712);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var Rep = _devtoolsReps2.default.REPS.Rep,
- MODE = _devtoolsReps2.default.MODE,
- ObjectInspectorUtils = _devtoolsReps2.default.ObjectInspectorUtils;
-var ObjectInspector = _devtoolsReps2.default.ObjectInspector;
-var getChildren = ObjectInspectorUtils.getChildren;
-class Preview extends _react.Component {
-
- componentDidMount() {
- var _props = this.props,
- loadObjectProperties = _props.loadObjectProperties,
- loadedObjects = _props.loadedObjects,
- value = _props.value,
- editor = _props.editor,
- range = _props.range;
-
-
- this.marker = (0, _editor.markText)(editor, "selection", range);
-
- if (!value || !value.type == "object") {
- return;
- }
-
- if (value.actor && !loadedObjects[value.actor]) {
- loadObjectProperties(value);
- }
- }
-
- componentWillUnmount() {
- if (this.marker) {
- this.marker.clear();
- }
- }
-
- getChildren(root, getObjectProperties) {
- var actors = {};
-
- var children = getChildren({
- getObjectProperties,
- actors,
- item: root
- });
-
- if (children.length > 0) {
- return children;
- }
-
- return [root];
- }
-
- renderFunctionPreview(value, root) {
- var selectSourceURL = this.props.selectSourceURL;
- var location = value.location;
-
-
- return _react2.default.createElement(
- "div",
- {
- className: "preview",
- onClick: () => selectSourceURL(location.url, { line: location.line })
- },
- (0, _previewFunction2.default)(value)
- );
- }
-
- renderObjectPreview(expression, root) {
- return _react2.default.createElement(
- "div",
- { className: "preview" },
- this.renderObjectInspector(root)
- );
- }
-
- renderSimplePreview(value) {
- return _react2.default.createElement(
- "div",
- { className: "preview" },
- Rep({ object: value, mode: MODE.LONG })
- );
- }
-
- renderObjectInspector(root) {
- var _props2 = this.props,
- loadObjectProperties = _props2.loadObjectProperties,
- loadedObjects = _props2.loadedObjects;
-
-
- var getObjectProperties = id => loadedObjects[id];
- var roots = this.getChildren(root, getObjectProperties);
-
- return _react2.default.createElement(ObjectInspector, {
- roots: roots,
- autoExpandDepth: 0,
- disableWrap: true,
- disabledFocus: true,
- getObjectProperties: getObjectProperties,
- loadObjectProperties: loadObjectProperties
- // TODO: See https://github.com/devtools-html/debugger.html/issues/3555.
- , getObjectEntries: actor => {},
- loadObjectEntries: grip => {}
- });
- }
-
- renderAddToExpressionBar(expression) {
- if (!(0, _devtoolsConfig.isEnabled)("previewWatch")) {
- return null;
- }
-
- var addExpression = this.props.addExpression;
-
- return _react2.default.createElement(
- "div",
- { className: "add-to-expression-bar" },
- _react2.default.createElement(
- "div",
- { className: "prompt" },
- "\xBB"
- ),
- _react2.default.createElement(
- "div",
- { className: "expression-to-save-label" },
- expression
- ),
- _react2.default.createElement(
- "div",
- {
- className: "expression-to-save-button",
- onClick: event => addExpression(event)
- },
- L10N.getStr("addWatchExpressionButton")
- )
- );
- }
-
- renderPreview(expression, value) {
- var root = {
- name: expression,
- path: expression,
- contents: { value }
- };
-
- if (value.class === "Function") {
- return this.renderFunctionPreview(value, root);
- }
-
- if (value.type === "object") {
- return _react2.default.createElement(
- "div",
- null,
- this.renderObjectPreview(expression, root),
- this.renderAddToExpressionBar(expression)
- );
- }
-
- return this.renderSimplePreview(value);
- }
-
- getPreviewType(value) {
- if (typeof value == "boolean" || value.type == "null" || value.type == "undefined" || value.class === "Function") {
- return "tooltip";
- }
-
- return "popover";
- }
-
- render() {
- var _props3 = this.props,
- popoverPos = _props3.popoverPos,
- onClose = _props3.onClose,
- value = _props3.value,
- expression = _props3.expression;
-
-
- var type = this.getPreviewType(value);
-
- return _react2.default.createElement(
- _Popover2.default,
- { targetPosition: popoverPos, onMouseLeave: onClose, type: type },
- this.renderPreview(expression, value)
- );
- }
-}
-
-exports.Preview = Preview;
-Preview.displayName = "Preview";
-
-exports.default = (0, _reactRedux.connect)(state => ({
- loadedObjects: (0, _selectors.getLoadedObjects)(state)
-}), dispatch => (0, _redux.bindActionCreators)(_actions2.default, dispatch))(Preview);
-
-/***/ }),
+/* 657 */,
/* 658 */,
/* 659 */,
/* 660 */,
@@ -26538,120 +26821,25 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_677__;
module.exports = __WEBPACK_EXTERNAL_MODULE_678__;
/***/ }),
-/* 679 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 680 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 681 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 682 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 683 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 684 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 685 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 686 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 687 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 688 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 689 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 690 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 691 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 692 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 693 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 694 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 695 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 696 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 697 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
+/* 679 */,
+/* 680 */,
+/* 681 */,
+/* 682 */,
+/* 683 */,
+/* 684 */,
+/* 685 */,
+/* 686 */,
+/* 687 */,
+/* 688 */,
+/* 689 */,
+/* 690 */,
+/* 691 */,
+/* 692 */,
+/* 693 */,
+/* 694 */,
+/* 695 */,
+/* 696 */,
+/* 697 */,
/* 698 */
/***/ (function(module, exports, __webpack_require__) {
@@ -26678,13 +26866,14 @@ var _BracketArrow = __webpack_require__(1029);
var _BracketArrow2 = _interopRequireDefault(_BracketArrow);
-__webpack_require__(710);
+__webpack_require__(880);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class Popover extends _react.Component {
constructor() {
super();
+ this.onMouseLeave = this.onMouseLeave.bind(this);
this.state = {
left: 0,
top: 0
@@ -26779,8 +26968,18 @@ class Popover extends _react.Component {
return _react2.default.createElement(_BracketArrow2.default, arrowProps);
}
- renderPopover() {
+ onMouseLeave(e) {
var onMouseLeave = this.props.onMouseLeave;
+
+
+ if (e.target.className.match(/(bracket-arrow|gap)/)) {
+ return;
+ }
+
+ onMouseLeave();
+ }
+
+ renderPopover() {
var _state = this.state,
top = _state.top,
left = _state.left,
@@ -26794,7 +26993,7 @@ class Popover extends _react.Component {
"div",
{
className: (0, _classnames2.default)("popover", { up: orientation === "up" }),
- onMouseLeave: onMouseLeave,
+ onMouseLeave: this.onMouseLeave,
style: { top, left }
},
arrow,
@@ -26850,124 +27049,18 @@ Popover.displayName = "Popover";
exports.default = Popover;
/***/ }),
-/* 699 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 700 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 701 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _react = __webpack_require__(0);
-
-var _lodash = __webpack_require__(2);
-
-var _frame = __webpack_require__(1014);
-
-__webpack_require__(702);
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-function getFunctionName(func) {
- var name = func.userDisplayName || func.displayName || func.name;
- return (0, _frame.simplifyDisplayName)(name);
-}
-
-function renderFunctionName(func) {
- var name = getFunctionName(func);
- return _react.DOM.span({ className: "function-name" }, name);
-}
-
-function renderParams(func) {
- var _func$parameterNames = func.parameterNames,
- parameterNames = _func$parameterNames === undefined ? [] : _func$parameterNames;
-
- var params = parameterNames.filter(i => i).map(param => _react.DOM.span({ className: "param" }, param));
-
- var commas = (0, _lodash.times)(params.length - 1).map(() => _react.DOM.span({ className: "delimiter" }, ", "));
-
- return (0, _lodash.flatten)((0, _lodash.zip)(params, commas));
-}
-
-function renderParen(paren) {
- return _react.DOM.span({ className: "paren" }, paren);
-}
-
-function previewFunction(func) {
- return _react.DOM.span.apply(_react.DOM, [{ className: "function-signature" }, renderFunctionName(func), renderParen("(")].concat(_toConsumableArray(renderParams(func)), [renderParen(")")]));
-}
-
-exports.default = previewFunction;
-
-/***/ }),
-/* 702 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 703 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 704 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 705 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 706 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 707 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 708 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 709 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 710 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
+/* 699 */,
+/* 700 */,
+/* 701 */,
+/* 702 */,
+/* 703 */,
+/* 704 */,
+/* 705 */,
+/* 706 */,
+/* 707 */,
+/* 708 */,
+/* 709 */,
+/* 710 */,
/* 711 */
/***/ (function(module, exports, __webpack_require__) {
@@ -26981,6 +27074,8 @@ exports.renderConditionalPanel = undefined;
var _react = __webpack_require__(0);
+var _react2 = _interopRequireDefault(_react);
+
var _reactDom = __webpack_require__(4);
var _reactDom2 = _interopRequireDefault(_reactDom);
@@ -26989,7 +27084,7 @@ var _Close = __webpack_require__(378);
var _Close2 = _interopRequireDefault(_Close);
-__webpack_require__(703);
+__webpack_require__(873);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -27021,16 +27116,26 @@ function renderConditionalPanel(_ref) {
}
}
- _reactDom2.default.render(_react.DOM.div({ className: "conditional-breakpoint-panel" }, _react.DOM.div({ className: "prompt" }, "»"), _react.DOM.input({
- defaultValue: condition,
- placeholder: L10N.getStr("editor.conditionalPanel.placeholder"),
- onKeyDown: onKey,
- ref: setInput
- }), (0, _Close2.default)({
- handleClick: closePanel,
- buttonClass: "big",
- tooltip: L10N.getStr("editor.conditionalPanel.close")
- })), panel);
+ _reactDom2.default.render(_react2.default.createElement(
+ "div",
+ { className: "conditional-breakpoint-panel" },
+ _react2.default.createElement(
+ "div",
+ { className: "prompt" },
+ "\xBB"
+ ),
+ _react2.default.createElement("input", {
+ defaultValue: condition,
+ placeholder: L10N.getStr("editor.conditionalPanel.placeholder"),
+ onKeyDown: onKey,
+ ref: setInput
+ }),
+ _react2.default.createElement(_Close2.default, {
+ handleClick: closePanel,
+ buttonClass: "big",
+ tooltip: L10N.getStr("editor.conditionalPanel.close")
+ })
+ ), panel);
return panel;
}
@@ -27038,18 +27143,8 @@ function renderConditionalPanel(_ref) {
exports.renderConditionalPanel = renderConditionalPanel;
/***/ }),
-/* 712 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 713 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
+/* 712 */,
+/* 713 */,
/* 714 */
/***/ (function(module, exports, __webpack_require__) {
@@ -27062,6 +27157,8 @@ Object.defineProperty(exports, "__esModule", {
var _react = __webpack_require__(0);
+var _react2 = _interopRequireDefault(_react);
+
var _devtoolsConfig = __webpack_require__(828);
var _reactDom = __webpack_require__(4);
@@ -27081,7 +27178,7 @@ var _editor = __webpack_require__(257);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var breakpointSvg = document.createElement("div");
-_reactDom2.default.render((0, _Svg2.default)("breakpoint"), breakpointSvg);
+_reactDom2.default.render(_react2.default.createElement(_Svg2.default, { name: "breakpoint" }), breakpointSvg);
function makeMarker(isDisabled) {
var bp = breakpointSvg.cloneNode(true);
@@ -27106,9 +27203,14 @@ class Breakpoint extends _react.Component {
editor = _props.editor,
selectedSource = _props.selectedSource;
+ // Hidden Breakpoints are never rendered on the client
+
+ if (breakpoint.hidden) {
+ return;
+ }
+
// NOTE: we need to wait for the breakpoint to be loaded
// to get the generated location
-
if (!selectedSource || breakpoint.loading) {
return;
}
@@ -27134,7 +27236,7 @@ class Breakpoint extends _react.Component {
breakpoint = _props2.breakpoint,
selectedSource = _props2.selectedSource;
- return editor !== nextProps.editor || breakpoint.disabled !== nextProps.breakpoint.disabled || breakpoint.condition !== nextProps.breakpoint.condition || breakpoint.loading !== nextProps.breakpoint.loading || selectedSource !== nextProps.selectedSource;
+ return editor !== nextProps.editor || breakpoint.disabled !== nextProps.breakpoint.disabled || breakpoint.hidden !== nextProps.breakpoint.hidden || breakpoint.condition !== nextProps.breakpoint.condition || breakpoint.loading !== nextProps.breakpoint.loading || selectedSource !== nextProps.selectedSource;
}
componentDidMount() {
@@ -27251,18 +27353,8 @@ HitMarker.displayName = "HitMarker";
exports.default = HitMarker;
/***/ }),
-/* 716 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 717 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
+/* 716 */,
+/* 717 */,
/* 718 */
/***/ (function(module, exports, __webpack_require__) {
@@ -27275,6 +27367,8 @@ Object.defineProperty(exports, "__esModule", {
var _react = __webpack_require__(0);
+var _react2 = _interopRequireDefault(_react);
+
var _reactRedux = __webpack_require__(151);
var _redux = __webpack_require__(3);
@@ -27297,33 +27391,37 @@ var _Svg2 = _interopRequireDefault(_Svg);
var _prefs = __webpack_require__(226);
-var _Breakpoints2 = __webpack_require__(725);
+var _Breakpoints = __webpack_require__(725);
-var _Breakpoints3 = _interopRequireDefault(_Breakpoints2);
+var _Breakpoints2 = _interopRequireDefault(_Breakpoints);
-var _Expressions2 = __webpack_require__(719);
+var _Expressions = __webpack_require__(719);
-var _Expressions3 = _interopRequireDefault(_Expressions2);
+var _Expressions2 = _interopRequireDefault(_Expressions);
var _devtoolsSplitter = __webpack_require__(910);
var _devtoolsSplitter2 = _interopRequireDefault(_devtoolsSplitter);
-var _Frames2 = __webpack_require__(1012);
+var _Frames = __webpack_require__(1012);
-var _Frames3 = _interopRequireDefault(_Frames2);
+var _Frames2 = _interopRequireDefault(_Frames);
-var _EventListeners2 = __webpack_require__(736);
+var _EventListeners = __webpack_require__(736);
-var _EventListeners3 = _interopRequireDefault(_EventListeners2);
+var _EventListeners2 = _interopRequireDefault(_EventListeners);
-var _Accordion2 = __webpack_require__(739);
+var _Workers = __webpack_require__(1147);
-var _Accordion3 = _interopRequireDefault(_Accordion2);
+var _Workers2 = _interopRequireDefault(_Workers);
-var _CommandBar2 = __webpack_require__(742);
+var _Accordion = __webpack_require__(739);
-var _CommandBar3 = _interopRequireDefault(_CommandBar2);
+var _Accordion2 = _interopRequireDefault(_Accordion);
+
+var _CommandBar = __webpack_require__(742);
+
+var _CommandBar2 = _interopRequireDefault(_CommandBar);
var _ChromeScopes = __webpack_require__(728);
@@ -27333,32 +27431,27 @@ var _Scopes2 = __webpack_require__(731);
var _Scopes3 = _interopRequireDefault(_Scopes2);
-__webpack_require__(730);
+__webpack_require__(921);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-var Breakpoints = (0, _react.createFactory)(_Breakpoints3.default);
-
-var Expressions = (0, _react.createFactory)(_Expressions3.default);
-
-var SplitBox = (0, _react.createFactory)(_devtoolsSplitter2.default);
-
-var Frames = (0, _react.createFactory)(_Frames3.default);
-
-var EventListeners = (0, _react.createFactory)(_EventListeners3.default);
-
-var Accordion = (0, _react.createFactory)(_Accordion3.default);
-
-var CommandBar = (0, _react.createFactory)(_CommandBar3.default);
-
-var Scopes = (0, _devtoolsConfig.isEnabled)("chromeScopes") ? (0, _react.createFactory)(_ChromeScopes2.default) : (0, _react.createFactory)(_Scopes3.default);
+var Scopes = (0, _devtoolsConfig.isEnabled)("chromeScopes") ? _ChromeScopes2.default : _Scopes3.default;
function debugBtn(onClick, type, className, tooltip) {
- className = `${type} ${className}`;
- return _react.DOM.button({ onClick, className, key: type, title: tooltip }, (0, _Svg2.default)(type, { title: tooltip, "aria-label": tooltip }));
+ return _react2.default.createElement(
+ "button",
+ {
+ onClick: onClick,
+ className: `${type} ${className}`,
+ key: type,
+ title: tooltip
+ },
+ _react2.default.createElement(_Svg2.default, { name: type, title: tooltip, "aria-label": tooltip })
+ );
}
+debugBtn.displayName = "DebugButton";
class SecondaryPanes extends _react.Component {
renderBreakpointsToggle() {
@@ -27375,7 +27468,7 @@ class SecondaryPanes extends _react.Component {
return null;
}
- return _react.DOM.input({
+ var inputProps = {
type: "checkbox",
"aria-label": breakpointsDisabled ? L10N.getStr("breakpoints.enable") : L10N.getStr("breakpoints.disable"),
className: boxClassName,
@@ -27392,7 +27485,9 @@ class SecondaryPanes extends _react.Component {
}
},
title: breakpointsDisabled ? L10N.getStr("breakpoints.enable") : L10N.getStr("breakpoints.disable")
- });
+ };
+
+ return _react2.default.createElement("input", inputProps);
}
watchExpressionHeaderButtons() {
@@ -27420,7 +27515,7 @@ class SecondaryPanes extends _react.Component {
return {
header: L10N.getStr("watchExpressions.header"),
buttons: this.watchExpressionHeaderButtons(),
- component: Expressions,
+ component: _Expressions2.default,
opened: true
};
}
@@ -27432,11 +27527,11 @@ class SecondaryPanes extends _react.Component {
var items = [{
header: L10N.getStr("breakpoints.header"),
buttons: this.renderBreakpointsToggle(),
- component: Breakpoints,
+ component: _Breakpoints2.default,
opened: true
}, {
header: L10N.getStr("callStack.header"),
- component: Frames,
+ component: _Frames2.default,
opened: _prefs.prefs.callStackVisible,
onToggle: opened => {
_prefs.prefs.callStackVisible = opened;
@@ -27447,7 +27542,14 @@ class SecondaryPanes extends _react.Component {
if ((0, _devtoolsConfig.isEnabled)("eventListeners")) {
items.push({
header: L10N.getStr("eventListenersHeader"),
- component: EventListeners
+ component: _EventListeners2.default
+ });
+ }
+
+ if ((0, _devtoolsConfig.isEnabled)("workers")) {
+ items.push({
+ header: L10N.getStr("workersHeader"),
+ component: _Workers2.default
});
}
@@ -27459,9 +27561,7 @@ class SecondaryPanes extends _react.Component {
}
renderHorizontalLayout() {
- return Accordion({
- items: this.getItems()
- });
+ return _react2.default.createElement(_Accordion2.default, { items: this.getItems() });
}
getEndItems() {
@@ -27483,21 +27583,24 @@ class SecondaryPanes extends _react.Component {
}
renderVerticalLayout() {
- return SplitBox({
+ return _react2.default.createElement(_devtoolsSplitter2.default, {
style: { width: "100vw" },
initialSize: "300px",
minSize: 10,
maxSize: "50%",
splitterSize: 1,
- startPanel: Accordion({ items: this.getStartItems() }),
- endPanel: Accordion({ items: this.getEndItems() })
+ startPanel: _react2.default.createElement(_Accordion2.default, { items: this.getStartItems() }),
+ endPanel: _react2.default.createElement(_Accordion2.default, { items: this.getEndItems() })
});
}
render() {
- return _react.DOM.div({
- className: "secondary-panes secondary-panes--sticky-commandbar"
- }, CommandBar(), this.props.horizontal ? this.renderHorizontalLayout() : this.renderVerticalLayout());
+ return _react2.default.createElement(
+ "div",
+ { className: "secondary-panes secondary-panes--sticky-commandbar" },
+ _react2.default.createElement(_CommandBar2.default, { horizontal: this.props.horizontal }),
+ this.props.horizontal ? this.renderHorizontalLayout() : this.renderVerticalLayout()
+ );
}
}
@@ -27555,7 +27658,7 @@ var _Close2 = _interopRequireDefault(_Close);
var _devtoolsReps = __webpack_require__(924);
-__webpack_require__(721);
+__webpack_require__(908);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -27784,41 +27887,16 @@ Expressions.displayName = "Expressions";
exports.default = (0, _reactRedux.connect)(state => ({
pauseInfo: (0, _selectors.getPause)(state),
- expressions: (0, _selectors.getVisibleExpressions)(state),
+ expressions: (0, _selectors.getExpressions)(state),
loadedObjects: (0, _selectors.getLoadedObjects)(state)
}), dispatch => (0, _redux.bindActionCreators)(_actions2.default, dispatch))(Expressions);
/***/ }),
-/* 720 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 721 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 722 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 723 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 724 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
+/* 720 */,
+/* 721 */,
+/* 722 */,
+/* 723 */,
+/* 724 */,
/* 725 */
/***/ (function(module, exports, __webpack_require__) {
@@ -27831,6 +27909,8 @@ Object.defineProperty(exports, "__esModule", {
var _react = __webpack_require__(0);
+var _react2 = _interopRequireDefault(_react);
+
var _immutable = __webpack_require__(146);
var I = _interopRequireWildcard(_immutable);
@@ -27865,14 +27945,14 @@ var _Close = __webpack_require__(378);
var _Close2 = _interopRequireDefault(_Close);
-__webpack_require__(720);
+__webpack_require__(907);
var _lodash = __webpack_require__(2);
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
function isCurrentlyPausedAtBreakpoint(pause, breakpoint) {
if (!pause || pause.isInterrupted) {
return false;
@@ -27889,8 +27969,17 @@ function renderSourceLocation(source, line, column) {
var columnVal = (0, _devtoolsConfig.isEnabled)("columnBreakpoints") && column ? `:${column}` : "";
var bpLocation = isWasm ? `0x${line.toString(16).toUpperCase()}` : `${line}${columnVal}`;
- return filename ? _react.DOM.div({ className: "location" }, `${(0, _utils.endTruncateStr)(filename, 30)}: ${bpLocation}`) : null;
+ if (!filename) {
+ return null;
+ }
+
+ return _react2.default.createElement(
+ "div",
+ { className: "location" },
+ `${(0, _utils.endTruncateStr)(filename, 30)}: ${bpLocation}`
+ );
}
+renderSourceLocation.displayName = "SourceLocation";
class Breakpoints extends _react.PureComponent {
@@ -28058,37 +28147,67 @@ class Breakpoints extends _react.PureComponent {
var isCurrentlyPaused = breakpoint.isCurrentlyPaused;
var isDisabled = breakpoint.disabled;
var isConditional = !!breakpoint.condition;
+ var isHidden = breakpoint.hidden;
- return _react.DOM.div({
- className: (0, _classnames2.default)({
- breakpoint,
- paused: isCurrentlyPaused,
- disabled: isDisabled,
- "is-conditional": isConditional
+ if (isHidden) {
+ return;
+ }
+
+ return _react2.default.createElement(
+ "div",
+ {
+ className: (0, _classnames2.default)({
+ breakpoint,
+ paused: isCurrentlyPaused,
+ disabled: isDisabled,
+ "is-conditional": isConditional
+ }),
+ key: locationId,
+ onClick: () => this.selectBreakpoint(breakpoint),
+ onContextMenu: e => this.showContextMenu(e, breakpoint)
+ },
+ _react2.default.createElement("input", {
+ type: "checkbox",
+ className: "breakpoint-checkbox",
+ checked: !isDisabled,
+ onChange: () => this.handleCheckbox(breakpoint),
+ onClick: ev => ev.stopPropagation()
}),
- key: locationId,
- onClick: () => this.selectBreakpoint(breakpoint),
- onContextMenu: e => this.showContextMenu(e, breakpoint)
- }, _react.DOM.input({
- type: "checkbox",
- className: "breakpoint-checkbox",
- checked: !isDisabled,
- onChange: () => this.handleCheckbox(breakpoint),
- // Prevent clicking on the checkbox from triggering the onClick of
- // the surrounding div
- onClick: ev => ev.stopPropagation()
- }), _react.DOM.div({ className: "breakpoint-label", title: breakpoint.text }, _react.DOM.div({}, renderSourceLocation(breakpoint.location.source, line, column))), _react.DOM.div({ className: "breakpoint-snippet" }, snippet), (0, _Close2.default)({
- handleClick: ev => this.removeBreakpoint(ev, breakpoint),
- tooltip: L10N.getStr("breakpoints.removeBreakpointTooltip")
- }));
+ _react2.default.createElement(
+ "div",
+ { className: "breakpoint-label", title: breakpoint.text },
+ _react2.default.createElement(
+ "div",
+ null,
+ renderSourceLocation(breakpoint.location.source, line, column)
+ )
+ ),
+ _react2.default.createElement(
+ "div",
+ { className: "breakpoint-snippet" },
+ snippet
+ ),
+ _react2.default.createElement(_Close2.default, {
+ handleClick: ev => this.removeBreakpoint(ev, breakpoint),
+ tooltip: L10N.getStr("breakpoints.removeBreakpointTooltip")
+ })
+ );
}
render() {
var breakpoints = this.props.breakpoints;
- return _react.DOM.div({ className: "pane breakpoints-list" }, breakpoints.size === 0 ? _react.DOM.div({ className: "pane-info" }, L10N.getStr("breakpoints.none")) : breakpoints.valueSeq().map(bp => {
- return this.renderBreakpoint(bp);
- }));
+ var children = breakpoints.size === 0 ? _react2.default.createElement(
+ "div",
+ { className: "pane-info" },
+ L10N.getStr("breakpoints.none")
+ ) : breakpoints.valueSeq().map(bp => this.renderBreakpoint(bp));
+
+ return _react2.default.createElement(
+ "div",
+ { className: "pane breakpoints-list" },
+ children
+ );
}
}
@@ -28114,18 +28233,8 @@ var _getBreakpoints = (0, _reselect.createSelector)(_selectors.getBreakpoints, _
exports.default = (0, _reactRedux.connect)((state, props) => ({ breakpoints: _getBreakpoints(state) }), dispatch => (0, _redux.bindActionCreators)(_actions2.default, dispatch))(Breakpoints);
/***/ }),
-/* 726 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 727 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
+/* 726 */,
+/* 727 */,
/* 728 */
/***/ (function(module, exports, __webpack_require__) {
@@ -28160,20 +28269,14 @@ var _Svg = __webpack_require__(344);
var _Svg2 = _interopRequireDefault(_Svg);
-__webpack_require__(679);
+var _ManagedTree = __webpack_require__(419);
-var _ManagedTree2 = __webpack_require__(419);
+var _ManagedTree2 = _interopRequireDefault(_ManagedTree);
-var _ManagedTree3 = _interopRequireDefault(_ManagedTree2);
+__webpack_require__(850);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var ManagedTree = (0, _react.createFactory)(_ManagedTree3.default);
-
-function info(text) {
- return _react.DOM.div({ className: "pane-info" }, text);
-}
-
// check to see if its an object with propertie
function nodeHasProperties(item) {
return !nodeHasChildren(item) && item.contents.value.type === "object";
@@ -28238,23 +28341,43 @@ class Scopes extends _react.Component {
var notEnumberable = false;
var objectValue = "";
- return _react.DOM.div({
- className: (0, _classnames2.default)("node object-node", {
- focused: false,
- "not-enumerable": notEnumberable
+ return React.createElement(
+ "div",
+ {
+ className: (0, _classnames2.default)("node object-node", {
+ focused: false,
+ "not-enumerable": notEnumberable
+ }),
+ style: { marginLeft: depth * 15 },
+ key: item.path,
+ onClick: e => {
+ e.stopPropagation();
+ setExpanded(item, !expanded);
+ }
+ },
+ React.createElement(_Svg2.default, {
+ name: "arrow",
+ className: (0, _classnames2.default)({
+ expanded,
+ hidden: nodeIsPrimitive(item)
+ })
}),
- style: { marginLeft: depth * 15 },
- key: item.path,
- onClick: e => {
- e.stopPropagation();
- setExpanded(item, !expanded);
- }
- }, (0, _Svg2.default)("arrow", {
- className: (0, _classnames2.default)({
- expanded: expanded,
- hidden: nodeIsPrimitive(item)
- })
- }), _react.DOM.span({ className: "object-label" }, item.name), _react.DOM.span({ className: "object-delimiter" }, objectValue ? ": " : ""), _react.DOM.span({ className: "object-value" }, objectValue || ""));
+ React.createElement(
+ "span",
+ { className: "object-label" },
+ item.name
+ ),
+ React.createElement(
+ "span",
+ { className: "object-delimiter" },
+ objectValue ? ": " : ""
+ ),
+ React.createElement(
+ "span",
+ { className: "object-value" },
+ objectValue || ""
+ )
+ );
}
getObjectProperties(item) {
@@ -28319,24 +28442,36 @@ class Scopes extends _react.Component {
if (!pauseInfo) {
- return _react.DOM.div({ className: "pane scopes-list" }, info(L10N.getStr("scopes.notPaused")));
+ return React.createElement(
+ "div",
+ { className: (0, _classnames2.default)("pane", "scopes-list") },
+ React.createElement(
+ "div",
+ { className: "pane-info" },
+ L10N.getStr("scopes.notPaused")
+ )
+ );
}
var roots = this.getRoots();
- return _react.DOM.div({ className: "pane scopes-list" }, ManagedTree({
- itemHeight: 20,
- getParent: item => null,
- getChildren: this.getChildren,
- getRoots: () => roots,
- getPath: item => item.path,
- autoExpand: 0,
- autoExpandDepth: 1,
- autoExpandAll: false,
- disabledFocus: true,
- onExpand: this.onExpand,
- renderItem: this.renderItem
- }));
+ return React.createElement(
+ "div",
+ { className: (0, _classnames2.default)("pane", "scopes-list") },
+ React.createElement(_ManagedTree2.default, {
+ itemHeight: 20,
+ getParent: item => null,
+ getChildren: this.getChildren,
+ getRoots: () => roots,
+ getPath: item => item.path,
+ autoExpand: 0,
+ autoExpandDepth: 1,
+ autoExpandAll: false,
+ disabledFocus: true,
+ onExpand: this.onExpand,
+ renderItem: this.renderItem
+ })
+ );
}
}
@@ -28356,18 +28491,8 @@ exports.default = (0, _reactRedux.connect)(state => ({
}), dispatch => (0, _redux.bindActionCreators)(_actions2.default, dispatch))(Scopes);
/***/ }),
-/* 729 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 730 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
+/* 729 */,
+/* 730 */,
/* 731 */
/***/ (function(module, exports, __webpack_require__) {
@@ -28396,7 +28521,7 @@ var _scopes = __webpack_require__(732);
var _devtoolsReps = __webpack_require__(924);
-__webpack_require__(679);
+__webpack_require__(850);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -28640,24 +28765,9 @@ function getScopes(pauseInfo, selectedFrame, selectedScope) {
}
/***/ }),
-/* 733 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 734 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 735 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
+/* 733 */,
+/* 734 */,
+/* 735 */,
/* 736 */
/***/ (function(module, exports, __webpack_require__) {
@@ -28686,7 +28796,7 @@ var _Close = __webpack_require__(378);
var _Close2 = _interopRequireDefault(_Close);
-__webpack_require__(726);
+__webpack_require__(915);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -28784,18 +28894,8 @@ exports.default = (0, _reactRedux.connect)(state => {
}, dispatch => (0, _redux.bindActionCreators)(_actions2.default, dispatch))(EventListeners);
/***/ }),
-/* 737 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
-/* 738 */
-/***/ (function(module, exports) {
-
-// removed by extract-text-webpack-plugin
-
-/***/ }),
+/* 737 */,
+/* 738 */,
/* 739 */
/***/ (function(module, exports, __webpack_require__) {
@@ -28814,7 +28914,7 @@ var _Svg = __webpack_require__(344);
var _Svg2 = _interopRequireDefault(_Svg);
-__webpack_require__(727);
+__webpack_require__(917);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -28877,7 +28977,7 @@ class Accordion extends _react.Component {
_react2.default.createElement(
"div",
{ className: "_header", onClick: () => this.handleHeaderClick(i) },
- (0, _Svg2.default)("arrow", { className: opened[i] ? "expanded" : "" }),
+ _react2.default.createElement(_Svg2.default, { name: "arrow", className: opened[i] ? "expanded" : "" }),
item.header,
item.buttons ? _react2.default.createElement(
"div",
@@ -28948,7 +29048,7 @@ var _actions = __webpack_require__(244);
var _actions2 = _interopRequireDefault(_actions);
-__webpack_require__(729);
+__webpack_require__(918);
var _devtoolsModules = __webpack_require__(830);
@@ -29018,7 +29118,7 @@ function debugBtn(onClick, type, className, tooltip) {
return _react2.default.createElement(
"button",
_extends({ className: (0, _classnames2.default)(type, className) }, props),
- (0, _Svg2.default)(type)
+ _react2.default.createElement(_Svg2.default, { name: type })
);
}
@@ -29106,7 +29206,11 @@ class CommandBar extends _react.Component {
render() {
return _react2.default.createElement(
"div",
- { className: "command-bar" },
+ {
+ className: (0, _classnames2.default)("command-bar", {
+ vertical: !this.props.horizontal
+ })
+ },
this.renderPauseButton(),
this.renderStepButtons(),
this.renderPauseOnExceptions()
@@ -29164,10 +29268,13 @@ var _PaneToggle = __webpack_require__(428);
var _PaneToggle2 = _interopRequireDefault(_PaneToggle);
-__webpack_require__(733);
+__webpack_require__(922);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _require = __webpack_require__(828),
+ isEnabled = _require.isEnabled;
+
class WelcomeBox extends _react.Component {
renderToggleButton() {
@@ -29189,13 +29296,45 @@ class WelcomeBox extends _react.Component {
}
render() {
- var searchLabel = L10N.getFormatStr("welcome.search", (0, _text.formatKeyShortcut)(L10N.getStr("sources.search.key2")));
+ var keyCombinationOne = (0, _text.formatKeyShortcut)(L10N.getStr("sources.search.key2"));
+
+ var keyCombinationTwo = (0, _text.formatKeyShortcut)(L10N.getStr("projectTextSearch.key"));
+
+ var searchSourcesLabel = L10N.getStr("welcome.search").substring(2);
+ var searchProjectLabel = L10N.getStr("welcome.findInFiles").substring(2);
+
+ var searchProjectLabelComp = _react2.default.createElement(
+ "div",
+ null,
+ _react2.default.createElement(
+ "b",
+ null,
+ keyCombinationTwo
+ ),
+ searchProjectLabel
+ );
+
+ var searchSourcesLabelComp = _react2.default.createElement(
+ "div",
+ null,
+ _react2.default.createElement(
+ "b",
+ null,
+ keyCombinationOne
+ ),
+ searchSourcesLabel
+ );
return _react2.default.createElement(
"div",
{ className: "welcomebox" },
- searchLabel,
- this.renderToggleButton()
+ _react2.default.createElement(
+ "div",
+ { className: "alignlabel" },
+ searchSourcesLabelComp,
+ isEnabled("searchNav") ? searchProjectLabelComp : null,
+ this.renderToggleButton()
+ )
);
}
}
@@ -29259,7 +29398,7 @@ var _lodash = __webpack_require__(2);
var _text = __webpack_require__(389);
-__webpack_require__(734);
+__webpack_require__(923);
var _PaneToggle = __webpack_require__(428);
@@ -29644,7 +29783,7 @@ class SourceTabs extends _react.PureComponent {
onClick: onButtonClick,
title: newTabTooltip
},
- (0, _Svg2.default)("plus")
+ _react2.default.createElement(_Svg2.default, { name: "plus" })
);
}
@@ -29688,10 +29827,10 @@ class SourceTabs extends _react.PureComponent {
var sourceObj = source.toJS();
if ((0, _source.isPretty)(sourceObj)) {
- return (0, _Svg2.default)("prettyPrint");
+ return _react2.default.createElement(_Svg2.default, { name: "prettyPrint" });
}
if (sourceObj.isBlackBoxed) {
- return (0, _Svg2.default)("blackBox");
+ return _react2.default.createElement(_Svg2.default, { name: "blackBox" });
}
}
@@ -29735,7 +29874,7 @@ var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
-__webpack_require__(735);
+__webpack_require__(935);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -29964,20 +30103,600 @@ function sortTree(tree) {
/***/ }),
/* 795 */,
/* 796 */,
-/* 797 */,
-/* 798 */,
+/* 797 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.getGeneratedLocation = undefined;
+
+var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
+
+var getGeneratedLocation = exports.getGeneratedLocation = (() => {
+ var _ref = _asyncToGenerator(function* (state, source, location, sourceMaps) {
+ if (!sourceMaps.isOriginalId(location.sourceId)) {
+ return location;
+ }
+
+ var generatedLocation = yield sourceMaps.getGeneratedLocation(location, source);
+ var generatedSource = (0, _selectors.getSource)(state, generatedLocation.sourceId);
+ var sourceUrl = generatedSource.get("url");
+ return _extends({}, generatedLocation, { sourceUrl });
+ });
+
+ return function getGeneratedLocation(_x, _x2, _x3, _x4) {
+ return _ref.apply(this, arguments);
+ };
+})();
+
+var _selectors = __webpack_require__(242);
+
+function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
+
+/***/ }),
+/* 798 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _react = __webpack_require__(0);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _lodash = __webpack_require__(2);
+
+var _frame = __webpack_require__(1014);
+
+__webpack_require__(872);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function getFunctionName(func) {
+ var name = func.userDisplayName || func.displayName || func.name;
+ return (0, _frame.simplifyDisplayName)(name);
+}
+
+class PreviewFunction extends _react.Component {
+ renderFunctionName(func) {
+ var name = getFunctionName(func);
+ return _react2.default.createElement(
+ "span",
+ { className: "function-name" },
+ name
+ );
+ }
+
+ renderParams(func) {
+ var _func$parameterNames = func.parameterNames,
+ parameterNames = _func$parameterNames === undefined ? [] : _func$parameterNames;
+
+ var params = parameterNames.filter(i => i).map(param => _react2.default.createElement(
+ "span",
+ { className: "param", key: param },
+ param
+ ));
+
+ var commas = (0, _lodash.times)(params.length - 1).map((_, i) => _react2.default.createElement(
+ "span",
+ { className: "delimiter", key: i },
+ ", "
+ ));
+
+ return (0, _lodash.flatten)((0, _lodash.zip)(params, commas));
+ }
+
+ render() {
+ return _react2.default.createElement(
+ "span",
+ { className: "function-signature" },
+ this.renderFunctionName(this.props.func),
+ _react2.default.createElement(
+ "span",
+ { className: "paren" },
+ "("
+ ),
+ this.renderParams(this.props.func),
+ _react2.default.createElement(
+ "span",
+ { className: "paren" },
+ ")"
+ )
+ );
+ }
+}
+
+exports.default = PreviewFunction;
+PreviewFunction.displayName = "PreviewFunction";
+
+/***/ }),
/* 799 */,
/* 800 */,
/* 801 */,
/* 802 */,
/* 803 */,
-/* 804 */,
-/* 805 */,
-/* 806 */,
+/* 804 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.findScopeByName = exports.getASTLocation = undefined;
+
+var getASTLocation = exports.getASTLocation = (() => {
+ var _ref = _asyncToGenerator(function* (source, location) {
+ var symbols = yield (0, _parser.getSymbols)(source);
+ var functions = [].concat(_toConsumableArray(symbols.functions), _toConsumableArray(symbols.memberExpressions));
+
+ var scope = findClosestScope(functions, location);
+ if (scope) {
+ var line = location.line - scope.location.start.line;
+ var column = location.column;
+ return { name: scope.name, offset: { line, column } };
+ }
+ return { name: undefined, offset: location };
+ });
+
+ return function getASTLocation(_x, _x2) {
+ return _ref.apply(this, arguments);
+ };
+})();
+
+var findScopeByName = exports.findScopeByName = (() => {
+ var _ref2 = _asyncToGenerator(function* (source, name) {
+ var symbols = yield (0, _parser.getSymbols)(source);
+ var functions = symbols.functions;
+
+ return functions.find(function (node) {
+ return node.name === name;
+ });
+ });
+
+ return function findScopeByName(_x3, _x4) {
+ return _ref2.apply(this, arguments);
+ };
+})();
+
+var _parser = __webpack_require__(827);
+
+var _contains = __webpack_require__(1127);
+
+function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+
+function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
+
+function findClosestScope(functions, location) {
+ return functions.reduce((found, currNode) => {
+ if (currNode.name === "anonymous" || !(0, _contains.containsPosition)(currNode.location, location)) {
+ return found;
+ }
+
+ if (!found) {
+ return currNode;
+ }
+
+ if (found.location.start.line > currNode.location.start.line || found.location.start.column > currNode.location.start.column) {
+ return found;
+ }
+
+ return currNode;
+ }, null);
+}
+
+/***/ }),
+/* 805 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = isSelectedFrameVisible;
+
+var _pause = __webpack_require__(239);
+
+var _sources = __webpack_require__(232);
+
+/*
+ * Checks to if the selected frame's source is currently
+ * selected.
+ */
+function isSelectedFrameVisible(state) {
+ var selectedLocation = (0, _sources.getSelectedLocation)(state);
+ var selectedFrame = (0, _pause.getSelectedFrame)(state);
+
+ return selectedFrame && selectedLocation && selectedFrame.location.sourceId == selectedLocation.sourceId;
+}
+
+/***/ }),
+/* 806 */
+/***/ (function(module, exports) {
+
+module.exports = ""
+
+/***/ }),
/* 807 */,
/* 808 */,
-/* 809 */,
-/* 810 */,
+/* 809 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _react = __webpack_require__(0);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _redux = __webpack_require__(3);
+
+var _reactRedux = __webpack_require__(151);
+
+var _debounce = __webpack_require__(651);
+
+var _debounce2 = _interopRequireDefault(_debounce);
+
+var _Popup = __webpack_require__(810);
+
+var _Popup2 = _interopRequireDefault(_Popup);
+
+var _selectors = __webpack_require__(242);
+
+var _actions = __webpack_require__(244);
+
+var _actions2 = _interopRequireDefault(_actions);
+
+var _editor = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+class Preview extends _react.PureComponent {
+
+ constructor() {
+ super();
+
+ var self = this;
+ self.onScroll = this.onScroll.bind(this);
+ self.onMouseOver = (0, _debounce2.default)(this.onMouseOver, 40);
+ }
+
+ componentDidMount() {
+ var codeMirror = this.props.editor.codeMirror;
+
+ var codeMirrorWrapper = codeMirror.getWrapperElement();
+
+ codeMirror.on("scroll", this.onScroll);
+ codeMirrorWrapper.addEventListener("mouseover", e => this.onMouseOver(e));
+ codeMirrorWrapper.addEventListener("mouseup", e => this.onMouseUp(e));
+ codeMirrorWrapper.addEventListener("mousedown", e => this.onMouseDown(e));
+ }
+
+ onMouseOver(e) {
+ var target = e.target;
+
+ if (this.props.selectedFrameVisible) {
+ (0, _editor.updatePreview)(target, this.props.editor, this.props);
+ }
+ }
+
+ onMouseUp() {
+ this.currentlySelecting = false;
+ }
+
+ onMouseDown() {
+ this.currentlySelecting = true;
+ }
+
+ onScroll() {
+ this.props.clearPreview();
+ }
+
+ onClose(e) {
+ this.props.clearPreview();
+ }
+
+ render() {
+ var _props = this.props,
+ selectedSource = _props.selectedSource,
+ preview = _props.preview;
+
+
+ if (!this.props.editor || !selectedSource || this.currentlySelecting) {
+ return null;
+ }
+
+ if (!preview || preview.updating) {
+ return null;
+ }
+
+ var result = preview.result,
+ expression = preview.expression,
+ location = preview.location,
+ cursorPos = preview.cursorPos;
+
+ var value = result;
+ if (typeof value == "undefined" || value.optimizedOut) {
+ return null;
+ }
+
+ var editorRange = (0, _editor.toEditorRange)(selectedSource.get("id"), location);
+
+ return _react2.default.createElement(_Popup2.default, {
+ value: value,
+ editor: this.props.editor,
+ range: editorRange,
+ expression: expression,
+ popoverPos: cursorPos,
+ onClose: e => this.onClose(e)
+ });
+ }
+}
+
+Preview.displayName = "Preview";
+
+exports.default = (0, _reactRedux.connect)(state => ({
+ preview: (0, _selectors.getPreview)(state),
+ selectedSource: (0, _selectors.getSelectedSource)(state),
+ linesInScope: (0, _selectors.getInScopeLines)(state),
+ selectedFrameVisible: (0, _selectors.isSelectedFrameVisible)(state)
+}), dispatch => (0, _redux.bindActionCreators)(_actions2.default, dispatch))(Preview);
+
+/***/ }),
+/* 810 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.Popup = undefined;
+
+var _react = __webpack_require__(0);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _reactRedux = __webpack_require__(151);
+
+var _redux = __webpack_require__(3);
+
+var _devtoolsConfig = __webpack_require__(828);
+
+var _devtoolsReps = __webpack_require__(924);
+
+var _devtoolsReps2 = _interopRequireDefault(_devtoolsReps);
+
+var _actions = __webpack_require__(244);
+
+var _actions2 = _interopRequireDefault(_actions);
+
+var _selectors = __webpack_require__(242);
+
+var _Popover = __webpack_require__(698);
+
+var _Popover2 = _interopRequireDefault(_Popover);
+
+var _PreviewFunction = __webpack_require__(798);
+
+var _PreviewFunction2 = _interopRequireDefault(_PreviewFunction);
+
+var _editor = __webpack_require__(257);
+
+__webpack_require__(881);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var Rep = _devtoolsReps2.default.REPS.Rep,
+ MODE = _devtoolsReps2.default.MODE,
+ ObjectInspectorUtils = _devtoolsReps2.default.ObjectInspectorUtils;
+var ObjectInspector = _devtoolsReps2.default.ObjectInspector;
+var getChildren = ObjectInspectorUtils.getChildren;
+class Popup extends _react.Component {
+
+ componentDidMount() {
+ var _props = this.props,
+ loadObjectProperties = _props.loadObjectProperties,
+ loadedObjects = _props.loadedObjects,
+ value = _props.value,
+ editor = _props.editor,
+ range = _props.range;
+
+
+ this.marker = (0, _editor.markText)(editor, "preview-selection", range);
+
+ if (!value || !value.type == "object") {
+ return;
+ }
+
+ if (value.actor && !loadedObjects[value.actor]) {
+ loadObjectProperties(value);
+ }
+ }
+
+ componentWillUnmount() {
+ if (this.marker) {
+ this.marker.clear();
+ }
+ }
+
+ getChildren(root, getObjectProperties) {
+ var actors = {};
+
+ var children = getChildren({
+ getObjectProperties,
+ actors,
+ item: root
+ });
+
+ if (children.length > 0) {
+ return children;
+ }
+
+ return null;
+ }
+
+ renderFunctionPreview(value, root) {
+ var selectSourceURL = this.props.selectSourceURL;
+ var location = value.location;
+
+
+ return _react2.default.createElement(
+ "div",
+ {
+ className: "preview-popup",
+ onClick: () => selectSourceURL(location.url, { line: location.line })
+ },
+ _react2.default.createElement(_PreviewFunction2.default, { func: value })
+ );
+ }
+
+ renderObjectPreview(expression, root) {
+ return _react2.default.createElement(
+ "div",
+ { className: "preview-popup" },
+ this.renderObjectInspector(root)
+ );
+ }
+
+ renderSimplePreview(value) {
+ return _react2.default.createElement(
+ "div",
+ { className: "preview-popup" },
+ Rep({ object: value, mode: MODE.LONG })
+ );
+ }
+
+ renderObjectInspector(root) {
+ var _props2 = this.props,
+ loadObjectProperties = _props2.loadObjectProperties,
+ loadedObjects = _props2.loadedObjects;
+
+
+ var getObjectProperties = id => loadedObjects[id];
+ var roots = this.getChildren(root, getObjectProperties);
+
+ if (!roots) {
+ return null;
+ }
+
+ return _react2.default.createElement(ObjectInspector, {
+ roots: roots,
+ autoExpandDepth: 0,
+ disableWrap: true,
+ disabledFocus: true,
+ getObjectProperties: getObjectProperties,
+ loadObjectProperties: loadObjectProperties
+ // TODO: See https://github.com/devtools-html/debugger.html/issues/3555.
+ , getObjectEntries: actor => {},
+ loadObjectEntries: grip => {}
+ });
+ }
+
+ renderAddToExpressionBar(expression) {
+ if (!(0, _devtoolsConfig.isEnabled)("previewWatch")) {
+ return null;
+ }
+
+ var addExpression = this.props.addExpression;
+
+ return _react2.default.createElement(
+ "div",
+ { className: "add-to-expression-bar" },
+ _react2.default.createElement(
+ "div",
+ { className: "prompt" },
+ "\xBB"
+ ),
+ _react2.default.createElement(
+ "div",
+ { className: "expression-to-save-label" },
+ expression
+ ),
+ _react2.default.createElement(
+ "div",
+ {
+ className: "expression-to-save-button",
+ onClick: event => addExpression(event)
+ },
+ L10N.getStr("addWatchExpressionButton")
+ )
+ );
+ }
+
+ renderPreview(expression, value) {
+ var root = {
+ name: expression,
+ path: expression,
+ contents: { value }
+ };
+
+ if (value.class === "Function") {
+ return this.renderFunctionPreview(value, root);
+ }
+
+ if (value.type === "object") {
+ return _react2.default.createElement(
+ "div",
+ null,
+ this.renderObjectPreview(expression, root),
+ this.renderAddToExpressionBar(expression)
+ );
+ }
+
+ return this.renderSimplePreview(value);
+ }
+
+ getPreviewType(value) {
+ if (typeof value == "boolean" || value.type == "null" || value.type == "undefined" || value.class === "Function") {
+ return "tooltip";
+ }
+
+ return "popover";
+ }
+
+ render() {
+ var _props3 = this.props,
+ popoverPos = _props3.popoverPos,
+ onClose = _props3.onClose,
+ value = _props3.value,
+ expression = _props3.expression;
+
+
+ var type = this.getPreviewType(value);
+
+ return _react2.default.createElement(
+ _Popover2.default,
+ { targetPosition: popoverPos, onMouseLeave: onClose, type: type },
+ this.renderPreview(expression, value)
+ );
+ }
+}
+
+exports.Popup = Popup;
+Popup.displayName = "Popup";
+
+exports.default = (0, _reactRedux.connect)(state => ({
+ loadedObjects: (0, _selectors.getLoadedObjects)(state)
+}), dispatch => (0, _redux.bindActionCreators)(_actions2.default, dispatch))(Popup);
+
+/***/ }),
/* 811 */,
/* 812 */,
/* 813 */,
@@ -30003,7 +30722,7 @@ function sortTree(tree) {
Object.defineProperty(exports, "__esModule", {
value: true
});
-exports.clearSymbols = exports.getOutOfScopeLocations = exports.getVariablesInScope = exports.getSymbols = exports.getClosestExpression = exports.stopParserWorker = exports.startParserWorker = undefined;
+exports.getEmptyLines = exports.getNextStep = exports.clearSymbols = exports.getOutOfScopeLocations = exports.getVariablesInScope = exports.getSymbols = exports.getClosestExpression = exports.stopParserWorker = exports.startParserWorker = undefined;
var _devtoolsUtils = __webpack_require__(900);
@@ -30019,6 +30738,8 @@ var getSymbols = exports.getSymbols = dispatcher.task("getSymbols");
var getVariablesInScope = exports.getVariablesInScope = dispatcher.task("getVariablesInScope");
var getOutOfScopeLocations = exports.getOutOfScopeLocations = dispatcher.task("getOutOfScopeLocations");
var clearSymbols = exports.clearSymbols = dispatcher.task("clearSymbols");
+var getNextStep = exports.getNextStep = dispatcher.task("getNextStep");
+var getEmptyLines = exports.getEmptyLines = dispatcher.task("getEmptyLines");
/***/ }),
/* 828 */
@@ -30184,39 +30905,204 @@ module.exports = {
/* 847 */,
/* 848 */,
/* 849 */,
-/* 850 */,
-/* 851 */,
-/* 852 */,
-/* 853 */,
-/* 854 */,
-/* 855 */,
-/* 856 */,
-/* 857 */,
-/* 858 */,
-/* 859 */,
-/* 860 */,
-/* 861 */,
-/* 862 */,
-/* 863 */,
-/* 864 */,
-/* 865 */,
-/* 866 */,
-/* 867 */,
-/* 868 */,
-/* 869 */,
-/* 870 */,
-/* 871 */,
-/* 872 */,
-/* 873 */,
-/* 874 */,
-/* 875 */,
-/* 876 */,
-/* 877 */,
-/* 878 */,
-/* 879 */,
-/* 880 */,
-/* 881 */,
-/* 882 */,
+/* 850 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 851 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 852 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 853 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 854 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 855 */
+/***/ (function(module, exports) {
+
+module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF4AAABqCAMAAAAC5xbnAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAFZaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkzCJ1kAAAMAUExURUxpcf/fQOF4Wf6qob2GSbyGTP61q++hVlpCNO+ATLuESaZzPYdWLZ1uN/KOQywvJ/OGDfeTGWRSMlpFNvqrQ/yNkPipLfeTGviRGyobJAYCC5BgL/y2MKJrRg0gKH5ULfSTIWhnYyIeJv5/g7K1tfiSGviWIIZgPP+jn6KnqJxqNvmWH/qdTJNkM/6GjPmdKX5JIKiIafeVHTcuLK9uHvTn0/iUH5NiKQUbM/eTH0ExL/6hmv/TStTCqvidK/6Oi/uTkOnZv/mgNLaHbZppFu6ooPeMGYJVJOzbu5pqOap2RY+WnZaOgv+cmahkY/LjzvaEE+vew/2blzs+Ov6enQohIsVvb/+QkP6Bg4+YntB4de7Ru7yfg6KEaf+movj07s7Husx9atqYPJVKKLqESf/47v22GuJOM/3LLf/////ZY//37fyzGP3y4v2rFv3JLP3z5fuiEt9HM/3CKAAAAN1BL//+9f7NLtk7KP726NY0ILB4P/7XYvukH95HLf/88v65Gvy6J/7IKPPizLZ7QPqPEPru3N1AJ7+ITP+vprqAQ+p5IPiZGbV/Rfz8/PyzJv+lmP7VOfitIvqzT/zozeTMtf/RLvycCcSKTP29Hv/ocf/Btv3LOOdpHQQaI/7RY+JcJaltNP66r/3AM6OEMPCMH+nq6/Lz9JpiLzk3M/nYxE40H7WTMcgvHk9AMsLEwyQsL/u8ANrEqurWwJp2Jtrc3WRNR//76fzPsmJHI+FZHvfo1+WiHf3BV/p4dHVdMwABKfDALbV6Kt9PJ91+YHY/L6OVhJksJyIdGcUjB4VrMLd9OMqiL7EqIEJAP/3LXtu5maAFBP7OQ/yWj5GXl7w7K8GLHH1RLNyuLXklJ83Q0WYzLs2THIJJC/+PeXp4cIoABOe4LTUlJ//hbMWXYISKivqqA8udeemXhXtaHOiHc9YLAM1AKI+Ec7ideFVgYNs0BrgSAJh3YcRwII1ZGMCsj2QCAteBEXqDgviWNfW4esd1S8e4ofbDnNVeSrxWUew/xBkAAABkdFJOUwD+EP7//v4CAwX8/mb9HhH/MP3+/TT9TdYm/oP90bA4bPtYefztff7J+buL991SyUn+Y9v62T+cfp3S9P5co9TrkLj++vmqnHCp90X+nf3EvKx27ZH14bSWoqznwX6h/sly7fPC0KykAAAQBUlEQVRo3tyYe0xTWR7Hb+nwKKs4IK9UnAED+CIiLMvE9ZH1Oc64Pnc0O7O7/0nDo8/0BtKUptQ+VgzSUqCVR0oKXWhpAx0oQsOrGDWkQ8AVFggBFBWVSZTERxzHcXZ/59wWWakOGdl/9isgve39nO/9nd/5/c6BIP6/Fcj4X4EDA+Eb/4+00nTkPJAICcW/en6sJB2FJTQmJgp+i00lVtQ/wLYmJ0bFRpfQEnYk7tPx0vGzrNyEhtbR1BKuurpEreaqS0qi4SGIFZpmwIRG19FiWGxZdYlMxpJVVxcpD6UTKxIhYDASi7iyEhmFxz8lXIHyUOgKzDDQ05PrhDKMV9ct4LkCQULsB/Ph9tTIEhpNpi6pk7FldTRZhQfPZXMlWz+QD95jY2ggoZomZHO16jqtlqsVYjyL9cF8BhGlRvQSobYuMjy8lFJ4JODZLDbwUz8EzyBCIhE8kyeMLO0eqqnJR6qp6Q4XAB7xE0KAH8hgMH5d4PdA3Et4vDx1aU12dr5H2fmlAqADnsXdQfzq9QWrKQbRMzMBn79I2d0YD3x2AqSn3+5TET5X4/tGDoIH3lqC6bw82X/h73rwMIAkkTj8l4Ba+qkl3hjvK334OiOZRuN58DWL8JVDXvcsffJJToAmoDZg2+IigStSYOg7Fx5c/XTd51siaTqgv42/Wzkk8eDVyiRR7TCdHlC1aQFFtYOQ2H3h4e9I3EAi6JurPVevqkuw+UweK3wBn323ksKzIfQS/UvNMF2D8H7YPlVJ/aL2JHXDHaVRvgoffOLP06Akdh4Puxe+wQO8srJGgtKexRYIJMokOoVn4BRFt4cmJpcO1UCCZQ/t8Z0yERrNTo1m+j4PWT8nRPhsr3WEj2QVQFYK9Hrlxy81dE1hQNVRz2yGpO4LR8bxx2uSQnzYZxDbAgI0GA8SgioQ3sOuvAt4rqRIiVUE/MKAgMJtuKVF7YCgLCyR7PzuWJ/4CHpt4cOHSXqJRKvVqtVqbThatDVDQ90gKAuIXQRvqiH4SRpqZqmg5NekxN3btWvXTdCu/Jp9PiYXSvymqoOXX9TdrNMWUZJERkokEgEWlLaYOpCMfV9f9PTL/RvXHoS8REEZGtq1yzbY1NQ3PnMOKfNmeKjv6NQetL6IjLlJo1XfrPaKl5kH0unOfYt0X69/+Y9nrvl5O/PBV4zkGLBbzTvXZxkYcJtclnH4JEQ2JtF3UztaldJvvfbiPgJVfEsJHMeAIsNLf/zx9euOxk5V24h98PJpw3oiNaY6D+zydLawTN2AxdZks5n6YARhtJ+P1A8k/DZV7Tcw48obGzs6Hr7uQLqRlvb06VPz1HV+hrQ4Kwu+srIaNpPMy2dCiER1Jg+nWa9jfMbkmAmzNbl6+/ryzhVF+VpZDOAXriVnGwBRb59ApKwJst8sNjrJWQxui6tHIzSTd85AQQstEiK+LtPhOu0IGze5HW6bZSDMMS7Y4TM6ML1Hn5A/FAOimYzH+M3kmOKiwsycBy51FeN/j3N7nwxqx8yArs80MGC3rbWFjdvcpqbT9iLcEnzuP1aRcQ0Y34x4DXGk+YJCYbSSE+hlGzmCxownNxBowcZKhJk6k3t8QKfrC3OZTO4ZGMI9OaoVpPreETGINX9itgG+fnMDZddqVIjF4jEUHfg324zcz5J/I4JQX0tg5fF6bb0mGzzBTN9a+1q3ze4arWBxT7yrrh1+To7gOCPVz5PXxK9eKRTmfngar9qYU+sDcZHcIxGOh7mbIGdMjj7duLt3IOzAZBcLdxyfdc3vd3IrM76+obi4oaF+4hZ559nVnp6eV0Yr83IzXIXcaWi7Rf5GvB1uh6ZfVDBqt/eGmUx2l6lvJk83bjA4cN1L9I3fm6V60M+c/2F29lbcIEnap4wYL3522kAOxs2OjIzMzpNjwZe2UGaiuXOuXnvvQNO422RymYQFXQfmtAXQ76MZS6MDdUeVm9N6z0lSsjqnzGKx8WcjTO6U9Y7nKukU+5//8lM8uVslcw63axwnfa/bNTnZVUE1zKL0JfahoRwvzskQNd54nPLkScqTKbPRKEYTi2Q0ms0bx65Zr21crfjobPD5dajUQ+pztc8cWsuAyW1yTjpHnaOjk97txNv2YV6l0pycDKmqDCRvfZCWRqEVlIzmMeuY+IK/v//Z4Evr1xBBcH8yt0DL7rIarKNOg8uRZp1zjVI9Lfrt1EfzCuYz4Isjb5XDCC33FIoLFxUKsdG82jzmtPYbmAeuXElL+84/GEUnCKc+G5rM5NykY+7ZXJfT5ewqADirgpuwFH84F7FBIlX54+vPf2q5sd/8bAo0t9pJMg12i+HxjfLW8hv3rpz1P7sKRyckAbXIgoKCtEmHY9RlmKyAVyzY6u55Kzhe86AcPoff+Ueyv99iSXn8+Dkg5U9Ii2WQvCUv44hEfFXLd8GX1lEN+pAAB4PFKhh1OA84RyvYbDgIRCf6LTG/my+l8Bl8DkfEeURa7OTjMg6H097efp0ctNj7W8rk8JKTkVsefOkLXKOIKKV3e1XQNdplvcLVKxN2RDF8TOze3IyMBbyqvdViHyQfcdo5ZRw+5zoJ5h/J5Sp4iyPKyG25soXA0fGL1gu4XgmevlCeiA0hfB6Sjhd78SLkUQSODU1ywKva2x/+s8lwx2Oen5Mj7aTco9RXCjzSK5XRW0MXNj5L8ibXExsUfMC3kBbDvzra28vK2jume3puPyrzms+Rqu595jn6pn+sx2wIyqEoP7zTDPRdbhbwlP3Wy8x/90x3lEHv0tALNT3lco95jF+HowvxOaHHex8qKEGMd+0wg46/wUP0+Sr5rdtQb6Y1AYWwqYFtTaPXPOA7L26HvMeFJFaJgpJO/Y3gPdvvk960R+EBfNlPP08P02sDKNFr5Z0eOuAbD6zB+CAi6JOxNE9Q3n8u2d0ufWMfwqNqHB4upESn0wsbVRwvPUfa8jllPYjYMGjYQPzyHwQWLauF8Hc2VtUiVXU0NnZyvN7BPH//dk9FXPPbwU+I5ZyGFq8rD58v4nNUWBw+n5pVCp/xV5w3EQxiQxNzAzULv6y9uYv5OD35lHDKiLxv5PIjUKhDdh6N+AP9m2WfCoNOSqUZix8AY7H4b+Bgfu8RtBMJKaw9M4wOEYHLPBYSezszUMl/8wQibF60cA33g+b45t2QNat2Hjw2XPjVMo/p8KEjX8fL+ainLBrhzVBI0lyRfGKieGL9Z1+sN35/7Bi96uDy3EPqfB3fVh+f0sqBEGHYIix+JZVKOY0P4toaiidSLp0//5HxzrHhnaeWeTw/srkNth8jt//+fXnnfzq1vpC2rjAe9F4bc80MhhZCpqIWnDJLhw8V+2BhD4Wtb13pnvZ0axzahN6QeU0w/ol6r0muFldbRSK2I7F/Fh2KsqogGmOUzGGpobMOdFKmqN10o66Ubuw79yaptrGc5PeQnHvP+X7fd77z7zvnnpq6iApJRx1CTcv9f2d2t/cLPG0jswSsiQ/XN3uSk3DOqI7JPj/paWvzjIzOm7Z3P371o62lRuQET4H/r47bOhdffXtLtWtm5tVP2zyzdppX/tCb+dUXSXieKYAoqd9TsMZYGZ/qlsoxs7nY2Tk8PGwDDP31n297W/W70+0yWZm1l/39BTQhPOwt1uA5Ri7LvjAoGc/omL4T39W6tre3d3e5efXwuK3lwtqu2WRyfNiud/oYHbs/+PXgJ/a7vXO5YriAwa4pCs4+7fcsgfE6k8NYXeVgdDrGxDFrS5XfjKh3dAx6bSjXu0w63d6fnpFZYaA3S4Y1YGFAFXYR5NLI4IMdE/C4DQaRRsT+YOXLRyjB9HVUdOvdVkitLXlOrs7NYU4HctlpC6Gwf1qQs2ey6hhfbYXB2ceI5IzOO7oakBSZ3GD+tT7Q61WfLPh5DtN4sF5LkDTN5yxzyHhXA+yPfEzYet3CfjhhcrVXG/UOoGcWLubMzWkw5zK5TAuBEU892OGsopHVRuSDMEL+SMpXa6joRvViTP5L61m4M6XkHDojYEWOtQKJ0c2aIgj5GcbEILBu2Kx1IPN1oXuXcI1Hc0Yh35W/bDazJisHLQj0LkcEf/v7wrA6GlAWC6rZALbxYsdUCgMhl8vhdjtrgcPQADCKaJx4cqK9o70DQcyqdTscrr6d4vR4+LMv3u5oB0bxNKdC3OoDIHXzl8mpmxWRJ/Gox9jQ3l57uyQu89VTYXHEAGg0RqyfnKo2iK8MYo6ovaJxIh7zZVk/3ZTEgbYbUF9eHglNn/zWaKg4BIOxobzqbi5+19FkgPFQ7W4IzlEw+gZ695OJ+vLublQRBHSShILu+l9xhxV0nZLvq43l+mvOZpUKGs7lGovCNeb/B96qmpudTlCmr6qSIu76jgwN7qSQXjqhd6ugQ/isVqm3M1HsrOzAW6vP5xvrg77lULmdSEt5/XQJLn2uHzEj0uhgZaxh7KyEoqpAL8tyvjGXQ9Wsn8D0jlxWEmCjzCKvVAWOY1nWuxIyA9iDgGduzIHrHVnWAhfl5oAUxL3zYeythLiDxPCDikDKj9V3IMwt9cJ0gJhZs9e7EAgs7y/7/aMS1OuP9h6FsbfnNYerwsHEUIJHn14sSQHz8opanZH/4vXroaFOCUOro6vPL8wCnj9fzVlZDgQWxNIsF8rC7ThexA3Uk/lKCrbhGzcgPKgJY3wcYu+WlvEbNlvnH3fzJzPUoANUcKFSvJYF55gXlgcmlZYmu91O03Rww3al7ko4yqkTgx74rxzegGzYpivzkYqFUCnWvHAMmjZwL59qEqkRyCA/BOGmqKGyBoWYEPDYFsmglA06LMpJ9co9DZ7zc9cHlE0RbpHfPv1syHZVCs9QhDY+vMhP28loAYIghPySdMwpp5iyC/RBkGTTNL+BNvw223Dn0ItnQSAnD5YQD40wh22acEhUUmAPTgftBI/+p4M0+VYJBX8GM/aG1YTiFfS7CkjkZ2gRkiTfzRXSsEOF9Myud+nf6IgBBU9l4y/mWuII+qMArpfjrycxvfM+4PtG7ACF8dEr+KI41tpU2en4zCcFbRwrOXj/DB2rDRUIsYzPlMfzZRU6TxFBvsVLkoQEkjysRMErs+MxXgw0lQIflSf5ri6eoAVBsAgCbKR4eIoqIGkqLT52VNPzSguaSwiQJ2gqs/CMVpsmQQvb2M8EqJ1YF1qgzsf9TRu5x0JRYKygIJTa7Lemq3RNWhGtgMpAGSqeXnNg5rEIlBJAFWVLNZKnSpC4NEWQd5uiBEtaAhcuYIuVOYPQZQdx+eFNn1wuT5WlzWxtbm5tbWUmYDzQHz93J6U1+fHZx3mxB8flnp6UO9eTW88dT+Bzf6osr+d+T0pKMsgnxTzeb0XZ6NguLwHnpMpOtYJ4a2tya1ls+rOIHZ2s5SV22SXv8kdlZWWXvzwe+/5F3rnrwH39cVkizhFFUpOSUo/O/uBUHuBUkiwxRD+tH3V/5HC5hO5zvUcWhsCx9991OIT/AVwXLXUhLDYVAAAAAElFTkSuQmCC"
+
+/***/ }),
+/* 856 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 857 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 858 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 859 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 860 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 861 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 862 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 863 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 864 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 865 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 866 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 867 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 868 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 869 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 870 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 871 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 872 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 873 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 874 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 875 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 876 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 877 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 878 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 879 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 880 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 881 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 882 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
/* 883 */
/***/ (function(module, exports, __webpack_require__) {
@@ -31109,6 +31995,7 @@ var onConnect = (() => {
selectors,
client: client.clientCommands,
prefs: _prefs.prefs,
+ features: _prefs.features,
connection
};
};
@@ -31593,7 +32480,8 @@ function createSource(source, _ref) {
isPrettyPrinted: false,
isWasm: supportsWasm && source.introductionType === "wasm",
sourceMapURL: source.sourceMapURL,
- isBlackBoxed: false
+ isBlackBoxed: false,
+ loadedState: "unloaded"
};
}
@@ -32441,12 +33329,17 @@ function workerHandler(publicInterface) {
try {
const response = publicInterface[method].apply(undefined, args);
if (response instanceof Promise) {
- response.then(val => self.postMessage({ id, response: val }), err => self.postMessage({ id, error: err }));
+ response.then(val => self.postMessage({ id, response: val }),
+ // Error can't be sent via postMessage, so be sure to
+ // convert to string.
+ err => self.postMessage({ id, error: err.toString() }));
} else {
self.postMessage({ id, response });
}
} catch (error) {
- self.postMessage({ id, error });
+ // Error can't be sent via postMessage, so be sure to convert to
+ // string.
+ self.postMessage({ id, error: error.toString() });
}
};
}
@@ -32574,7 +33467,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getTokenLocation = getTokenLocation;
-exports.updateSelection = updateSelection;
+exports.updatePreview = updatePreview;
var _lodash = __webpack_require__(2);
@@ -32598,46 +33491,71 @@ function getTokenLocation(codeMirror, tokenEl) {
};
}
-function updateSelection(target, editor, _ref) {
+function updatePreview(target, editor, _ref) {
var linesInScope = _ref.linesInScope,
- selection = _ref.selection,
- setSelection = _ref.setSelection,
- clearSelection = _ref.clearSelection;
+ preview = _ref.preview,
+ setPreview = _ref.setPreview,
+ clearPreview = _ref.clearPreview;
var location = getTokenLocation(editor.codeMirror, target);
var tokenText = target.innerText ? target.innerText.trim() : "";
var cursorPos = target.getBoundingClientRect();
- if (selection) {
+ if (preview) {
// We are mousing over the same token as before
- if ((0, _lodash.isEqual)(selection.tokenPos, location)) {
+ if ((0, _lodash.isEqual)(preview.tokenPos, location)) {
return;
}
- // We are mousing over a new token that is not in the selection
+ // We are mousing over a new token that is not in the preview
if (!target.classList.contains("debug-expression")) {
- clearSelection();
+ clearPreview();
}
}
var invalidToken = tokenText === "" || tokenText.match(/[(){},.;\s]/);
var invalidTarget = target.parentElement && !target.parentElement.closest(".CodeMirror-line") || cursorPos.top == 0;
- var isUpdating = selection && selection.updating;
+ var isUpdating = preview && preview.updating;
var inScope = linesInScope && linesInScope.includes(location.line);
if (invalidTarget || !inScope || isUpdating || invalidToken) {
return;
}
- setSelection(tokenText, location, cursorPos);
+ setPreview(tokenText, location, cursorPos);
}
/***/ }),
-/* 905 */,
-/* 906 */,
-/* 907 */,
-/* 908 */,
-/* 909 */,
+/* 905 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 906 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 907 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 908 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 909 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
/* 910 */
/***/ (function(module, exports, __webpack_require__) {
@@ -32662,7 +33580,7 @@ var dom = React.DOM,
PropTypes = React.PropTypes;
-__webpack_require__(689);
+__webpack_require__(861);
/**
* This component represents a Splitter. The splitter supports vertical
@@ -32965,9 +33883,24 @@ var Draggable = React.createClass({
module.exports = Draggable;
/***/ }),
-/* 913 */,
-/* 914 */,
-/* 915 */,
+/* 913 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 914 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 915 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
/* 916 */
/***/ (function(module, exports, __webpack_require__) {
@@ -33507,8 +34440,18 @@ module.exports = Draggable;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(793)(module), __webpack_require__(792)))
/***/ }),
-/* 917 */,
-/* 918 */,
+/* 917 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 918 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
/* 919 */
/***/ (function(module, exports) {
@@ -33521,9 +34464,24 @@ module.exports = ""
/***/ }),
-/* 921 */,
-/* 922 */,
-/* 923 */,
+/* 921 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 922 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
+/* 923 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
/* 924 */
/***/ (function(module, exports, __webpack_require__) {
@@ -33592,7 +34550,7 @@ module.exports = {
* 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/. */
-__webpack_require__(707);
+__webpack_require__(877);
// Load all existing rep templates
var Undefined = __webpack_require__(929);
@@ -34677,7 +35635,12 @@ module.exports = {
};
/***/ }),
-/* 935 */,
+/* 935 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
/* 936 */
/***/ (function(module, exports, __webpack_require__) {
@@ -36360,7 +37323,12 @@ module.exports = {
};
/***/ }),
-/* 952 */,
+/* 952 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
/* 953 */
/***/ (function(module, exports, __webpack_require__) {
@@ -37210,11 +38178,16 @@ module.exports = {
/* 960 */
/***/ (function(module, exports) {
-module.exports = "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n# LOCALIZATION NOTE These strings are used inside the Debugger\n# which is available from the Web Developer sub-menu -> 'Debugger'.\n# The correct localization of this file might be to keep it in\n# English, or another language commonly spoken among web developers.\n# You want to make that choice consistent across the developer tools.\n# A good criteria is the language in which you'd find the best\n# documentation on web development on the web.\n\n# LOCALIZATION NOTE (collapsePanes): This is the tooltip for the button\n# that collapses the left and right panes in the debugger UI.\ncollapsePanes=Collapse panes\n\n# LOCALIZATION NOTE (copySourceUrl): This is the text that appears in the\n# context menu to copy the source URL of file open.\ncopySourceUrl=Copy Source Url\n\n# LOCALIZATION NOTE (copySourceUrl.accesskey): Access key to copy the source URL of a file from\n# the context menu.\ncopySourceUrl.accesskey=u\n\n# LOCALIZATION NOTE (copyStackTrace): This is the text that appears in the\n# context menu to copy the stack trace methods, file names and row number.\ncopyStackTrace=Copy Stack Trace\n\n# LOCALIZATION NOTE (copyStackTrace.accesskey): Access key to copy the stack trace data from\n# the context menu.\ncopyStackTrace.accesskey=c\n\n# LOCALIZATION NOTE (expandPanes): This is the tooltip for the button\n# that expands the left and right panes in the debugger UI.\nexpandPanes=Expand panes\n\n# LOCALIZATION NOTE (pauseButtonTooltip): The tooltip that is displayed for the pause\n# button when the debugger is in a running state.\npauseButtonTooltip=Pause %S\n\n# LOCALIZATION NOTE (pausePendingButtonTooltip): The tooltip that is displayed for\n# the pause button after it's been clicked but before the next JavaScript to run.\npausePendingButtonTooltip=Waiting for next execution\n\n# LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause\n# button when the debugger is in a paused state.\nresumeButtonTooltip=Resume %S\n\n# LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the\n# button that steps over a function call.\nstepOverTooltip=Step Over %S\n\n# LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the\n# button that steps into a function call.\nstepInTooltip=Step In %S\n\n# LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the\n# button that steps out of a function call.\nstepOutTooltip=Step Out %S\n\n# LOCALIZATION NOTE (noWorkersText): The text to display in the workers list\n# when there are no workers.\nnoWorkersText=This page has no workers.\n\n# LOCALIZATION NOTE (noSourcesText): The text to display in the sources list\n# when there are no sources.\nnoSourcesText=This page has no sources.\n\n# LOCALIZATION NOTE (noEventListenersText): The text to display in the events tab\n# when there are no events.\nnoEventListenersText=No event listeners to display\n\n# LOCALIZATION NOTE (eventListenersHeader): The text to display in the events\n# header.\neventListenersHeader=Event Listeners\n\n# LOCALIZATION NOTE (noStackFramesText): The text to display in the call stack tab\n# when there are no stack frames.\nnoStackFramesText=No stack frames to display\n\n# LOCALIZATION NOTE (eventCheckboxTooltip): The tooltip text to display when\n# the user hovers over the checkbox used to toggle an event breakpoint.\neventCheckboxTooltip=Toggle breaking on this event\n\n# LOCALIZATION NOTE (eventOnSelector): The text to display in the events tab\n# for every event item, between the event type and event selector.\neventOnSelector=on\n\n# LOCALIZATION NOTE (eventInSource): The text to display in the events tab\n# for every event item, between the event selector and listener's owner source.\neventInSource=in\n\n# LOCALIZATION NOTE (eventNodes): The text to display in the events tab when\n# an event is listened on more than one target node.\neventNodes=%S nodes\n\n# LOCALIZATION NOTE (eventNative): The text to display in the events tab when\n# a listener is added from plugins, thus getting translated to native code.\neventNative=[native code]\n\n# LOCALIZATION NOTE (*Events): The text to display in the events tab for\n# each group of sub-level event entries.\nanimationEvents=Animation\naudioEvents=Audio\nbatteryEvents=Battery\nclipboardEvents=Clipboard\ncompositionEvents=Composition\ndeviceEvents=Device\ndisplayEvents=Display\ndragAndDropEvents=Drag and Drop\ngamepadEvents=Gamepad\nindexedDBEvents=IndexedDB\ninteractionEvents=Interaction\nkeyboardEvents=Keyboard\nmediaEvents=HTML5 Media\nmouseEvents=Mouse\nmutationEvents=Mutation\nnavigationEvents=Navigation\npointerLockEvents=Pointer Lock\nsensorEvents=Sensor\nstorageEvents=Storage\ntimeEvents=Time\ntouchEvents=Touch\notherEvents=Other\n\n# LOCALIZATION NOTE (blackboxCheckboxTooltip2): The tooltip text to display when\n# the user hovers over the checkbox used to toggle blackboxing its associated\n# source.\nblackboxCheckboxTooltip2=Toggle blackboxing\n\n# LOCALIZATION NOTE (sources.search.key2): Key shortcut to open the search for\n# searching all the source files the debugger has seen.\nsources.search.key2=CmdOrCtrl+P\n\n# LOCALIZATION NOTE (sources.search.alt.key): A second key shortcut to open the\n# search for searching all the source files the debugger has seen.\nsources.search.alt.key=CmdOrCtrl+O\n\n# LOCALIZATION NOTE (projectTextSearch.key): A key shortcut to open the\n# full project text search for searching all the files the debugger has seen.\nprojectTextSearch.key=CmdOrCtrl+Shift+F\n\n# LOCALIZATION NOTE (projectTextSearch.placeholder): A placeholder shown\n# when searching across all of the files in a project.\nprojectTextSearch.placeholder=Find in files…\n\n# LOCALIZATION NOTE (sources.noSourcesAvailable): Text shown when the debugger\n# does not have any sources.\nsources.noSourcesAvailable=This page has no sources\n\n# LOCALIZATION NOTE (sourceSearch.search.key2): Key shortcut to open the search\n# for searching within a the currently opened files in the editor\nsourceSearch.search.key2=CmdOrCtrl+F\n\n# LOCALIZATION NOTE (sourceSearch.search.placeholder): placeholder text in\n# the source search input bar\nsourceSearch.search.placeholder=Search in file…\n\n# LOCALIZATION NOTE (sourceSearch.search.again.key2): Key shortcut to highlight\n# the next occurrence of the last search triggered from a source search\nsourceSearch.search.again.key2=CmdOrCtrl+G\n\n# LOCALIZATION NOTE (sourceSearch.search.againPrev.key2): Key shortcut to highlight\n# the previous occurrence of the last search triggered from a source search\nsourceSearch.search.againPrev.key2=CmdOrCtrl+Shift+G\n\n# LOCALIZATION NOTE (sourceSearch.resultsSummary1): Shows a summary of\n# the number of matches for autocomplete\nsourceSearch.resultsSummary1=%d results\n\n# LOCALIZATION NOTE (noMatchingStringsText): The text to display in the\n# global search results when there are no matching strings after filtering.\nnoMatchingStringsText=No matches found\n\n# LOCALIZATION NOTE (emptySearchText): This is the text that appears in the\n# filter text box when it is empty and the scripts container is selected.\nemptySearchText=Search scripts (%S)\n\n# LOCALIZATION NOTE (emptyVariablesFilterText): This is the text that\n# appears in the filter text box for the variables view container.\nemptyVariablesFilterText=Filter variables\n\n# LOCALIZATION NOTE (emptyPropertiesFilterText): This is the text that\n# appears in the filter text box for the editor's variables view bubble.\nemptyPropertiesFilterText=Filter properties\n\n# LOCALIZATION NOTE (searchPanelFilter): This is the text that appears in the\n# filter panel popup for the filter scripts operation.\nsearchPanelFilter=Filter scripts (%S)\n\n# LOCALIZATION NOTE (searchPanelGlobal): This is the text that appears in the\n# filter panel popup for the global search operation.\nsearchPanelGlobal=Search in all files (%S)\n\n# LOCALIZATION NOTE (searchPanelFunction): This is the text that appears in the\n# filter panel popup for the function search operation.\nsearchPanelFunction=Search for function definition (%S)\n\n# LOCALIZATION NOTE (searchPanelToken): This is the text that appears in the\n# filter panel popup for the token search operation.\nsearchPanelToken=Find in this file (%S)\n\n# LOCALIZATION NOTE (searchPanelGoToLine): This is the text that appears in the\n# filter panel popup for the line search operation.\nsearchPanelGoToLine=Go to line (%S)\n\n# LOCALIZATION NOTE (searchPanelVariable): This is the text that appears in the\n# filter panel popup for the variables search operation.\nsearchPanelVariable=Filter variables (%S)\n\n# LOCALIZATION NOTE (breakpointMenuItem): The text for all the elements that\n# are displayed in the breakpoints menu item popup.\nbreakpointMenuItem.setConditional=Configure conditional breakpoint\nbreakpointMenuItem.enableSelf=Enable breakpoint\nbreakpointMenuItem.disableSelf=Disable breakpoint\nbreakpointMenuItem.deleteSelf=Remove breakpoint\nbreakpointMenuItem.enableOthers=Enable others\nbreakpointMenuItem.disableOthers=Disable others\nbreakpointMenuItem.deleteOthers=Remove others\nbreakpointMenuItem.enableAll=Enable all breakpoints\nbreakpointMenuItem.disableAll=Disable all breakpoints\nbreakpointMenuItem.deleteAll=Remove all breakpoints\n\n# LOCALIZATION NOTE (breakpointMenuItem.deleteSelf.accesskey): Access key to remove the \n# currently selected breakpoint from the context menu\nbreakpointMenuItem.deleteSelf.accesskey=r\n\n# LOCALIZATION NOTE (breakpointMenuItem.enableSelf.accesskey): Access key to enable the \n# currently selected breakpoint from the context menu\nbreakpointMenuItem.enableSelf.accesskey=e\n\n# LOCALIZATION NOTE (breakpointMenuItem.disableSelf.accesskey): Access key to disable the \n# currently selected breakpoint from the context menu\nbreakpointMenuItem.disableSelf.accesskey=d\n\n# LOCALIZATION NOTE (breakpointMenuItem.deleteAll.accesskey): Access key to remove all \n# the breakpoints from the context menu\nbreakpointMenuItem.deleteAll.accesskey=a\n\n# LOCALIZATION NOTE (breakpointMenuItem.enableAll.accesskey): Access key to enable all \n# the breakpoints from the context menu\nbreakpointMenuItem.enableAll.accesskey=b\n\n# LOCALIZATION NOTE (breakpointMenuItem.disableAll.accesskey): Access key to disable all \n# the breakpoints from the context menu\nbreakpointMenuItem.disableAll.accesskey=c\n\n# LOCALIZATION NOTE (breakpointMenuItem.deleteOthers.accesskey): Access key to remove \n# other breakpoints from the context menu\nbreakpointMenuItem.deleteOthers.accesskey=p\n\n# LOCALIZATION NOTE (breakpointMenuItem.enableOthers.accesskey): Access key to enable \n# other breakpoints from the context menu\nbreakpointMenuItem.enableOthers.accesskey=q\n\n# LOCALIZATION NOTE (breakpointMenuItem.disableOthers.accesskey): Access key to disable \n# other breakpoints from the context menu\nbreakpointMenuItem.disableOthers.accesskey=s\n\n# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.\nbreakpoints.header=Breakpoints\n\n# LOCALIZATION NOTE (breakpoints.none): The text that appears when there are\n# no breakpoints present\nbreakpoints.none=No Breakpoints\n\n# LOCALIZATION NOTE (breakpoints.enable): The text that may appear as a tooltip\n# when hovering over the 'disable breakpoints' switch button in right sidebar\nbreakpoints.enable=Enable Breakpoints\n\n# LOCALIZATION NOTE (breakpoints.disable): The text that may appear as a tooltip\n# when hovering over the 'disable breakpoints' switch button in right sidebar\nbreakpoints.disable=Disable Breakpoints\n\n# LOCALIZATION NOTE (breakpoints.removeBreakpointTooltip): The tooltip that is displayed\n# for remove breakpoint button in right sidebar\nbreakpoints.removeBreakpointTooltip=Remove Breakpoint\n\n# LOCALIZATION NOTE (callStack.header): Call Stack right sidebar pane header.\ncallStack.header=Call Stack\n\n# LOCALIZATION NOTE (callStack.notPaused): Call Stack right sidebar pane\n# message when not paused.\ncallStack.notPaused=Not Paused\n\n# LOCALIZATION NOTE (callStack.collapse): Call Stack right sidebar pane\n# message to hide some of the frames that are shown.\ncallStack.collapse=Collapse Rows\n\n# LOCALIZATION NOTE (callStack.expand): Call Stack right sidebar pane\n# message to show more of the frames.\ncallStack.expand=Expand Rows\n\n# LOCALIZATION NOTE (editor.searchResults): Editor Search bar message\n# for the summarizing the selected search result. e.g. 5 of 10 results.\neditor.searchResults=%d of %d results\n\n# LOCALIZATION NOTE (sourceSearch.singleResult): Copy shown when there is one result.\neditor.singleResult=1 result\n\n# LOCALIZATION NOTE (editor.noResults): Editor Search bar message\n# for when no results found.\neditor.noResults=no results\n\n# LOCALIZATION NOTE (editor.searchResults.nextResult): Editor Search bar\n# tooltip for traversing to the Next Result\neditor.searchResults.nextResult=Next Result\n\n# LOCALIZATION NOTE (editor.searchResults.prevResult): Editor Search bar\n# tooltip for traversing to the Previous Result\neditor.searchResults.prevResult=Previous Result\n\n# LOCALIZATION NOTE (editor.searchTypeToggleTitle): Search bar title for\n# toggling search type buttons(function search, variable search)\neditor.searchTypeToggleTitle=Search for:\n\n# LOCALIZATION NOTE (editor.addBreakpoint): Editor gutter context menu item\n# for adding a breakpoint on a line.\neditor.addBreakpoint=Add Breakpoint\n\n# LOCALIZATION NOTE (editor.disableBreakpoint): Editor gutter context menu item\n# for disabling a breakpoint on a line.\neditor.disableBreakpoint=Disable Breakpoint\n\n# LOCALIZATION NOTE (editor.enableBreakpoint): Editor gutter context menu item\n# for enabling a breakpoint on a line.\neditor.enableBreakpoint=Enable Breakpoint\n\n# LOCALIZATION NOTE (editor.removeBreakpoint): Editor gutter context menu item\n# for removing a breakpoint on a line.\neditor.removeBreakpoint=Remove Breakpoint\n\n# LOCALIZATION NOTE (editor.editBreakpoint): Editor gutter context menu item\n# for setting a breakpoint condition on a line.\neditor.editBreakpoint=Edit Breakpoint\n\n# LOCALIZATION NOTE (editor.addConditionalBreakpoint): Editor gutter context\n# menu item for adding a breakpoint condition on a line.\neditor.addConditionalBreakpoint=Add Conditional Breakpoint\n\n# LOCALIZATION NOTE (editor.conditionalPanel.placeholder): Placeholder text for\n# input element inside ConditionalPanel component\neditor.conditionalPanel.placeholder=This breakpoint will pause when the expression is true\n\n# LOCALIZATION NOTE (editor.conditionalPanel.placeholder): Tooltip text for\n# close button inside ConditionalPanel component\neditor.conditionalPanel.close=Cancel edit breakpoint and close\n\n# LOCALIZATION NOTE (editor.jumpToMappedLocation1): Context menu item\n# for navigating to a source mapped location\neditor.jumpToMappedLocation1=Jump to %S location\n\n# LOCALIZATION NOTE (framework.disableGrouping): This is the text that appears in the\n# context menu to disable framework grouping.\nframework.disableGrouping=Disable Framework Grouping\n\n# LOCALIZATION NOTE (framework.disableGrouping.accesskey): Access key to toggle\n# framework grouping from the context menu.\nframework.disableGrouping.accesskey=u\n\n# LOCALIZATION NOTE (framework.enableGrouping): This is the text that appears in the\n# context menu to enable framework grouping.\nframework.enableGrouping=Enable Framework Grouping\n\n# LOCALIZATION NOTE (framework.enableGrouping.accesskey): Access key to toggle\n# framework grouping from the context menu.\nframework.enableGrouping.accesskey=u\n\n# LOCALIZATION NOTE (generated): Source Map term for a server source location\ngenerated=generated\n\n# LOCALIZATION NOTE (original): Source Map term for a debugger UI source location\noriginal=original\n\n# LOCALIZATION NOTE (expressions.placeholder): Placeholder text for expression\n# input element\nexpressions.placeholder=Add Watch Expression\n\n# LOCALIZATION NOTE (sourceTabs.closeTab): Editor source tab context menu item\n# for closing the selected tab below the mouse.\nsourceTabs.closeTab=Close tab\n\n# LOCALIZATION NOTE (sourceTabs.closeTab.accesskey): Access key to close the currently select\n# source tab from the editor context menu item.\nsourceTabs.closeTab.accesskey=c\n\n# LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item\n# for closing the other tabs.\nsourceTabs.closeOtherTabs=Close others\n\n# LOCALIZATION NOTE (sourceTabs.closeOtherTabs.accesskey): Access key to close other source tabs\n# from the editor context menu.\nsourceTabs.closeOtherTabs.accesskey=o\n\n# LOCALIZATION NOTE (sourceTabs.closeTabsToEnd): Editor source tab context menu item\n# for closing the tabs to the end (the right for LTR languages) of the selected tab.\nsourceTabs.closeTabsToEnd=Close tabs to the right\n\n# LOCALIZATION NOTE (sourceTabs.closeTabsToEnd.accesskey): Access key to close source tabs\n# after the selected tab from the editor context menu.\nsourceTabs.closeTabsToEnd.accesskey=e\n\n# LOCALIZATION NOTE (sourceTabs.closeAllTabs): Editor source tab context menu item\n# for closing all tabs.\nsourceTabs.closeAllTabs=Close all tabs\n\n# LOCALIZATION NOTE (sourceTabs.closeAllTabs.accesskey): Access key to close all tabs from the\n# editor context menu.\nsourceTabs.closeAllTabs.accesskey=a\n\n# LOCALIZATION NOTE (sourceTabs.revealInTree): Editor source tab context menu item\n# for revealing source in tree.\nsourceTabs.revealInTree=Reveal in Tree\n\n# LOCALIZATION NOTE (sourceTabs.revealInTree.accesskey): Access key to reveal a source in the\n# tree from the context menu.\nsourceTabs.revealInTree.accesskey=r\n\n# LOCALIZATION NOTE (sourceTabs.copyLink): Editor source tab context menu item\n# for copying a link address.\nsourceTabs.copyLink=Copy Link Address\n\n# LOCALIZATION NOTE (sourceTabs.copyLink.accesskey): Access key to copy a link addresss from the\n# editor context menu.\nsourceTabs.copyLink.accesskey=l\n\n# LOCALIZATION NOTE (sourceTabs.prettyPrint): Editor source tab context menu item\n# for pretty printing the source.\nsourceTabs.prettyPrint=Pretty Print Source\n\n# LOCALIZATION NOTE (sourceTabs.prettyPrint.accesskey): Access key to pretty print a source from\n# the editor context menu.\nsourceTabs.prettyPrint.accesskey=p\n\n# LOCALIZATION NOTE (sourceFooter.blackbox): Tooltip text associated\n# with the blackbox button\nsourceFooter.blackbox=Blackbox Source\n\n# LOCALIZATION NOTE (sourceFooter.unblackbox): Tooltip text associated\n# with the blackbox button\nsourceFooter.unblackbox=Unblackbox Source\n\n# LOCALIZATION NOTE (sourceFooter.unblackbox.accesskey): Access key to blackbox\n# an associated source\nsourceFooter.unblackbox.accesskey=b\n\n# LOCALIZATION NOTE (sourceFooter.blackbox.accesskey): Access key to blackbox\n# an associated source\nsourceFooter.blackbox.accesskey=b\n\n# LOCALIZATION NOTE (sourceFooter.blackboxed): Text associated\n# with a blackboxed source\nsourceFooter.blackboxed=Blackboxed Source\n\n# LOCALIZATION NOTE (sourceTabs.closeTabButtonTooltip): The tooltip that is displayed\n# for close tab button in source tabs.\nsourceTabs.closeTabButtonTooltip=Close tab\n\n# LOCALIZATION NOTE (sourceTabs.newTabButtonTooltip): The tooltip that is displayed for\n# new tab button in source tabs.\nsourceTabs.newTabButtonTooltip=Search for sources (%S)\n\n# LOCALIZATION NOTE (scopes.header): Scopes right sidebar pane header.\nscopes.header=Scopes\n\n# LOCALIZATION NOTE (scopes.notAvailable): Scopes right sidebar pane message\n# for when the debugger is paused, but there isn't pause data.\nscopes.notAvailable=Scopes Unavailable\n\n# LOCALIZATION NOTE (scopes.notPaused): Scopes right sidebar pane message\n# for when the debugger is not paused.\nscopes.notPaused=Not Paused\n\n# LOCALIZATION NOTE (scopes.block): Refers to a block of code in\n# the scopes pane when the debugger is paused.\nscopes.block=Block\n\n# LOCALIZATION NOTE (sources.header): Sources left sidebar header\nsources.header=Sources\n\n# LOCALIZATION NOTE (sources.search): Sources left sidebar prompt\n# e.g. Cmd+P to search. On a mac, we use the command unicode character.\n# On windows, it's ctrl.\nsources.search=%S to search\n\n# LOCALIZATION NOTE (watchExpressions.header): Watch Expressions right sidebar\n# pane header.\nwatchExpressions.header=Watch Expressions\n\n# LOCALIZATION NOTE (watchExpressions.refreshButton): Watch Expressions header\n# button for refreshing the expressions.\nwatchExpressions.refreshButton=Refresh\n\n# LOCALIZATION NOTE (welcome.search): The center pane welcome panel's\n# search prompt. e.g. cmd+p to search for files. On windows, it's ctrl, on\n# a mac we use the unicode character.\nwelcome.search=%S to search for sources\n\n# LOCALIZATION NOTE (sourceSearch.search): The center pane Source Search\n# prompt for searching for files.\nsourceSearch.search=Search Sources…\n\n# LOCALIZATION NOTE (sourceSearch.noResults): The center pane Source Search\n# message when the query did not match any of the sources.\nsourceSearch.noResults2=No results found\n\n# LOCALIZATION NOTE (ignoreExceptions): The pause on exceptions button tooltip\n# when the debugger will not pause on exceptions.\nignoreExceptions=Ignore exceptions. Click to pause on uncaught exceptions\n\n# LOCALIZATION NOTE (pauseOnUncaughtExceptions): The pause on exceptions button\n# tooltip when the debugger will pause on uncaught exceptions.\npauseOnUncaughtExceptions=Pause on uncaught exceptions. Click to pause on all exceptions\n\n# LOCALIZATION NOTE (pauseOnExceptions): The pause on exceptions button tooltip\n# when the debugger will pause on all exceptions.\npauseOnExceptions=Pause on all exceptions. Click to ignore exceptions\n\n# LOCALIZATION NOTE (loadingText): The text that is displayed in the script\n# editor when the loading process has started but there is no file to display\n# yet.\nloadingText=Loading\\u2026\n\n# LOCALIZATION NOTE (errorLoadingText2): The text that is displayed in the debugger\n# viewer when there is an error loading a file\nerrorLoadingText2=Error loading this URL: %S\n\n# LOCALIZATION NOTE (addWatchExpressionText): The text that is displayed in the\n# watch expressions list to add a new item.\naddWatchExpressionText=Add watch expression\n\n# LOCALIZATION NOTE (addWatchExpressionButton): The button that is displayed in the\n# variables view popup.\naddWatchExpressionButton=Watch\n\n# LOCALIZATION NOTE (emptyVariablesText): The text that is displayed in the\n# variables pane when there are no variables to display.\nemptyVariablesText=No variables to display\n\n# LOCALIZATION NOTE (scopeLabel): The text that is displayed in the variables\n# pane as a header for each variable scope (e.g. \"Global scope, \"With scope\",\n# etc.).\nscopeLabel=%S scope\n\n# LOCALIZATION NOTE (watchExpressionsScopeLabel): The name of the watch\n# expressions scope. This text is displayed in the variables pane as a header for\n# the watch expressions scope.\nwatchExpressionsScopeLabel=Watch expressions\n\n# LOCALIZATION NOTE (globalScopeLabel): The name of the global scope. This text\n# is added to scopeLabel and displayed in the variables pane as a header for\n# the global scope.\nglobalScopeLabel=Global\n\n# LOCALIZATION NOTE (variablesViewErrorStacktrace): This is the text that is\n# shown before the stack trace in an error.\nvariablesViewErrorStacktrace=Stack trace:\n\n# LOCALIZATION NOTE (variablesViewMoreObjects): the text that is displayed\n# when you have an object preview that does not show all of the elements. At the end of the list\n# you see \"N more...\" in the web console output.\n# This is a semi-colon list of plural forms.\n# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals\n# #1 number of remaining items in the object\n# example: 3 more…\nvariablesViewMoreObjects=#1 more…;#1 more…\n\n# LOCALIZATION NOTE (variablesEditableNameTooltip): The text that is displayed\n# in the variables list on an item with an editable name.\nvariablesEditableNameTooltip=Double click to edit\n\n# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed\n# in the variables list on an item with an editable value.\nvariablesEditableValueTooltip=Click to change value\n\n# LOCALIZATION NOTE (variablesCloseButtonTooltip): The text that is displayed\n# in the variables list on an item which can be removed.\nvariablesCloseButtonTooltip=Click to remove\n\n# LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed\n# in the variables list on a getter or setter which can be edited.\nvariablesEditButtonTooltip=Click to set value\n\n# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed\n# in a tooltip on the \"open in inspector\" button in the the variables list for a\n# DOMNode item.\nvariablesDomNodeValueTooltip=Click to select the node in the inspector\n\n# LOCALIZATION NOTE (configurable|...|Tooltip): The text that is displayed\n# in the variables list on certain variables or properties as tooltips.\n# Expanations of what these represent can be found at the following links:\n# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\n# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible\n# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen\n# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed\n# It's probably best to keep these in English.\nconfigurableTooltip=configurable\nenumerableTooltip=enumerable\nwritableTooltip=writable\nfrozenTooltip=frozen\nsealedTooltip=sealed\nextensibleTooltip=extensible\noverriddenTooltip=overridden\nWebIDLTooltip=WebIDL\n\n# LOCALIZATION NOTE (variablesSeparatorLabel): The text that is displayed\n# in the variables list as a separator between the name and value.\nvariablesSeparatorLabel=:\n\n# LOCALIZATION NOTE (watchExpressionsSeparatorLabel2): The text that is displayed\n# in the watch expressions list as a separator between the code and evaluation.\nwatchExpressionsSeparatorLabel2=\\u0020→\n\n# LOCALIZATION NOTE (functionSearchSeparatorLabel): The text that is displayed\n# in the functions search panel as a separator between function's inferred name\n# and its real name (if available).\nfunctionSearchSeparatorLabel=←\n\n# LOCALIZATION NOTE(symbolSearch.search.functionsPlaceholder): The placeholder\n# text displayed when the user searches for functions in a file\nsymbolSearch.search.functionsPlaceholder=Search functions…\n\n# LOCALIZATION NOTE(symbolSearch.search.variablesPlaceholder): The placeholder\n# text displayed when the user searches for variables in a file\nsymbolSearch.search.variablesPlaceholder=Search variables…\n\n# LOCALIZATION NOTE(symbolSearch.search.key2): The Key Shortcut for\n# searching for a function or variable\nsymbolSearch.search.key2=CmdOrCtrl+Shift+O\n\n# LOCALIZATION NOTE(symbolSearch.searchModifier.modifiersLabel): A label\n# preceding the group of modifiers\nsymbolSearch.searchModifier.modifiersLabel=Modifiers:\n\n# LOCALIZATION NOTE(symbolSearch.searchModifier.regex): A search option\n# when searching text in a file\nsymbolSearch.searchModifier.regex=Regex\n\n# LOCALIZATION NOTE(symbolSearch.searchModifier.caseSensitive): A search option\n# when searching text in a file\nsymbolSearch.searchModifier.caseSensitive=Case sensitive\n\n# LOCALIZATION NOTE(symbolSearch.searchModifier.wholeWord): A search option\n# when searching text in a file\nsymbolSearch.searchModifier.wholeWord=Whole word\n\n# LOCALIZATION NOTE (resumptionOrderPanelTitle): This is the text that appears\n# as a description in the notification panel popup, when multiple debuggers are\n# open in separate tabs and the user tries to resume them in the wrong order.\n# The substitution parameter is the URL of the last paused window that must be\n# resumed first.\nresumptionOrderPanelTitle=There are one or more paused debuggers. Please resume the most-recently paused debugger first at: %S\n\nvariablesViewOptimizedOut=(optimized away)\nvariablesViewUninitialized=(uninitialized)\nvariablesViewMissingArgs=(unavailable)\n\nanonymousSourcesLabel=Anonymous Sources\n\nexperimental=This is an experimental feature\n\n# LOCALIZATION NOTE (whyPaused.debuggerStatement): The text that is displayed\n# in a info block explaining how the debugger is currently paused due to a `debugger`\n# statement in the code\nwhyPaused.debuggerStatement=Paused on debugger statement\n\n# LOCALIZATION NOTE (whyPaused.breakpoint): The text that is displayed\n# in a info block explaining how the debugger is currently paused on a breakpoint\nwhyPaused.breakpoint=Paused on breakpoint\n\n# LOCALIZATION NOTE (whyPaused.exception): The text that is displayed\n# in a info block explaining how the debugger is currently paused on an exception\nwhyPaused.exception=Paused on exception\n\n# LOCALIZATION NOTE (whyPaused.resumeLimit): The text that is displayed\n# in a info block explaining how the debugger is currently paused while stepping\n# in or out of the stack\nwhyPaused.resumeLimit=Paused while stepping\n\n# LOCALIZATION NOTE (whyPaused.pauseOnDOMEvents): The text that is displayed\n# in a info block explaining how the debugger is currently paused on a\n# dom event\nwhyPaused.pauseOnDOMEvents=Paused on event listener\n\n# LOCALIZATION NOTE (whyPaused.breakpointConditionThrown): The text that is displayed\n# in an info block when evaluating a conditional breakpoint throws an error\nwhyPaused.breakpointConditionThrown=Error with conditional breakpoint\n\n# LOCALIZATION NOTE (whyPaused.xhr): The text that is displayed\n# in a info block explaining how the debugger is currently paused on an\n# xml http request\nwhyPaused.xhr=Paused on XMLHttpRequest\n\n# LOCALIZATION NOTE (whyPaused.promiseRejection): The text that is displayed\n# in a info block explaining how the debugger is currently paused on a\n# promise rejection\nwhyPaused.promiseRejection=Paused on promise rejection\n\n# LOCALIZATION NOTE (whyPaused.assert): The text that is displayed\n# in a info block explaining how the debugger is currently paused on an\n# assert\nwhyPaused.assert=Paused on assertion\n\n# LOCALIZATION NOTE (whyPaused.debugCommand): The text that is displayed\n# in a info block explaining how the debugger is currently paused on a\n# debugger statement\nwhyPaused.debugCommand=Paused on debugged function\n\n# LOCALIZATION NOTE (whyPaused.other): The text that is displayed\n# in a info block explaining how the debugger is currently paused on an event\n# listener breakpoint set\nwhyPaused.other=Debugger paused\n\n# LOCALIZATION NOTE (ctrl): The text that is used for documenting\n# keyboard shortcuts that use the control key\nctrl=Ctrl\n"
+module.exports = "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n# LOCALIZATION NOTE These strings are used inside the Debugger\n# which is available from the Web Developer sub-menu -> 'Debugger'.\n# The correct localization of this file might be to keep it in\n# English, or another language commonly spoken among web developers.\n# You want to make that choice consistent across the developer tools.\n# A good criteria is the language in which you'd find the best\n# documentation on web development on the web.\n\n# LOCALIZATION NOTE (collapsePanes): This is the tooltip for the button\n# that collapses the left and right panes in the debugger UI.\ncollapsePanes=Collapse panes\n\n# LOCALIZATION NOTE (copySource): This is the text that appears in the\n# context menu to copy the selected source of file open.\ncopySource=Copy\ncopySource.accesskey=y\n\n# LOCALIZATION NOTE (copySourceUrl): This is the text that appears in the\n# context menu to copy the source URL of file open.\ncopySourceUrl=Copy Source Url\ncopySourceUrl.accesskey=u\n\n# LOCALIZATION NOTE (copyStackTrace): This is the text that appears in the\n# context menu to copy the stack trace methods, file names and row number.\ncopyStackTrace=Copy Stack Trace\ncopyStackTrace.accesskey=c\n\n# LOCALIZATION NOTE (expandPanes): This is the tooltip for the button\n# that expands the left and right panes in the debugger UI.\nexpandPanes=Expand panes\n\n# LOCALIZATION NOTE (pauseButtonTooltip): The tooltip that is displayed for the pause\n# button when the debugger is in a running state.\npauseButtonTooltip=Pause %S\n\n# LOCALIZATION NOTE (pausePendingButtonTooltip): The tooltip that is displayed for\n# the pause button after it's been clicked but before the next JavaScript to run.\npausePendingButtonTooltip=Waiting for next execution\n\n# LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause\n# button when the debugger is in a paused state.\nresumeButtonTooltip=Resume %S\n\n# LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the\n# button that steps over a function call.\nstepOverTooltip=Step Over %S\n\n# LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the\n# button that steps into a function call.\nstepInTooltip=Step In %S\n\n# LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the\n# button that steps out of a function call.\nstepOutTooltip=Step Out %S\n\n# LOCALIZATION NOTE (workersHeader): The text to display in the events\n# header.\nworkersHeader=Workers\n\n# LOCALIZATION NOTE (noWorkersText): The text to display in the workers list\n# when there are no workers.\nnoWorkersText=This page has no workers.\n\n# LOCALIZATION NOTE (noSourcesText): The text to display in the sources list\n# when there are no sources.\nnoSourcesText=This page has no sources.\n\n# LOCALIZATION NOTE (noEventListenersText): The text to display in the events tab\n# when there are no events.\nnoEventListenersText=No event listeners to display\n\n# LOCALIZATION NOTE (eventListenersHeader): The text to display in the events\n# header.\neventListenersHeader=Event Listeners\n\n# LOCALIZATION NOTE (noStackFramesText): The text to display in the call stack tab\n# when there are no stack frames.\nnoStackFramesText=No stack frames to display\n\n# LOCALIZATION NOTE (eventCheckboxTooltip): The tooltip text to display when\n# the user hovers over the checkbox used to toggle an event breakpoint.\neventCheckboxTooltip=Toggle breaking on this event\n\n# LOCALIZATION NOTE (eventOnSelector): The text to display in the events tab\n# for every event item, between the event type and event selector.\neventOnSelector=on\n\n# LOCALIZATION NOTE (eventInSource): The text to display in the events tab\n# for every event item, between the event selector and listener's owner source.\neventInSource=in\n\n# LOCALIZATION NOTE (eventNodes): The text to display in the events tab when\n# an event is listened on more than one target node.\neventNodes=%S nodes\n\n# LOCALIZATION NOTE (eventNative): The text to display in the events tab when\n# a listener is added from plugins, thus getting translated to native code.\neventNative=[native code]\n\n# LOCALIZATION NOTE (*Events): The text to display in the events tab for\n# each group of sub-level event entries.\nanimationEvents=Animation\naudioEvents=Audio\nbatteryEvents=Battery\nclipboardEvents=Clipboard\ncompositionEvents=Composition\ndeviceEvents=Device\ndisplayEvents=Display\ndragAndDropEvents=Drag and Drop\ngamepadEvents=Gamepad\nindexedDBEvents=IndexedDB\ninteractionEvents=Interaction\nkeyboardEvents=Keyboard\nmediaEvents=HTML5 Media\nmouseEvents=Mouse\nmutationEvents=Mutation\nnavigationEvents=Navigation\npointerLockEvents=Pointer Lock\nsensorEvents=Sensor\nstorageEvents=Storage\ntimeEvents=Time\ntouchEvents=Touch\notherEvents=Other\n\n# LOCALIZATION NOTE (blackboxCheckboxTooltip2): The tooltip text to display when\n# the user hovers over the checkbox used to toggle blackboxing its associated\n# source.\nblackboxCheckboxTooltip2=Toggle blackboxing\n\n# LOCALIZATION NOTE (sources.search.key2): Key shortcut to open the search for\n# searching all the source files the debugger has seen.\nsources.search.key2=CmdOrCtrl+P\n\n# LOCALIZATION NOTE (sources.search.alt.key): A second key shortcut to open the\n# search for searching all the source files the debugger has seen.\nsources.search.alt.key=CmdOrCtrl+O\n\n# LOCALIZATION NOTE (projectTextSearch.key): A key shortcut to open the\n# full project text search for searching all the files the debugger has seen.\nprojectTextSearch.key=CmdOrCtrl+Shift+F\n\n# LOCALIZATION NOTE (projectTextSearch.placeholder): A placeholder shown\n# when searching across all of the files in a project.\nprojectTextSearch.placeholder=Find in files…\n\n# LOCALIZATION NOTE (sources.noSourcesAvailable): Text shown when the debugger\n# does not have any sources.\nsources.noSourcesAvailable=This page has no sources\n\n# LOCALIZATION NOTE (sourceSearch.search.key2): Key shortcut to open the search\n# for searching within a the currently opened files in the editor\nsourceSearch.search.key2=CmdOrCtrl+F\n\n# LOCALIZATION NOTE (sourceSearch.search.placeholder): placeholder text in\n# the source search input bar\nsourceSearch.search.placeholder=Search in file…\n\n# LOCALIZATION NOTE (sourceSearch.search.again.key2): Key shortcut to highlight\n# the next occurrence of the last search triggered from a source search\nsourceSearch.search.again.key2=CmdOrCtrl+G\n\n# LOCALIZATION NOTE (sourceSearch.search.againPrev.key2): Key shortcut to highlight\n# the previous occurrence of the last search triggered from a source search\nsourceSearch.search.againPrev.key2=CmdOrCtrl+Shift+G\n\n# LOCALIZATION NOTE (sourceSearch.resultsSummary1): Shows a summary of\n# the number of matches for autocomplete\nsourceSearch.resultsSummary1=%d results\n\n# LOCALIZATION NOTE (noMatchingStringsText): The text to display in the\n# global search results when there are no matching strings after filtering.\nnoMatchingStringsText=No matches found\n\n# LOCALIZATION NOTE (emptySearchText): This is the text that appears in the\n# filter text box when it is empty and the scripts container is selected.\nemptySearchText=Search scripts (%S)\n\n# LOCALIZATION NOTE (emptyVariablesFilterText): This is the text that\n# appears in the filter text box for the variables view container.\nemptyVariablesFilterText=Filter variables\n\n# LOCALIZATION NOTE (emptyPropertiesFilterText): This is the text that\n# appears in the filter text box for the editor's variables view bubble.\nemptyPropertiesFilterText=Filter properties\n\n# LOCALIZATION NOTE (searchPanelFilter): This is the text that appears in the\n# filter panel popup for the filter scripts operation.\nsearchPanelFilter=Filter scripts (%S)\n\n# LOCALIZATION NOTE (searchPanelGlobal): This is the text that appears in the\n# filter panel popup for the global search operation.\nsearchPanelGlobal=Search in all files (%S)\n\n# LOCALIZATION NOTE (searchPanelFunction): This is the text that appears in the\n# filter panel popup for the function search operation.\nsearchPanelFunction=Search for function definition (%S)\n\n# LOCALIZATION NOTE (searchPanelToken): This is the text that appears in the\n# filter panel popup for the token search operation.\nsearchPanelToken=Find in this file (%S)\n\n# LOCALIZATION NOTE (searchPanelGoToLine): This is the text that appears in the\n# filter panel popup for the line search operation.\nsearchPanelGoToLine=Go to line (%S)\n\n# LOCALIZATION NOTE (searchPanelVariable): This is the text that appears in the\n# filter panel popup for the variables search operation.\nsearchPanelVariable=Filter variables (%S)\n\n# LOCALIZATION NOTE (breakpointMenuItem): The text for all the elements that\n# are displayed in the breakpoints menu item popup.\nbreakpointMenuItem.setConditional=Configure conditional breakpoint\nbreakpointMenuItem.enableSelf=Enable breakpoint\nbreakpointMenuItem.enableSelf.accesskey=E\nbreakpointMenuItem.disableSelf=Disable breakpoint\nbreakpointMenuItem.disableSelf.accesskey=D\nbreakpointMenuItem.deleteSelf=Remove breakpoint\nbreakpointMenuItem.deleteSelf.accesskey=R\nbreakpointMenuItem.enableOthers=Enable others\nbreakpointMenuItem.enableOthers.accesskey=o\nbreakpointMenuItem.disableOthers=Disable others\nbreakpointMenuItem.disableOthers.accesskey=s\nbreakpointMenuItem.deleteOthers=Remove others\nbreakpointMenuItem.deleteOthers.accesskey=h\nbreakpointMenuItem.enableAll=Enable all breakpoints\nbreakpointMenuItem.enableAll.accesskey=b\nbreakpointMenuItem.disableAll=Disable all breakpoints\nbreakpointMenuItem.disableAll.accesskey=k\nbreakpointMenuItem.deleteAll=Remove all breakpoints\nbreakpointMenuItem.deleteAll.accesskey=a\n\n# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.\nbreakpoints.header=Breakpoints\n\n# LOCALIZATION NOTE (breakpoints.none): The text that appears when there are\n# no breakpoints present\nbreakpoints.none=No Breakpoints\n\n# LOCALIZATION NOTE (breakpoints.enable): The text that may appear as a tooltip\n# when hovering over the 'disable breakpoints' switch button in right sidebar\nbreakpoints.enable=Enable Breakpoints\n\n# LOCALIZATION NOTE (breakpoints.disable): The text that may appear as a tooltip\n# when hovering over the 'disable breakpoints' switch button in right sidebar\nbreakpoints.disable=Disable Breakpoints\n\n# LOCALIZATION NOTE (breakpoints.removeBreakpointTooltip): The tooltip that is displayed\n# for remove breakpoint button in right sidebar\nbreakpoints.removeBreakpointTooltip=Remove Breakpoint\n\n# LOCALIZATION NOTE (callStack.header): Call Stack right sidebar pane header.\ncallStack.header=Call Stack\n\n# LOCALIZATION NOTE (callStack.notPaused): Call Stack right sidebar pane\n# message when not paused.\ncallStack.notPaused=Not Paused\n\n# LOCALIZATION NOTE (callStack.collapse): Call Stack right sidebar pane\n# message to hide some of the frames that are shown.\ncallStack.collapse=Collapse Rows\n\n# LOCALIZATION NOTE (callStack.expand): Call Stack right sidebar pane\n# message to show more of the frames.\ncallStack.expand=Expand Rows\n\n# LOCALIZATION NOTE (editor.searchResults): Editor Search bar message\n# for the summarizing the selected search result. e.g. 5 of 10 results.\neditor.searchResults=%d of %d results\n\n# LOCALIZATION NOTE (sourceSearch.singleResult): Copy shown when there is one result.\neditor.singleResult=1 result\n\n# LOCALIZATION NOTE (editor.noResults): Editor Search bar message\n# for when no results found.\neditor.noResults=no results\n\n# LOCALIZATION NOTE (editor.searchResults.nextResult): Editor Search bar\n# tooltip for traversing to the Next Result\neditor.searchResults.nextResult=Next Result\n\n# LOCALIZATION NOTE (editor.searchResults.prevResult): Editor Search bar\n# tooltip for traversing to the Previous Result\neditor.searchResults.prevResult=Previous Result\n\n# LOCALIZATION NOTE (editor.searchTypeToggleTitle): Search bar title for\n# toggling search type buttons(function search, variable search)\neditor.searchTypeToggleTitle=Search for:\n\n# LOCALIZATION NOTE (editor.addBreakpoint): Editor gutter context menu item\n# for adding a breakpoint on a line.\neditor.addBreakpoint=Add Breakpoint\n\n# LOCALIZATION NOTE (editor.disableBreakpoint): Editor gutter context menu item\n# for disabling a breakpoint on a line.\neditor.disableBreakpoint=Disable Breakpoint\n\n# LOCALIZATION NOTE (editor.enableBreakpoint): Editor gutter context menu item\n# for enabling a breakpoint on a line.\neditor.enableBreakpoint=Enable Breakpoint\n\n# LOCALIZATION NOTE (editor.removeBreakpoint): Editor gutter context menu item\n# for removing a breakpoint on a line.\neditor.removeBreakpoint=Remove Breakpoint\n\n# LOCALIZATION NOTE (editor.editBreakpoint): Editor gutter context menu item\n# for setting a breakpoint condition on a line.\neditor.editBreakpoint=Edit Breakpoint\n\n# LOCALIZATION NOTE (editor.addConditionalBreakpoint): Editor gutter context\n# menu item for adding a breakpoint condition on a line.\neditor.addConditionalBreakpoint=Add Conditional Breakpoint\n\n# LOCALIZATION NOTE (editor.conditionalPanel.placeholder): Placeholder text for\n# input element inside ConditionalPanel component\neditor.conditionalPanel.placeholder=This breakpoint will pause when the expression is true\n\n# LOCALIZATION NOTE (editor.conditionalPanel.placeholder): Tooltip text for\n# close button inside ConditionalPanel component\neditor.conditionalPanel.close=Cancel edit breakpoint and close\n\n# LOCALIZATION NOTE (editor.jumpToMappedLocation1): Context menu item\n# for navigating to a source mapped location\neditor.jumpToMappedLocation1=Jump to %S location\n\n# LOCALIZATION NOTE (framework.disableGrouping): This is the text that appears in the\n# context menu to disable framework grouping.\nframework.disableGrouping=Disable Framework Grouping\nframework.disableGrouping.accesskey=u\n\n# LOCALIZATION NOTE (framework.enableGrouping): This is the text that appears in the\n# context menu to enable framework grouping.\nframework.enableGrouping=Enable Framework Grouping\nframework.enableGrouping.accesskey=u\n\n# LOCALIZATION NOTE (generated): Source Map term for a server source location\ngenerated=generated\n\n# LOCALIZATION NOTE (original): Source Map term for a debugger UI source location\noriginal=original\n\n# LOCALIZATION NOTE (expressions.placeholder): Placeholder text for expression\n# input element\nexpressions.placeholder=Add Watch Expression\n\n# LOCALIZATION NOTE (sourceTabs.closeTab): Editor source tab context menu item\n# for closing the selected tab below the mouse.\nsourceTabs.closeTab=Close tab\nsourceTabs.closeTab.accesskey=c\n\n# LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item\n# for closing the other tabs.\nsourceTabs.closeOtherTabs=Close others\nsourceTabs.closeOtherTabs.accesskey=o\n\n# LOCALIZATION NOTE (sourceTabs.closeTabsToEnd): Editor source tab context menu item\n# for closing the tabs to the end (the right for LTR languages) of the selected tab.\nsourceTabs.closeTabsToEnd=Close tabs to the right\nsourceTabs.closeTabsToEnd.accesskey=e\n\n# LOCALIZATION NOTE (sourceTabs.closeAllTabs): Editor source tab context menu item\n# for closing all tabs.\nsourceTabs.closeAllTabs=Close all tabs\nsourceTabs.closeAllTabs.accesskey=a\n\n# LOCALIZATION NOTE (sourceTabs.revealInTree): Editor source tab context menu item\n# for revealing source in tree.\nsourceTabs.revealInTree=Reveal in Tree\nsourceTabs.revealInTree.accesskey=r\n\n# LOCALIZATION NOTE (sourceTabs.copyLink): Editor source tab context menu item\n# for copying a link address.\nsourceTabs.copyLink=Copy Link Address\nsourceTabs.copyLink.accesskey=l\n\n# LOCALIZATION NOTE (sourceTabs.prettyPrint): Editor source tab context menu item\n# for pretty printing the source.\nsourceTabs.prettyPrint=Pretty Print Source\nsourceTabs.prettyPrint.accesskey=p\n\n# LOCALIZATION NOTE (sourceFooter.blackbox): Tooltip text associated\n# with the blackbox button\nsourceFooter.blackbox=Blackbox Source\nsourceFooter.blackbox.accesskey=B\n\n# LOCALIZATION NOTE (sourceFooter.unblackbox): Tooltip text associated\n# with the blackbox button\nsourceFooter.unblackbox=Unblackbox Source\nsourceFooter.unblackbox.accesskey=b\n\n# LOCALIZATION NOTE (sourceFooter.blackboxed): Text associated\n# with a blackboxed source\nsourceFooter.blackboxed=Blackboxed Source\n\n# LOCALIZATION NOTE (sourceTabs.closeTabButtonTooltip): The tooltip that is displayed\n# for close tab button in source tabs.\nsourceTabs.closeTabButtonTooltip=Close tab\n\n# LOCALIZATION NOTE (sourceTabs.newTabButtonTooltip): The tooltip that is displayed for\n# new tab button in source tabs.\nsourceTabs.newTabButtonTooltip=Search for sources (%S)\n\n# LOCALIZATION NOTE (scopes.header): Scopes right sidebar pane header.\nscopes.header=Scopes\n\n# LOCALIZATION NOTE (scopes.notAvailable): Scopes right sidebar pane message\n# for when the debugger is paused, but there isn't pause data.\nscopes.notAvailable=Scopes Unavailable\n\n# LOCALIZATION NOTE (scopes.notPaused): Scopes right sidebar pane message\n# for when the debugger is not paused.\nscopes.notPaused=Not Paused\n\n# LOCALIZATION NOTE (scopes.block): Refers to a block of code in\n# the scopes pane when the debugger is paused.\nscopes.block=Block\n\n# LOCALIZATION NOTE (sources.header): Sources left sidebar header\nsources.header=Sources\n\n# LOCALIZATION NOTE (sources.search): Sources left sidebar prompt\n# e.g. Cmd+P to search. On a mac, we use the command unicode character.\n# On windows, it's ctrl.\nsources.search=%S to search\n\n# LOCALIZATION NOTE (watchExpressions.header): Watch Expressions right sidebar\n# pane header.\nwatchExpressions.header=Watch Expressions\n\n# LOCALIZATION NOTE (watchExpressions.refreshButton): Watch Expressions header\n# button for refreshing the expressions.\nwatchExpressions.refreshButton=Refresh\n\n# LOCALIZATION NOTE (welcome.search): The center pane welcome panel's\n# search prompt. e.g. cmd+p to search for files. On windows, it's ctrl, on\n# a mac we use the unicode character.\nwelcome.search=%S to search for sources\n\n# LOCALIZATION NOTE (welcome.findInFiles): The center pane welcome panel's\n# search prompt. e.g. cmd+f to search for files. On windows, it's ctrl+shift+f, on\n# a mac we use the unicode character.\nwelcome.findInFiles=%S to find in files\n\n# LOCALIZATION NOTE (sourceSearch.search): The center pane Source Search\n# prompt for searching for files.\nsourceSearch.search=Search Sources…\n\n# LOCALIZATION NOTE (sourceSearch.noResults): The center pane Source Search\n# message when the query did not match any of the sources.\nsourceSearch.noResults2=No results found\n\n# LOCALIZATION NOTE (ignoreExceptions): The pause on exceptions button tooltip\n# when the debugger will not pause on exceptions.\nignoreExceptions=Ignore exceptions. Click to pause on uncaught exceptions\n\n# LOCALIZATION NOTE (pauseOnUncaughtExceptions): The pause on exceptions button\n# tooltip when the debugger will pause on uncaught exceptions.\npauseOnUncaughtExceptions=Pause on uncaught exceptions. Click to pause on all exceptions\n\n# LOCALIZATION NOTE (pauseOnExceptions): The pause on exceptions button tooltip\n# when the debugger will pause on all exceptions.\npauseOnExceptions=Pause on all exceptions. Click to ignore exceptions\n\n# LOCALIZATION NOTE (loadingText): The text that is displayed in the script\n# editor when the loading process has started but there is no file to display\n# yet.\nloadingText=Loading\\u2026\n\n# LOCALIZATION NOTE (errorLoadingText2): The text that is displayed in the debugger\n# viewer when there is an error loading a file\nerrorLoadingText2=Error loading this URL: %S\n\n# LOCALIZATION NOTE (addWatchExpressionText): The text that is displayed in the\n# watch expressions list to add a new item.\naddWatchExpressionText=Add watch expression\n\n# LOCALIZATION NOTE (addWatchExpressionButton): The button that is displayed in the\n# variables view popup.\naddWatchExpressionButton=Watch\n\n# LOCALIZATION NOTE (emptyVariablesText): The text that is displayed in the\n# variables pane when there are no variables to display.\nemptyVariablesText=No variables to display\n\n# LOCALIZATION NOTE (scopeLabel): The text that is displayed in the variables\n# pane as a header for each variable scope (e.g. \"Global scope, \"With scope\",\n# etc.).\nscopeLabel=%S scope\n\n# LOCALIZATION NOTE (watchExpressionsScopeLabel): The name of the watch\n# expressions scope. This text is displayed in the variables pane as a header for\n# the watch expressions scope.\nwatchExpressionsScopeLabel=Watch expressions\n\n# LOCALIZATION NOTE (globalScopeLabel): The name of the global scope. This text\n# is added to scopeLabel and displayed in the variables pane as a header for\n# the global scope.\nglobalScopeLabel=Global\n\n# LOCALIZATION NOTE (variablesViewErrorStacktrace): This is the text that is\n# shown before the stack trace in an error.\nvariablesViewErrorStacktrace=Stack trace:\n\n# LOCALIZATION NOTE (variablesViewMoreObjects): the text that is displayed\n# when you have an object preview that does not show all of the elements. At the end of the list\n# you see \"N more...\" in the web console output.\n# This is a semi-colon list of plural forms.\n# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals\n# #1 number of remaining items in the object\n# example: 3 more…\nvariablesViewMoreObjects=#1 more…;#1 more…\n\n# LOCALIZATION NOTE (variablesEditableNameTooltip): The text that is displayed\n# in the variables list on an item with an editable name.\nvariablesEditableNameTooltip=Double click to edit\n\n# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed\n# in the variables list on an item with an editable value.\nvariablesEditableValueTooltip=Click to change value\n\n# LOCALIZATION NOTE (variablesCloseButtonTooltip): The text that is displayed\n# in the variables list on an item which can be removed.\nvariablesCloseButtonTooltip=Click to remove\n\n# LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed\n# in the variables list on a getter or setter which can be edited.\nvariablesEditButtonTooltip=Click to set value\n\n# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed\n# in a tooltip on the \"open in inspector\" button in the the variables list for a\n# DOMNode item.\nvariablesDomNodeValueTooltip=Click to select the node in the inspector\n\n# LOCALIZATION NOTE (configurable|...|Tooltip): The text that is displayed\n# in the variables list on certain variables or properties as tooltips.\n# Expanations of what these represent can be found at the following links:\n# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\n# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible\n# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen\n# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed\n# It's probably best to keep these in English.\nconfigurableTooltip=configurable\nenumerableTooltip=enumerable\nwritableTooltip=writable\nfrozenTooltip=frozen\nsealedTooltip=sealed\nextensibleTooltip=extensible\noverriddenTooltip=overridden\nWebIDLTooltip=WebIDL\n\n# LOCALIZATION NOTE (variablesSeparatorLabel): The text that is displayed\n# in the variables list as a separator between the name and value.\nvariablesSeparatorLabel=:\n\n# LOCALIZATION NOTE (watchExpressionsSeparatorLabel2): The text that is displayed\n# in the watch expressions list as a separator between the code and evaluation.\nwatchExpressionsSeparatorLabel2=\\u0020→\n\n# LOCALIZATION NOTE (functionSearchSeparatorLabel): The text that is displayed\n# in the functions search panel as a separator between function's inferred name\n# and its real name (if available).\nfunctionSearchSeparatorLabel=←\n\n# LOCALIZATION NOTE(symbolSearch.search.functionsPlaceholder): The placeholder\n# text displayed when the user searches for functions in a file\nsymbolSearch.search.functionsPlaceholder=Search functions…\n\n# LOCALIZATION NOTE(symbolSearch.search.variablesPlaceholder): The placeholder\n# text displayed when the user searches for variables in a file\nsymbolSearch.search.variablesPlaceholder=Search variables…\n\n# LOCALIZATION NOTE(symbolSearch.search.key2): The Key Shortcut for\n# searching for a function or variable\nsymbolSearch.search.key2=CmdOrCtrl+Shift+O\n\n# LOCALIZATION NOTE(symbolSearch.searchModifier.modifiersLabel): A label\n# preceding the group of modifiers\nsymbolSearch.searchModifier.modifiersLabel=Modifiers:\n\n# LOCALIZATION NOTE(symbolSearch.searchModifier.regex): A search option\n# when searching text in a file\nsymbolSearch.searchModifier.regex=Regex\n\n# LOCALIZATION NOTE(symbolSearch.searchModifier.caseSensitive): A search option\n# when searching text in a file\nsymbolSearch.searchModifier.caseSensitive=Case sensitive\n\n# LOCALIZATION NOTE(symbolSearch.searchModifier.wholeWord): A search option\n# when searching text in a file\nsymbolSearch.searchModifier.wholeWord=Whole word\n\n# LOCALIZATION NOTE (resumptionOrderPanelTitle): This is the text that appears\n# as a description in the notification panel popup, when multiple debuggers are\n# open in separate tabs and the user tries to resume them in the wrong order.\n# The substitution parameter is the URL of the last paused window that must be\n# resumed first.\nresumptionOrderPanelTitle=There are one or more paused debuggers. Please resume the most-recently paused debugger first at: %S\n\nvariablesViewOptimizedOut=(optimized away)\nvariablesViewUninitialized=(uninitialized)\nvariablesViewMissingArgs=(unavailable)\n\nanonymousSourcesLabel=Anonymous Sources\n\nexperimental=This is an experimental feature\n\n# LOCALIZATION NOTE (whyPaused.debuggerStatement): The text that is displayed\n# in a info block explaining how the debugger is currently paused due to a `debugger`\n# statement in the code\nwhyPaused.debuggerStatement=Paused on debugger statement\n\n# LOCALIZATION NOTE (whyPaused.breakpoint): The text that is displayed\n# in a info block explaining how the debugger is currently paused on a breakpoint\nwhyPaused.breakpoint=Paused on breakpoint\n\n# LOCALIZATION NOTE (whyPaused.exception): The text that is displayed\n# in a info block explaining how the debugger is currently paused on an exception\nwhyPaused.exception=Paused on exception\n\n# LOCALIZATION NOTE (whyPaused.resumeLimit): The text that is displayed\n# in a info block explaining how the debugger is currently paused while stepping\n# in or out of the stack\nwhyPaused.resumeLimit=Paused while stepping\n\n# LOCALIZATION NOTE (whyPaused.pauseOnDOMEvents): The text that is displayed\n# in a info block explaining how the debugger is currently paused on a\n# dom event\nwhyPaused.pauseOnDOMEvents=Paused on event listener\n\n# LOCALIZATION NOTE (whyPaused.breakpointConditionThrown): The text that is displayed\n# in an info block when evaluating a conditional breakpoint throws an error\nwhyPaused.breakpointConditionThrown=Error with conditional breakpoint\n\n# LOCALIZATION NOTE (whyPaused.xhr): The text that is displayed\n# in a info block explaining how the debugger is currently paused on an\n# xml http request\nwhyPaused.xhr=Paused on XMLHttpRequest\n\n# LOCALIZATION NOTE (whyPaused.promiseRejection): The text that is displayed\n# in a info block explaining how the debugger is currently paused on a\n# promise rejection\nwhyPaused.promiseRejection=Paused on promise rejection\n\n# LOCALIZATION NOTE (whyPaused.assert): The text that is displayed\n# in a info block explaining how the debugger is currently paused on an\n# assert\nwhyPaused.assert=Paused on assertion\n\n# LOCALIZATION NOTE (whyPaused.debugCommand): The text that is displayed\n# in a info block explaining how the debugger is currently paused on a\n# debugger statement\nwhyPaused.debugCommand=Paused on debugged function\n\n# LOCALIZATION NOTE (whyPaused.other): The text that is displayed\n# in a info block explaining how the debugger is currently paused on an event\n# listener breakpoint set\nwhyPaused.other=Debugger paused\n\n# LOCALIZATION NOTE (ctrl): The text that is used for documenting\n# keyboard shortcuts that use the control key\nctrl=Ctrl\n"
/***/ }),
/* 961 */,
-/* 962 */,
+/* 962 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ }),
/* 963 */,
/* 964 */,
/* 965 */
@@ -39568,6 +40541,8 @@ exports.getAndProcessFrames = getAndProcessFrames;
var _react = __webpack_require__(0);
+var _react2 = _interopRequireDefault(_react);
+
var _redux = __webpack_require__(3);
var _reactRedux = __webpack_require__(151);
@@ -39598,7 +40573,7 @@ var _clipboard = __webpack_require__(423);
var _selectors = __webpack_require__(242);
-__webpack_require__(724);
+__webpack_require__(914);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -39680,25 +40655,29 @@ class Frames extends _react.Component {
var framesOrGroups = this.truncateFrames(this.collapseFrames(frames));
- return _react.DOM.ul({}, framesOrGroups.map(frameOrGroup => frameOrGroup.id ? FrameComponent({
- frame: frameOrGroup,
- toggleFrameworkGrouping: this.toggleFrameworkGrouping,
- copyStackTrace: this.copyStackTrace,
- frameworkGroupingOn,
- selectFrame,
- selectedFrame,
- toggleBlackBox,
- key: frameOrGroup.id
- }) : Group({
- group: frameOrGroup,
- toggleFrameworkGrouping: this.toggleFrameworkGrouping,
- copyStackTrace: this.copyStackTrace,
- frameworkGroupingOn,
- selectFrame,
- selectedFrame,
- toggleBlackBox,
- key: frameOrGroup[0].id
- })));
+ return _react2.default.createElement(
+ "ul",
+ null,
+ framesOrGroups.map(frameOrGroup => frameOrGroup.id ? FrameComponent({
+ frame: frameOrGroup,
+ toggleFrameworkGrouping: this.toggleFrameworkGrouping,
+ copyStackTrace: this.copyStackTrace,
+ frameworkGroupingOn,
+ selectFrame,
+ selectedFrame,
+ toggleBlackBox,
+ key: frameOrGroup.id
+ }) : Group({
+ group: frameOrGroup,
+ toggleFrameworkGrouping: this.toggleFrameworkGrouping,
+ copyStackTrace: this.copyStackTrace,
+ frameworkGroupingOn,
+ selectFrame,
+ selectedFrame,
+ toggleBlackBox,
+ key: frameOrGroup[0].id
+ }))
+ );
}
renderToggleButton(frames) {
@@ -39709,7 +40688,11 @@ class Frames extends _react.Component {
return null;
}
- return _react.DOM.div({ className: "show-more", onClick: this.toggleFramesDisplay }, buttonMessage);
+ return _react2.default.createElement(
+ "div",
+ { className: "show-more", onClick: this.toggleFramesDisplay },
+ buttonMessage
+ );
}
render() {
@@ -39719,10 +40702,24 @@ class Frames extends _react.Component {
if (!frames) {
- return _react.DOM.div({ className: "pane frames" }, _react.DOM.div({ className: "pane-info empty" }, L10N.getStr("callStack.notPaused")));
+ return _react2.default.createElement(
+ "div",
+ { className: "pane frames" },
+ _react2.default.createElement(
+ "div",
+ { className: "pane-info empty" },
+ L10N.getStr("callStack.notPaused")
+ )
+ );
}
- return _react.DOM.div({ className: "pane frames" }, this.renderFrames(frames), (0, _WhyPaused2.default)({ pause }), this.renderToggleButton(frames));
+ return _react2.default.createElement(
+ "div",
+ { className: "pane frames" },
+ this.renderFrames(frames),
+ (0, _WhyPaused2.default)({ pause }),
+ this.renderToggleButton(frames)
+ );
}
}
@@ -39780,6 +40777,8 @@ Object.defineProperty(exports, "__esModule", {
var _react = __webpack_require__(0);
+var _react2 = _interopRequireDefault(_react);
+
var _classnames = __webpack_require__(175);
var _classnames2 = _interopRequireDefault(_classnames);
@@ -39798,28 +40797,46 @@ var _FrameMenu2 = _interopRequireDefault(_FrameMenu);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-function renderFrameTitle(frame, options) {
+function FrameTitle(_ref) {
+ var frame = _ref.frame,
+ options = _ref.options;
+
var displayName = (0, _frame.formatDisplayName)(frame, options);
- return _react.DOM.div({ className: "title" }, displayName);
+ return _react2.default.createElement(
+ "div",
+ { className: "title" },
+ displayName
+ );
}
-function renderFrameLocation(_ref) {
- var source = _ref.source,
- location = _ref.location,
- library = _ref.library;
+FrameTitle.displayName = "FrameTitle";
- if (!source) {
+function FrameLocation(_ref2) {
+ var frame = _ref2.frame;
+
+ if (!frame.source) {
return;
}
- if (library) {
- return _react.DOM.div({ className: "location" }, library, (0, _Svg2.default)(library.toLowerCase(), { className: "annotation-logo" }));
+ if (frame.library) {
+ return _react2.default.createElement(
+ "div",
+ { className: "location" },
+ frame.library,
+ _react2.default.createElement(_Svg2.default, { name: frame.library.toLowerCase(), className: "annotation-logo" })
+ );
}
- var filename = (0, _source.getFilename)(source);
- return _react.DOM.div({ className: "location" }, `${filename}: ${location.line}`);
+ var filename = (0, _source.getFilename)(frame.source);
+ return _react2.default.createElement(
+ "div",
+ { className: "location" },
+ `${filename}: ${frame.location.line}`
+ );
}
+FrameLocation.displayName = "FrameLocation";
+
class FrameComponent extends _react.Component {
constructor() {
@@ -39859,16 +40876,22 @@ class FrameComponent extends _react.Component {
shouldMapDisplayName = _props2.shouldMapDisplayName;
- return _react.DOM.li({
- key: frame.id,
- className: (0, _classnames2.default)("frame", {
- selected: selectedFrame && selectedFrame.id === frame.id
- }),
- onMouseDown: e => this.onMouseDown(e, frame, selectedFrame),
- onKeyUp: e => this.onKeyUp(e, frame, selectedFrame),
- onContextMenu: e => this.onContextMenu(e),
- tabIndex: 0
- }, renderFrameTitle(frame, { shouldMapDisplayName }), !hideLocation ? renderFrameLocation(frame) : null);
+ var className = (0, _classnames2.default)("frame", {
+ selected: selectedFrame && selectedFrame.id === frame.id
+ });
+ return _react2.default.createElement(
+ "li",
+ {
+ key: frame.id,
+ className: className,
+ onMouseDown: e => this.onMouseDown(e, frame, selectedFrame),
+ onKeyUp: e => this.onKeyUp(e, frame, selectedFrame),
+ onContextMenu: e => this.onContextMenu(e),
+ tabIndex: 0
+ },
+ _react2.default.createElement(FrameTitle, { frame: frame, options: { shouldMapDisplayName } }),
+ !hideLocation && _react2.default.createElement(FrameLocation, { frame: frame })
+ );
}
}
@@ -39979,6 +41002,10 @@ function isRedux(frame) {
return getFrameUrl(frame).match(/redux/i);
}
+function isDojo(frame) {
+ return getFrameUrl(frame).match(/dojo/i);
+}
+
function getLibraryFromUrl(frame) {
// @TODO each of these fns calls getFrameUrl, just call it once
// (assuming there's not more complex logic to identify a lib)
@@ -40043,6 +41070,10 @@ function getLibraryFromUrl(frame) {
return "Redux";
}
+ if (isDojo(frame)) {
+ return "Dojo";
+ }
+
if (isImmutable(frame)) {
return "Immutable";
}
@@ -40210,6 +41241,8 @@ Object.defineProperty(exports, "__esModule", {
var _react = __webpack_require__(0);
+var _react2 = _interopRequireDefault(_react);
+
var _classnames = __webpack_require__(175);
var _classnames2 = _interopRequireDefault(_classnames);
@@ -40224,7 +41257,7 @@ var _FrameMenu = __webpack_require__(1032);
var _FrameMenu2 = _interopRequireDefault(_FrameMenu);
-__webpack_require__(722);
+__webpack_require__(909);
var _Frame = __webpack_require__(1013);
@@ -40234,16 +41267,24 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
var FrameComponent = (0, _react.createFactory)(_Frame2.default);
+function FrameLocation(_ref) {
+ var frame = _ref.frame;
-function renderFrameLocation(frame) {
var library = (0, _frame.getLibraryFromUrl)(frame);
if (!library) {
return null;
}
- return _react.DOM.div({ className: "location" }, library, (0, _Svg2.default)(library.toLowerCase(), { className: "annotation-logo" }));
+ return _react2.default.createElement(
+ "div",
+ { className: "location" },
+ library,
+ _react2.default.createElement(_Svg2.default, { name: library.toLowerCase(), className: "annotation-logo" })
+ );
}
+FrameLocation.displayName = "FrameLocation";
+
class Group extends _react.Component {
constructor() {
@@ -40284,38 +41325,57 @@ class Group extends _react.Component {
if (!expanded) {
return null;
}
- return _react.DOM.div({ className: "frames-list" }, group.map(frame => FrameComponent({
- frame,
- copyStackTrace,
- toggleFrameworkGrouping,
- frameworkGroupingOn,
- selectFrame,
- selectedFrame,
- toggleBlackBox,
- key: frame.id,
- hideLocation: true,
- shouldMapDisplayName: false
- })));
+
+ return _react2.default.createElement(
+ "div",
+ { className: "frames-list" },
+ group.map(frame => FrameComponent({
+ frame,
+ copyStackTrace,
+ toggleFrameworkGrouping,
+ frameworkGroupingOn,
+ selectFrame,
+ selectedFrame,
+ toggleBlackBox,
+ key: frame.id,
+ hideLocation: true,
+ shouldMapDisplayName: false
+ }))
+ );
}
renderDescription() {
var frame = this.props.group[0];
var displayName = (0, _frame.formatDisplayName)(frame);
- return _react.DOM.li({
- key: frame.id,
- className: (0, _classnames2.default)("group"),
- onClick: this.toggleFrames,
- tabIndex: 0
- }, _react.DOM.div({ className: "title" }, displayName), renderFrameLocation(frame));
+ return _react2.default.createElement(
+ "li",
+ {
+ key: frame.id,
+ className: (0, _classnames2.default)("group"),
+ onClick: this.toggleFrames,
+ tabIndex: 0
+ },
+ _react2.default.createElement(
+ "div",
+ { className: "title" },
+ displayName
+ ),
+ _react2.default.createElement(FrameLocation, { frame: frame })
+ );
}
render() {
var expanded = this.state.expanded;
- return _react.DOM.div({
- className: (0, _classnames2.default)("frames-group", { expanded }),
- onContextMenu: e => this.onContextMenu(e)
- }, this.renderDescription(), this.renderFrames());
+ return _react2.default.createElement(
+ "div",
+ {
+ className: (0, _classnames2.default)("frames-group", { expanded }),
+ onContextMenu: e => this.onContextMenu(e)
+ },
+ this.renderDescription(),
+ this.renderFrames()
+ );
}
}
@@ -40446,7 +41506,7 @@ var _classnames = __webpack_require__(175);
var _classnames2 = _interopRequireDefault(_classnames);
-__webpack_require__(709);
+__webpack_require__(879);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -40598,22 +41658,22 @@ module.exports = "