diff --git a/devtools/client/debugger/new/README.mozilla b/devtools/client/debugger/new/README.mozilla index 3afd009d6ce6..a4d1e08265a2 100644 --- a/devtools/client/debugger/new/README.mozilla +++ b/devtools/client/debugger/new/README.mozilla @@ -1,9 +1,9 @@ This is the debugger.html project output. See https://github.com/devtools-html/debugger.html -Version 62 +Version 64 -Comparison: https://github.com/devtools-html/debugger.html/compare/release-61...release-62 +Comparison: https://github.com/devtools-html/debugger.html/compare/release-63...release-64 Packages: - babel-plugin-transform-es2015-modules-commonjs @6.26.2 diff --git a/devtools/client/debugger/new/dist/debugger.css b/devtools/client/debugger/new/dist/debugger.css index 19f81d38721f..00d038d12f10 100644 --- a/devtools/client/debugger/new/dist/debugger.css +++ b/devtools/client/debugger/new/dist/debugger.css @@ -1045,11 +1045,12 @@ html .toggle-button.end.vertical svg { * file, You can obtain one at . */ .search-shadow { - margin: 1px; + border: 1px solid transparent; } .search-shadow.focused { - box-shadow: var(--theme-focus-box-shadow-textbox); + border: 1px solid var(--blue-50); + transition: border-color 0.2s ease-in-out; } .search-field { @@ -2661,7 +2662,7 @@ button.jump-definition { } .theme-dark .editor-wrapper { - --debug-expression-background: #54617e; + --debug-expression-background: rgba(202, 227, 255, 0.3); --debug-line-border: #7786a2; } @@ -2710,7 +2711,7 @@ html[dir="rtl"] .editor-mount { :not(.empty-line):not(.new-breakpoint) > .CodeMirror-gutter-wrapper:hover { width: 60px; height: 13px; - left: -55px !important; + margin-left: -25px; background-color: var(--gutter-hover-background-color) !important; mask: url("chrome://devtools/skin/images/debugger/breakpoint.svg") no-repeat; mask-size: 100%; @@ -3860,8 +3861,6 @@ html[dir="rtl"] .object-node { flex-direction: column; flex: 1; white-space: nowrap; - -moz-user-select: none; - user-select: none; --breakpoint-expression-right-clear-space: 36px; --breakpoint-expression-height: 2.4em; } diff --git a/devtools/client/debugger/new/src/components/Editor/Breakpoint.js b/devtools/client/debugger/new/src/components/Editor/Breakpoint.js index 938ce4220343..b8ada2bf9fd6 100644 --- a/devtools/client/debugger/new/src/components/Editor/Breakpoint.js +++ b/devtools/client/debugger/new/src/components/Editor/Breakpoint.js @@ -78,15 +78,6 @@ class Breakpoint extends _react.Component { }; } - shouldComponentUpdate(nextProps) { - const { - editor, - breakpoint, - selectedSource - } = this.props; - 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() { this.addBreakpoint(); } diff --git a/devtools/client/debugger/new/src/components/SecondaryPanes/Scopes.js b/devtools/client/debugger/new/src/components/SecondaryPanes/Scopes.js index 41bdae84e63a..09657a2fe20f 100644 --- a/devtools/client/debugger/new/src/components/SecondaryPanes/Scopes.js +++ b/devtools/client/debugger/new/src/components/SecondaryPanes/Scopes.js @@ -66,7 +66,8 @@ class Scopes extends _react.PureComponent { render() { const { isPaused, - isLoading + isLoading, + openLink } = this.props; const { originalScopes, @@ -85,6 +86,7 @@ class Scopes extends _react.PureComponent { disableWrap: true, focusable: false, dimTopLevelWindow: true, + openLink: openLink, createObjectClient: grip => (0, _firefox.createObjectClient)(grip) }), originalScopes ? _react2.default.createElement("div", { className: "scope-type-toggle" diff --git a/devtools/client/debugger/new/src/utils/sources-tree/getURL.js b/devtools/client/debugger/new/src/utils/sources-tree/getURL.js index ed95d66abac9..ad79c849e102 100644 --- a/devtools/client/debugger/new/src/utils/sources-tree/getURL.js +++ b/devtools/client/debugger/new/src/utils/sources-tree/getURL.js @@ -57,19 +57,19 @@ function getURL(sourceUrl, debuggeeUrl = "") { // Ignore `javascript:` URLs for now return def; - case "webpack:": - // A Webpack source is a special case + case "moz-extension:": + case "resource:": return (0, _lodash.merge)(def, { - path: path, - group: "webpack://", - filename: filename + path, + group: `${protocol}//${host || ""}`, + filename }); + case "webpack:": case "ng:": - // An Angular source is a special case return (0, _lodash.merge)(def, { path: path, - group: "ng://", + group: `${protocol}//`, filename: filename }); @@ -90,16 +90,14 @@ function getURL(sourceUrl, debuggeeUrl = "") { case null: if (pathname && pathname.startsWith("/")) { - // If it's just a URL like "/foo/bar.js", resolve it to the file - // protocol + // use file protocol for a URL like "/foo/bar.js" return (0, _lodash.merge)(def, { path: path, group: "file://", filename: filename }); } else if (host === null) { - // We don't know what group to put this under, and it's a script - // with a weird URL. Just group them all under an anonymous group. + // use anonymous group for weird URLs return (0, _lodash.merge)(def, { path: url, group: defaultDomain, diff --git a/js/src/jit/IonBuilder.cpp b/js/src/jit/IonBuilder.cpp index 3e9aa2c2d3b5..6776426ca82b 100644 --- a/js/src/jit/IonBuilder.cpp +++ b/js/src/jit/IonBuilder.cpp @@ -1635,8 +1635,7 @@ IonBuilder::blockIsOSREntry(const CFGBlock* block, const CFGBlock* predecessor) } MOZ_ASSERT(*info().osrPc() == JSOP_LOOPENTRY); - // Skip over the LOOPENTRY to match. - return GetNextPc(info().osrPc()) == entryPc; + return info().osrPc() == entryPc; } AbortReasonOr @@ -1741,17 +1740,18 @@ IonBuilder::visitLoopEntry(CFGLoopEntry* loopEntry) setCurrent(header); pc = header->pc(); - initLoopEntry(); return Ok(); } -bool -IonBuilder::initLoopEntry() +AbortReasonOr +IonBuilder::jsop_loopentry() { + MOZ_ASSERT(*pc == JSOP_LOOPENTRY); + current->add(MInterruptCheck::New(alloc())); insertRecompileCheck(); - return true; + return Ok(); } AbortReasonOr @@ -1809,7 +1809,6 @@ IonBuilder::inspectOpcode(JSOp op) case JSOP_THROW: case JSOP_GOTO: case JSOP_CONDSWITCH: - case JSOP_LOOPENTRY: case JSOP_TABLESWITCH: case JSOP_CASE: case JSOP_DEFAULT: @@ -2377,7 +2376,10 @@ IonBuilder::inspectOpcode(JSOp op) } case JSOP_IMPORTMETA: - return jsop_importmeta(); + return jsop_importmeta(); + + case JSOP_LOOPENTRY: + return jsop_loopentry(); // ===== NOT Yet Implemented ===== // Read below! @@ -2506,7 +2508,6 @@ IonBuilder::restartLoop(const CFGBlock* cfgHeader) setCurrent(header); pc = header->pc(); - initLoopEntry(); return Ok(); } @@ -6635,7 +6636,8 @@ AbortReasonOr IonBuilder::newOsrPreheader(MBasicBlock* predecessor, jsbytecode* loopEntry, jsbytecode* beforeLoopEntry) { - MOZ_ASSERT(loopEntry == GetNextPc(info().osrPc())); + MOZ_ASSERT(JSOp(*loopEntry) == JSOP_LOOPENTRY); + MOZ_ASSERT(loopEntry == info().osrPc()); // Create two blocks: one for the OSR entry with no predecessors, one for // the preheader, which has the OSR entry block as a predecessor. The diff --git a/js/src/jit/IonBuilder.h b/js/src/jit/IonBuilder.h index 5a66b7bd988c..799a10b3eb1d 100644 --- a/js/src/jit/IonBuilder.h +++ b/js/src/jit/IonBuilder.h @@ -125,7 +125,6 @@ class IonBuilder // Restarts processing of a loop if the type information at its header was // incomplete. AbortReasonOr restartLoop(const CFGBlock* header); - bool initLoopEntry(); // Please see the Big Honkin' Comment about how resume points work in // IonBuilder.cpp, near the definition for this function. @@ -509,6 +508,7 @@ class IonBuilder AbortReasonOr jsop_label(); AbortReasonOr jsop_andor(JSOp op); AbortReasonOr jsop_dup2(); + AbortReasonOr jsop_loopentry(); AbortReasonOr jsop_loophead(jsbytecode* pc); AbortReasonOr jsop_compare(JSOp op); AbortReasonOr jsop_compare(JSOp op, MDefinition* left, MDefinition* right); diff --git a/js/src/jit/IonControlFlow.cpp b/js/src/jit/IonControlFlow.cpp index 18d9e49d1989..52e25cecdf73 100644 --- a/js/src/jit/IonControlFlow.cpp +++ b/js/src/jit/IonControlFlow.cpp @@ -933,7 +933,7 @@ ControlFlowGenerator::processWhileOrForInLoop(jssrcnote* sn) jsbytecode* exitpc = GetNextPc(ifne); jsbytecode* continuepc = pc; - CFGBlock* header = CFGBlock::New(alloc(), GetNextPc(loopEntry)); + CFGBlock* header = CFGBlock::New(alloc(), loopEntry); CFGLoopEntry* ins = CFGLoopEntry::New(alloc(), header, stackPhiCount); if (LoopEntryCanIonOsr(loopEntry)) @@ -1481,7 +1481,7 @@ ControlFlowGenerator::processForLoop(JSOp op, jssrcnote* sn) MOZ_ASSERT(JSOp(*loopEntry) == JSOP_LOOPENTRY); - CFGBlock* header = CFGBlock::New(alloc(), GetNextPc(loopEntry)); + CFGBlock* header = CFGBlock::New(alloc(), loopEntry); CFGLoopEntry* ins = CFGLoopEntry::New(alloc(), header, 0); if (LoopEntryCanIonOsr(loopEntry)) @@ -1549,7 +1549,7 @@ ControlFlowGenerator::processDoWhileLoop(jssrcnote* sn) jsbytecode* loopEntry = GetNextPc(loopHead); - CFGBlock* header = CFGBlock::New(alloc(), GetNextPc(loopEntry)); + CFGBlock* header = CFGBlock::New(alloc(), loopEntry); CFGLoopEntry* ins = CFGLoopEntry::New(alloc(), header, 0); if (LoopEntryCanIonOsr(loopEntry)) diff --git a/layout/generic/WritingModes.h b/layout/generic/WritingModes.h index 1dbfaf9f08a9..c4db80404c0d 100644 --- a/layout/generic/WritingModes.h +++ b/layout/generic/WritingModes.h @@ -1006,6 +1006,10 @@ public: CHECK_WRITING_MODE(aWritingMode); return mSize.height; } + nscoord Size(LogicalAxis aAxis, WritingMode aWM) const + { + return aAxis == eLogicalAxisInline ? ISize(aWM) : BSize(aWM); + } nscoord Width(WritingMode aWritingMode) const { @@ -1031,6 +1035,10 @@ public: CHECK_WRITING_MODE(aWritingMode); return mSize.height; } + nscoord& Size(LogicalAxis aAxis, WritingMode aWM) + { + return aAxis == eLogicalAxisInline ? ISize(aWM) : BSize(aWM); + } /** * Return an nsSize containing our physical dimensions @@ -1224,6 +1232,14 @@ public: CHECK_WRITING_MODE(aWritingMode); return mMargin.bottom; } + nscoord Start(LogicalAxis aAxis, WritingMode aWM) const + { + return aAxis == eLogicalAxisInline ? IStart(aWM) : BStart(aWM); + } + nscoord End(LogicalAxis aAxis, WritingMode aWM) const + { + return aAxis == eLogicalAxisInline ? IEnd(aWM) : BEnd(aWM); + } nscoord& IStart(WritingMode aWritingMode) // inline-start margin { @@ -1245,6 +1261,14 @@ public: CHECK_WRITING_MODE(aWritingMode); return mMargin.bottom; } + nscoord& Start(LogicalAxis aAxis, WritingMode aWM) + { + return aAxis == eLogicalAxisInline ? IStart(aWM) : BStart(aWM); + } + nscoord& End(LogicalAxis aAxis, WritingMode aWM) + { + return aAxis == eLogicalAxisInline ? IEnd(aWM) : BEnd(aWM); + } nscoord IStartEnd(WritingMode aWritingMode) const // inline margins { @@ -1256,6 +1280,10 @@ public: CHECK_WRITING_MODE(aWritingMode); return mMargin.TopBottom(); } + nscoord StartEnd(LogicalAxis aAxis, WritingMode aWM) const + { + return aAxis == eLogicalAxisInline ? IStartEnd(aWM) : BStartEnd(aWM); + } /* * Return margin values for line-relative sides, as defined in