Commit 37602af1 authored by Stephen McGruer's avatar Stephen McGruer Committed by Commit Bot

Roll WPT js scripts into Chromium

This rolls testharness.js, idlharness.js, and webidl2.js from the
external copy in external/wpt/resources/ to the internal copy in
resources/, bringing us up to WPT SHA e343467e.

Note that the webidl2.js changes are just tab characters present in the
original file that I accidentally cleaned into spaces in the previous
roll.

Bug: 1067618, 1066131
Change-Id: I1ccdf13418e10ace29564695d3dd20a738a7a3eb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2135540Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarRobert Ma <robertma@chromium.org>
Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#756371}
parent 14103155
...@@ -30,6 +30,7 @@ _EXCLUDED_PATHS = ( ...@@ -30,6 +30,7 @@ _EXCLUDED_PATHS = (
r'^third_party[\\/]blink[\\/]tools[\\/]blinkpy[\\/]third_party[\\/]wpt[\\/]wpt[\\/].*', r'^third_party[\\/]blink[\\/]tools[\\/]blinkpy[\\/]third_party[\\/]wpt[\\/]wpt[\\/].*',
r'^third_party[\\/]blink[\\/]web_tests[\\/]external[\\/]wpt[\\/]tools[\\/].*', r'^third_party[\\/]blink[\\/]web_tests[\\/]external[\\/]wpt[\\/]tools[\\/].*',
r'^third_party[\\/]blink[\\/]web_tests[\\/]external[\\/]wpt[\\/]resources[\\/]webidl2[\\/].*', r'^third_party[\\/]blink[\\/]web_tests[\\/]external[\\/]wpt[\\/]resources[\\/]webidl2[\\/].*',
r'^third_party[\\/]blink[\\/]web_tests[\\/]resources[\\/]webidl2.js',
) )
......
...@@ -37,7 +37,7 @@ function setup(w) { ...@@ -37,7 +37,7 @@ function setup(w) {
} }
test_with_window((w) => { test_with_window((w) => {
assert_throws_dom_exception(w, 'InvalidCharacterError', () => { assert_throws_dom('InvalidCharacterError', w.DOMException, () => {
w.document.createElement('.invalid.name.'); w.document.createElement('.invalid.name.');
}); });
}, 'createElement 1. If localName does not match the Name production, then throw an InvalidCharacterError'); }, 'createElement 1. If localName does not match the Name production, then throw an InvalidCharacterError');
......
...@@ -93,9 +93,9 @@ ...@@ -93,9 +93,9 @@
function promise_rejects_with_dom_exception_syntax_error(global_context, test, promise, description) { function promise_rejects_with_dom_exception_syntax_error(global_context, test, promise, description) {
return promise.then(test.unreached_func("Should have rejected: " + description)).catch(function(e) { return promise.then(test.unreached_func("Should have rejected: " + description)).catch(function(e) {
assert_throws_dom_exception(global_context, 'SYNTAX_ERR', function () { throw e; }) assert_throws_dom('SYNTAX_ERR', global_context.DOMException, function () { throw e; })
}); });
} }
})(); })();
</script> </script>
</body> </body>
...@@ -19,7 +19,7 @@ test_with_window((w) => { ...@@ -19,7 +19,7 @@ test_with_window((w) => {
'a.b-c' 'a.b-c'
]; ];
valid_custom_element_names.forEach((val) => { valid_custom_element_names.forEach((val) => {
assert_throws_dom_exception(w, 'NotSupportedError', () => { assert_throws_dom('NotSupportedError', w.DOMException, () => {
w.customElements.define('a-a', A, { extends: val }); w.customElements.define('a-a', A, { extends: val });
}, `having valid custon element name element interface (${val}) ` + }, `having valid custon element name element interface (${val}) ` +
'for extends should throw a NotSupportedError') 'for extends should throw a NotSupportedError')
...@@ -38,7 +38,7 @@ test_with_window((w) => { ...@@ -38,7 +38,7 @@ test_with_window((w) => {
42 42
] ]
HTMLUnknownElement_names.forEach((val) => { HTMLUnknownElement_names.forEach((val) => {
assert_throws_dom_exception(w, 'NotSupportedError', () => { assert_throws_dom('NotSupportedError', w.DOMException, () => {
w.customElements.define('a-a', A, { extends: val }); w.customElements.define('a-a', A, { extends: val });
}, `having element interface for extends (${val}) undefined in specs` + }, `having element interface for extends (${val}) undefined in specs` +
' should throw a NotSupportedError'); ' should throw a NotSupportedError');
......
...@@ -47,7 +47,7 @@ test_with_window((w) => { ...@@ -47,7 +47,7 @@ test_with_window((w) => {
]; ];
class X extends w.HTMLElement {} class X extends w.HTMLElement {}
invalid_names.forEach((name) => { invalid_names.forEach((name) => {
assert_throws_dom_exception(w, 'SYNTAX_ERR', () => { assert_throws_dom('SYNTAX_ERR', w.DOMException, () => {
w.customElements.define(name, X); w.customElements.define(name, X);
}) })
}); });
...@@ -57,7 +57,7 @@ test_with_window((w) => { ...@@ -57,7 +57,7 @@ test_with_window((w) => {
class X extends w.HTMLElement {} class X extends w.HTMLElement {}
class Y extends w.HTMLElement {} class Y extends w.HTMLElement {}
w.customElements.define('a-a', X); w.customElements.define('a-a', X);
assert_throws_dom_exception(w, 'NotSupportedError', () => { assert_throws_dom('NotSupportedError', w.DOMException, () => {
w.customElements.define('a-a', Y); w.customElements.define('a-a', Y);
}, 'defining an element with a name that is already defined should throw ' + }, 'defining an element with a name that is already defined should throw ' +
'a NotSupportedError'); 'a NotSupportedError');
...@@ -68,7 +68,7 @@ test_with_window((w) => { ...@@ -68,7 +68,7 @@ test_with_window((w) => {
let X = (function () {}).bind({}); let X = (function () {}).bind({});
Object.defineProperty(X, 'prototype', { Object.defineProperty(X, 'prototype', {
get() { get() {
assert_throws_dom_exception(w, 'NotSupportedError', () => { assert_throws_dom('NotSupportedError', w.DOMException, () => {
w.customElements.define('a-a', Y); w.customElements.define('a-a', Y);
}, 'defining an element with a name that is being defined should ' + }, 'defining an element with a name that is being defined should ' +
'throw a NotSupportedError'); 'throw a NotSupportedError');
...@@ -82,7 +82,7 @@ test_with_window((w) => { ...@@ -82,7 +82,7 @@ test_with_window((w) => {
test_with_window((w) => { test_with_window((w) => {
class X extends w.HTMLElement {} class X extends w.HTMLElement {}
w.customElements.define('a-a', X); w.customElements.define('a-a', X);
assert_throws_dom_exception(w, 'NotSupportedError', () => { assert_throws_dom('NotSupportedError', w.DOMException, () => {
w.customElements.define('a-b', X); w.customElements.define('a-b', X);
}, 'defining an element with a constructor that is already in the ' + }, 'defining an element with a constructor that is already in the ' +
'registry should throw a NotSupportedError'); 'registry should throw a NotSupportedError');
...@@ -117,7 +117,7 @@ test_with_window((w) => { ...@@ -117,7 +117,7 @@ test_with_window((w) => {
let X = (function () {}).bind({}); let X = (function () {}).bind({});
Object.defineProperty(X, 'prototype', { Object.defineProperty(X, 'prototype', {
get() { get() {
assert_throws_dom_exception(w, 'NotSupportedError', () => { assert_throws_dom('NotSupportedError', w.DOMException, () => {
w.customElements.define('second-name', X); w.customElements.define('second-name', X);
}, 'defining an element with a constructor that is being defined ' + }, 'defining an element with a constructor that is being defined ' +
'should throw a NotSupportedError'); 'should throw a NotSupportedError');
...@@ -132,7 +132,7 @@ test_with_window((w) => { ...@@ -132,7 +132,7 @@ test_with_window((w) => {
let X = (function () {}).bind({}); let X = (function () {}).bind({});
Object.defineProperty(X, 'prototype', { Object.defineProperty(X, 'prototype', {
get() { get() {
assert_throws_dom_exception(w, 'NotSupportedError', () => { assert_throws_dom('NotSupportedError', w.DOMException, () => {
w.customElements.define('second-name', class extends HTMLElement { }); w.customElements.define('second-name', class extends HTMLElement { });
}, 'defining an element while element definition is running should ' + }, 'defining an element while element definition is running should ' +
'throw a NotSupportedError'); 'throw a NotSupportedError');
...@@ -189,7 +189,7 @@ test_with_window((w) => { ...@@ -189,7 +189,7 @@ test_with_window((w) => {
class C extends w.HTMLElement {} class C extends w.HTMLElement {}
w.customElements.define('a-a', C); w.customElements.define('a-a', C);
assert_throws_dom_exception(w, 'SYNTAX_ERR', () => { assert_throws_dom('SYNTAX_ERR', w.DOMException, () => {
let invalid_name = 'annotation-xml'; let invalid_name = 'annotation-xml';
let reused_constructor = C; let reused_constructor = C;
w.customElements.define(invalid_name, reused_constructor); w.customElements.define(invalid_name, reused_constructor);
......
...@@ -21,22 +21,6 @@ function test_with_window(f, name, srcdoc) { ...@@ -21,22 +21,6 @@ function test_with_window(f, name, srcdoc) {
}, name); }, name);
} }
// TODO(1066131): After https://github.com/web-platform-tests/wpt/pull/21876 is
// rolled into Chromium, this function can be replaced with:
// assert_throws_dom(code, global_context.DOMException, func, description);
function assert_throws_dom_exception(global_context, code, func, description) {
let exception;
assert_throws_dom(code, () => {
try {
func.call(this);
} catch(e) {
exception = e;
throw e;
}
}, description);
assert_true(exception instanceof global_context.DOMException, 'DOMException on the appropriate window');
}
function assert_array_equals_callback_invocations(actual, expected, description) { function assert_array_equals_callback_invocations(actual, expected, description) {
assert_equals(actual.length, expected.length); assert_equals(actual.length, expected.length);
for (let len=actual.length, i=0; i<len; ++i) { for (let len=actual.length, i=0; i<len; ++i) {
...@@ -80,7 +64,7 @@ function assert_reports_impl(w, func) { ...@@ -80,7 +64,7 @@ function assert_reports_impl(w, func) {
// with the expected DOMException. // with the expected DOMException.
function assert_reports_dom(w, expected_error, func, description) { function assert_reports_dom(w, expected_error, func, description) {
const e = assert_reports_impl(w, func); const e = assert_reports_impl(w, func);
assert_throws_dom(expected_error, () => { throw e; }, description); assert_throws_dom(expected_error, w.DOMException, () => { throw e; }, description);
} }
// Asserts that func synchronously invokes the error event handler in w // Asserts that func synchronously invokes the error event handler in w
......
...@@ -10,7 +10,7 @@ test_with_window((w) => { ...@@ -10,7 +10,7 @@ test_with_window((w) => {
class X extends w.HTMLElement {} class X extends w.HTMLElement {}
w.customElements.define('new-old', X); w.customElements.define('new-old', X);
assert_throws_dom("NotSupportedError", () => { assert_throws_dom("NotSupportedError", w.DOMException, () => {
w.document.registerElement('new-old', {prototype: X.prototype}); w.document.registerElement('new-old', {prototype: X.prototype});
}, '"registering" (v0) a name already "defined" should throw'); }, '"registering" (v0) a name already "defined" should throw');
...@@ -18,7 +18,7 @@ test_with_window((w) => { ...@@ -18,7 +18,7 @@ test_with_window((w) => {
prototype: Object.create(w.HTMLElement.prototype) prototype: Object.create(w.HTMLElement.prototype)
}); });
class Y extends w.HTMLElement {} class Y extends w.HTMLElement {}
assert_throws_dom("NotSupportedError", () => { assert_throws_dom("NotSupportedError", w.DOMException, () => {
w.customElements.define('old-new', Y); w.customElements.define('old-new', Y);
}, '"defining" (v1) a name already "registered" (v0) should throw'); }, '"defining" (v1) a name already "registered" (v0) should throw');
}, 'Overlapping old and new-style custom elements are not allowed'); }, 'Overlapping old and new-style custom elements are not allowed');
......
...@@ -51,7 +51,7 @@ t.step(() => { ...@@ -51,7 +51,7 @@ t.step(() => {
// Check that an exception is properly raised when attempting to // Check that an exception is properly raised when attempting to
// add a duplicate string type. // add a duplicate string type.
assert_throws_dom('NotSupportedError', assert_throws_dom('NotSupportedError', selection.window.DOMException,
() => items.add('Moo', 'text/plain'), () => items.add('Moo', 'text/plain'),
'Adding another text/plain data'); 'Adding another text/plain data');
}); });
......
...@@ -163,6 +163,7 @@ withFrame(t.step_func(function (frame) { ...@@ -163,6 +163,7 @@ withFrame(t.step_func(function (frame) {
var documentB = documentA.implementation.createDocument(null, ''); var documentB = documentA.implementation.createDocument(null, '');
assert_throws_dom( assert_throws_dom(
'NOT_SUPPORTED_ERR', 'NOT_SUPPORTED_ERR',
frame.contentWindow.DOMException,
function() { documentB.registerElement('x-a'); }); function() { documentB.registerElement('x-a'); });
// This document will not process custom elements because there is // This document will not process custom elements because there is
...@@ -170,6 +171,7 @@ withFrame(t.step_func(function (frame) { ...@@ -170,6 +171,7 @@ withFrame(t.step_func(function (frame) {
var documentC = documentB.implementation.createHTMLDocument(); var documentC = documentB.implementation.createHTMLDocument();
assert_throws_dom( assert_throws_dom(
'NOT_SUPPORTED_ERR', 'NOT_SUPPORTED_ERR',
frame.contentWindow.DOMException,
function() { documentC.registerElement('x-b'); }); function() { documentC.registerElement('x-b'); });
// Nor this one. // Nor this one.
...@@ -177,6 +179,7 @@ withFrame(t.step_func(function (frame) { ...@@ -177,6 +179,7 @@ withFrame(t.step_func(function (frame) {
'http://www.w3.org/1999/xhtml', 'html'); 'http://www.w3.org/1999/xhtml', 'html');
assert_throws_dom( assert_throws_dom(
'NOT_SUPPORTED_ERR', 'NOT_SUPPORTED_ERR',
frame.contentWindow.DOMException,
function() { documentD.registerElement('x-c'); }); function() { documentD.registerElement('x-c'); });
frame.remove(); frame.remove();
......
This is a testharness.js-based test. This is a testharness.js-based test.
PASS applyConstraints() sets the value of a constraint set by getUserMedia() PASS applyConstraints() sets the value of a constraint set by getUserMedia()
FAIL Attempting to change the deviceId with applyConstraints() fails promise_reject_js: function "function OverconstrainedError() { [native code] }" is not an Error subtype FAIL Attempting to change the deviceId with applyConstraints() fails promise_rejects_js: function "function OverconstrainedError() { [native code] }" is not an Error subtype
PASS An unsupported constraint is ignored by applyConstraints() PASS An unsupported constraint is ignored by applyConstraints()
PASS All valid keys are returned for complex constraints PASS All valid keys are returned for complex constraints
PASS Simple integer PASS Simple integer
......
...@@ -9,8 +9,9 @@ async_test(function(t) { ...@@ -9,8 +9,9 @@ async_test(function(t) {
iframe.onload = t.step_func_done(function() { iframe.onload = t.step_func_done(function() {
var video = iframe.contentDocument.getElementById("v"); var video = iframe.contentDocument.getElementById("v");
var iframeDOMException = iframe.contentWindow.DOMException;
iframe.remove(); iframe.remove();
assert_throws_dom("NotSupportedError", assert_throws_dom("NotSupportedError", iframeDOMException,
function() { video.captureStream(1.0); }, function() { video.captureStream(1.0); },
"Failed to execute 'captureStream' on 'HTMLMediaElement': The context has been destroyed."); "Failed to execute 'captureStream' on 'HTMLMediaElement': The context has been destroyed.");
}); });
......
...@@ -16,8 +16,9 @@ promise_test(async t => { ...@@ -16,8 +16,9 @@ promise_test(async t => {
await frameLoadedPromise; await frameLoadedPromise;
const video = await loadVideo(frame.contentDocument, '../content/test.ogv'); const video = await loadVideo(frame.contentDocument, '../content/test.ogv');
const frameDOMException = frame.contentWindow.DOMException;
document.body.removeChild(frame); document.body.removeChild(frame);
return promise_rejects_dom(t, 'InvalidStateError', return promise_rejects_dom(t, 'InvalidStateError', frameDOMException,
requestPictureInPictureWithTrustedClick(video)); requestPictureInPictureWithTrustedClick(video));
}, 'request Picture-in-Picture rejects when frame is detached'); }, 'request Picture-in-Picture rejects when frame is detached');
</script> </script>
...@@ -18,8 +18,9 @@ promise_test(async t => { ...@@ -18,8 +18,9 @@ promise_test(async t => {
await frameLoadedPromise; await frameLoadedPromise;
const element = frame.contentDocument.createElement('div'); const element = frame.contentDocument.createElement('div');
const frameDOMException = frame.contentWindow.DOMException;
document.body.removeChild(frame); document.body.removeChild(frame);
return promise_rejects_dom(t, 'InvalidStateError', return promise_rejects_dom(t, 'InvalidStateError', frameDOMException,
requestPictureInPictureWithTrustedClick(element, { height: 1, width: 1 })); requestPictureInPictureWithTrustedClick(element, { height: 1, width: 1 }));
}, 'request Picture-in-Picture rejects when frame is detached'); }, 'request Picture-in-Picture rejects when frame is detached');
</script> </script>
This is a testharness.js-based test. This is a testharness.js-based test.
PASS Continuations across a block -20 PASS Continuations across a block -20
FAIL Continuations across a block -15 resources/testharness.js:1867:25) FAIL Continuations across a block -15 resources/testharness.js:1958:25)
expected <style>* { font: 20px Ahem; }</style><p>^AAAAA</p><p>|BBBBB</p>, expected <style>* { font: 20px Ahem; }</style><p>^AAAAA</p><p>|BBBBB</p>,
but got <style>* { font: 20px Ahem; }</style><p>^AAAAA</p><p>BB|BBB</p>, but got <style>* { font: 20px Ahem; }</style><p>^AAAAA</p><p>BB|BBB</p>,
sameupto <style>* { font: 20px Ahem; }</style><p>^AAAAA</p><p> sameupto <style>* { font: 20px Ahem; }</style><p>^AAAAA</p><p>
......
...@@ -2406,10 +2406,7 @@ IdlInterface.prototype.test_member_operation = function(member) ...@@ -2406,10 +2406,7 @@ IdlInterface.prototype.test_member_operation = function(member)
if (!shouldRunSubTest(this.name)) { if (!shouldRunSubTest(this.name)) {
return; return;
} }
var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: operation " + member.name + var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: operation " + member);
"(" + member.arguments.map(
function(m) {return m.idlType.idlType; } ).join(", ")
+")");
a_test.step(function() a_test.step(function()
{ {
// This function tests WebIDL as of 2015-12-29. // This function tests WebIDL as of 2015-12-29.
...@@ -2749,10 +2746,19 @@ IdlInterface.prototype.test_object = function(desc) ...@@ -2749,10 +2746,19 @@ IdlInterface.prototype.test_object = function(desc)
exception = e; exception = e;
} }
var expected_typeof = var expected_typeof;
this.members.some(function(member) { return member.legacycaller; }) if (this.name == "HTMLAllCollection")
? "function" {
: "object"; // Result of [[IsHTMLDDA]] slot
expected_typeof = "undefined";
} else if (this.members.some(function(member) { return member.legacycaller; }))
{
expected_typeof = "function";
}
else
{
expected_typeof = "object";
}
this.test_primary_interface_of(desc, obj, exception, expected_typeof); this.test_primary_interface_of(desc, obj, exception, expected_typeof);
...@@ -2883,11 +2889,6 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect ...@@ -2883,11 +2889,6 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect
|| member.type == "operation") || member.type == "operation")
&& member.name) && member.name)
{ {
var described_name = member.name;
if (member.type == "operation")
{
described_name += "(" + member.arguments.map(arg => arg.idlType.idlType).join(", ") + ")";
}
subsetTestByKey(this.name, test, function() subsetTestByKey(this.name, test, function()
{ {
assert_equals(exception, null, "Unexpected exception when evaluating object"); assert_equals(exception, null, "Unexpected exception when evaluating object");
...@@ -2919,7 +2920,15 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect ...@@ -2919,7 +2920,15 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect
} }
if (!thrown) if (!thrown)
{ {
this.array.assert_type_is(property, member.idlType); if (this.name == "Document" && member.name == "all")
{
// Result of [[IsHTMLDDA]] slot
assert_equals(typeof property, "undefined");
}
else
{
this.array.assert_type_is(property, member.idlType);
}
} }
} }
if (member.type == "operation") if (member.type == "operation")
...@@ -2927,16 +2936,17 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect ...@@ -2927,16 +2936,17 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect
assert_equals(typeof obj[member.name], "function"); assert_equals(typeof obj[member.name], "function");
} }
} }
}.bind(this), this.name + " interface: " + desc + ' must inherit property "' + described_name + '" with the proper type'); }.bind(this), this.name + " interface: " + desc + ' must inherit property "' + member + '" with the proper type');
} }
// TODO: This is wrong if there are multiple operations with the same // TODO: This is wrong if there are multiple operations with the same
// identifier. // identifier.
// TODO: Test passing arguments of the wrong type. // TODO: Test passing arguments of the wrong type.
if (member.type == "operation" && member.name && member.arguments.length) if (member.type == "operation" && member.name && member.arguments.length)
{ {
var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: calling " + member.name + var description =
"(" + member.arguments.map(function(m) { return m.idlType.idlType; }).join(", ") + this.name + " interface: calling " + member + " on " + desc +
") on " + desc + " with too few arguments must throw TypeError"); " with too few arguments must throw TypeError";
var a_test = subsetTestByKey(this.name, async_test, description);
a_test.step(function() a_test.step(function()
{ {
assert_equals(exception, null, "Unexpected exception when evaluating object"); assert_equals(exception, null, "Unexpected exception when evaluating object");
...@@ -3150,6 +3160,36 @@ IdlInterfaceMember.prototype.is_to_json_regular_operation = function() { ...@@ -3150,6 +3160,36 @@ IdlInterfaceMember.prototype.is_to_json_regular_operation = function() {
return this.type == "operation" && this.special !== "static" && this.name == "toJSON"; return this.type == "operation" && this.special !== "static" && this.name == "toJSON";
}; };
IdlInterfaceMember.prototype.toString = function() {
function formatType(type) {
var result;
if (type.generic) {
result = type.generic + "<" + type.idlType.map(formatType).join(", ") + ">";
} else if (type.union) {
result = "(" + type.subtype.map(formatType).join(" or ") + ")";
} else {
result = type.idlType;
}
if (type.nullable) {
result += "?"
}
return result;
}
if (this.type === "operation") {
var args = this.arguments.map(function(m) {
return [
m.optional ? "optional " : "",
formatType(m.idlType),
m.variadic ? "..." : "",
].join("");
}).join(", ");
return this.name + "(" + args + ")";
}
return this.name;
}
/// Internal helper functions /// /// Internal helper functions ///
function create_suitable_object(type) function create_suitable_object(type)
{ {
...@@ -3294,17 +3334,10 @@ IdlNamespace.prototype.test_member_operation = function(member) ...@@ -3294,17 +3334,10 @@ IdlNamespace.prototype.test_member_operation = function(member)
if (!shouldRunSubTest(this.name)) { if (!shouldRunSubTest(this.name)) {
return; return;
} }
var args = member.arguments.map(function(a) {
var s = a.idlType.idlType;
if (a.variadic) {
s += '...';
}
return s;
}).join(", ");
var a_test = subsetTestByKey( var a_test = subsetTestByKey(
this.name, this.name,
async_test, async_test,
this.name + ' namespace: operation ' + member.name + '(' + args + ')'); this.name + ' namespace: operation ' + member);
a_test.step(function() { a_test.step(function() {
assert_own_property( assert_own_property(
self[this.name], self[this.name],
......
(function webpackUniversalModuleDefinition(root, factory) { (function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object') if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(); module.exports = factory();
else if(typeof define === 'function' && define.amd) else if(typeof define === 'function' && define.amd)
define([], factory); define([], factory);
else if(typeof exports === 'object') else if(typeof exports === 'object')
exports["WebIDL2"] = factory(); exports["WebIDL2"] = factory();
else else
root["WebIDL2"] = factory(); root["WebIDL2"] = factory();
})(this, function() { })(this, function() {
return /******/ (function(modules) { // webpackBootstrap return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache /******/ // The module cache
/******/ var installedModules = {}; /******/ var installedModules = {};
/******/ /******/
/******/ // The require function /******/ // The require function
/******/ function __webpack_require__(moduleId) { /******/ function __webpack_require__(moduleId) {
/******/ /******/
/******/ // Check if module is in cache /******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) { /******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports; /******/ return installedModules[moduleId].exports;
/******/ } /******/ }
/******/ // Create a new module (and put it into the cache) /******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = { /******/ var module = installedModules[moduleId] = {
/******/ i: moduleId, /******/ i: moduleId,
/******/ l: false, /******/ l: false,
/******/ exports: {} /******/ exports: {}
/******/ }; /******/ };
/******/ /******/
/******/ // Execute the module function /******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ /******/
/******/ // Flag the module as loaded /******/ // Flag the module as loaded
/******/ module.l = true; /******/ module.l = true;
/******/ /******/
/******/ // Return the exports of the module /******/ // Return the exports of the module
/******/ return module.exports; /******/ return module.exports;
/******/ } /******/ }
/******/ /******/
/******/ /******/
/******/ // expose the modules object (__webpack_modules__) /******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules; /******/ __webpack_require__.m = modules;
/******/ /******/
/******/ // expose the module cache /******/ // expose the module cache
/******/ __webpack_require__.c = installedModules; /******/ __webpack_require__.c = installedModules;
/******/ /******/
/******/ // define getter function for harmony exports /******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) { /******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) { /******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ } /******/ }
/******/ }; /******/ };
/******/ /******/
/******/ // define __esModule on exports /******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) { /******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ } /******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ }; /******/ };
/******/ /******/
/******/ // create a fake namespace object /******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it /******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object /******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require /******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) { /******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value; /******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null); /******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns); /******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns; /******/ return ns;
/******/ }; /******/ };
/******/ /******/
/******/ // getDefaultExport function for compatibility with non-harmony modules /******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) { /******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ? /******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } : /******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; }; /******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter); /******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter; /******/ return getter;
/******/ }; /******/ };
/******/ /******/
/******/ // Object.prototype.hasOwnProperty.call /******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/ /******/
/******/ // __webpack_public_path__ /******/ // __webpack_public_path__
/******/ __webpack_require__.p = ""; /******/ __webpack_require__.p = "";
/******/ /******/
/******/ /******/
/******/ // Load entry module and return exports /******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 0); /******/ return __webpack_require__(__webpack_require__.s = 0);
/******/ }) /******/ })
/************************************************************************/ /************************************************************************/
/******/ ([ /******/ ([
...@@ -2870,4 +2870,4 @@ function validate(ast) { ...@@ -2870,4 +2870,4 @@ function validate(ast) {
/***/ }) /***/ })
/******/ ]); /******/ ]);
}); });
//# sourceMappingURL=webidl2.js.map //# sourceMappingURL=webidl2.js.map
\ No newline at end of file
CONSOLE ERROR: line 3346: Uncaught Error: assert_equals: Normal script execution order comparison expected "Inline1;Sync1;EndOfBody;DOMContentLoaded;Async1;" but got "EndOfBody;Inline1;Sync1;DOMContentLoaded;Async1;" CONSOLE ERROR: line 3421: Uncaught Error: assert_equals: Normal script execution order comparison expected "Inline1;Sync1;EndOfBody;DOMContentLoaded;Async1;" but got "EndOfBody;Inline1;Sync1;DOMContentLoaded;Async1;"
This is a testharness.js-based test. This is a testharness.js-based test.
FAIL Async Script Execution Order (wrt possibly deferred Synchronous Script) Uncaught Error: assert_equals: Normal script execution order comparison expected "Inline1;Sync1;EndOfBody;DOMContentLoaded;Async1;" but got "EndOfBody;Inline1;Sync1;DOMContentLoaded;Async1;" FAIL Async Script Execution Order (wrt possibly deferred Synchronous Script) Uncaught Error: assert_equals: Normal script execution order comparison expected "Inline1;Sync1;EndOfBody;DOMContentLoaded;Async1;" but got "EndOfBody;Inline1;Sync1;DOMContentLoaded;Async1;"
Harness: the test ran to completion. Harness: the test ran to completion.
......
CONSOLE ERROR: line 3346: Uncaught Error: assert_equals: Normal defer script execution order comparison expected "Inline1;Sync1;Inline2;Sync2;EndOfBody;Defer1;Defer2;DOMContentLoaded;" but got "EndOfBody;Inline1;Sync1;Inline2;Sync2;Defer1;Defer2;DOMContentLoaded;" CONSOLE ERROR: line 3421: Uncaught Error: assert_equals: Normal defer script execution order comparison expected "Inline1;Sync1;Inline2;Sync2;EndOfBody;Defer1;Defer2;DOMContentLoaded;" but got "EndOfBody;Inline1;Sync1;Inline2;Sync2;Defer1;Defer2;DOMContentLoaded;"
This is a testharness.js-based test. This is a testharness.js-based test.
FAIL Defer Script Execution Order Uncaught Error: assert_equals: Normal defer script execution order comparison expected "Inline1;Sync1;Inline2;Sync2;EndOfBody;Defer1;Defer2;DOMContentLoaded;" but got "EndOfBody;Inline1;Sync1;Inline2;Sync2;Defer1;Defer2;DOMContentLoaded;" FAIL Defer Script Execution Order Uncaught Error: assert_equals: Normal defer script execution order comparison expected "Inline1;Sync1;Inline2;Sync2;EndOfBody;Defer1;Defer2;DOMContentLoaded;" but got "EndOfBody;Inline1;Sync1;Inline2;Sync2;Defer1;Defer2;DOMContentLoaded;"
Harness: the test ran to completion. Harness: the test ran to completion.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment