зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central to autoland. a=merge CLOSED TREE
This commit is contained in:
Коммит
2bb25fe9c6
|
@ -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
|
||||
|
|
|
@ -1045,11 +1045,12 @@ html .toggle-button.end.vertical svg {
|
|||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
.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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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<Ok>
|
||||
|
@ -1741,17 +1740,18 @@ IonBuilder::visitLoopEntry(CFGLoopEntry* loopEntry)
|
|||
setCurrent(header);
|
||||
pc = header->pc();
|
||||
|
||||
initLoopEntry();
|
||||
return Ok();
|
||||
}
|
||||
|
||||
bool
|
||||
IonBuilder::initLoopEntry()
|
||||
AbortReasonOr<Ok>
|
||||
IonBuilder::jsop_loopentry()
|
||||
{
|
||||
MOZ_ASSERT(*pc == JSOP_LOOPENTRY);
|
||||
|
||||
current->add(MInterruptCheck::New(alloc()));
|
||||
insertRecompileCheck();
|
||||
|
||||
return true;
|
||||
return Ok();
|
||||
}
|
||||
|
||||
AbortReasonOr<Ok>
|
||||
|
@ -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<MBasicBlock*>
|
|||
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
|
||||
|
|
|
@ -125,7 +125,6 @@ class IonBuilder
|
|||
// Restarts processing of a loop if the type information at its header was
|
||||
// incomplete.
|
||||
AbortReasonOr<Ok> 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<Ok> jsop_label();
|
||||
AbortReasonOr<Ok> jsop_andor(JSOp op);
|
||||
AbortReasonOr<Ok> jsop_dup2();
|
||||
AbortReasonOr<Ok> jsop_loopentry();
|
||||
AbortReasonOr<Ok> jsop_loophead(jsbytecode* pc);
|
||||
AbortReasonOr<Ok> jsop_compare(JSOp op);
|
||||
AbortReasonOr<Ok> jsop_compare(JSOp op, MDefinition* left, MDefinition* right);
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче