Merge mozilla-central to autoland. a=merge on a CLOSED TREE

This commit is contained in:
Andreea Pavel 2018-05-21 12:48:54 +03:00
Родитель 13a006d57e 03aa669ec0
Коммит 8940bb6982
117 изменённых файлов: 2325 добавлений и 981 удалений

Просмотреть файл

@ -1,5 +1,5 @@
This is the PDF.js project output, https://github.com/mozilla/pdf.js
Current extension version is: 2.0.491
Current extension version is: 2.0.506
Taken from upstream commit: 2dc4af52
Taken from upstream commit: b7a3a5e7

Просмотреть файл

@ -37,5 +37,7 @@ var PdfJsDefaultPreferences = Object.freeze({
"renderInteractiveForms": false,
"enablePrintAutoRotate": false,
"disablePageMode": false,
"disablePageLabels": false
"disablePageLabels": false,
"scrollModeOnLoad": 0,
"spreadModeOnLoad": 0
});

Просмотреть файл

@ -1650,8 +1650,8 @@ exports.GlobalWorkerOptions = GlobalWorkerOptions;
"use strict";
var pdfjsVersion = '2.0.491';
var pdfjsBuild = '2dc4af52';
var pdfjsVersion = '2.0.506';
var pdfjsBuild = 'b7a3a5e7';
var pdfjsSharedUtil = __w_pdfjs_require__(0);
var pdfjsDisplayAPI = __w_pdfjs_require__(9);
var pdfjsDisplayTextLayer = __w_pdfjs_require__(17);
@ -4929,7 +4929,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
}
return worker.messageHandler.sendWithPromise('GetDocRequest', {
docId,
apiVersion: '2.0.491',
apiVersion: '2.0.506',
source: {
data: source.data,
url: source.url,
@ -6252,8 +6252,8 @@ var InternalRenderTask = function InternalRenderTaskClosure() {
}();
var version, build;
{
exports.version = version = '2.0.491';
exports.build = build = '2dc4af52';
exports.version = version = '2.0.506';
exports.build = build = 'b7a3a5e7';
}
exports.getDocument = getDocument;
exports.LoopbackPort = LoopbackPort;

Просмотреть файл

@ -21103,8 +21103,8 @@ exports.PostScriptCompiler = PostScriptCompiler;
"use strict";
var pdfjsVersion = '2.0.491';
var pdfjsBuild = '2dc4af52';
var pdfjsVersion = '2.0.506';
var pdfjsBuild = 'b7a3a5e7';
var pdfjsCoreWorker = __w_pdfjs_require__(20);
exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;
@ -21305,7 +21305,7 @@ var WorkerMessageHandler = {
var cancelXHRs = null;
var WorkerTasks = [];
let apiVersion = docParams.apiVersion;
let workerVersion = '2.0.491';
let workerVersion = '2.0.506';
if (apiVersion !== null && apiVersion !== workerVersion) {
throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`);
}

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 218 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 332 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 228 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 349 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 297 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 490 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 347 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 694 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 179 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 261 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 344 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 621 B

Просмотреть файл

@ -290,6 +290,46 @@
border: none;
}
.pdfViewer.scrollHorizontal, .pdfViewer.scrollWrapped, .spread {
margin-left: 3.5px;
margin-right: 3.5px;
text-align: center;
}
.pdfViewer.scrollHorizontal, .spread {
white-space: nowrap;
}
.pdfViewer.removePageBorders,
.pdfViewer.scrollHorizontal .spread,
.pdfViewer.scrollWrapped .spread {
margin-left: 0;
margin-right: 0;
}
.spread .page,
.pdfViewer.scrollHorizontal .page,
.pdfViewer.scrollWrapped .page,
.pdfViewer.scrollHorizontal .spread,
.pdfViewer.scrollWrapped .spread {
display: inline-block;
vertical-align: middle;
}
.spread .page,
.pdfViewer.scrollHorizontal .page,
.pdfViewer.scrollWrapped .page {
margin-left: -3.5px;
margin-right: -3.5px;
}
.pdfViewer.removePageBorders .spread .page,
.pdfViewer.removePageBorders.scrollHorizontal .page,
.pdfViewer.removePageBorders.scrollWrapped .page {
margin-left: 5px;
margin-right: 5px;
}
.pdfViewer .page canvas {
margin: 0;
display: block;
@ -309,6 +349,22 @@
background: url('images/loading-icon.gif') center no-repeat;
}
.pdfPresentationMode .pdfViewer {
margin-left: 0;
margin-right: 0;
}
.pdfPresentationMode .pdfViewer .page,
.pdfPresentationMode .pdfViewer .spread {
display: block;
}
.pdfPresentationMode .pdfViewer .page,
.pdfPresentationMode .pdfViewer.removePageBorders .page {
margin-left: auto;
margin-right: auto;
}
.pdfPresentationMode:-moz-full-screen .pdfViewer .page {
margin-bottom: 100%;
border: 0;
@ -1279,6 +1335,30 @@ html[dir="rtl"] .secondaryToolbarButton > span {
content: url(images/secondaryToolbarButton-handTool.png);
}
.secondaryToolbarButton.scrollVertical::before {
content: url(images/secondaryToolbarButton-scrollVertical.png);
}
.secondaryToolbarButton.scrollHorizontal::before {
content: url(images/secondaryToolbarButton-scrollHorizontal.png);
}
.secondaryToolbarButton.scrollWrapped::before {
content: url(images/secondaryToolbarButton-scrollWrapped.png);
}
.secondaryToolbarButton.spreadNone::before {
content: url(images/secondaryToolbarButton-spreadNone.png);
}
.secondaryToolbarButton.spreadOdd::before {
content: url(images/secondaryToolbarButton-spreadOdd.png);
}
.secondaryToolbarButton.spreadEven::before {
content: url(images/secondaryToolbarButton-spreadEven.png);
}
.secondaryToolbarButton.documentProperties::before {
content: url(images/secondaryToolbarButton-documentProperties.png);
}
@ -1996,6 +2076,30 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
content: url(images/secondaryToolbarButton-handTool@2x.png);
}
.secondaryToolbarButton.scrollVertical::before {
content: url(images/secondaryToolbarButton-scrollVertical@2x.png);
}
.secondaryToolbarButton.scrollHorizontal::before {
content: url(images/secondaryToolbarButton-scrollHorizontal@2x.png);
}
.secondaryToolbarButton.scrollWrapped::before {
content: url(images/secondaryToolbarButton-scrollWrapped@2x.png);
}
.secondaryToolbarButton.spreadNone::before {
content: url(images/secondaryToolbarButton-spreadNone@2x.png);
}
.secondaryToolbarButton.spreadOdd::before {
content: url(images/secondaryToolbarButton-spreadOdd@2x.png);
}
.secondaryToolbarButton.spreadEven::before {
content: url(images/secondaryToolbarButton-spreadEven@2x.png);
}
.secondaryToolbarButton.documentProperties::before {
content: url(images/secondaryToolbarButton-documentProperties@2x.png);
}

Просмотреть файл

@ -146,7 +146,31 @@ See https://github.com/adobe-type-tools/cmap-resources
<div class="horizontalToolbarSeparator"></div>
<button id="documentProperties" class="secondaryToolbarButton documentProperties" title="Document Properties…" tabindex="62" data-l10n-id="document_properties">
<button id="scrollVertical" class="secondaryToolbarButton scrollVertical toggled" title="Use Vertical Scrolling" tabindex="62" data-l10n-id="scroll_vertical">
<span data-l10n-id="scroll_vertical_label">Vertical Scrolling</span>
</button>
<button id="scrollHorizontal" class="secondaryToolbarButton scrollHorizontal" title="Use Horizontal Scrolling" tabindex="63" data-l10n-id="scroll_horizontal">
<span data-l10n-id="scroll_horizontal_label">Horizontal Scrolling</span>
</button>
<button id="scrollWrapped" class="secondaryToolbarButton scrollWrapped" title="Use Wrapped Scrolling" tabindex="64" data-l10n-id="scroll_wrapped">
<span data-l10n-id="scroll_wrapped_label">Wrapped Scrolling</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<button id="spreadNone" class="secondaryToolbarButton spreadNone toggled" title="Do not join page spreads" tabindex="65" data-l10n-id="spread_none">
<span data-l10n-id="spread_none_label">No Spreads</span>
</button>
<button id="spreadOdd" class="secondaryToolbarButton spreadOdd" title="Join page spreads starting with odd-numbered pages" tabindex="66" data-l10n-id="spread_odd">
<span data-l10n-id="spread_odd_label">Odd Spreads</span>
</button>
<button id="spreadEven" class="secondaryToolbarButton spreadEven" title="Join page spreads starting with even-numbered pages" tabindex="67" data-l10n-id="spread_even">
<span data-l10n-id="spread_even_label">Even Spreads</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<button id="documentProperties" class="secondaryToolbarButton documentProperties" title="Document Properties…" tabindex="68" data-l10n-id="document_properties">
<span data-l10n-id="document_properties_label">Document Properties…</span>
</button>
</div>

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -65,6 +65,20 @@ cursor_text_select_tool_label=Text Selection Tool
cursor_hand_tool.title=Enable Hand Tool
cursor_hand_tool_label=Hand Tool
scroll_vertical.title=Use Vertical Scrolling
scroll_vertical_label=Vertical Scrolling
scroll_horizontal.title=Use Horizontal Scrolling
scroll_horizontal_label=Horizontal Scrolling
scroll_wrapped.title=Use Wrapped Scrolling
scroll_wrapped_label=Wrapped Scrolling
spread_none.title=Do not join page spreads
spread_none_label=No Spreads
spread_odd.title=Join page spreads starting with odd-numbered pages
spread_odd_label=Odd Spreads
spread_even.title=Join page spreads starting with even-numbered pages
spread_even_label=Even Spreads
# Document properties dialog box
document_properties.title=Document Properties…
document_properties_label=Document Properties…

Просмотреть файл

@ -345,15 +345,6 @@ gfxWindowsPlatform::InitAcceleration()
{
gfxPlatform::InitAcceleration();
// Set up the D3D11 feature levels we can ask for.
if (IsWin8OrLater()) {
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_11_1);
}
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_11_0);
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_10_1);
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_10_0);
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_9_3);
DeviceManagerDx::Init();
InitializeConfig();

Просмотреть файл

@ -265,8 +265,6 @@ private:
DWRITE_MEASURING_MODE mMeasuringMode;
RefPtr<mozilla::layers::ReadbackManagerD3D11> mD3D11ReadbackManager;
nsTArray<D3D_FEATURE_LEVEL> mFeatureLevels;
};
#endif /* GFX_WINDOWS_PLATFORM_H */

Просмотреть файл

@ -1962,9 +1962,6 @@ class MOZ_STACK_CLASS IfThenElseEmitter
JumpList jumpAroundThen_;
JumpList jumpsAroundElse_;
// The source note index for SRC_IF, SRC_IF_ELSE, or SRC_COND.
unsigned noteIndex_;
// The stack depth before emitting the then block.
// Used for restoring stack depth before emitting the else block.
// Also used for assertion to make sure then and else blocks pushed the
@ -2014,7 +2011,6 @@ class MOZ_STACK_CLASS IfThenElseEmitter
public:
explicit IfThenElseEmitter(BytecodeEmitter* bce)
: bce_(bce),
noteIndex_(-1),
thenDepth_(0),
#ifdef DEBUG
pushed_(0),
@ -2037,7 +2033,7 @@ class MOZ_STACK_CLASS IfThenElseEmitter
// Emit an annotated branch-if-false around the then part.
SrcNoteType type = nextState == If ? SRC_IF : nextState == IfElse ? SRC_IF_ELSE : SRC_COND;
if (!bce_->newSrcNote(type, &noteIndex_))
if (!bce_->newSrcNote(type))
return false;
if (!bce_->emitJump(JSOP_IFEQ, &jumpAroundThen_))
return false;
@ -2093,17 +2089,6 @@ class MOZ_STACK_CLASS IfThenElseEmitter
if (!bce_->emitJumpTargetAndPatch(jumpAroundThen_))
return false;
// Annotate SRC_IF_ELSE or SRC_COND with the offset from branch to
// jump, for IonMonkey's benefit. We can't just "back up" from the pc
// of the else clause, because we don't know whether an extended
// jump was required to leap from the end of the then clause over
// the else clause.
if (!bce_->setSrcNoteOffset(noteIndex_, 0,
jumpsAroundElse_.offset - jumpAroundThen_.offset))
{
return false;
}
// Restore stack depth of the then part.
bce_->stackDepth = thenDepth_;
state_ = Else;

Просмотреть файл

@ -37,8 +37,8 @@ namespace js {
#define FOR_EACH_SRC_NOTE_TYPE(M) \
M(SRC_NULL, "null", 0) /* Terminates a note vector. */ \
M(SRC_IF, "if", 0) /* JSOP_IFEQ bytecode is from an if-then. */ \
M(SRC_IF_ELSE, "if-else", 1) /* JSOP_IFEQ bytecode is from an if-then-else. */ \
M(SRC_COND, "cond", 1) /* JSOP_IFEQ is from conditional ?: operator. */ \
M(SRC_IF_ELSE, "if-else", 0) /* JSOP_IFEQ bytecode is from an if-then-else. */ \
M(SRC_COND, "cond", 0) /* JSOP_IFEQ is from conditional ?: operator. */ \
M(SRC_FOR, "for", 3) /* JSOP_NOP or JSOP_POP in for(;;) loop head. */ \
M(SRC_WHILE, "while", 1) /* JSOP_GOTO to for or while loop condition from before \
loop, else JSOP_NOP at top of do-while loop. */ \

Просмотреть файл

@ -0,0 +1,3 @@
for (var i = 0; i < 2; i++) {
evaluate("var obj = {[Symbol.iterator]: Symbol.iterator};");
}

Просмотреть файл

@ -0,0 +1,11 @@
class Base {}
class Derived extends Base {
constructor() {
var fun = async() => {
for (var i = 0; i < 20; i++) {} // Trigger OSR.
super();
};
fun();
}
}
d = new Derived();

Просмотреть файл

@ -4698,19 +4698,6 @@ BaselineCompiler::emit_JSOP_RESUME()
return false;
#endif
Register constructing = regs.takeAny();
ValueOperand newTarget = regs.takeAnyValue();
masm.loadValue(Address(genObj, GeneratorObject::offsetOfNewTargetSlot()), newTarget);
masm.move32(Imm32(0), constructing);
{
Label notConstructing;
masm.branchTestObject(Assembler::NotEqual, newTarget, &notConstructing);
masm.pushValue(newTarget);
masm.move32(Imm32(CalleeToken_FunctionConstructing), constructing);
masm.bind(&notConstructing);
}
regs.add(newTarget);
// Push |undefined| for all formals.
Register scratch2 = regs.takeAny();
Label loop, loopDone;
@ -4735,14 +4722,10 @@ BaselineCompiler::emit_JSOP_RESUME()
masm.makeFrameDescriptor(scratch2, JitFrame_BaselineJS, JitFrameLayout::Size());
masm.Push(Imm32(0)); // actual argc
// Duplicate PushCalleeToken with a variable instead.
masm.orPtr(constructing, callee);
masm.Push(callee);
masm.PushCalleeToken(callee, /* constructing = */ false);
masm.Push(scratch2); // frame descriptor
regs.add(callee);
regs.add(constructing);
// Load the return value.
ValueOperand retVal = regs.takeAnyValue();

Просмотреть файл

@ -703,7 +703,6 @@ CacheRegisterAllocator::assertValidState() const
const auto& loc2 = operandLocations_[j];
if (loc2.isUninitialized())
continue;
MOZ_ASSERT(loc1 != loc2);
MOZ_ASSERT(!loc1.aliasesReg(loc2));
}
}

Просмотреть файл

@ -1762,22 +1762,22 @@ ControlFlowGenerator::processIfStart(JSOp op)
// The bytecode for if/ternary gets emitted either like this:
//
// IFEQ X ; src note (IF_ELSE, COND) points to the GOTO
// IFEQ X ; src note (IF_ELSE, COND)
// ...
// GOTO Z
// X: ... ; else/else if
// X: JUMPTARGET ; else/else if
// ...
// Z: ; join
// Z: JUMPTARGET ; join
//
// Or like this:
//
// IFEQ X ; src note (IF) has no offset
// IFEQ X ; src note (IF)
// ...
// Z: ... ; join
// X: JUMPTARGET ; join
//
// We want to parse the bytecode as if we were parsing the AST, so for the
// IF_ELSE/COND cases, we use the source note and follow the GOTO. For the
// IF case, the IFEQ offset is the join point.
// IF_ELSE/COND cases, we use the IFEQ/GOTO bytecode offsets to follow the
// branch. For the IF case, the IFEQ offset is the join point.
switch (SN_TYPE(sn)) {
case SRC_IF:
if (!cfgStack_.append(CFGState::If(falseStart, test)))
@ -1789,9 +1789,9 @@ ControlFlowGenerator::processIfStart(JSOp op)
{
// Infer the join point from the JSOP_GOTO[X] sitting here, then
// assert as we much we can that this is the right GOTO.
jsbytecode* trueEnd = pc + GetSrcNoteOffset(sn, 0);
MOZ_ASSERT(JSOp(*falseStart) == JSOP_JUMPTARGET);
jsbytecode* trueEnd = falseStart - JSOP_GOTO_LENGTH;
MOZ_ASSERT(trueEnd > pc);
MOZ_ASSERT(trueEnd < falseStart);
MOZ_ASSERT(JSOp(*trueEnd) == JSOP_GOTO);
MOZ_ASSERT(!GetSrcNote(gsn, script, trueEnd));

Просмотреть файл

@ -2695,6 +2695,8 @@ SrcNotes(JSContext* cx, HandleScript script, Sprinter* sp)
switch (type) {
case SRC_NULL:
case SRC_IF:
case SRC_IF_ELSE:
case SRC_COND:
case SRC_CONTINUE:
case SRC_BREAK:
case SRC_BREAK2LABEL:
@ -2729,18 +2731,12 @@ SrcNotes(JSContext* cx, HandleScript script, Sprinter* sp)
}
break;
case SRC_IF_ELSE:
if (!sp->jsprintf(" else %u", unsigned(GetSrcNoteOffset(sn, 0))))
return false;
break;
case SRC_FOR_IN:
case SRC_FOR_OF:
if (!sp->jsprintf(" closingjump %u", unsigned(GetSrcNoteOffset(sn, 0))))
return false;
break;
case SRC_COND:
case SRC_WHILE:
case SRC_NEXTCASE:
if (!sp->jsprintf(" offset %u", unsigned(GetSrcNoteOffset(sn, 0))))

Просмотреть файл

@ -21,6 +21,7 @@ GeneratorObject::create(JSContext* cx, AbstractFramePtr frame)
{
MOZ_ASSERT(frame.script()->isGenerator() || frame.script()->isAsync());
MOZ_ASSERT(frame.script()->nfixed() == 0);
MOZ_ASSERT(!frame.isConstructing());
Rooted<GlobalObject*> global(cx, cx->global());
@ -41,7 +42,6 @@ GeneratorObject::create(JSContext* cx, AbstractFramePtr frame)
return nullptr;
genObj->setCallee(*frame.callee());
genObj->setNewTarget(frame.newTarget());
genObj->setEnvironmentChain(*frame.environmentChain());
if (frame.script()->needsArgsObj())
genObj->setArgsObj(frame.argsObj());
@ -137,9 +137,8 @@ GeneratorObject::resume(JSContext* cx, InterpreterActivation& activation,
MOZ_ASSERT(genObj->isSuspended());
RootedFunction callee(cx, &genObj->callee());
RootedValue newTarget(cx, genObj->newTarget());
RootedObject envChain(cx, &genObj->environmentChain());
if (!activation.resumeGeneratorFrame(callee, newTarget, envChain))
if (!activation.resumeGeneratorFrame(callee, envChain))
return false;
activation.regs().fp()->setResumedGenerator();

Просмотреть файл

@ -29,7 +29,6 @@ class GeneratorObject : public NativeObject
ARGS_OBJ_SLOT,
EXPRESSION_STACK_SLOT,
YIELD_AND_AWAIT_INDEX_SLOT,
NEWTARGET_SLOT,
RESERVED_SLOTS
};
@ -114,17 +113,6 @@ class GeneratorObject : public NativeObject
setFixedSlot(EXPRESSION_STACK_SLOT, NullValue());
}
bool isConstructing() const {
return getFixedSlot(NEWTARGET_SLOT).isObject();
}
const Value& newTarget() const {
return getFixedSlot(NEWTARGET_SLOT);
}
void setNewTarget(const Value& newTarget) {
setFixedSlot(NEWTARGET_SLOT, newTarget);
}
// The yield index slot is abused for a few purposes. It's undefined if
// it hasn't been set yet (before the initial yield), and null if the
// generator is closed. If the generator is running, the yield index is
@ -180,7 +168,6 @@ class GeneratorObject : public NativeObject
setFixedSlot(ARGS_OBJ_SLOT, NullValue());
setFixedSlot(EXPRESSION_STACK_SLOT, NullValue());
setFixedSlot(YIELD_AND_AWAIT_INDEX_SLOT, NullValue());
setFixedSlot(NEWTARGET_SLOT, NullValue());
}
bool isAfterYield();
@ -205,9 +192,6 @@ class GeneratorObject : public NativeObject
static size_t offsetOfExpressionStackSlot() {
return getFixedSlotOffset(EXPRESSION_STACK_SLOT);
}
static size_t offsetOfNewTargetSlot() {
return getFixedSlotOffset(NEWTARGET_SLOT);
}
};
bool GeneratorThrowOrReturn(JSContext* cx, AbstractFramePtr frame, Handle<GeneratorObject*> obj,

Просмотреть файл

@ -318,8 +318,7 @@ InterpreterStack::pushInlineFrame(JSContext* cx, InterpreterRegs& regs, const Ca
MOZ_ALWAYS_INLINE bool
InterpreterStack::resumeGeneratorCallFrame(JSContext* cx, InterpreterRegs& regs,
HandleFunction callee, HandleValue newTarget,
HandleObject envChain)
HandleFunction callee, HandleObject envChain)
{
MOZ_ASSERT(callee->isGenerator() || callee->isAsync());
RootedScript script(cx, JSFunction::getOrCreateScript(cx, callee));
@ -332,11 +331,12 @@ InterpreterStack::resumeGeneratorCallFrame(JSContext* cx, InterpreterRegs& regs,
LifoAlloc::Mark mark = allocator_.mark();
MaybeConstruct constructing = MaybeConstruct(newTarget.isObject());
// (Async) generators and async functions are not constructors.
MOZ_ASSERT(!callee->isConstructor());
// Include callee, |this|, and maybe |new.target|
unsigned nformal = callee->nargs();
unsigned nvals = 2 + constructing + nformal + script->nslots();
unsigned nvals = 2 + nformal + script->nslots();
uint8_t* buffer = allocateFrame(cx, sizeof(InterpreterFrame) + nvals * sizeof(Value));
if (!buffer)
@ -346,12 +346,10 @@ InterpreterStack::resumeGeneratorCallFrame(JSContext* cx, InterpreterRegs& regs,
argv[-2] = ObjectValue(*callee);
argv[-1] = UndefinedValue();
SetValueRangeToUndefined(argv, nformal);
if (constructing)
argv[nformal] = newTarget;
InterpreterFrame* fp = reinterpret_cast<InterpreterFrame*>(argv + nformal + constructing);
InterpreterFrame* fp = reinterpret_cast<InterpreterFrame*>(argv + nformal);
fp->mark_ = mark;
fp->initCallFrame(prev, prevpc, prevsp, *callee, script, argv, 0, constructing);
fp->initCallFrame(prev, prevpc, prevsp, *callee, script, argv, 0, NO_CONSTRUCT);
fp->resumeGeneratorFrame(envChain);
regs.prepareToRun(*fp, script);
@ -647,6 +645,18 @@ AbstractFramePtr::unsetIsDebuggee()
asRematerializedFrame()->unsetIsDebuggee();
}
inline bool
AbstractFramePtr::isConstructing() const
{
if (isInterpreterFrame())
return asInterpreterFrame()->isConstructing();
if (isBaselineFrame())
return asBaselineFrame()->isConstructing();
if (isRematerializedFrame())
return asRematerializedFrame()->isConstructing();
MOZ_CRASH("Unexpected frame");
}
inline bool
AbstractFramePtr::hasArgs() const
{
@ -963,11 +973,10 @@ InterpreterActivation::popInlineFrame(InterpreterFrame* frame)
}
inline bool
InterpreterActivation::resumeGeneratorFrame(HandleFunction callee, HandleValue newTarget,
HandleObject envChain)
InterpreterActivation::resumeGeneratorFrame(HandleFunction callee, HandleObject envChain)
{
InterpreterStack& stack = cx_->interpreterStack();
if (!stack.resumeGeneratorCallFrame(cx_, regs_, callee, newTarget, envChain))
if (!stack.resumeGeneratorCallFrame(cx_, regs_, callee, envChain))
return false;
MOZ_ASSERT(regs_.fp()->script()->compartment() == compartment_);

Просмотреть файл

@ -231,6 +231,7 @@ class AbstractFramePtr
inline Value calleev() const;
inline Value& thisArgument() const;
inline bool isConstructing() const;
inline Value newTarget() const;
inline bool debuggerNeedsCheckPrimitiveReturn() const;
@ -906,8 +907,7 @@ class InterpreterStack
void popInlineFrame(InterpreterRegs& regs);
bool resumeGeneratorCallFrame(JSContext* cx, InterpreterRegs& regs,
HandleFunction callee, HandleValue newTarget,
HandleObject envChain);
HandleFunction callee, HandleObject envChain);
inline void purge(JSRuntime* rt);
@ -1552,8 +1552,7 @@ class InterpreterActivation : public Activation
MaybeConstruct constructing);
inline void popInlineFrame(InterpreterFrame* frame);
inline bool resumeGeneratorFrame(HandleFunction callee, HandleValue newTarget,
HandleObject envChain);
inline bool resumeGeneratorFrame(HandleFunction callee, HandleObject envChain);
InterpreterFrame* current() const {
return regs_.fp();

Просмотреть файл

@ -106807,6 +106807,30 @@
{}
]
],
"css/css-contain/contain-layout-006.html": [
[
"/css/css-contain/contain-layout-006.html",
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"css/css-contain/contain-layout-007.html": [
[
"/css/css-contain/contain-layout-007.html",
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"css/css-contain/contain-layout-breaks-001.html": [
[
"/css/css-contain/contain-layout-breaks-001.html",
@ -106927,6 +106951,30 @@
{}
]
],
"css/css-contain/contain-paint-009.html": [
[
"/css/css-contain/contain-paint-009.html",
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"css/css-contain/contain-paint-010.html": [
[
"/css/css-contain/contain-paint-010.html",
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"css/css-contain/contain-size-001.html": [
[
"/css/css-contain/contain-size-001.html",
@ -128479,6 +128527,30 @@
{}
]
],
"css/css-sizing/intrinsic-percent-non-replaced-004.html": [
[
"/css/css-sizing/intrinsic-percent-non-replaced-004.html",
[
[
"/css/css-sizing/intrinsic-percent-non-replaced-004-ref.html",
"=="
]
],
{}
]
],
"css/css-sizing/intrinsic-percent-non-replaced-005.html": [
[
"/css/css-sizing/intrinsic-percent-non-replaced-005.html",
[
[
"/css/css-sizing/intrinsic-percent-non-replaced-005-ref.html",
"=="
]
],
{}
]
],
"css/css-style-attr/style-attr-braces-001.xht": [
[
"/css/css-style-attr/style-attr-braces-001.xht",
@ -188184,6 +188256,11 @@
{}
]
],
"2dcontext/OWNERS": [
[
{}
]
],
"2dcontext/best-practices/.gitkeep": [
[
{}
@ -189254,6 +189331,11 @@
{}
]
],
"BackgroundSync/OWNERS": [
[
{}
]
],
"FileAPI/BlobURL/support/file_test2.txt": [
[
{}
@ -192709,11 +192791,21 @@
{}
]
],
"apng/OWNERS": [
[
{}
]
],
"apng/animated-png-timeout-ref.html": [
[
{}
]
],
"audio-output/OWNERS": [
[
{}
]
],
"background-fetch/OWNERS": [
[
{}
@ -193214,6 +193306,11 @@
{}
]
],
"common/subset-tests.js": [
[
{}
]
],
"common/test-setting-immutable-prototype.js": [
[
{}
@ -217054,6 +217151,11 @@
{}
]
],
"credential-management/OWNERS": [
[
{}
]
],
"credential-management/support/echoing-nester.html": [
[
{}
@ -240719,6 +240821,11 @@
{}
]
],
"css/css-content/OWNERS": [
[
{}
]
],
"css/css-content/attr-case-insensitive-ref.html": [
[
{}
@ -240999,6 +241106,11 @@
{}
]
],
"css/css-fill-stroke/OWNERS": [
[
{}
]
],
"css/css-fill-stroke/reference/paint-order-001-ref.tentative.html": [
[
{}
@ -242354,6 +242466,11 @@
{}
]
],
"css/css-font-loading/OWNERS": [
[
{}
]
],
"css/css-fonts/OWNERS": [
[
{}
@ -253059,6 +253176,11 @@
{}
]
],
"css/css-properties-values-api/OWNERS": [
[
{}
]
],
"css/css-pseudo/OWNERS": [
[
{}
@ -254244,11 +254366,26 @@
{}
]
],
"css/css-scroll-anchoring/OWNERS": [
[
{}
]
],
"css/css-scroll-anchoring/README.md": [
[
{}
]
],
"css/css-scroll-snap/OWNERS": [
[
{}
]
],
"css/css-shadow-parts/OWNERS": [
[
{}
]
],
"css/css-shadow-parts/support/shadow-helper.js": [
[
{}
@ -254764,6 +254901,16 @@
{}
]
],
"css/css-sizing/intrinsic-percent-non-replaced-004-ref.html": [
[
{}
]
],
"css/css-sizing/intrinsic-percent-non-replaced-005-ref.html": [
[
{}
]
],
"css/css-speech/OWNERS": [
[
{}
@ -272314,6 +272461,11 @@
{}
]
],
"device-memory/OWNERS": [
[
{}
]
],
"docs/.gitignore": [
[
{}
@ -288464,6 +288616,11 @@
{}
]
],
"imagebitmap-renderingcontext/OWNERS": [
[
{}
]
],
"images/OWNERS": [
[
{}
@ -289929,6 +290086,11 @@
{}
]
],
"mediacapture-image/OWNERS": [
[
{}
]
],
"mediacapture-record/OWNERS": [
[
{}
@ -290679,6 +290841,11 @@
{}
]
],
"offscreen-canvas/OWNERS": [
[
{}
]
],
"offscreen-canvas/filter/offscreencanvas.filter.js": [
[
{}
@ -294289,6 +294456,11 @@
{}
]
],
"server-timing/OWNERS": [
[
{}
]
],
"server-timing/resources/blue.png": [
[
{}
@ -298404,6 +298576,11 @@
{}
]
],
"wasm/OWNERS": [
[
{}
]
],
"wasm/compile_worker.js": [
[
{}
@ -299134,6 +299311,11 @@
{}
]
],
"webgl/OWNERS": [
[
{}
]
],
"webgl/common.js": [
[
{}
@ -301944,6 +302126,11 @@
{}
]
],
"workers/modules/resources/static-import-non-existent-script-worker.js": [
[
{}
]
],
"workers/modules/resources/static-import-worker.js": [
[
{}
@ -302199,6 +302386,11 @@
{}
]
],
"worklets/OWNERS": [
[
{}
]
],
"worklets/README.md": [
[
{}
@ -373827,6 +374019,12 @@
{}
]
],
"webrtc/RTCPeerConnection-add-track-no-deadlock.https.html": [
[
"/webrtc/RTCPeerConnection-add-track-no-deadlock.https.html",
{}
]
],
"webrtc/RTCPeerConnection-addIceCandidate.html": [
[
"/webrtc/RTCPeerConnection-addIceCandidate.html",
@ -399676,6 +399874,10 @@
"16f72935aaf97175593bcf27794506f0884f091b",
"support"
],
"2dcontext/OWNERS": [
"07a7da62ef2c26f061cfc076d268f06a0cdcf72b",
"support"
],
"2dcontext/best-practices/.gitkeep": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
@ -403752,6 +403954,10 @@
"73f0071c06f429c3d47eac8d0863e11f1d6e8c25",
"support"
],
"BackgroundSync/OWNERS": [
"ed48014d817ef034062db60403704ed2c0cf9aeb",
"support"
],
"BackgroundSync/interfaces.any.js": [
"2a158ca33b93b78a581341d885150d252a0e4555",
"testharness"
@ -405689,47 +405895,47 @@
"testharness"
],
"WebCryptoAPI/generateKey/successes.js": [
"db8091eaf59ea342ae7c8f64e6548c976b5f0b36",
"f0f112ddcf43a46cfccc0e7cf29b46208f87bb5f",
"support"
],
"WebCryptoAPI/generateKey/successes_AES-CBC.https.any.js": [
"71f7d2beac74da25795366722aea79fb88c197ab",
"49ce28516303c7525f74d29fbbe36b578e9e0d08",
"testharness"
],
"WebCryptoAPI/generateKey/successes_AES-CTR.https.any.js": [
"57f1bff81966f8fc20b7870ed1a5ecf939f1c4d1",
"377e8f0ec969f36949c9dc08ae935063d25c08d8",
"testharness"
],
"WebCryptoAPI/generateKey/successes_AES-GCM.https.any.js": [
"faa70a7dda91b0602987ec8e7ef0787c4ed163e3",
"a65a71f8f83b017fe9eb8fccbd8da3489ed1f9f0",
"testharness"
],
"WebCryptoAPI/generateKey/successes_AES-KW.https.any.js": [
"23b4567c82e12847f41fb6aa8a6a2cb6bd219a94",
"165159903403f67cc27d29f78d46369eb598811c",
"testharness"
],
"WebCryptoAPI/generateKey/successes_ECDH.https.any.js": [
"51f5990d71b6d0008163c5550dfe3ca88fe56356",
"525b874eff610c6db8cca7f50ba0c074b8975001",
"testharness"
],
"WebCryptoAPI/generateKey/successes_ECDSA.https.any.js": [
"bfce352ef583a31aaae4a5a303a8b98737cfc22f",
"2a63f8d0d12987ca2e4c41e5eb28a53741a091f5",
"testharness"
],
"WebCryptoAPI/generateKey/successes_HMAC.https.any.js": [
"64b1846740147585fc4d497ba8d20a4b5bdef315",
"af064fd9cc422c35718d1dcf2f6c861aab7385cc",
"testharness"
],
"WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.js": [
"ccb63d91473cb7ee6554ad80f0ee2be004e75c91",
"f82ce4307fea94a097ccdf470b766f110d876b87",
"testharness"
],
"WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.js": [
"9549e735a6d5d2a570f2b6ec4b09c49fd6a88f51",
"8ff33e42d855b7482455ebb3caab5ac311e7cbf5",
"testharness"
],
"WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.js": [
"11aff41d669c5a44c5929ac8754d680b675f3c8c",
"fbbbef333461a7845ea1b3cba2169435c7f82761",
"testharness"
],
"WebCryptoAPI/getRandomValues.any.js": [
@ -409256,6 +409462,10 @@
"789767132e47fb6cad1ea60584a04b4f2e2c9551",
"support"
],
"apng/OWNERS": [
"5fa81c84bf276ac842e54c02c4889aac62806f86",
"support"
],
"apng/animated-png-timeout-ref.html": [
"dcd3c58b9200109868f2b98bda346bf26f823e07",
"support"
@ -409276,6 +409486,10 @@
"8f37d8d2fc1cb9b5ad0d85234f733f534f4f0db8",
"testharness"
],
"audio-output/OWNERS": [
"8d5030068c8ea67ad77f7dabb274470685b734a6",
"support"
],
"audio-output/setSinkId-manual.https.html": [
"6743b9f6843a1c6134ac9cc627375b0368986e55",
"manual"
@ -410536,6 +410750,10 @@
"e3593850f8098d3f3ff82c042deab15f51c66a52",
"support"
],
"common/subset-tests.js": [
"ee72de5b5f2302d111a0f131eddf5081ad02b789",
"support"
],
"common/test-setting-immutable-prototype.js": [
"2cafc5c2b867e0fd6f738b1fbeaa503761c400b7",
"support"
@ -432492,6 +432710,10 @@
"8307ed240a531033c96da89197dcfb5ea25cde87",
"support"
],
"credential-management/OWNERS": [
"c7e6702e4472c55bb6e9c543bed62de2d2a7331d",
"support"
],
"credential-management/credentialscontainer-create-basics.https.html": [
"4889217f5e821965907d4d60a9ffdd19d4bc79af",
"testharness"
@ -496200,6 +496422,14 @@
"60b834ef7b5becf76f5cacd55b2b9c4774562637",
"reftest"
],
"css/css-contain/contain-layout-006.html": [
"89c68e7ce325295d6a36da91b6d4dd39580f7165",
"reftest"
],
"css/css-contain/contain-layout-007.html": [
"799965dfb9989fc3a8226e80fa3c67cafb24374b",
"reftest"
],
"css/css-contain/contain-layout-breaks-001.html": [
"09fcfd311126800c7ce63f27c3154ef31fc647bd",
"reftest"
@ -496240,6 +496470,14 @@
"5540aaf33b5b841d95f84ead3459f634cf444299",
"reftest"
],
"css/css-contain/contain-paint-009.html": [
"b3a8ee7512f1f893b630453a8443edaed983f4c3",
"reftest"
],
"css/css-contain/contain-paint-010.html": [
"e47f99a8fedb60f34ec7877686f478cbc002c6b4",
"reftest"
],
"css/css-contain/contain-size-001.html": [
"089c4fd7352f91a85d5d8f6bf8c5f261c868cd37",
"reftest"
@ -496396,6 +496634,10 @@
"6b72ea53450c5a08ef3ddd897608aa9cf7e68e00",
"support"
],
"css/css-content/OWNERS": [
"d3f0adf12724f2b230ffa3b2845e273ba4200076",
"support"
],
"css/css-content/attr-case-insensitive-ref.html": [
"30577fc39afb6ac028e25be11f363e060c0850b2",
"support"
@ -498464,6 +498706,10 @@
"cfaff82945bd52baafb8c4c16eb38c9dbee14da6",
"testharness"
],
"css/css-fill-stroke/OWNERS": [
"d9c8054b356c9273a054a83abeb9be0626c23921",
"support"
],
"css/css-fill-stroke/paint-order-001.tentative.html": [
"46e784929d8a661eb432fa04cc79e0612bd5d194",
"reftest"
@ -501612,6 +501858,10 @@
"62ff3e2eac64bb2057391e4dcc4664a4839bbbe8",
"reftest"
],
"css/css-font-loading/OWNERS": [
"19b55d317925d28a18230592db5d05426f16537c",
"support"
],
"css/css-font-loading/fontfacesetloadevent-constructor.html": [
"ad355c3d5220c1b938182241a8e8abe030ace699",
"testharness"
@ -515112,6 +515362,10 @@
"7f8a5b4d9047c07378473362acb3d001e70d5663",
"support"
],
"css/css-properties-values-api/OWNERS": [
"b098aad4eacf3991e0930a0953067c1b1135c519",
"support"
],
"css/css-properties-values-api/register-property-syntax-parsing.html": [
"b065f4840b3c1deb4a2f8a59428e102f2ae11686",
"testharness"
@ -517572,6 +517826,10 @@
"5816d3d7af3c4bef07f4a299ab65c74b7b8d80f9",
"testharness"
],
"css/css-scroll-anchoring/OWNERS": [
"d9c8054b356c9273a054a83abeb9be0626c23921",
"support"
],
"css/css-scroll-anchoring/README.md": [
"31205944cbcf321f7aa77e3bef0f8835cc7b6d13",
"support"
@ -517652,6 +517910,10 @@
"de66dba5bce15b7403e9e582d982d4e3e4aed552",
"testharness"
],
"css/css-scroll-snap/OWNERS": [
"d9c8054b356c9273a054a83abeb9be0626c23921",
"support"
],
"css/css-scroll-snap/scroll-snap-type-proximity.html": [
"75bfc0b6c7686afbbf431e653ab674496ad3fe46",
"testharness"
@ -517672,6 +517934,10 @@
"dfaf8675bec557c9f2178ad48b29c803f94056b5",
"testharness"
],
"css/css-shadow-parts/OWNERS": [
"d9c8054b356c9273a054a83abeb9be0626c23921",
"support"
],
"css/css-shadow-parts/all-hosts.html": [
"a92019bba916ed3242dcdf66184d73b915f2689d",
"testharness"
@ -518757,43 +519023,43 @@
"reftest"
],
"css/css-shapes/spec-examples/shape-outside-010.html": [
"7baf8e86ee451f08ab18e03000d64a529a2824d0",
"929078a33a23f1d10ce9d0f89016725f233e133e",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-011.html": [
"3620cce0bf178d1bc67faa372406c50b3b07c086",
"af178c8f965ce5f48673a4b67aa15f4974a09a2a",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-012.html": [
"1db1130bb5f2f5a8a12bab7ec5a9fa0c40165be4",
"67e23bdb9873267a12790cf4cd60b704f423f8a5",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-013.html": [
"155d33ea047169acdc6b29b4716fa7237b133d51",
"7bd3ac39a58324354fa2c36fa98b151ce1292c85",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-014.html": [
"ab449eda8aa379e0149c759e9dcd9a866c1ed3db",
"e87ca4ce9f46103091139fda326452e4c66b1980",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-015.html": [
"f0ce9eb24d3b6bf8b8aa03f5cd02f82acfcdf8cd",
"d30174b5995f0831f2535a7a817f6ad5af5a6ba8",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-016.html": [
"2ea1538bff7b1825cdd63ea6510435c7aa52aebc",
"585b41b91bd9d452b616f87e81c8a47576299719",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-017.html": [
"366e0ad5c7ae7f2663f9c6bc6c0eba51e299f120",
"9593d57329acf1998d4b5ada5a230f3fed0d3c32",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-018.html": [
"08c9fd21d74ae52b98581c7d013275c30d49e18c",
"c81ef4303d00a4f490f8cada68d8a6449daa56c3",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-019.html": [
"46de7762b9a9c29a0aa798775cea5dfb17bbf5a0",
"3eaf5c74cfbbb676b3f2ccae55a96d3999ac890b",
"testharness"
],
"css/css-shapes/spec-examples/support/circle-no-shadow.png": [
@ -518809,7 +519075,7 @@
"support"
],
"css/css-shapes/spec-examples/support/spec-example-utils.js": [
"137b347da1085eb0042f1d2fc017694ff528180b",
"de748e548169b360cf0d31a5499d766dd8bc2a7d",
"support"
],
"css/css-shapes/support/1x1-green.png": [
@ -518972,6 +519238,22 @@
"43d44ad3a75e6abb9d66d06c3cdc71dbcb366651",
"reftest"
],
"css/css-sizing/intrinsic-percent-non-replaced-004-ref.html": [
"4b93517397b4332b3062804e2d6047afdd169fae",
"support"
],
"css/css-sizing/intrinsic-percent-non-replaced-004.html": [
"42bc0191ff3ba22c5ceb377f1bc68131d652509e",
"reftest"
],
"css/css-sizing/intrinsic-percent-non-replaced-005-ref.html": [
"a2cd75ab26376e74e26414013fc34b8e7fdb1a68",
"support"
],
"css/css-sizing/intrinsic-percent-non-replaced-005.html": [
"33aa880de7eb7c4128022871dfd5e2895be30dcc",
"reftest"
],
"css/css-speech/Integer.html": [
"8db91e711b22ead393b1d9a18c224a7f838b85b0",
"manual"
@ -532029,7 +532311,7 @@
"testharness"
],
"css/css-transitions/zero-duration-multiple-transition.html": [
"7db6bc8641a6a2eb5f1ee1fdbc9b6215a0462bbc",
"bcbcd704e617cf1bb057a67d9ff5635ef6ebda7e",
"testharness"
],
"css/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable.html": [
@ -556148,6 +556430,10 @@
"2ec52a6baa7490478ec61e72bf89b2ec09d453b5",
"testharness"
],
"device-memory/OWNERS": [
"c328f48fe12bce670646911964930d221c768f1d",
"support"
],
"device-memory/device-memory.https.any.js": [
"4e746987c6580c6ff388f1512a02cc6fe33393ea",
"testharness"
@ -556313,7 +556599,7 @@
"support"
],
"docs/_writing-tests/testharness.md": [
"6d581e1021a2401b34c0c024990b5e85dbef1fa5",
"0a0d88c5ddde91514a51d607405c2b7dedee4776",
"support"
],
"docs/_writing-tests/visual.md": [
@ -562333,7 +562619,7 @@
"testharness"
],
"fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html": [
"92c4633c3d684de4b1d959dbff4f2bab1eaf15a0",
"1059b1c0907444bd416889f99d766a566ba9bde3",
"testharness"
],
"fetch/security/dangling-markup-mitigation.tentative.html": [
@ -579265,7 +579551,7 @@
"testharness"
],
"html/semantics/scripting-1/the-script-element/execution-timing/077.html": [
"2bfe280f0ae7b745f2217055e66579ab6fb06769",
"077bf7437a9ef4f6d51d0fa26b45ae7c765feb9f",
"testharness"
],
"html/semantics/scripting-1/the-script-element/execution-timing/078.html": [
@ -582812,6 +583098,10 @@
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"imagebitmap-renderingcontext/OWNERS": [
"07a7da62ef2c26f061cfc076d268f06a0cdcf72b",
"support"
],
"imagebitmap-renderingcontext/bitmaprenderer-as-imagesource.html": [
"f80d1496329c64643d2b40e478779929de20c499",
"testharness"
@ -584932,6 +585222,10 @@
"ceeb48e7982eb88561f4c1630cb0fcf15d9cf73c",
"testharness"
],
"mediacapture-image/OWNERS": [
"d53c2a28adfbc343850c3362a180bba24ae63609",
"support"
],
"mediacapture-image/idlharness.html": [
"7ccf7fcab0344a2e1893e89d7689e2312287b64d",
"testharness"
@ -586948,6 +587242,10 @@
"f31d50ead567908aab1d1dad577eb06c912c97f3",
"manual"
],
"offscreen-canvas/OWNERS": [
"07a7da62ef2c26f061cfc076d268f06a0cdcf72b",
"support"
],
"offscreen-canvas/compositing/2d.composite.canvas.copy.html": [
"983ae27346b47cd73000d9e3cd2264e3233705d1",
"testharness"
@ -593309,7 +593607,7 @@
"support"
],
"payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html": [
"1a2bf6b62a5021eec649c0919a35574779e30d09",
"46cac5ba402841a8bc311b1a11de4a82589ee567",
"manual"
],
"payment-request/PaymentItem/type_member.https.html": [
@ -603180,6 +603478,10 @@
"01ae6e757d428800555012783e290ebba575bcab",
"testharness"
],
"server-timing/OWNERS": [
"99acae581c71af3f6306bff62a1172955e83f756",
"support"
],
"server-timing/cross_origin.html": [
"e20e60bef34167b4608a837d0ddb311effa20773",
"testharness"
@ -603909,7 +604211,7 @@
"testharness"
],
"server-timing/sw.js": [
"0c12328f152814e2f0bde7fe026cf12c8ea77ff0",
"47e2601a903e34c2c8afc90e544026e8c6d11d05",
"support"
],
"server-timing/test_server_timing.html": [
@ -606409,7 +606711,7 @@
"testharness"
],
"shadow-dom/form-control-form-attribute.html": [
"79b4a278f0e35646cfdffeebf8f0523e2772bc9b",
"7726f8fe9056d3d5c9fb7b963c4bc6e777a8256a",
"testharness"
],
"shadow-dom/historical.html": [
@ -612968,6 +613270,10 @@
"caaf2634451eb9228c0b20f0ac817d7a3d3fa685",
"testharness"
],
"wasm/OWNERS": [
"e4284c7c52365b575b20abcf696a5634ef86b769",
"support"
],
"wasm/compile_worker.js": [
"652193b876206d7a0f361f145469a604d03e3784",
"support"
@ -614932,6 +615238,10 @@
"c184952fc8a78f5edc7d573a9f8440b5eec334cc",
"wdspec"
],
"webgl/OWNERS": [
"0df8e72f3ab70719aac73d3b06f043fac629939b",
"support"
],
"webgl/bufferSubData.html": [
"526612470551a0eb157b310c587d50080087808d",
"testharness"
@ -615484,6 +615794,10 @@
"db758cc2a744c049c291575e408dbb5f280cdf19",
"testharness"
],
"webrtc/RTCPeerConnection-add-track-no-deadlock.https.html": [
"a16eaf6805528c2b73650694f26568f41be5d5ff",
"testharness"
],
"webrtc/RTCPeerConnection-addIceCandidate.html": [
"dd19f1d7a8d12ee85101e53bb30c553e94d67b6a",
"testharness"
@ -615625,7 +615939,7 @@
"testharness"
],
"webrtc/RTCPeerConnection-setRemoteDescription.html": [
"59f826d4d23cd52f15f3940cc3abe66933e91037",
"8a3e2f1e157e1ceed18ac66e57040a941b658f24",
"testharness"
],
"webrtc/RTCPeerConnection-track-stats.https.html": [
@ -619993,7 +620307,7 @@
"support"
],
"webxr/interfaces.https.html": [
"22e2278ab484ced51fd0a3880d2bfbf610650371",
"b723ad7105c7e5c12ba5fe75ceac3de3d990dfe2",
"testharness"
],
"webxr/resources/webxr_check.html": [
@ -620713,7 +621027,7 @@
"testharness"
],
"workers/modules/dedicated-worker-import.html": [
"95973c682b79618cc894417a4f89a758e7e8c7b1",
"b9f5a7a0384ac3f34c48f32a378b758880f59b06",
"testharness"
],
"workers/modules/dedicated-worker-options-type.html": [
@ -620725,7 +621039,7 @@
"support"
],
"workers/modules/resources/dynamic-import-given-url-worker.js": [
"372686abd1b2d2d09228a44f6420c646319e0bd1",
"0d2cfe16d71bb17577c6cf6cde5973c18c2c70fe",
"support"
],
"workers/modules/resources/dynamic-import-worker.js": [
@ -620760,6 +621074,10 @@
"f69987442b6a223a868e6c1a7ca6d9cee2976068",
"support"
],
"workers/modules/resources/static-import-non-existent-script-worker.js": [
"e8e1f0aedcc780aac742af01387dd151b10104bc",
"support"
],
"workers/modules/resources/static-import-worker.js": [
"6d5fb2c553d2f32cdd16722a85bd65e0a172768c",
"support"
@ -621144,6 +621462,10 @@
"c6a02eed61fe26e59252314cbbe090eeed9de9ca",
"testharness"
],
"worklets/OWNERS": [
"e2dd08513daf7b513cf2db811841d50153999954",
"support"
],
"worklets/README.md": [
"33a3530260a18e74dd96470d9890bbdb4ecdb08d",
"support"

Просмотреть файл

@ -1,6 +1,4 @@
[cookie-forcing.html]
expected:
if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
[non-secure origins should be able to force out insecure cookies.]
expected:
if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT

Просмотреть файл

@ -1,6 +1,4 @@
[create-cookie-http.html]
expected:
if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): ERROR
[Untitled]
expected: FAIL

Просмотреть файл

@ -0,0 +1,2 @@
[contain-layout-006.html]
expected: FAIL

Просмотреть файл

@ -0,0 +1,2 @@
[contain-layout-007.html]
expected: FAIL

Просмотреть файл

@ -11,3 +11,4 @@
[customElements.define must get "observedAttributes" property on the constructor prototype when "attributeChangedCallback" is present]
expected: FAIL

Просмотреть файл

@ -1,5 +1,4 @@
[dangling-markup-mitigation-data-url.tentative.sub.html]
expected: TIMEOUT
[<iframe id="dangling"\\n src="data:text/html,\\n <img\\n onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n src='http://web-platform.test:8000/images/green-256x256.png?&amp;amp;#10;&lt;'>\\n ">\\n </iframe>]
expected: TIMEOUT

Просмотреть файл

@ -1,4 +1,3 @@
[resume-timer-on-history-back.html]
disabled:
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1321179

Просмотреть файл

@ -3,7 +3,7 @@
if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): CRASH
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): CRASH

Просмотреть файл

@ -1,2 +1,2 @@
local: 90d9d20d4e4d7a79509c9a13a07e63a463f89527
upstream: b395fb03bf62cbda20a383842b8da1701080ec43
local: f456831609d31619a99840f8079c894ff589dc06
upstream: 43d7898e180de2585d39ab12e3fda81633725e91

Просмотреть файл

@ -1 +1,2 @@
prefs: [privacy.reduceTimerPrecision:false]
[nav2_test_redirect_server.html]

Просмотреть файл

@ -1,3 +0,0 @@
[key.py]
expected:
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT

Просмотреть файл

@ -1,3 +0,0 @@
[close.py]
expected:
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT

Просмотреть файл

@ -1,3 +0,0 @@
[delete.py]
expected:
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT

Просмотреть файл

@ -2,3 +2,4 @@
[test_arguments]
bug: 1453057
expected: FAIL

Просмотреть файл

@ -1,3 +0,0 @@
[get.py]
expected:
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT

Просмотреть файл

@ -446,6 +446,3 @@
[XRWebGLLayer interface: operation getViewport(XRView)]
expected: FAIL
[Test IDL implementation of WebXR API]
expected: FAIL

Просмотреть файл

@ -21,3 +21,12 @@
[importScripts() on module worker should throw an exception.]
expected: NOTRUN
[Worker construction for non-existent script should throw an exception.]
expected: NOTRUN
[Static import for non-existent script should throw an exception.]
expected: NOTRUN
[Dynamic import for non-existent script should throw an exception.]
expected: NOTRUN

Просмотреть файл

@ -0,0 +1,5 @@
@AmeliaBR
@annevk
@kenrussell
@jdashg
@fserb

Просмотреть файл

@ -0,0 +1 @@
@beverloo

Просмотреть файл

@ -70,21 +70,6 @@ function run_test(algorithmNames, slowTest) {
}, testTag + ": generateKey" + parameterString(algorithm, extractable, usages));
}
// Only test a subset of tests with, e.g., ?1-10 in the URL
var subTestStart = 0;
var subTestEnd = Infinity;
var match;
if (location.search) {
match = /^\?(\d+)-(\d+|last)$/.exec(location.search);
if (match) {
subTestStart = match[1];
if (match[2] !== "last") {
subTestEnd = match[2];
}
}
}
var currentSubTest = 0;
// Test all valid sets of parameters for successful
// key generation.
testVectors.forEach(function(vector) {
@ -92,10 +77,7 @@ function run_test(algorithmNames, slowTest) {
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
allValidUsages(vector.usages, false, vector.mandatoryUsages).forEach(function(usages) {
[false, true].forEach(function(extractable) {
currentSubTest++;
if (currentSubTest >= subTestStart && currentSubTest <= subTestEnd) {
testSuccess(algorithm, extractable, usages, vector.resultType, "Success");
}
subsetTest(testSuccess, algorithm, extractable, usages, vector.resultType, "Success");
});
});
});

Просмотреть файл

@ -1,4 +1,5 @@
// META: timeout=long
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["AES-CBC"]);

Просмотреть файл

@ -1,4 +1,5 @@
// META: timeout=long
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["AES-CTR"]);

Просмотреть файл

@ -1,4 +1,5 @@
// META: timeout=long
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["AES-GCM"]);

Просмотреть файл

@ -1,4 +1,5 @@
// META: timeout=long
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["AES-KW"]);

Просмотреть файл

@ -1,4 +1,5 @@
// META: timeout=long
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["ECDH"]);

Просмотреть файл

@ -1,4 +1,5 @@
// META: timeout=long
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["ECDSA"]);

Просмотреть файл

@ -1,4 +1,5 @@
// META: timeout=long
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["HMAC"]);

Просмотреть файл

@ -16,5 +16,6 @@
// META: variant=?141-150
// META: variant=?151-last
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["RSA-OAEP"]);

Просмотреть файл

@ -4,5 +4,6 @@
// META: variant=?21-30
// META: variant=?31-last
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["RSA-PSS"]);

Просмотреть файл

@ -4,5 +4,6 @@
// META: variant=?21-30
// META: variant=?31-last
// META: script=../util/helpers.js
// META: script=/common/subset-tests.js
// META: script=successes.js
run_test(["RSASSA-PKCS1-v1_5"]);

Просмотреть файл

@ -0,0 +1,3 @@
@stuartparmenter
@svgeesus
@leonscroggins

Просмотреть файл

@ -0,0 +1 @@
@guidou

Просмотреть файл

@ -0,0 +1,33 @@
// Only test a subset of tests with, e.g., ?1-10 in the URL.
// Can be used together with <meta name="variant" content="...">
// Sample usage:
// for (const test of tests) {
// subsetTest(async_test, test.fn, test.name);
// }
(function() {
var subTestStart = 0;
var subTestEnd = Infinity;
var match;
if (location.search) {
match = /(?:^\?|&)(\d+)-(\d+|last)(?:&|$)/.exec(location.search);
if (match) {
subTestStart = parseInt(match[1], 10);
if (match[2] !== "last") {
subTestEnd = parseInt(match[2], 10);
}
}
}
function shouldRunSubTest(currentSubTest) {
return currentSubTest >= subTestStart && currentSubTest <= subTestEnd;
}
var currentSubTest = 0;
function subsetTest(testFunc, ...args) {
currentSubTest++;
if (shouldRunSubTest(currentSubTest)) {
return testFunc(...args);
}
return null;
}
self.shouldRunSubTest = shouldRunSubTest;
self.subsetTest = subsetTest;
})();

Просмотреть файл

@ -0,0 +1 @@
@mikewest

Просмотреть файл

@ -0,0 +1,28 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Containment Test: Layout containment absolutely positioned descendants</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-layout">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<meta name=assert content="Layout containment makes an element to act as containing block for absolutely positioned descendants.">
<style>
#contain-layout {
contain: layout;
width: 100px;
height: 100px;
background: red;
}
#abspos {
position: absolute;
bottom: 0;
right: 0;
background: green;
width: 100px;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="contain-layout">
<div id="abspos"></div>
</div>

Просмотреть файл

@ -0,0 +1,28 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Containment Test: Layout containment fixed positioned descendants</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-layout">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<meta name=assert content="Layout containment makes an element to act as containing block for fixed positioned descendants.">
<style>
#contain-layout {
contain: layout;
width: 100px;
height: 100px;
background: red;
}
#fixed {
position: fixed;
bottom: 0;
right: 0;
background: green;
width: 100px;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="contain-layout">
<div id="fixed"></div>
</div>

Просмотреть файл

@ -0,0 +1,28 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Containment Test: Paint containment absolutely positioned descendants</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-paint">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<meta name=assert content="Paint containment makes an element to act as containing block for absolutely positioned descendants.">
<style>
#contain-paint {
contain: paint;
width: 100px;
height: 100px;
background: red;
}
#abspos {
position: absolute;
bottom: 0;
right: 0;
background: green;
width: 100px;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="contain-paint">
<div id="abspos"></div>
</div>

Просмотреть файл

@ -0,0 +1,28 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Containment Test: Paint containment fixed positioned descendants</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-paint">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<meta name=assert content="Paint containment makes an element to act as containing block for fixed positioned descendants.">
<style>
#contain-paint {
contain: paint;
width: 100px;
height: 100px;
background: red;
}
#fixed {
position: fixed;
bottom: 0;
right: 0;
background: green;
width: 100px;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="contain-paint">
<div id="fixed"></div>
</div>

Просмотреть файл

@ -0,0 +1 @@
@dauwhe

Просмотреть файл

@ -0,0 +1 @@
@tabatkins

Просмотреть файл

@ -0,0 +1,2 @@
@tabatkins
@svgeesus

Просмотреть файл

@ -0,0 +1,2 @@
@tabatkins
@astearns

Просмотреть файл

@ -0,0 +1 @@
@tabatkins

Просмотреть файл

@ -0,0 +1 @@
@tabatkins

Просмотреть файл

@ -0,0 +1 @@
@tabatkins

Просмотреть файл

@ -0,0 +1,56 @@
<!DOCTYPE html>
<title>Reference</title>
<style>
/* establish context */
.container {
clear: both;
padding: 10px;
width: 0;
}
span {
display: inline-block;
width: 20px;
height: 20px;
background-color: blue;
}
/* visualize size contribution */
.container > div {
float: left;
border: solid orange 20px;
border-style: none solid;
}
.container > div > div {
border-right: solid 20px aqua;
writing-mode: vertical-rl;
width: 40px;
height: 20px;
}
/* controls for min-width */
/* content = 100% = 80px = 4ch + border */
/* choose sizes that are larger than content to see if how they take effect */
.container > div > .raw-percent {
width: 120px;
}
.container > div > .calc-percent,
.container > div > .no-percent {
width: 160px;
}
</style>
<!-- calculating min-content widths -->
<div class='container'>
<div><div class="control"><span></span></div></div>
</div>
<div class='container'>
<div style='width: 60px;'><div class="raw-percent"><span></span></div></div>
</div>
<div class='container'>
<div style='width: 60px;'><div class="calc-percent"><span></span></div></div>
</div>
<div class='container'>
<div><div class="no-percent"><span></span></div></div>
</div>

Просмотреть файл

@ -0,0 +1,60 @@
<!DOCTYPE html>
<title>Percentages of width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
<link rel="match" href="intrinsic-percent-non-replaced-004-ref.html">
<style>
/* establish context */
.container {
clear: both;
padding: 10px;
width: 0;
}
span {
display: inline-block;
width: 20px;
height: 20px;
background-color: blue;
}
/* visualize size contribution */
.container > div {
float: left;
border: solid orange 20px;
border-style: none solid;
}
.container > div > div {
border-right: solid 20px aqua;
writing-mode: vertical-rl;
width: 40px;
height: 20px;
}
/* test width */
/* content = 100% = 60px = 40px + border */
/* choose sizes that are different than content to see if how they take effect */
.raw-percent {
min-width: 200%;
}
.calc-percent {
min-width: calc(160px + 0%);
}
.no-percent {
min-width: 160px;
}
</style>
<!-- calculating min-content widths -->
<div class='container'>
<div><div class="control"><span></span></div></div>
</div>
<div class='container'>
<div><div class="raw-percent"><span></span></div></div>
</div>
<div class='container'>
<div><div class="calc-percent"><span></span></div></div>
</div>
<div class='container'>
<div><div class="no-percent"><span></span></div></div>
</div>

Просмотреть файл

@ -0,0 +1,56 @@
<!DOCTYPE html>
<title>Reference</title>
<style>
/* establish context */
.container {
clear: both;
padding: 10px;
width: 0;
}
span {
display: inline-block;
width: 20px;
height: 20px;
background-color: blue;
}
/* visualize size contribution */
.container > div {
float: left;
border: solid orange 20px;
border-style: none solid;
}
.container > div > div {
border-right: solid 20px aqua;
writing-mode: vertical-rl;
width: 80px;
height: 20px;
}
/* test width */
/* content = 100% = 100px = 80px + border */
/* choose sizes that are different than content to see if how they take effect */
.container > div > .raw-percent {
width: 50px;
}
.container > div > .calc-percent,
.container > div > .no-percent {
width: 40px;
}
</style>
<!-- calculating min-content widths -->
<div class='container'>
<div><div class="control"><span></span></div></div>
</div>
<div class='container'>
<div style='width: 100px;'><div class="raw-percent"><span></span></div></div>
</div>
<div class='container'>
<div style='width: 100px;'><div class="calc-percent"><span></span></div></div>
</div>
<div class='container'>
<div><div class="no-percent"><span></span></div></div>
</div>

Просмотреть файл

@ -0,0 +1,60 @@
<!DOCTYPE html>
<title>Percentages of width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
<link rel="match" href="intrinsic-percent-non-replaced-005-ref.html">
<style>
/* establish context */
.container {
clear: both;
padding: 10px;
width: 0;
}
span {
display: inline-block;
width: 20px;
height: 20px;
background-color: blue;
}
/* visualize size contribution */
.container > div {
float: left;
border: solid orange 20px;
border-style: none solid;
}
.container > div > div {
border-right: solid 20px aqua;
writing-mode: vertical-rl;
width: 80px;
height: 20px;
}
/* test width */
/* content = 100% = 100px = 80px + border */
/* choose sizes that are different than content to see if how they take effect */
.raw-percent {
max-width: 50%;
}
.calc-percent {
max-width: calc(40px + 0%);
}
.no-percent {
max-width: 40px;
}
</style>
<!-- calculating min-content widths -->
<div class='container'>
<div><div class="control"><span></span></div></div>
</div>
<div class='container'>
<div><div class="raw-percent"><span></span></div></div>
</div>
<div class='container'>
<div><div class="calc-percent"><span></span></div></div>
</div>
<div class='container'>
<div><div class="no-percent"><span></span></div></div>
</div>

Просмотреть файл

@ -0,0 +1,2 @@
@tdresser
@npm1

Просмотреть файл

@ -19,6 +19,44 @@ documented in two sections:
See [server features][] for advanced testing features that are commonly used
with testharness.js. See also the [general guidelines][] for all test types.
## Variants
A test file can have multiple variants by including `meta` elements,
for example:
```
<meta name="variant" content="">
<meta name="variant" content="?wss">
```
The test can then do different things based on the URL.
There is a utility script in `/common/subset-tests.js` that works
well together with variants, where a test that would otherwise have
too many tests to be useful can be split up in ranges of subtests.
For example:
```
<!doctype html>
<title>Testing variants</title>
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-last">
<script src="/resources/testharness.js">
<script src="/resources/testharnessreport.js">
<script src="/common/subset-tests.js">
<script>
const tests = [
{ fn: t => { ... }, name: "..." },
... lots of tests ...
];
for (const test of tests) {
subsetTest(async_test, test.fn, test.name);
}
</script>
```
## Auto-generated test boilerplate
While most JavaScript tests require a certain amount of HTML
@ -121,7 +159,7 @@ can be used to include both the global and a local `utils.js` in a test.
Use `// META: timeout=long` at the beginning of the resource.
### Specifying test variants in auto-generated boilerplate tests
### Specifying test [variants](#variants) in auto-generated boilerplate tests
Use `// META: variant=url-suffix` at the beginning of the resource. For example,

Просмотреть файл

@ -16,7 +16,8 @@
var doubleEscapedBrace = "&amp;amp;lt;";
var rawNewline = "&#10;";
var escapedNewline = "&amp;#10;";
var doubleEscapedNewline = "&amp;amp;#10;";
// doubleEscapedNewline is used inside a data URI, and so must have its '#' escaped.
var doubleEscapedNewline = "&amp;amp;%2310;";
function appendFrameAndGetElement(test, frame) {
return new Promise((resolve, reject) => {

Просмотреть файл

@ -17,12 +17,12 @@
var t = async_test()
function test() {
var script = createScript('data:text\/javascript,log("Script #1 ran")');
var script = createScript('data:text\/javascript,log("Script %231 ran")');
var script2 = createScript('','log("Script #2 ran")');
if(script2) {
head.removeChild(script2);
}
var script3 = createScript('data:text\/javascript, log("Script #3 ran"); createScript(\'\', \'log("Script #4 ran")\')');
var script3 = createScript('data:text\/javascript, log("Script %233 ran"); createScript(\'\', \'log("Script #4 ran")\')');
if(script3) {
head.removeChild(script3);
}

Просмотреть файл

@ -0,0 +1,5 @@
@AmeliaBR
@annevk
@kenrussell
@jdashg
@fserb

Просмотреть файл

@ -0,0 +1,2 @@
@yellowdoge
@reillyeon

Просмотреть файл

@ -0,0 +1,5 @@
@AmeliaBR
@annevk
@kenrussell
@jdashg
@fserb

Просмотреть файл

@ -68,7 +68,7 @@ function runManualTest(button, expected = {}) {
<button onclick="
const expectedAddress = {
country: 'AU',
regionCode: 'AU-QLD',
regionCode: 'QLD',
addressLine: '55 test st',
city: 'Chapel Hill',
dependentLocality: '',
@ -90,8 +90,10 @@ function runManualTest(button, expected = {}) {
<dd>55 test st</dd>
<dt>Country</dt>
<dd>Australia</dd>
<dt>Suburb</dt>
<dt>City</dt>
<dd>Chapel Hill</dd>
<dd>State/Region</dd>
<dd>Queensland</dd>
<dt>postal code </dt>
<dd>6095</dd>
<dt>organization</dt>

Просмотреть файл

@ -257,7 +257,7 @@
}
var UsbChooserService = {
name: 'device::mojom::UsbChooserService',
name: 'device.mojom.UsbChooserService',
kVersion: 0,
ptrClass: UsbChooserServicePtr,
proxyClass: UsbChooserServiceProxy,
@ -270,4 +270,4 @@
exports.UsbChooserService = UsbChooserService;
exports.UsbChooserServicePtr = UsbChooserServicePtr;
exports.UsbChooserServiceAssociatedPtr = UsbChooserServiceAssociatedPtr;
})();
})();

Просмотреть файл

@ -3395,7 +3395,7 @@
}
var UsbDevice = {
name: 'device::mojom::UsbDevice',
name: 'device.mojom.UsbDevice',
kVersion: 0,
ptrClass: UsbDevicePtr,
proxyClass: UsbDeviceProxy,
@ -3421,4 +3421,4 @@
exports.UsbDevice = UsbDevice;
exports.UsbDevicePtr = UsbDevicePtr;
exports.UsbDeviceAssociatedPtr = UsbDeviceAssociatedPtr;
})();
})();

Просмотреть файл

@ -702,7 +702,7 @@
}
var UsbDeviceManager = {
name: 'device::mojom::UsbDeviceManager',
name: 'device.mojom.UsbDeviceManager',
kVersion: 0,
ptrClass: UsbDeviceManagerPtr,
proxyClass: UsbDeviceManagerProxy,
@ -822,7 +822,7 @@
}
var UsbDeviceManagerClient = {
name: 'device::mojom::UsbDeviceManagerClient',
name: 'device.mojom.UsbDeviceManagerClient',
kVersion: 0,
ptrClass: UsbDeviceManagerClientPtr,
proxyClass: UsbDeviceManagerClientProxy,
@ -840,4 +840,4 @@
exports.UsbDeviceManagerClient = UsbDeviceManagerClient;
exports.UsbDeviceManagerClientPtr = UsbDeviceManagerClientPtr;
exports.UsbDeviceManagerClientAssociatedPtr = UsbDeviceManagerClientAssociatedPtr;
})();
})();

Просмотреть файл

@ -4061,7 +4061,7 @@
}
var FakeBluetooth = {
name: 'bluetooth::mojom::FakeBluetooth',
name: 'bluetooth.mojom.FakeBluetooth',
kVersion: 0,
ptrClass: FakeBluetoothPtr,
proxyClass: FakeBluetoothProxy,
@ -5293,7 +5293,7 @@
}
var FakeCentral = {
name: 'bluetooth::mojom::FakeCentral',
name: 'bluetooth.mojom.FakeCentral',
kVersion: 0,
ptrClass: FakeCentralPtr,
proxyClass: FakeCentralProxy,
@ -5320,4 +5320,4 @@
exports.FakeCentral = FakeCentral;
exports.FakeCentralPtr = FakeCentralPtr;
exports.FakeCentralAssociatedPtr = FakeCentralAssociatedPtr;
})();
})();

Просмотреть файл

@ -804,7 +804,7 @@
}
var FakeBluetoothChooser = {
name: 'content::mojom::FakeBluetoothChooser',
name: 'content.mojom.FakeBluetoothChooser',
kVersion: 0,
ptrClass: FakeBluetoothChooserPtr,
proxyClass: FakeBluetoothChooserProxy,
@ -819,4 +819,4 @@
exports.FakeBluetoothChooser = FakeBluetoothChooser;
exports.FakeBluetoothChooserPtr = FakeBluetoothChooserPtr;
exports.FakeBluetoothChooserAssociatedPtr = FakeBluetoothChooserAssociatedPtr;
})();
})();

Просмотреть файл

@ -248,7 +248,7 @@
}
var MojoLayoutTestHelper = {
name: 'content::mojom::MojoLayoutTestHelper',
name: 'content.mojom.MojoLayoutTestHelper',
kVersion: 0,
ptrClass: MojoLayoutTestHelperPtr,
proxyClass: MojoLayoutTestHelperProxy,
@ -261,4 +261,4 @@
exports.MojoLayoutTestHelper = MojoLayoutTestHelper;
exports.MojoLayoutTestHelperPtr = MojoLayoutTestHelperPtr;
exports.MojoLayoutTestHelperAssociatedPtr = MojoLayoutTestHelperAssociatedPtr;
})();
})();

Просмотреть файл

@ -932,7 +932,7 @@
}
var Sensor = {
name: 'device::mojom::Sensor',
name: 'device.mojom.Sensor',
kVersion: 0,
ptrClass: SensorPtr,
proxyClass: SensorProxy,
@ -1050,7 +1050,7 @@
}
var SensorClient = {
name: 'device::mojom::SensorClient',
name: 'device.mojom.SensorClient',
kVersion: 0,
ptrClass: SensorClientPtr,
proxyClass: SensorClientProxy,
@ -1069,4 +1069,4 @@
exports.SensorClient = SensorClient;
exports.SensorClientPtr = SensorClientPtr;
exports.SensorClientAssociatedPtr = SensorClientAssociatedPtr;
})();
})();

Просмотреть файл

@ -411,7 +411,7 @@
}
var SensorProvider = {
name: 'device::mojom::SensorProvider',
name: 'device.mojom.SensorProvider',
kVersion: 0,
ptrClass: SensorProviderPtr,
proxyClass: SensorProviderProxy,
@ -426,4 +426,4 @@
exports.SensorProvider = SensorProvider;
exports.SensorProviderPtr = SensorProviderPtr;
exports.SensorProviderAssociatedPtr = SensorProviderAssociatedPtr;
})();
})();

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше