WebKit Bugzilla
Attachment 349133 Details for
Bug 189303
: Update idlharness.js and webidl2.js.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-189303-20180907120846.patch (text/plain), 1.01 MB, created by
Ms2ger (he/him; ⌚ UTC+1/+2)
on 2018-09-07 03:08:49 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Ms2ger (he/him; ⌚ UTC+1/+2)
Created:
2018-09-07 03:08:49 PDT
Size:
1.01 MB
patch
obsolete
>Subversion Revision: 235780 >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index f5a27fd3cfbd5fc5573de8920579ce7e7066617d..a28589bba4c6c514dea51c1dc243b11d4270cff4 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,19 @@ >+2018-09-07 Ms2ger <Ms2ger@igalia.com> >+ >+ Update idlharness.js and webidl2.js. >+ https://bugs.webkit.org/show_bug.cgi?id=189303 >+ >+ Reviewed by Youenn Fablet. >+ >+ Updated expectations. >+ >+ * http/wpt/credential-management/idl.https-expected.txt: >+ * http/wpt/entries-api/interfaces-expected.txt: >+ * http/wpt/webauthn/idl.https-expected.txt: >+ * http/wpt/webauthn/idl.https.html: Fix confusion in untested IDLs. >+ * platform/ios-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt: >+ * platform/mac/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt: Removed; the platform-neutral file was updated. >+ > 2018-09-06 Zalan Bujtas <zalan@apple.com> > > [LFC] Add support for min/max-height percentage values. >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index 2eccbd80bdcc792388aa0c50434cdb73b8e80a27..6a338bd4ec5c27b195291c4dbd21e76410065820 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,257 @@ >+2018-09-07 Ms2ger <Ms2ger@igalia.com> >+ >+ Update idlharness.js and webidl2.js. >+ https://bugs.webkit.org/show_bug.cgi?id=189303 >+ >+ Reviewed by Youenn Fablet. >+ >+ Update idlharness.js and webidl2.js. Fix tests that are now broken >+ because of increased strictness in the harness. Fix tests that have >+ been broken for a while. >+ >+ Update expectations. (The main change is the removal of "Unscopable >+ handled correctly for ..." subtests.) >+ >+ * web-platform-tests/FileAPI/idlharness-expected.txt: >+ * web-platform-tests/FileAPI/idlharness.html: Update from upstream. >+ * web-platform-tests/FileAPI/idlharness.worker-expected.txt: >+ * web-platform-tests/FileAPI/idlharness.worker.js: Update from upstream. >+ * web-platform-tests/IndexedDB/interfaces.any-expected.txt: >+ * web-platform-tests/IndexedDB/interfaces.any.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/idlharness.https-expected.txt: >+ * web-platform-tests/WebCryptoAPI/idlharness.https.worker-expected.txt: >+ * web-platform-tests/WebIDL/interfaces-expected.txt: >+ * web-platform-tests/credential-management/idl.https-expected.txt: >+ * web-platform-tests/css/cssom-view/interfaces-expected.txt: >+ * web-platform-tests/css/geometry/interfaces-expected.txt: >+ * web-platform-tests/css/geometry/interfaces.worker-expected.txt: >+ * web-platform-tests/dom/interfaces-expected.txt: >+ * web-platform-tests/dom/interfaces.html: Use the new method for dependency IDLs. >+ * web-platform-tests/encoding/idlharness-expected.txt: >+ * web-platform-tests/eventsource/interfaces-expected.txt: >+ * web-platform-tests/fetch/api/headers/headers-idl-expected.txt: >+ * web-platform-tests/fetch/api/request/request-idl-expected.txt: >+ * web-platform-tests/fetch/api/response/response-idl-expected.txt: >+ * web-platform-tests/hr-time/idlharness-expected.txt: >+ * web-platform-tests/hr-time/idlharness.html: Add missing dependency IDL. >+ * web-platform-tests/html/webappapis/animation-frames/idlharness-expected.txt: >+ * web-platform-tests/interfaces/IndexedDB.idl: Fix bug caught by stricter IDL parser. >+ * web-platform-tests/interfaces/intersection-observer.idl: Added from upstream. >+ * web-platform-tests/interfaces/web-audio-api.idl: >+ Added to fix webaudio/the-audio-api/{the-gainnode-interface, the-delaynode-interface}/idl-test.html. >+ * web-platform-tests/intersection-observer/idlharness.window-expected.txt: >+ Update for added intersection-observer.idl. >+ * web-platform-tests/media-source/interfaces-expected.txt: Update from macOS. >+ * web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt: >+ * web-platform-tests/mediacapture-streams/MediaDevices-IDL-all.html: Add missing dependency IDLs. >+ * web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt: >+ * web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices.html: Add missing dependency IDLs. >+ * web-platform-tests/notifications/interfaces-expected.txt: >+ * web-platform-tests/payment-request/idlharness.https.window-expected.txt: >+ * web-platform-tests/resource-timing/idlharness-expected.txt: >+ * web-platform-tests/resources/idlharness.js: >+ * web-platform-tests/resources/webidl2/CHANGELOG.md: Added. >+ * web-platform-tests/resources/webidl2/README.md: >+ * web-platform-tests/resources/webidl2/checker/index.html: Added. >+ * web-platform-tests/resources/webidl2/checker/w3c-import.log: Added. >+ * web-platform-tests/resources/webidl2/lib/w3c-import.log: >+ * web-platform-tests/resources/webidl2/lib/webidl2.js: >+ * web-platform-tests/resources/webidl2/lib/writer.js: >+ * web-platform-tests/resources/webidl2/package-lock.json: Added. >+ * web-platform-tests/resources/webidl2/package.json: >+ * web-platform-tests/resources/webidl2/test/invalid.js: >+ * web-platform-tests/resources/webidl2/test/invalid/idl/array.widl: Renamed from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/array.widl. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/caller.widl: Renamed from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/caller.widl. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/duplicate.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/enum-empty.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/enum-wo-comma.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/exception.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/extattr-empty-ids.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/id-underscored-number.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/implements_and_includes_ws.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/iterator.widl: Renamed from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterator.widl. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/maplike-1type.widl: >+ * web-platform-tests/resources/webidl2/test/invalid/idl/namespace-readwrite.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon-callback.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/nonnullableobjects.widl: >+ * web-platform-tests/resources/webidl2/test/invalid/idl/promise-nullable.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/promise-with-extended-attribute.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/readonly-iterable.widl: >+ * web-platform-tests/resources/webidl2/test/invalid/idl/record-key-with-extended-attribute.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/record-single.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/setlike-2types.widl: >+ * web-platform-tests/resources/webidl2/test/invalid/idl/setter-creator.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/spaced-negative-infinity.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/spaced-variadic.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/special-omittable.widl: >+ * web-platform-tests/resources/webidl2/test/invalid/idl/stray-slash.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.widl: Renamed from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.idl. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/typedef-nested.widl: >+ * web-platform-tests/resources/webidl2/test/invalid/idl/union-dangling-or.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/union-one.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/union-zero.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/unknown-generic.widl: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/idl/w3c-import.log: >+ * web-platform-tests/resources/webidl2/test/invalid/json/array.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/caller.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/dict-required-default.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/duplicate.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/enum-empty.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/enum-wo-comma.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/enum.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/exception.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/extattr-empty-ids.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/id-underscored-number.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/implements_and_includes_ws.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/iterator.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/maplike-1type.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/module.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/namespace-readwrite.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon-callback.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/nonnullableany.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/nonnullableobjects.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/promise-nullable.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/promise-with-extended-attribute.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/raises.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/readonly-iterable.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/record-key-with-extended-attribute.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/record-key.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/record-single.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/scopedname.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/sequenceAsAttribute.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/setlike-2types.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/setter-creator.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/spaced-negative-infinity.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/spaced-variadic.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/special-omittable.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/stray-slash.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/stringconstants.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/typedef-nested.json: >+ * web-platform-tests/resources/webidl2/test/invalid/json/union-dangling-or.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/union-one.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/union-zero.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/unknown-generic.json: Added. >+ * web-platform-tests/resources/webidl2/test/invalid/json/w3c-import.log: >+ * web-platform-tests/resources/webidl2/test/syntax.js: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/attributes.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/constants.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/equivalent-decl.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/exception-inheritance.widl: Removed. >+ * web-platform-tests/resources/webidl2/test/syntax/idl/exception.widl: Removed. >+ * web-platform-tests/resources/webidl2/test/syntax/idl/extended-attributes.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/generic.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/identifier-qualified-names.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/indexed-properties.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/inherits-getter.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/iterable.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/legacyiterable.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/maplike.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/mixin.widl: Added. >+ * web-platform-tests/resources/webidl2/test/syntax/idl/overloading.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/primitives.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/promise-void.widl: Added. >+ * web-platform-tests/resources/webidl2/test/syntax/idl/record.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/reg-operations.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/sequence.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/serializer.widl: Removed. >+ * web-platform-tests/resources/webidl2/test/syntax/idl/setlike.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/stringifier.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.widl: Renamed from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.idl. >+ * web-platform-tests/resources/webidl2/test/syntax/idl/typesuffixes.widl: >+ * web-platform-tests/resources/webidl2/test/syntax/idl/w3c-import.log: >+ * web-platform-tests/resources/webidl2/test/syntax/json/allowany.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/array.json: Removed. >+ * web-platform-tests/resources/webidl2/test/syntax/json/attributes.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/callback.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/caller.json: Removed. >+ * web-platform-tests/resources/webidl2/test/syntax/json/constants.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/constructor.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/dictionary-inherits.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/dictionary.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/documentation-dos.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/documentation.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/enum.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/equivalent-decl.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/exception-inheritance.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/exception.json: Removed. >+ * web-platform-tests/resources/webidl2/test/syntax/json/extended-attributes.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/generic.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/getter-setter.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/identifier-qualified-names.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/implements.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/indexed-properties.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/inherits-getter.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/interface-inherits.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/iterable.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/iterator.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/legacyiterable.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/maplike.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/mixin.json: Added. >+ * web-platform-tests/resources/webidl2/test/syntax/json/namedconstructor.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/namespace.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/nointerfaceobject.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/nullable.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/nullableobjects.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/operation-optional-arg.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/overloading.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/overridebuiltins.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/partial-interface.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/primitives.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/promise-void.json: Added. >+ * web-platform-tests/resources/webidl2/test/syntax/json/prototyperoot.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/putforwards.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/record.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/reg-operations.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/replaceable.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/sequence.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/serializer.json: Removed. >+ * web-platform-tests/resources/webidl2/test/syntax/json/setlike.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/static.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/stringifier-attribute.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/stringifier-custom.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/stringifier.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/treatasnull.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/treatasundefined.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/typedef-union.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/typedef.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/typesuffixes.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/uniontype.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/variadic-operations.json: >+ * web-platform-tests/resources/webidl2/test/syntax/json/w3c-import.log: >+ * web-platform-tests/resources/webidl2/test/util/acquire.js: Added. >+ * web-platform-tests/resources/webidl2/test/util/collect.js: Added. >+ * web-platform-tests/resources/webidl2/test/util/w3c-import.log: Added. >+ * web-platform-tests/resources/webidl2/test/w3c-import.log: >+ * web-platform-tests/resources/webidl2/test/web/w3c-import.log: >+ * web-platform-tests/resources/webidl2/test/writer.js: Added. >+ * web-platform-tests/resources/webidl2/w3c-import.log: >+ * web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt: >+ * web-platform-tests/url/interfaces.any-expected.txt: >+ * web-platform-tests/url/interfaces.any.worker-expected.txt: >+ * web-platform-tests/user-timing/idlharness-expected.txt: >+ * web-platform-tests/web-animations/interfaces/Animation/idlharness-expected.txt: >+ * web-platform-tests/web-animations/interfaces/AnimationEffectTiming/idlharness-expected.txt: >+ * web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness-expected.txt: >+ * web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness-expected.txt: >+ * web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt: >+ * web-platform-tests/web-share/idlharness.https-expected.txt: >+ * web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test-expected.txt: >+ * web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html: Escape less-than signs. >+ * web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test-expected.txt: >+ * web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html: Escape less-than signs. >+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/idl-test-expected.txt: >+ * web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test-expected.txt: >+ * web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test.html: Escape less-than signs. >+ * web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test-expected.txt: >+ * web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test.html: Escape less-than signs. >+ * web-platform-tests/workers/interfaces.worker-expected.txt: >+ * web-platform-tests/xhr/idlharness.any-expected.txt: >+ * web-platform-tests/xhr/idlharness.any.worker-expected.txt: >+ * web-platform-tests/xhr/interfaces-expected.txt: >+ > 2018-09-05 Youenn Fablet <youenn@apple.com> > > Expose RTCRtpSender.setParameters >diff --git a/LayoutTests/http/wpt/credential-management/idl.https-expected.txt b/LayoutTests/http/wpt/credential-management/idl.https-expected.txt >index a14fb042486b71ffcc63249c36829d43420d3ba0..0545f4852c8cc31e80e4a7e16d9c4bb8c70c8672 100644 >--- a/LayoutTests/http/wpt/credential-management/idl.https-expected.txt >+++ b/LayoutTests/http/wpt/credential-management/idl.https-expected.txt >@@ -6,13 +6,9 @@ PASS CredentialsContainer interface: existence and properties of interface proto > PASS CredentialsContainer interface: existence and properties of interface prototype object's "constructor" property > PASS CredentialsContainer interface: existence and properties of interface prototype object's @@unscopables property > PASS CredentialsContainer interface: operation get(CredentialRequestOptions) >-PASS Unscopable handled correctly for get(CredentialRequestOptions) on CredentialsContainer > PASS CredentialsContainer interface: operation store(Credential) >-PASS Unscopable handled correctly for store(Credential) on CredentialsContainer > PASS CredentialsContainer interface: operation create(CredentialCreationOptions) >-PASS Unscopable handled correctly for create(CredentialCreationOptions) on CredentialsContainer > PASS CredentialsContainer interface: operation preventSilentAccess() >-PASS Unscopable handled correctly for preventSilentAccess() on CredentialsContainer > PASS CredentialsContainer must be primary interface of navigator.credentials > PASS Stringification of navigator.credentials > PASS CredentialsContainer interface: navigator.credentials must inherit property "get(CredentialRequestOptions)" with the proper type >diff --git a/LayoutTests/http/wpt/entries-api/interfaces-expected.txt b/LayoutTests/http/wpt/entries-api/interfaces-expected.txt >index afec09c2a5b3227ac2dd43b3c0168749eed0e521..c69bc63b4896477948bd77563d8bc96a3b0e2a55 100644 >--- a/LayoutTests/http/wpt/entries-api/interfaces-expected.txt >+++ b/LayoutTests/http/wpt/entries-api/interfaces-expected.txt >@@ -1,12 +1,14 @@ > Entries API IDL tests > > >+PASS Partial interface File: original interface defined >+PASS Partial interface HTMLInputElement: original interface defined >+PASS Partial interface DataTransferItem: original interface defined > PASS ErrorCallback interface: existence and properties of interface object > PASS ErrorCallback interface: existence and properties of interface prototype object > PASS ErrorCallback interface: existence and properties of interface prototype object's "constructor" property > PASS ErrorCallback interface: existence and properties of interface prototype object's @@unscopables property > PASS ErrorCallback interface: operation handleEvent(DOMException) >-PASS Unscopable handled correctly for handleEvent(DOMException) on ErrorCallback > PASS FileSystemEntry interface: existence and properties of interface object > PASS FileSystemEntry interface object length > PASS FileSystemEntry interface object name >@@ -14,17 +16,11 @@ PASS FileSystemEntry interface: existence and properties of interface prototype > PASS FileSystemEntry interface: existence and properties of interface prototype object's "constructor" property > PASS FileSystemEntry interface: existence and properties of interface prototype object's @@unscopables property > PASS FileSystemEntry interface: attribute isFile >-PASS Unscopable handled correctly for isFile property on FileSystemEntry > PASS FileSystemEntry interface: attribute isDirectory >-PASS Unscopable handled correctly for isDirectory property on FileSystemEntry > PASS FileSystemEntry interface: attribute name >-PASS Unscopable handled correctly for name property on FileSystemEntry > PASS FileSystemEntry interface: attribute fullPath >-PASS Unscopable handled correctly for fullPath property on FileSystemEntry > PASS FileSystemEntry interface: attribute filesystem >-PASS Unscopable handled correctly for filesystem property on FileSystemEntry > PASS FileSystemEntry interface: operation getParent(FileSystemEntryCallback, ErrorCallback) >-PASS Unscopable handled correctly for getParent(FileSystemEntryCallback, ErrorCallback) on FileSystemEntry > PASS FileSystemDirectoryEntry interface: existence and properties of interface object > PASS FileSystemDirectoryEntry interface object length > PASS FileSystemDirectoryEntry interface object name >@@ -32,17 +28,13 @@ PASS FileSystemDirectoryEntry interface: existence and properties of interface p > PASS FileSystemDirectoryEntry interface: existence and properties of interface prototype object's "constructor" property > PASS FileSystemDirectoryEntry interface: existence and properties of interface prototype object's @@unscopables property > PASS FileSystemDirectoryEntry interface: operation createReader() >-PASS Unscopable handled correctly for createReader() on FileSystemDirectoryEntry > PASS FileSystemDirectoryEntry interface: operation getFile(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) >-PASS Unscopable handled correctly for getFile(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) on FileSystemDirectoryEntry > PASS FileSystemDirectoryEntry interface: operation getDirectory(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) >-PASS Unscopable handled correctly for getDirectory(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) on FileSystemDirectoryEntry > PASS FileSystemEntryCallback interface: existence and properties of interface object > PASS FileSystemEntryCallback interface: existence and properties of interface prototype object > PASS FileSystemEntryCallback interface: existence and properties of interface prototype object's "constructor" property > PASS FileSystemEntryCallback interface: existence and properties of interface prototype object's @@unscopables property > PASS FileSystemEntryCallback interface: operation handleEvent(FileSystemEntry) >-PASS Unscopable handled correctly for handleEvent(FileSystemEntry) on FileSystemEntryCallback > PASS FileSystemDirectoryReader interface: existence and properties of interface object > PASS FileSystemDirectoryReader interface object length > PASS FileSystemDirectoryReader interface object name >@@ -50,13 +42,11 @@ PASS FileSystemDirectoryReader interface: existence and properties of interface > PASS FileSystemDirectoryReader interface: existence and properties of interface prototype object's "constructor" property > PASS FileSystemDirectoryReader interface: existence and properties of interface prototype object's @@unscopables property > PASS FileSystemDirectoryReader interface: operation readEntries(FileSystemEntriesCallback, ErrorCallback) >-PASS Unscopable handled correctly for readEntries(FileSystemEntriesCallback, ErrorCallback) on FileSystemDirectoryReader > PASS FileSystemEntriesCallback interface: existence and properties of interface object > PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object > PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object's "constructor" property > PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object's @@unscopables property > PASS FileSystemEntriesCallback interface: operation handleEvent([object Object]) >-PASS Unscopable handled correctly for handleEvent([object Object]) on FileSystemEntriesCallback > PASS FileSystemFileEntry interface: existence and properties of interface object > PASS FileSystemFileEntry interface object length > PASS FileSystemFileEntry interface object name >@@ -64,13 +54,11 @@ PASS FileSystemFileEntry interface: existence and properties of interface protot > PASS FileSystemFileEntry interface: existence and properties of interface prototype object's "constructor" property > PASS FileSystemFileEntry interface: existence and properties of interface prototype object's @@unscopables property > PASS FileSystemFileEntry interface: operation file(FileCallback, ErrorCallback) >-PASS Unscopable handled correctly for file(FileCallback, ErrorCallback) on FileSystemFileEntry > PASS FileCallback interface: existence and properties of interface object > PASS FileCallback interface: existence and properties of interface prototype object > PASS FileCallback interface: existence and properties of interface prototype object's "constructor" property > PASS FileCallback interface: existence and properties of interface prototype object's @@unscopables property > PASS FileCallback interface: operation handleEvent(File) >-PASS Unscopable handled correctly for handleEvent(File) on FileCallback > PASS FileSystem interface: existence and properties of interface object > PASS FileSystem interface object length > PASS FileSystem interface object name >@@ -78,18 +66,12 @@ PASS FileSystem interface: existence and properties of interface prototype objec > PASS FileSystem interface: existence and properties of interface prototype object's "constructor" property > PASS FileSystem interface: existence and properties of interface prototype object's @@unscopables property > PASS FileSystem interface: attribute name >-PASS Unscopable handled correctly for name property on FileSystem > PASS FileSystem interface: attribute root >-PASS Unscopable handled correctly for root property on FileSystem > PASS File interface: attribute webkitRelativePath >-PASS Unscopable handled correctly for webkitRelativePath property on File > PASS File interface: new File(["myFileBits"], "myFileName") must inherit property "webkitRelativePath" with the proper type > PASS HTMLInputElement interface: attribute webkitdirectory >-PASS Unscopable handled correctly for webkitdirectory property on HTMLInputElement > PASS HTMLInputElement interface: attribute webkitEntries >-PASS Unscopable handled correctly for webkitEntries property on HTMLInputElement > PASS HTMLInputElement interface: file_input must inherit property "webkitdirectory" with the proper type > PASS HTMLInputElement interface: file_input must inherit property "webkitEntries" with the proper type > PASS DataTransferItem interface: operation webkitGetAsEntry() >-PASS Unscopable handled correctly for webkitGetAsEntry() on DataTransferItem > >diff --git a/LayoutTests/http/wpt/webauthn/idl.https-expected.txt b/LayoutTests/http/wpt/webauthn/idl.https-expected.txt >index 54aff4ff441ce2be6a5067af7897959b82010a7f..32c27bf269b4a8490b40dbeefbf7a6d9a3e14113 100644 >--- a/LayoutTests/http/wpt/webauthn/idl.https-expected.txt >+++ b/LayoutTests/http/wpt/webauthn/idl.https-expected.txt >@@ -4,6 +4,9 @@ This test verifies that the implementations of the WebAuthN API match with its W > > > PASS Setup for WebAuthN API IDL tests. >+PASS Partial dictionary CredentialCreationOptions: original dictionary defined >+PASS Partial dictionary CredentialRequestOptions: original dictionary defined >+PASS Partial interface PublicKeyCredential: original interface defined > PASS Credential interface: existence and properties of interface object > PASS Credential interface object length > PASS Credential interface object name >@@ -11,9 +14,7 @@ PASS Credential interface: existence and properties of interface prototype objec > PASS Credential interface: existence and properties of interface prototype object's "constructor" property > PASS Credential interface: existence and properties of interface prototype object's @@unscopables property > PASS Credential interface: attribute id >-PASS Unscopable handled correctly for id property on Credential > PASS Credential interface: attribute type >-PASS Unscopable handled correctly for type property on Credential > PASS PublicKeyCredential interface: existence and properties of interface object > PASS PublicKeyCredential interface object length > PASS PublicKeyCredential interface object name >@@ -21,13 +22,9 @@ PASS PublicKeyCredential interface: existence and properties of interface protot > PASS PublicKeyCredential interface: existence and properties of interface prototype object's "constructor" property > PASS PublicKeyCredential interface: existence and properties of interface prototype object's @@unscopables property > PASS PublicKeyCredential interface: attribute rawId >-PASS Unscopable handled correctly for rawId property on PublicKeyCredential > PASS PublicKeyCredential interface: attribute response >-PASS Unscopable handled correctly for response property on PublicKeyCredential > PASS PublicKeyCredential interface: operation getClientExtensionResults() >-PASS Unscopable handled correctly for getClientExtensionResults() on PublicKeyCredential > PASS PublicKeyCredential interface: operation isUserVerifyingPlatformAuthenticatorAvailable() >-PASS Unscopable handled correctly for isUserVerifyingPlatformAuthenticatorAvailable() on PublicKeyCredential > PASS PublicKeyCredential must be primary interface of createdCredential > PASS Stringification of createdCredential > PASS PublicKeyCredential interface: createdCredential must inherit property "rawId" with the proper type >@@ -43,7 +40,6 @@ PASS AuthenticatorResponse interface: existence and properties of interface prot > PASS AuthenticatorResponse interface: existence and properties of interface prototype object's "constructor" property > PASS AuthenticatorResponse interface: existence and properties of interface prototype object's @@unscopables property > PASS AuthenticatorResponse interface: attribute clientDataJSON >-PASS Unscopable handled correctly for clientDataJSON property on AuthenticatorResponse > PASS AuthenticatorAttestationResponse interface: existence and properties of interface object > PASS AuthenticatorAttestationResponse interface object length > PASS AuthenticatorAttestationResponse interface object name >@@ -51,7 +47,6 @@ PASS AuthenticatorAttestationResponse interface: existence and properties of int > PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's "constructor" property > PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's @@unscopables property > PASS AuthenticatorAttestationResponse interface: attribute attestationObject >-PASS Unscopable handled correctly for attestationObject property on AuthenticatorAttestationResponse > PASS AuthenticatorAttestationResponse must be primary interface of createdCredential.response > PASS Stringification of createdCredential.response > PASS AuthenticatorAttestationResponse interface: createdCredential.response must inherit property "attestationObject" with the proper type >@@ -63,11 +58,8 @@ PASS AuthenticatorAssertionResponse interface: existence and properties of inter > PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's "constructor" property > PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's @@unscopables property > PASS AuthenticatorAssertionResponse interface: attribute authenticatorData >-PASS Unscopable handled correctly for authenticatorData property on AuthenticatorAssertionResponse > PASS AuthenticatorAssertionResponse interface: attribute signature >-PASS Unscopable handled correctly for signature property on AuthenticatorAssertionResponse > PASS AuthenticatorAssertionResponse interface: attribute userHandle >-PASS Unscopable handled correctly for userHandle property on AuthenticatorAssertionResponse > PASS AuthenticatorAssertionResponse must be primary interface of requestedCredential.response > PASS Stringification of requestedCredential.response > PASS AuthenticatorAssertionResponse interface: requestedCredential.response must inherit property "authenticatorData" with the proper type >diff --git a/LayoutTests/http/wpt/webauthn/idl.https.html b/LayoutTests/http/wpt/webauthn/idl.https.html >index 9c2c7f3136481a7963252f5d9b3e76f83b925176..31afe01700823ee424ff6f3b96782a80c3b643ea 100644 >--- a/LayoutTests/http/wpt/webauthn/idl.https.html >+++ b/LayoutTests/http/wpt/webauthn/idl.https.html >@@ -25,8 +25,8 @@ promise_test(async () => { > const idlText = await fetch(idlURL).then(r => r.text()); > > idlArray.add_untested_idls("interface ArrayBuffer {};"); >- idlArray.add_untested_idls("interface CredentialCreationOptions {};"); >- idlArray.add_untested_idls("interface CredentialRequestOptions {};"); >+ idlArray.add_untested_idls("dictionary CredentialCreationOptions {};"); >+ idlArray.add_untested_idls("dictionary CredentialRequestOptions {};"); > > idlArray.add_idls(` > [Exposed=Window, SecureContext] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness-expected.txt >index 0add2773e44804a84486ed6235adb9895b37462b..1bb71a2c80f4c263226bcd400af556ac1458d0b4 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness-expected.txt >@@ -1,11 +1,9 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported > File API automated IDL tests > > >-PASS URL interface: operation createObjectURL(Blob) >-PASS Unscopable handled correctly for createObjectURL(Blob) on URL >-PASS URL interface: operation revokeObjectURL(DOMString) >-PASS Unscopable handled correctly for revokeObjectURL(DOMString) on URL >+PASS idl_test setup >+PASS Partial interface URL: original interface defined >+PASS Partial interface URL: valid exposure set > PASS Blob interface: existence and properties of interface object > PASS Blob interface object length > PASS Blob interface object name >@@ -13,11 +11,8 @@ PASS Blob interface: existence and properties of interface prototype object > PASS Blob interface: existence and properties of interface prototype object's "constructor" property > PASS Blob interface: existence and properties of interface prototype object's @@unscopables property > PASS Blob interface: attribute size >-PASS Unscopable handled correctly for size property on Blob > PASS Blob interface: attribute type >-PASS Unscopable handled correctly for type property on Blob > PASS Blob interface: operation slice(long long, long long, DOMString) >-PASS Unscopable handled correctly for slice(long long, long long, DOMString) on Blob > PASS Blob must be primary interface of new Blob(["TEST"]) > PASS Stringification of new Blob(["TEST"]) > PASS Blob interface: new Blob(["TEST"]) must inherit property "size" with the proper type >@@ -31,9 +26,7 @@ PASS File interface: existence and properties of interface prototype object > PASS File interface: existence and properties of interface prototype object's "constructor" property > PASS File interface: existence and properties of interface prototype object's @@unscopables property > PASS File interface: attribute name >-PASS Unscopable handled correctly for name property on File > PASS File interface: attribute lastModified >-PASS Unscopable handled correctly for lastModified property on File > PASS File must be primary interface of new File(["myFileBits"], "myFileName") > PASS Stringification of new File(["myFileBits"], "myFileName") > PASS File interface: new File(["myFileBits"], "myFileName") must inherit property "name" with the proper type >@@ -49,14 +42,12 @@ PASS FileList interface: existence and properties of interface prototype object > PASS FileList interface: existence and properties of interface prototype object's "constructor" property > PASS FileList interface: existence and properties of interface prototype object's @@unscopables property > PASS FileList interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on FileList > PASS FileList interface: attribute length >-PASS Unscopable handled correctly for length property on FileList >-PASS FileList must be primary interface of file_input.files >-PASS Stringification of file_input.files >-PASS FileList interface: file_input.files must inherit property "item(unsigned long)" with the proper type >-PASS FileList interface: calling item(unsigned long) on file_input.files with too few arguments must throw TypeError >-PASS FileList interface: file_input.files must inherit property "length" with the proper type >+PASS FileList must be primary interface of document.querySelector("#fileChooser").files >+PASS Stringification of document.querySelector("#fileChooser").files >+PASS FileList interface: document.querySelector("#fileChooser").files must inherit property "item(unsigned long)" with the proper type >+PASS FileList interface: calling item(unsigned long) on document.querySelector("#fileChooser").files with too few arguments must throw TypeError >+PASS FileList interface: document.querySelector("#fileChooser").files must inherit property "length" with the proper type > PASS FileReader interface: existence and properties of interface object > PASS FileReader interface object length > PASS FileReader interface object name >@@ -64,15 +55,10 @@ PASS FileReader interface: existence and properties of interface prototype objec > PASS FileReader interface: existence and properties of interface prototype object's "constructor" property > PASS FileReader interface: existence and properties of interface prototype object's @@unscopables property > PASS FileReader interface: operation readAsArrayBuffer(Blob) >-PASS Unscopable handled correctly for readAsArrayBuffer(Blob) on FileReader > PASS FileReader interface: operation readAsBinaryString(Blob) >-PASS Unscopable handled correctly for readAsBinaryString(Blob) on FileReader > PASS FileReader interface: operation readAsText(Blob, DOMString) >-PASS Unscopable handled correctly for readAsText(Blob, DOMString) on FileReader > PASS FileReader interface: operation readAsDataURL(Blob) >-PASS Unscopable handled correctly for readAsDataURL(Blob) on FileReader > PASS FileReader interface: operation abort() >-PASS Unscopable handled correctly for abort() on FileReader > PASS FileReader interface: constant EMPTY on interface object > PASS FileReader interface: constant EMPTY on interface prototype object > PASS FileReader interface: constant LOADING on interface object >@@ -80,23 +66,14 @@ PASS FileReader interface: constant LOADING on interface prototype object > PASS FileReader interface: constant DONE on interface object > PASS FileReader interface: constant DONE on interface prototype object > PASS FileReader interface: attribute readyState >-PASS Unscopable handled correctly for readyState property on FileReader > PASS FileReader interface: attribute result >-PASS Unscopable handled correctly for result property on FileReader > PASS FileReader interface: attribute error >-PASS Unscopable handled correctly for error property on FileReader > PASS FileReader interface: attribute onloadstart >-PASS Unscopable handled correctly for onloadstart property on FileReader > PASS FileReader interface: attribute onprogress >-PASS Unscopable handled correctly for onprogress property on FileReader > PASS FileReader interface: attribute onload >-PASS Unscopable handled correctly for onload property on FileReader > PASS FileReader interface: attribute onabort >-PASS Unscopable handled correctly for onabort property on FileReader > PASS FileReader interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on FileReader > PASS FileReader interface: attribute onloadend >-PASS Unscopable handled correctly for onloadend property on FileReader > PASS FileReader must be primary interface of new FileReader() > PASS Stringification of new FileReader() > PASS FileReader interface: new FileReader() must inherit property "readAsArrayBuffer(Blob)" with the proper type >@@ -121,4 +98,6 @@ PASS FileReader interface: new FileReader() must inherit property "onabort" with > PASS FileReader interface: new FileReader() must inherit property "onerror" with the proper type > PASS FileReader interface: new FileReader() must inherit property "onloadend" with the proper type > PASS FileReaderSync interface: existence and properties of interface object >+PASS URL interface: operation createObjectURL(Blob) >+PASS URL interface: operation revokeObjectURL(DOMString) > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.html >index 0cd604cccc302a1768bb6232ef218349e7755907..db6592e6220d02b608f504f8f2a654779c8b0241 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.html >@@ -20,37 +20,23 @@ > </form> > > <script> >-var file_input; >-setup(function() { >- var idl_array = new IdlArray(); >- >- var request = new XMLHttpRequest(); >- request.open("GET", "/interfaces/FileAPI.idl"); >- request.send(); >- request.onload = function() { >- var idls = request.responseText; >- >- idl_array.add_untested_idls("[Exposed=(Window,Worker)] interface ArrayBuffer {};"); >- idl_array.add_untested_idls("interface URL {};"); >- idl_array.add_untested_idls("[Exposed=(Window,Worker)] interface EventTarget {};"); >- idl_array.add_untested_idls("[Exposed=(Window,Worker)] interface Event {};"); >- idl_array.add_untested_idls("[TreatNonCallableAsNull] callback EventHandlerNonNull = any (Event event);"); >- idl_array.add_untested_idls("typedef EventHandlerNonNull? EventHandler;"); >- >- idl_array.add_idls(idls); >- >- file_input = document.querySelector("#fileChooser"); >- idl_array.add_objects({ >+ 'use strict'; >+ >+ idl_test( >+ ['FileAPI'], >+ ['dom', 'html', 'url'], >+ idl_array => { >+ idl_array.add_untested_idls( >+ "[Exposed=(Window,Worker)] interface ArrayBuffer {};" >+ ); >+ idl_array.add_objects({ > Blob: ['new Blob(["TEST"])'], > File: ['new File(["myFileBits"], "myFileName")'], >- FileList: ['file_input.files'], >+ FileList: ['document.querySelector("#fileChooser").files'], > FileReader: ['new FileReader()'] >- }); >- >- idl_array.test(); >- done(); >- }; >-}, {explicit_done: true}); >+ }); >+ } >+ ); > </script> > > </body> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.worker-expected.txt >index 646aa5542691272ffc23314f6661089d8aeabca9..f26999f9fc5d1634f5ca1fe9acf4e14e2a982e4f 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.worker-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.worker-expected.txt >@@ -1,9 +1,7 @@ > >-PASS Window interface: existence and properties of interface object >-PASS URL interface: operation createObjectURL(Blob) >-PASS Unscopable handled correctly for createObjectURL(Blob) on URL >-PASS URL interface: operation revokeObjectURL(DOMString) >-PASS Unscopable handled correctly for revokeObjectURL(DOMString) on URL >+PASS idl_test setup >+PASS Partial interface URL: original interface defined >+PASS Partial interface URL: valid exposure set > PASS Blob interface: existence and properties of interface object > PASS Blob interface object length > PASS Blob interface object name >@@ -11,11 +9,8 @@ PASS Blob interface: existence and properties of interface prototype object > PASS Blob interface: existence and properties of interface prototype object's "constructor" property > PASS Blob interface: existence and properties of interface prototype object's @@unscopables property > PASS Blob interface: attribute size >-PASS Unscopable handled correctly for size property on Blob > PASS Blob interface: attribute type >-PASS Unscopable handled correctly for type property on Blob > PASS Blob interface: operation slice(long long, long long, DOMString) >-PASS Unscopable handled correctly for slice(long long, long long, DOMString) on Blob > PASS Blob must be primary interface of new Blob(["TEST"]) > PASS Stringification of new Blob(["TEST"]) > PASS Blob interface: new Blob(["TEST"]) must inherit property "size" with the proper type >@@ -29,9 +24,7 @@ FAIL File interface: existence and properties of interface prototype object asse > FAIL File interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "File" expected property "File" missing > FAIL File interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "File" expected property "File" missing > FAIL File interface: attribute name assert_own_property: self does not have own property "File" expected property "File" missing >-PASS Unscopable handled correctly for name property on File > FAIL File interface: attribute lastModified assert_own_property: self does not have own property "File" expected property "File" missing >-PASS Unscopable handled correctly for lastModified property on File > FAIL File must be primary interface of new File(["myFileBits"], "myFileName") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: File" > FAIL Stringification of new File(["myFileBits"], "myFileName") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: File" > FAIL File interface: new File(["myFileBits"], "myFileName") must inherit property "name" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: File" >@@ -47,9 +40,7 @@ FAIL FileList interface: existence and properties of interface prototype object > FAIL FileList interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileList" expected property "FileList" missing > FAIL FileList interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileList" expected property "FileList" missing > FAIL FileList interface: operation item(unsigned long) assert_own_property: self does not have own property "FileList" expected property "FileList" missing >-PASS Unscopable handled correctly for item(unsigned long) on FileList > FAIL FileList interface: attribute length assert_own_property: self does not have own property "FileList" expected property "FileList" missing >-PASS Unscopable handled correctly for length property on FileList > PASS FileReader interface: existence and properties of interface object > PASS FileReader interface object length > PASS FileReader interface object name >@@ -57,15 +48,10 @@ PASS FileReader interface: existence and properties of interface prototype objec > PASS FileReader interface: existence and properties of interface prototype object's "constructor" property > PASS FileReader interface: existence and properties of interface prototype object's @@unscopables property > PASS FileReader interface: operation readAsArrayBuffer(Blob) >-PASS Unscopable handled correctly for readAsArrayBuffer(Blob) on FileReader > PASS FileReader interface: operation readAsBinaryString(Blob) >-PASS Unscopable handled correctly for readAsBinaryString(Blob) on FileReader > PASS FileReader interface: operation readAsText(Blob, DOMString) >-PASS Unscopable handled correctly for readAsText(Blob, DOMString) on FileReader > PASS FileReader interface: operation readAsDataURL(Blob) >-PASS Unscopable handled correctly for readAsDataURL(Blob) on FileReader > PASS FileReader interface: operation abort() >-PASS Unscopable handled correctly for abort() on FileReader > PASS FileReader interface: constant EMPTY on interface object > PASS FileReader interface: constant EMPTY on interface prototype object > PASS FileReader interface: constant LOADING on interface object >@@ -73,23 +59,14 @@ PASS FileReader interface: constant LOADING on interface prototype object > PASS FileReader interface: constant DONE on interface object > PASS FileReader interface: constant DONE on interface prototype object > PASS FileReader interface: attribute readyState >-PASS Unscopable handled correctly for readyState property on FileReader > PASS FileReader interface: attribute result >-PASS Unscopable handled correctly for result property on FileReader > PASS FileReader interface: attribute error >-PASS Unscopable handled correctly for error property on FileReader > PASS FileReader interface: attribute onloadstart >-PASS Unscopable handled correctly for onloadstart property on FileReader > PASS FileReader interface: attribute onprogress >-PASS Unscopable handled correctly for onprogress property on FileReader > PASS FileReader interface: attribute onload >-PASS Unscopable handled correctly for onload property on FileReader > PASS FileReader interface: attribute onabort >-PASS Unscopable handled correctly for onabort property on FileReader > PASS FileReader interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on FileReader > PASS FileReader interface: attribute onloadend >-PASS Unscopable handled correctly for onloadend property on FileReader > PASS FileReader must be primary interface of new FileReader() > PASS Stringification of new FileReader() > PASS FileReader interface: new FileReader() must inherit property "readAsArrayBuffer(Blob)" with the proper type >@@ -120,13 +97,9 @@ PASS FileReaderSync interface: existence and properties of interface prototype o > PASS FileReaderSync interface: existence and properties of interface prototype object's "constructor" property > PASS FileReaderSync interface: existence and properties of interface prototype object's @@unscopables property > PASS FileReaderSync interface: operation readAsArrayBuffer(Blob) >-PASS Unscopable handled correctly for readAsArrayBuffer(Blob) on FileReaderSync > PASS FileReaderSync interface: operation readAsBinaryString(Blob) >-PASS Unscopable handled correctly for readAsBinaryString(Blob) on FileReaderSync > PASS FileReaderSync interface: operation readAsText(Blob, DOMString) >-PASS Unscopable handled correctly for readAsText(Blob, DOMString) on FileReaderSync > PASS FileReaderSync interface: operation readAsDataURL(Blob) >-PASS Unscopable handled correctly for readAsDataURL(Blob) on FileReaderSync > PASS FileReaderSync must be primary interface of new FileReaderSync() > PASS Stringification of new FileReaderSync() > PASS FileReaderSync interface: new FileReaderSync() must inherit property "readAsArrayBuffer(Blob)" with the proper type >@@ -137,4 +110,6 @@ PASS FileReaderSync interface: new FileReaderSync() must inherit property "readA > PASS FileReaderSync interface: calling readAsText(Blob, DOMString) on new FileReaderSync() with too few arguments must throw TypeError > PASS FileReaderSync interface: new FileReaderSync() must inherit property "readAsDataURL(Blob)" with the proper type > PASS FileReaderSync interface: calling readAsDataURL(Blob) on new FileReaderSync() with too few arguments must throw TypeError >+PASS URL interface: operation createObjectURL(Blob) >+PASS URL interface: operation revokeObjectURL(DOMString) > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.worker.js b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.worker.js >index fdf208df7c431446eedc9b50dfd9647cf0b9836f..5bf82e0b890327d0f389b5cbe95b39eacadb42dd 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.worker.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.worker.js >@@ -1,31 +1,21 @@ > importScripts("/resources/testharness.js"); > importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js"); > >-var request = new XMLHttpRequest(); >-request.open("GET", "/interfaces/FileAPI.idl"); >-request.send(); >-request.onload = function() { >- var idl_array = new IdlArray(); >- var idls = request.responseText; >+'use strict'; > >- idl_array.add_untested_idls("[Global] interface Window { };"); >+// https://w3c.github.io/FileAPI/ > >+idl_test( >+ ['FileAPI'], >+ ['dom', 'html', 'url'], >+ idl_array => { > idl_array.add_untested_idls("[Exposed=(Window,Worker)] interface ArrayBuffer {};"); >- idl_array.add_untested_idls("interface URL {};"); >- idl_array.add_untested_idls("[Exposed=(Window,Worker)] interface EventTarget {};"); >- idl_array.add_untested_idls("[Exposed=(Window,Worker)] interface Event {};"); >- idl_array.add_untested_idls("[TreatNonCallableAsNull] callback EventHandlerNonNull = any (Event event);"); >- idl_array.add_untested_idls("typedef EventHandlerNonNull? EventHandler;"); >- >- idl_array.add_idls(idls); >- > idl_array.add_objects({ >- Blob: ['new Blob(["TEST"])'], >- File: ['new File(["myFileBits"], "myFileName")'], >- FileReader: ['new FileReader()'], >- FileReaderSync: ['new FileReaderSync()'] >+ Blob: ['new Blob(["TEST"])'], >+ File: ['new File(["myFileBits"], "myFileName")'], >+ FileReader: ['new FileReader()'], >+ FileReaderSync: ['new FileReaderSync()'] > }); >- >- idl_array.test(); >- done(); >-}; >+ } >+); >+done(); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interfaces.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interfaces.any-expected.txt >index f5868cc7868f264421e66de4886423e670244e9c..f14f539ca26609d19e8108495a8dac33ef994325 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interfaces.any-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interfaces.any-expected.txt >@@ -1,6 +1,7 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > > PASS Test driver >+PASS Partial interface WindowOrWorkerGlobalScope: original interface defined > PASS IDBRequest interface: existence and properties of interface object > PASS IDBRequest interface object length > PASS IDBRequest interface object name >@@ -8,19 +9,12 @@ PASS IDBRequest interface: existence and properties of interface prototype objec > PASS IDBRequest interface: existence and properties of interface prototype object's "constructor" property > PASS IDBRequest interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBRequest interface: attribute result >-PASS Unscopable handled correctly for result property on IDBRequest > PASS IDBRequest interface: attribute error >-PASS Unscopable handled correctly for error property on IDBRequest > PASS IDBRequest interface: attribute source >-PASS Unscopable handled correctly for source property on IDBRequest > PASS IDBRequest interface: attribute transaction >-PASS Unscopable handled correctly for transaction property on IDBRequest > PASS IDBRequest interface: attribute readyState >-PASS Unscopable handled correctly for readyState property on IDBRequest > PASS IDBRequest interface: attribute onsuccess >-PASS Unscopable handled correctly for onsuccess property on IDBRequest > PASS IDBRequest interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on IDBRequest > PASS IDBOpenDBRequest interface: existence and properties of interface object > PASS IDBOpenDBRequest interface object length > PASS IDBOpenDBRequest interface object name >@@ -28,9 +22,7 @@ PASS IDBOpenDBRequest interface: existence and properties of interface prototype > PASS IDBOpenDBRequest interface: existence and properties of interface prototype object's "constructor" property > PASS IDBOpenDBRequest interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBOpenDBRequest interface: attribute onblocked >-PASS Unscopable handled correctly for onblocked property on IDBOpenDBRequest > PASS IDBOpenDBRequest interface: attribute onupgradeneeded >-PASS Unscopable handled correctly for onupgradeneeded property on IDBOpenDBRequest > PASS IDBVersionChangeEvent interface: existence and properties of interface object > PASS IDBVersionChangeEvent interface object length > PASS IDBVersionChangeEvent interface object name >@@ -38,9 +30,7 @@ PASS IDBVersionChangeEvent interface: existence and properties of interface prot > PASS IDBVersionChangeEvent interface: existence and properties of interface prototype object's "constructor" property > PASS IDBVersionChangeEvent interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBVersionChangeEvent interface: attribute oldVersion >-PASS Unscopable handled correctly for oldVersion property on IDBVersionChangeEvent > PASS IDBVersionChangeEvent interface: attribute newVersion >-PASS Unscopable handled correctly for newVersion property on IDBVersionChangeEvent > PASS IDBVersionChangeEvent must be primary interface of [object IDBVersionChangeEvent] > PASS Stringification of [object IDBVersionChangeEvent] > PASS IDBVersionChangeEvent interface: [object IDBVersionChangeEvent] must inherit property "oldVersion" with the proper type >@@ -52,11 +42,8 @@ PASS IDBFactory interface: existence and properties of interface prototype objec > PASS IDBFactory interface: existence and properties of interface prototype object's "constructor" property > PASS IDBFactory interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBFactory interface: operation open(DOMString, unsigned long long) >-PASS Unscopable handled correctly for open(DOMString, unsigned long long) on IDBFactory > PASS IDBFactory interface: operation deleteDatabase(DOMString) >-PASS Unscopable handled correctly for deleteDatabase(DOMString) on IDBFactory > PASS IDBFactory interface: operation cmp(any, any) >-PASS Unscopable handled correctly for cmp(any, any) on IDBFactory > PASS IDBFactory must be primary interface of [object IDBFactory] > PASS Stringification of [object IDBFactory] > PASS IDBFactory interface: [object IDBFactory] must inherit property "open(DOMString, unsigned long long)" with the proper type >@@ -72,27 +59,16 @@ PASS IDBDatabase interface: existence and properties of interface prototype obje > PASS IDBDatabase interface: existence and properties of interface prototype object's "constructor" property > PASS IDBDatabase interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBDatabase interface: attribute name >-PASS Unscopable handled correctly for name property on IDBDatabase > PASS IDBDatabase interface: attribute version >-PASS Unscopable handled correctly for version property on IDBDatabase > PASS IDBDatabase interface: attribute objectStoreNames >-PASS Unscopable handled correctly for objectStoreNames property on IDBDatabase > PASS IDBDatabase interface: operation transaction([object Object],[object Object], IDBTransactionMode) >-PASS Unscopable handled correctly for transaction([object Object],[object Object], IDBTransactionMode) on IDBDatabase > PASS IDBDatabase interface: operation close() >-PASS Unscopable handled correctly for close() on IDBDatabase > PASS IDBDatabase interface: operation createObjectStore(DOMString, IDBObjectStoreParameters) >-PASS Unscopable handled correctly for createObjectStore(DOMString, IDBObjectStoreParameters) on IDBDatabase > PASS IDBDatabase interface: operation deleteObjectStore(DOMString) >-PASS Unscopable handled correctly for deleteObjectStore(DOMString) on IDBDatabase > PASS IDBDatabase interface: attribute onabort >-PASS Unscopable handled correctly for onabort property on IDBDatabase > PASS IDBDatabase interface: attribute onclose >-PASS Unscopable handled correctly for onclose property on IDBDatabase > PASS IDBDatabase interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on IDBDatabase > PASS IDBDatabase interface: attribute onversionchange >-PASS Unscopable handled correctly for onversionchange property on IDBDatabase > PASS IDBObjectStore interface: existence and properties of interface object > PASS IDBObjectStore interface object length > PASS IDBObjectStore interface object name >@@ -100,43 +76,24 @@ PASS IDBObjectStore interface: existence and properties of interface prototype o > PASS IDBObjectStore interface: existence and properties of interface prototype object's "constructor" property > PASS IDBObjectStore interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBObjectStore interface: attribute name >-PASS Unscopable handled correctly for name property on IDBObjectStore > PASS IDBObjectStore interface: attribute keyPath >-PASS Unscopable handled correctly for keyPath property on IDBObjectStore > PASS IDBObjectStore interface: attribute indexNames >-PASS Unscopable handled correctly for indexNames property on IDBObjectStore > PASS IDBObjectStore interface: attribute transaction >-PASS Unscopable handled correctly for transaction property on IDBObjectStore > PASS IDBObjectStore interface: attribute autoIncrement >-PASS Unscopable handled correctly for autoIncrement property on IDBObjectStore > PASS IDBObjectStore interface: operation put(any, any) >-PASS Unscopable handled correctly for put(any, any) on IDBObjectStore > PASS IDBObjectStore interface: operation add(any, any) >-PASS Unscopable handled correctly for add(any, any) on IDBObjectStore > PASS IDBObjectStore interface: operation delete(any) >-PASS Unscopable handled correctly for delete(any) on IDBObjectStore > PASS IDBObjectStore interface: operation clear() >-PASS Unscopable handled correctly for clear() on IDBObjectStore > PASS IDBObjectStore interface: operation get(any) >-PASS Unscopable handled correctly for get(any) on IDBObjectStore > PASS IDBObjectStore interface: operation getKey(any) >-PASS Unscopable handled correctly for getKey(any) on IDBObjectStore > PASS IDBObjectStore interface: operation getAll(any, unsigned long) >-PASS Unscopable handled correctly for getAll(any, unsigned long) on IDBObjectStore > PASS IDBObjectStore interface: operation getAllKeys(any, unsigned long) >-PASS Unscopable handled correctly for getAllKeys(any, unsigned long) on IDBObjectStore > PASS IDBObjectStore interface: operation count(any) >-PASS Unscopable handled correctly for count(any) on IDBObjectStore > PASS IDBObjectStore interface: operation openCursor(any, IDBCursorDirection) >-PASS Unscopable handled correctly for openCursor(any, IDBCursorDirection) on IDBObjectStore > PASS IDBObjectStore interface: operation openKeyCursor(any, IDBCursorDirection) >-PASS Unscopable handled correctly for openKeyCursor(any, IDBCursorDirection) on IDBObjectStore > PASS IDBObjectStore interface: operation index(DOMString) >-PASS Unscopable handled correctly for index(DOMString) on IDBObjectStore > PASS IDBObjectStore interface: operation createIndex(DOMString, [object Object],[object Object], IDBIndexParameters) >-PASS Unscopable handled correctly for createIndex(DOMString, [object Object],[object Object], IDBIndexParameters) on IDBObjectStore > PASS IDBObjectStore interface: operation deleteIndex(DOMString) >-PASS Unscopable handled correctly for deleteIndex(DOMString) on IDBObjectStore > PASS IDBIndex interface: existence and properties of interface object > PASS IDBIndex interface object length > PASS IDBIndex interface object name >@@ -144,29 +101,17 @@ PASS IDBIndex interface: existence and properties of interface prototype object > PASS IDBIndex interface: existence and properties of interface prototype object's "constructor" property > PASS IDBIndex interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBIndex interface: attribute name >-PASS Unscopable handled correctly for name property on IDBIndex > PASS IDBIndex interface: attribute objectStore >-PASS Unscopable handled correctly for objectStore property on IDBIndex > PASS IDBIndex interface: attribute keyPath >-PASS Unscopable handled correctly for keyPath property on IDBIndex > PASS IDBIndex interface: attribute multiEntry >-PASS Unscopable handled correctly for multiEntry property on IDBIndex > PASS IDBIndex interface: attribute unique >-PASS Unscopable handled correctly for unique property on IDBIndex > PASS IDBIndex interface: operation get(any) >-PASS Unscopable handled correctly for get(any) on IDBIndex > PASS IDBIndex interface: operation getKey(any) >-PASS Unscopable handled correctly for getKey(any) on IDBIndex > PASS IDBIndex interface: operation getAll(any, unsigned long) >-PASS Unscopable handled correctly for getAll(any, unsigned long) on IDBIndex > PASS IDBIndex interface: operation getAllKeys(any, unsigned long) >-PASS Unscopable handled correctly for getAllKeys(any, unsigned long) on IDBIndex > PASS IDBIndex interface: operation count(any) >-PASS Unscopable handled correctly for count(any) on IDBIndex > PASS IDBIndex interface: operation openCursor(any, IDBCursorDirection) >-PASS Unscopable handled correctly for openCursor(any, IDBCursorDirection) on IDBIndex > PASS IDBIndex interface: operation openKeyCursor(any, IDBCursorDirection) >-PASS Unscopable handled correctly for openKeyCursor(any, IDBCursorDirection) on IDBIndex > PASS IDBKeyRange interface: existence and properties of interface object > PASS IDBKeyRange interface object length > PASS IDBKeyRange interface object name >@@ -174,23 +119,14 @@ PASS IDBKeyRange interface: existence and properties of interface prototype obje > PASS IDBKeyRange interface: existence and properties of interface prototype object's "constructor" property > PASS IDBKeyRange interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBKeyRange interface: attribute lower >-PASS Unscopable handled correctly for lower property on IDBKeyRange > PASS IDBKeyRange interface: attribute upper >-PASS Unscopable handled correctly for upper property on IDBKeyRange > PASS IDBKeyRange interface: attribute lowerOpen >-PASS Unscopable handled correctly for lowerOpen property on IDBKeyRange > PASS IDBKeyRange interface: attribute upperOpen >-PASS Unscopable handled correctly for upperOpen property on IDBKeyRange > PASS IDBKeyRange interface: operation only(any) >-PASS Unscopable handled correctly for only(any) on IDBKeyRange > PASS IDBKeyRange interface: operation lowerBound(any, boolean) >-PASS Unscopable handled correctly for lowerBound(any, boolean) on IDBKeyRange > PASS IDBKeyRange interface: operation upperBound(any, boolean) >-PASS Unscopable handled correctly for upperBound(any, boolean) on IDBKeyRange > PASS IDBKeyRange interface: operation bound(any, any, boolean, boolean) >-PASS Unscopable handled correctly for bound(any, any, boolean, boolean) on IDBKeyRange > PASS IDBKeyRange interface: operation includes(any) >-PASS Unscopable handled correctly for includes(any) on IDBKeyRange > PASS IDBKeyRange must be primary interface of [object IDBKeyRange] > PASS Stringification of [object IDBKeyRange] > PASS IDBKeyRange interface: [object IDBKeyRange] must inherit property "lower" with the proper type >@@ -214,23 +150,14 @@ PASS IDBCursor interface: existence and properties of interface prototype object > PASS IDBCursor interface: existence and properties of interface prototype object's "constructor" property > PASS IDBCursor interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBCursor interface: attribute source >-PASS Unscopable handled correctly for source property on IDBCursor > PASS IDBCursor interface: attribute direction >-PASS Unscopable handled correctly for direction property on IDBCursor > PASS IDBCursor interface: attribute key >-PASS Unscopable handled correctly for key property on IDBCursor > PASS IDBCursor interface: attribute primaryKey >-PASS Unscopable handled correctly for primaryKey property on IDBCursor > PASS IDBCursor interface: operation advance(unsigned long) >-PASS Unscopable handled correctly for advance(unsigned long) on IDBCursor > PASS IDBCursor interface: operation continue(any) >-PASS Unscopable handled correctly for continue(any) on IDBCursor > PASS IDBCursor interface: operation continuePrimaryKey(any, any) >-PASS Unscopable handled correctly for continuePrimaryKey(any, any) on IDBCursor > PASS IDBCursor interface: operation update(any) >-PASS Unscopable handled correctly for update(any) on IDBCursor > PASS IDBCursor interface: operation delete() >-PASS Unscopable handled correctly for delete() on IDBCursor > PASS IDBCursorWithValue interface: existence and properties of interface object > PASS IDBCursorWithValue interface object length > PASS IDBCursorWithValue interface object name >@@ -238,7 +165,6 @@ PASS IDBCursorWithValue interface: existence and properties of interface prototy > PASS IDBCursorWithValue interface: existence and properties of interface prototype object's "constructor" property > PASS IDBCursorWithValue interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBCursorWithValue interface: attribute value >-PASS Unscopable handled correctly for value property on IDBCursorWithValue > PASS IDBTransaction interface: existence and properties of interface object > PASS IDBTransaction interface object length > PASS IDBTransaction interface object name >@@ -246,21 +172,12 @@ PASS IDBTransaction interface: existence and properties of interface prototype o > PASS IDBTransaction interface: existence and properties of interface prototype object's "constructor" property > PASS IDBTransaction interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBTransaction interface: attribute objectStoreNames >-PASS Unscopable handled correctly for objectStoreNames property on IDBTransaction > PASS IDBTransaction interface: attribute mode >-PASS Unscopable handled correctly for mode property on IDBTransaction > PASS IDBTransaction interface: attribute db >-PASS Unscopable handled correctly for db property on IDBTransaction > PASS IDBTransaction interface: attribute error >-PASS Unscopable handled correctly for error property on IDBTransaction > PASS IDBTransaction interface: operation objectStore(DOMString) >-PASS Unscopable handled correctly for objectStore(DOMString) on IDBTransaction > PASS IDBTransaction interface: operation abort() >-PASS Unscopable handled correctly for abort() on IDBTransaction > PASS IDBTransaction interface: attribute onabort >-PASS Unscopable handled correctly for onabort property on IDBTransaction > PASS IDBTransaction interface: attribute oncomplete >-PASS Unscopable handled correctly for oncomplete property on IDBTransaction > PASS IDBTransaction interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on IDBTransaction > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interfaces.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interfaces.any.worker-expected.txt >index 5544c153bbd6fd3cbd769716736079c9545f960e..b3b9510b9224f81b892b9b8ae09b87f9185d1c85 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interfaces.any.worker-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interfaces.any.worker-expected.txt >@@ -1,5 +1,6 @@ > > PASS Test driver >+PASS Partial interface WindowOrWorkerGlobalScope: original interface defined > PASS EventListener interface: existence and properties of interface object > PASS NodeList interface: existence and properties of interface object > PASS HTMLCollection interface: existence and properties of interface object >@@ -34,19 +35,12 @@ PASS IDBRequest interface: existence and properties of interface prototype objec > PASS IDBRequest interface: existence and properties of interface prototype object's "constructor" property > PASS IDBRequest interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBRequest interface: attribute result >-PASS Unscopable handled correctly for result property on IDBRequest > PASS IDBRequest interface: attribute error >-PASS Unscopable handled correctly for error property on IDBRequest > PASS IDBRequest interface: attribute source >-PASS Unscopable handled correctly for source property on IDBRequest > PASS IDBRequest interface: attribute transaction >-PASS Unscopable handled correctly for transaction property on IDBRequest > PASS IDBRequest interface: attribute readyState >-PASS Unscopable handled correctly for readyState property on IDBRequest > PASS IDBRequest interface: attribute onsuccess >-PASS Unscopable handled correctly for onsuccess property on IDBRequest > PASS IDBRequest interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on IDBRequest > PASS IDBOpenDBRequest interface: existence and properties of interface object > PASS IDBOpenDBRequest interface object length > PASS IDBOpenDBRequest interface object name >@@ -54,9 +48,7 @@ PASS IDBOpenDBRequest interface: existence and properties of interface prototype > PASS IDBOpenDBRequest interface: existence and properties of interface prototype object's "constructor" property > PASS IDBOpenDBRequest interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBOpenDBRequest interface: attribute onblocked >-PASS Unscopable handled correctly for onblocked property on IDBOpenDBRequest > PASS IDBOpenDBRequest interface: attribute onupgradeneeded >-PASS Unscopable handled correctly for onupgradeneeded property on IDBOpenDBRequest > PASS IDBVersionChangeEvent interface: existence and properties of interface object > PASS IDBVersionChangeEvent interface object length > PASS IDBVersionChangeEvent interface object name >@@ -64,9 +56,7 @@ PASS IDBVersionChangeEvent interface: existence and properties of interface prot > PASS IDBVersionChangeEvent interface: existence and properties of interface prototype object's "constructor" property > PASS IDBVersionChangeEvent interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBVersionChangeEvent interface: attribute oldVersion >-PASS Unscopable handled correctly for oldVersion property on IDBVersionChangeEvent > PASS IDBVersionChangeEvent interface: attribute newVersion >-PASS Unscopable handled correctly for newVersion property on IDBVersionChangeEvent > PASS IDBVersionChangeEvent must be primary interface of [object IDBVersionChangeEvent] > PASS Stringification of [object IDBVersionChangeEvent] > PASS IDBVersionChangeEvent interface: [object IDBVersionChangeEvent] must inherit property "oldVersion" with the proper type >@@ -78,11 +68,8 @@ PASS IDBFactory interface: existence and properties of interface prototype objec > PASS IDBFactory interface: existence and properties of interface prototype object's "constructor" property > PASS IDBFactory interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBFactory interface: operation open(DOMString, unsigned long long) >-PASS Unscopable handled correctly for open(DOMString, unsigned long long) on IDBFactory > PASS IDBFactory interface: operation deleteDatabase(DOMString) >-PASS Unscopable handled correctly for deleteDatabase(DOMString) on IDBFactory > PASS IDBFactory interface: operation cmp(any, any) >-PASS Unscopable handled correctly for cmp(any, any) on IDBFactory > PASS IDBFactory must be primary interface of [object IDBFactory] > PASS Stringification of [object IDBFactory] > PASS IDBFactory interface: [object IDBFactory] must inherit property "open(DOMString, unsigned long long)" with the proper type >@@ -98,27 +85,16 @@ PASS IDBDatabase interface: existence and properties of interface prototype obje > PASS IDBDatabase interface: existence and properties of interface prototype object's "constructor" property > PASS IDBDatabase interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBDatabase interface: attribute name >-PASS Unscopable handled correctly for name property on IDBDatabase > PASS IDBDatabase interface: attribute version >-PASS Unscopable handled correctly for version property on IDBDatabase > PASS IDBDatabase interface: attribute objectStoreNames >-PASS Unscopable handled correctly for objectStoreNames property on IDBDatabase > PASS IDBDatabase interface: operation transaction([object Object],[object Object], IDBTransactionMode) >-PASS Unscopable handled correctly for transaction([object Object],[object Object], IDBTransactionMode) on IDBDatabase > PASS IDBDatabase interface: operation close() >-PASS Unscopable handled correctly for close() on IDBDatabase > PASS IDBDatabase interface: operation createObjectStore(DOMString, IDBObjectStoreParameters) >-PASS Unscopable handled correctly for createObjectStore(DOMString, IDBObjectStoreParameters) on IDBDatabase > PASS IDBDatabase interface: operation deleteObjectStore(DOMString) >-PASS Unscopable handled correctly for deleteObjectStore(DOMString) on IDBDatabase > PASS IDBDatabase interface: attribute onabort >-PASS Unscopable handled correctly for onabort property on IDBDatabase > PASS IDBDatabase interface: attribute onclose >-PASS Unscopable handled correctly for onclose property on IDBDatabase > PASS IDBDatabase interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on IDBDatabase > PASS IDBDatabase interface: attribute onversionchange >-PASS Unscopable handled correctly for onversionchange property on IDBDatabase > PASS IDBObjectStore interface: existence and properties of interface object > PASS IDBObjectStore interface object length > PASS IDBObjectStore interface object name >@@ -126,43 +102,24 @@ PASS IDBObjectStore interface: existence and properties of interface prototype o > PASS IDBObjectStore interface: existence and properties of interface prototype object's "constructor" property > PASS IDBObjectStore interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBObjectStore interface: attribute name >-PASS Unscopable handled correctly for name property on IDBObjectStore > PASS IDBObjectStore interface: attribute keyPath >-PASS Unscopable handled correctly for keyPath property on IDBObjectStore > PASS IDBObjectStore interface: attribute indexNames >-PASS Unscopable handled correctly for indexNames property on IDBObjectStore > PASS IDBObjectStore interface: attribute transaction >-PASS Unscopable handled correctly for transaction property on IDBObjectStore > PASS IDBObjectStore interface: attribute autoIncrement >-PASS Unscopable handled correctly for autoIncrement property on IDBObjectStore > PASS IDBObjectStore interface: operation put(any, any) >-PASS Unscopable handled correctly for put(any, any) on IDBObjectStore > PASS IDBObjectStore interface: operation add(any, any) >-PASS Unscopable handled correctly for add(any, any) on IDBObjectStore > PASS IDBObjectStore interface: operation delete(any) >-PASS Unscopable handled correctly for delete(any) on IDBObjectStore > PASS IDBObjectStore interface: operation clear() >-PASS Unscopable handled correctly for clear() on IDBObjectStore > PASS IDBObjectStore interface: operation get(any) >-PASS Unscopable handled correctly for get(any) on IDBObjectStore > PASS IDBObjectStore interface: operation getKey(any) >-PASS Unscopable handled correctly for getKey(any) on IDBObjectStore > PASS IDBObjectStore interface: operation getAll(any, unsigned long) >-PASS Unscopable handled correctly for getAll(any, unsigned long) on IDBObjectStore > PASS IDBObjectStore interface: operation getAllKeys(any, unsigned long) >-PASS Unscopable handled correctly for getAllKeys(any, unsigned long) on IDBObjectStore > PASS IDBObjectStore interface: operation count(any) >-PASS Unscopable handled correctly for count(any) on IDBObjectStore > PASS IDBObjectStore interface: operation openCursor(any, IDBCursorDirection) >-PASS Unscopable handled correctly for openCursor(any, IDBCursorDirection) on IDBObjectStore > PASS IDBObjectStore interface: operation openKeyCursor(any, IDBCursorDirection) >-PASS Unscopable handled correctly for openKeyCursor(any, IDBCursorDirection) on IDBObjectStore > PASS IDBObjectStore interface: operation index(DOMString) >-PASS Unscopable handled correctly for index(DOMString) on IDBObjectStore > PASS IDBObjectStore interface: operation createIndex(DOMString, [object Object],[object Object], IDBIndexParameters) >-PASS Unscopable handled correctly for createIndex(DOMString, [object Object],[object Object], IDBIndexParameters) on IDBObjectStore > PASS IDBObjectStore interface: operation deleteIndex(DOMString) >-PASS Unscopable handled correctly for deleteIndex(DOMString) on IDBObjectStore > PASS IDBIndex interface: existence and properties of interface object > PASS IDBIndex interface object length > PASS IDBIndex interface object name >@@ -170,29 +127,17 @@ PASS IDBIndex interface: existence and properties of interface prototype object > PASS IDBIndex interface: existence and properties of interface prototype object's "constructor" property > PASS IDBIndex interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBIndex interface: attribute name >-PASS Unscopable handled correctly for name property on IDBIndex > PASS IDBIndex interface: attribute objectStore >-PASS Unscopable handled correctly for objectStore property on IDBIndex > PASS IDBIndex interface: attribute keyPath >-PASS Unscopable handled correctly for keyPath property on IDBIndex > PASS IDBIndex interface: attribute multiEntry >-PASS Unscopable handled correctly for multiEntry property on IDBIndex > PASS IDBIndex interface: attribute unique >-PASS Unscopable handled correctly for unique property on IDBIndex > PASS IDBIndex interface: operation get(any) >-PASS Unscopable handled correctly for get(any) on IDBIndex > PASS IDBIndex interface: operation getKey(any) >-PASS Unscopable handled correctly for getKey(any) on IDBIndex > PASS IDBIndex interface: operation getAll(any, unsigned long) >-PASS Unscopable handled correctly for getAll(any, unsigned long) on IDBIndex > PASS IDBIndex interface: operation getAllKeys(any, unsigned long) >-PASS Unscopable handled correctly for getAllKeys(any, unsigned long) on IDBIndex > PASS IDBIndex interface: operation count(any) >-PASS Unscopable handled correctly for count(any) on IDBIndex > PASS IDBIndex interface: operation openCursor(any, IDBCursorDirection) >-PASS Unscopable handled correctly for openCursor(any, IDBCursorDirection) on IDBIndex > PASS IDBIndex interface: operation openKeyCursor(any, IDBCursorDirection) >-PASS Unscopable handled correctly for openKeyCursor(any, IDBCursorDirection) on IDBIndex > PASS IDBKeyRange interface: existence and properties of interface object > PASS IDBKeyRange interface object length > PASS IDBKeyRange interface object name >@@ -200,23 +145,14 @@ PASS IDBKeyRange interface: existence and properties of interface prototype obje > PASS IDBKeyRange interface: existence and properties of interface prototype object's "constructor" property > PASS IDBKeyRange interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBKeyRange interface: attribute lower >-PASS Unscopable handled correctly for lower property on IDBKeyRange > PASS IDBKeyRange interface: attribute upper >-PASS Unscopable handled correctly for upper property on IDBKeyRange > PASS IDBKeyRange interface: attribute lowerOpen >-PASS Unscopable handled correctly for lowerOpen property on IDBKeyRange > PASS IDBKeyRange interface: attribute upperOpen >-PASS Unscopable handled correctly for upperOpen property on IDBKeyRange > PASS IDBKeyRange interface: operation only(any) >-PASS Unscopable handled correctly for only(any) on IDBKeyRange > PASS IDBKeyRange interface: operation lowerBound(any, boolean) >-PASS Unscopable handled correctly for lowerBound(any, boolean) on IDBKeyRange > PASS IDBKeyRange interface: operation upperBound(any, boolean) >-PASS Unscopable handled correctly for upperBound(any, boolean) on IDBKeyRange > PASS IDBKeyRange interface: operation bound(any, any, boolean, boolean) >-PASS Unscopable handled correctly for bound(any, any, boolean, boolean) on IDBKeyRange > PASS IDBKeyRange interface: operation includes(any) >-PASS Unscopable handled correctly for includes(any) on IDBKeyRange > PASS IDBKeyRange must be primary interface of [object IDBKeyRange] > PASS Stringification of [object IDBKeyRange] > PASS IDBKeyRange interface: [object IDBKeyRange] must inherit property "lower" with the proper type >@@ -240,23 +176,14 @@ PASS IDBCursor interface: existence and properties of interface prototype object > PASS IDBCursor interface: existence and properties of interface prototype object's "constructor" property > PASS IDBCursor interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBCursor interface: attribute source >-PASS Unscopable handled correctly for source property on IDBCursor > PASS IDBCursor interface: attribute direction >-PASS Unscopable handled correctly for direction property on IDBCursor > PASS IDBCursor interface: attribute key >-PASS Unscopable handled correctly for key property on IDBCursor > PASS IDBCursor interface: attribute primaryKey >-PASS Unscopable handled correctly for primaryKey property on IDBCursor > PASS IDBCursor interface: operation advance(unsigned long) >-PASS Unscopable handled correctly for advance(unsigned long) on IDBCursor > PASS IDBCursor interface: operation continue(any) >-PASS Unscopable handled correctly for continue(any) on IDBCursor > PASS IDBCursor interface: operation continuePrimaryKey(any, any) >-PASS Unscopable handled correctly for continuePrimaryKey(any, any) on IDBCursor > PASS IDBCursor interface: operation update(any) >-PASS Unscopable handled correctly for update(any) on IDBCursor > PASS IDBCursor interface: operation delete() >-PASS Unscopable handled correctly for delete() on IDBCursor > PASS IDBCursorWithValue interface: existence and properties of interface object > PASS IDBCursorWithValue interface object length > PASS IDBCursorWithValue interface object name >@@ -264,7 +191,6 @@ PASS IDBCursorWithValue interface: existence and properties of interface prototy > PASS IDBCursorWithValue interface: existence and properties of interface prototype object's "constructor" property > PASS IDBCursorWithValue interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBCursorWithValue interface: attribute value >-PASS Unscopable handled correctly for value property on IDBCursorWithValue > PASS IDBTransaction interface: existence and properties of interface object > PASS IDBTransaction interface object length > PASS IDBTransaction interface object name >@@ -272,21 +198,12 @@ PASS IDBTransaction interface: existence and properties of interface prototype o > PASS IDBTransaction interface: existence and properties of interface prototype object's "constructor" property > PASS IDBTransaction interface: existence and properties of interface prototype object's @@unscopables property > PASS IDBTransaction interface: attribute objectStoreNames >-PASS Unscopable handled correctly for objectStoreNames property on IDBTransaction > PASS IDBTransaction interface: attribute mode >-PASS Unscopable handled correctly for mode property on IDBTransaction > PASS IDBTransaction interface: attribute db >-PASS Unscopable handled correctly for db property on IDBTransaction > PASS IDBTransaction interface: attribute error >-PASS Unscopable handled correctly for error property on IDBTransaction > PASS IDBTransaction interface: operation objectStore(DOMString) >-PASS Unscopable handled correctly for objectStore(DOMString) on IDBTransaction > PASS IDBTransaction interface: operation abort() >-PASS Unscopable handled correctly for abort() on IDBTransaction > PASS IDBTransaction interface: attribute onabort >-PASS Unscopable handled correctly for onabort property on IDBTransaction > PASS IDBTransaction interface: attribute oncomplete >-PASS Unscopable handled correctly for oncomplete property on IDBTransaction > PASS IDBTransaction interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on IDBTransaction > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.https-expected.txt >index 84bf5c4c2eceec11e6d1dfd3d8e2115933f0a270..21346124430928d4f0af58ef26d0c30b3e5d8f70 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.https-expected.txt >@@ -10,9 +10,7 @@ PASS Crypto interface: existence and properties of interface prototype object > PASS Crypto interface: existence and properties of interface prototype object's "constructor" property > PASS Crypto interface: existence and properties of interface prototype object's @@unscopables property > PASS Crypto interface: attribute subtle >-PASS Unscopable handled correctly for subtle property on Crypto > PASS Crypto interface: operation getRandomValues(ArrayBufferView) >-PASS Unscopable handled correctly for getRandomValues(ArrayBufferView) on Crypto > PASS Crypto must be primary interface of crypto > PASS Stringification of crypto > PASS Crypto interface: crypto must inherit property "subtle" with the proper type >@@ -25,13 +23,9 @@ PASS CryptoKey interface: existence and properties of interface prototype object > PASS CryptoKey interface: existence and properties of interface prototype object's "constructor" property > PASS CryptoKey interface: existence and properties of interface prototype object's @@unscopables property > PASS CryptoKey interface: attribute type >-PASS Unscopable handled correctly for type property on CryptoKey > PASS CryptoKey interface: attribute extractable >-PASS Unscopable handled correctly for extractable property on CryptoKey > PASS CryptoKey interface: attribute algorithm >-PASS Unscopable handled correctly for algorithm property on CryptoKey > PASS CryptoKey interface: attribute usages >-PASS Unscopable handled correctly for usages property on CryptoKey > PASS SubtleCrypto interface: existence and properties of interface object > PASS SubtleCrypto interface object length > PASS SubtleCrypto interface object name >@@ -39,29 +33,17 @@ PASS SubtleCrypto interface: existence and properties of interface prototype obj > PASS SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property > PASS SubtleCrypto interface: existence and properties of interface prototype object's @@unscopables property > PASS SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) >-PASS Unscopable handled correctly for encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) >-PASS Unscopable handled correctly for decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation sign(AlgorithmIdentifier, CryptoKey, BufferSource) >-PASS Unscopable handled correctly for sign(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) >-PASS Unscopable handled correctly for verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation digest(AlgorithmIdentifier, BufferSource) >-PASS Unscopable handled correctly for digest(AlgorithmIdentifier, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation generateKey(AlgorithmIdentifier, boolean, [object Object]) >-PASS Unscopable handled correctly for generateKey(AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto > PASS SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) >-PASS Unscopable handled correctly for deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto > PASS SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) >-PASS Unscopable handled correctly for deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on SubtleCrypto > PASS SubtleCrypto interface: operation importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) >-PASS Unscopable handled correctly for importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto > PASS SubtleCrypto interface: operation exportKey(KeyFormat, CryptoKey) >-PASS Unscopable handled correctly for exportKey(KeyFormat, CryptoKey) on SubtleCrypto > PASS SubtleCrypto interface: operation wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) >-PASS Unscopable handled correctly for wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on SubtleCrypto > PASS SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) >-PASS Unscopable handled correctly for unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto > PASS SubtleCrypto must be primary interface of crypto.subtle > PASS Stringification of crypto.subtle > PASS SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.https.worker-expected.txt >index 93eebaf9c6bb950352875a7f955cc10978fa0a18..ca6b6212156c32622eb463fa867424e06555fb74 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.https.worker-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.https.worker-expected.txt >@@ -9,9 +9,7 @@ PASS Crypto interface: existence and properties of interface prototype object > PASS Crypto interface: existence and properties of interface prototype object's "constructor" property > PASS Crypto interface: existence and properties of interface prototype object's @@unscopables property > PASS Crypto interface: attribute subtle >-PASS Unscopable handled correctly for subtle property on Crypto > PASS Crypto interface: operation getRandomValues(ArrayBufferView) >-PASS Unscopable handled correctly for getRandomValues(ArrayBufferView) on Crypto > PASS Crypto must be primary interface of crypto > PASS Stringification of crypto > PASS Crypto interface: crypto must inherit property "subtle" with the proper type >@@ -24,13 +22,9 @@ PASS CryptoKey interface: existence and properties of interface prototype object > PASS CryptoKey interface: existence and properties of interface prototype object's "constructor" property > PASS CryptoKey interface: existence and properties of interface prototype object's @@unscopables property > PASS CryptoKey interface: attribute type >-PASS Unscopable handled correctly for type property on CryptoKey > PASS CryptoKey interface: attribute extractable >-PASS Unscopable handled correctly for extractable property on CryptoKey > PASS CryptoKey interface: attribute algorithm >-PASS Unscopable handled correctly for algorithm property on CryptoKey > PASS CryptoKey interface: attribute usages >-PASS Unscopable handled correctly for usages property on CryptoKey > PASS SubtleCrypto interface: existence and properties of interface object > PASS SubtleCrypto interface object length > PASS SubtleCrypto interface object name >@@ -38,29 +32,17 @@ PASS SubtleCrypto interface: existence and properties of interface prototype obj > PASS SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property > PASS SubtleCrypto interface: existence and properties of interface prototype object's @@unscopables property > PASS SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) >-PASS Unscopable handled correctly for encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) >-PASS Unscopable handled correctly for decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation sign(AlgorithmIdentifier, CryptoKey, BufferSource) >-PASS Unscopable handled correctly for sign(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) >-PASS Unscopable handled correctly for verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation digest(AlgorithmIdentifier, BufferSource) >-PASS Unscopable handled correctly for digest(AlgorithmIdentifier, BufferSource) on SubtleCrypto > PASS SubtleCrypto interface: operation generateKey(AlgorithmIdentifier, boolean, [object Object]) >-PASS Unscopable handled correctly for generateKey(AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto > PASS SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) >-PASS Unscopable handled correctly for deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto > PASS SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) >-PASS Unscopable handled correctly for deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on SubtleCrypto > PASS SubtleCrypto interface: operation importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) >-PASS Unscopable handled correctly for importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto > PASS SubtleCrypto interface: operation exportKey(KeyFormat, CryptoKey) >-PASS Unscopable handled correctly for exportKey(KeyFormat, CryptoKey) on SubtleCrypto > PASS SubtleCrypto interface: operation wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) >-PASS Unscopable handled correctly for wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on SubtleCrypto > PASS SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) >-PASS Unscopable handled correctly for unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto > PASS SubtleCrypto must be primary interface of crypto.subtle > PASS Stringification of crypto.subtle > PASS SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/interfaces-expected.txt >index 0a21590f266a97530454a4f94068468edbcb71f5..79d5a1e1b6a2b049967a5951672ecff45a0d3003 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/interfaces-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/interfaces-expected.txt >@@ -1,5 +1,5 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > > PASS Test driver > PASS DOMException interface: existence and properties of interface object >@@ -9,11 +9,8 @@ PASS DOMException interface: existence and properties of interface prototype obj > PASS DOMException interface: existence and properties of interface prototype object's "constructor" property > PASS DOMException interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMException interface: attribute name >-PASS Unscopable handled correctly for name property on DOMException > PASS DOMException interface: attribute message >-PASS Unscopable handled correctly for message property on DOMException > PASS DOMException interface: attribute code >-PASS Unscopable handled correctly for code property on DOMException > PASS DOMException interface: constant INDEX_SIZE_ERR on interface object > PASS DOMException interface: constant INDEX_SIZE_ERR on interface prototype object > PASS DOMException interface: constant DOMSTRING_SIZE_ERR on interface object >diff --git a/LayoutTests/imported/w3c/web-platform-tests/credential-management/idl.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/credential-management/idl.https-expected.txt >index ee1fc6c90a6b62a23802b0ded03379fed71436d2..ed3b1c1861e6dfef91717f7fda9b98afe01f06f1 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/credential-management/idl.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/credential-management/idl.https-expected.txt >@@ -6,13 +6,9 @@ PASS CredentialsContainer interface: existence and properties of interface proto > PASS CredentialsContainer interface: existence and properties of interface prototype object's "constructor" property > PASS CredentialsContainer interface: existence and properties of interface prototype object's @@unscopables property > PASS CredentialsContainer interface: operation get(CredentialRequestOptions) >-PASS Unscopable handled correctly for get(CredentialRequestOptions) on CredentialsContainer > PASS CredentialsContainer interface: operation store(Credential) >-PASS Unscopable handled correctly for store(Credential) on CredentialsContainer > PASS CredentialsContainer interface: operation create(CredentialCreationOptions) >-PASS Unscopable handled correctly for create(CredentialCreationOptions) on CredentialsContainer > PASS CredentialsContainer interface: operation preventSilentAccess() >-PASS Unscopable handled correctly for preventSilentAccess() on CredentialsContainer > PASS CredentialsContainer must be primary interface of navigator.credentials > PASS Stringification of navigator.credentials > PASS CredentialsContainer interface: navigator.credentials must inherit property "get(CredentialRequestOptions)" with the proper type >@@ -29,7 +25,6 @@ FAIL PasswordCredential interface: existence and properties of interface prototy > FAIL PasswordCredential interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "PasswordCredential" expected property "PasswordCredential" missing > FAIL PasswordCredential interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "PasswordCredential" expected property "PasswordCredential" missing > FAIL PasswordCredential interface: attribute password assert_own_property: self does not have own property "PasswordCredential" expected property "PasswordCredential" missing >-PASS Unscopable handled correctly for password property on PasswordCredential > FAIL PasswordCredential must be primary interface of new PasswordCredential({ id: "id", password: "pencil", iconURL: "https://example.com/", name: "name" }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: PasswordCredential" > FAIL Stringification of new PasswordCredential({ id: "id", password: "pencil", iconURL: "https://example.com/", name: "name" }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: PasswordCredential" > FAIL PasswordCredential interface: new PasswordCredential({ id: "id", password: "pencil", iconURL: "https://example.com/", name: "name" }) must inherit property "password" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: PasswordCredential" >@@ -40,9 +35,7 @@ FAIL FederatedCredential interface: existence and properties of interface protot > FAIL FederatedCredential interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FederatedCredential" expected property "FederatedCredential" missing > FAIL FederatedCredential interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FederatedCredential" expected property "FederatedCredential" missing > FAIL FederatedCredential interface: attribute provider assert_own_property: self does not have own property "FederatedCredential" expected property "FederatedCredential" missing >-PASS Unscopable handled correctly for provider property on FederatedCredential > FAIL FederatedCredential interface: attribute protocol assert_own_property: self does not have own property "FederatedCredential" expected property "FederatedCredential" missing >-PASS Unscopable handled correctly for protocol property on FederatedCredential > FAIL FederatedCredential must be primary interface of new FederatedCredential({ id: "id", provider: "https://example.com", iconURL: "https://example.com/", name: "name" }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FederatedCredential" > FAIL Stringification of new FederatedCredential({ id: "id", provider: "https://example.com", iconURL: "https://example.com/", name: "name" }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FederatedCredential" > FAIL FederatedCredential interface: new FederatedCredential({ id: "id", provider: "https://example.com", iconURL: "https://example.com/", name: "name" }) must inherit property "provider" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FederatedCredential" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/interfaces-expected.txt >index d72fcdaf8448dcb2e7dbec2c8d982fcb96a1804a..0a6907577b18981c6f69b9b0c55f0ad14ccefbcf 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/interfaces-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/interfaces-expected.txt >@@ -1,25 +1,26 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > > CSSOM View IDL tests > > > PASS Test driver >+PASS Partial interface Window: original interface defined >+PASS Partial interface Document: original interface defined >+PASS Partial interface Element: original interface defined >+PASS Partial interface HTMLElement: original interface defined >+PASS Partial interface HTMLImageElement: original interface defined >+PASS Partial interface Range: original interface defined > PASS HTMLElement interface: attribute offsetParent >-PASS Unscopable handled correctly for offsetParent property on HTMLElement > PASS HTMLElement interface: attribute offsetTop >-PASS Unscopable handled correctly for offsetTop property on HTMLElement > PASS HTMLElement interface: attribute offsetLeft >-PASS Unscopable handled correctly for offsetLeft property on HTMLElement > PASS HTMLElement interface: attribute offsetWidth >-PASS Unscopable handled correctly for offsetWidth property on HTMLElement > PASS HTMLElement interface: attribute offsetHeight >-PASS Unscopable handled correctly for offsetHeight property on HTMLElement > PASS HTMLElement interface: document.createElement('div') must inherit property "offsetParent" with the proper type > PASS HTMLElement interface: document.createElement('div') must inherit property "offsetTop" with the proper type > PASS HTMLElement interface: document.createElement('div') must inherit property "offsetLeft" with the proper type >@@ -58,9 +59,7 @@ FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNod > FAIL Element interface: document.createElement('div') must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain > FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createElement('div') with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain > PASS HTMLImageElement interface: attribute x >-PASS Unscopable handled correctly for x property on HTMLImageElement > PASS HTMLImageElement interface: attribute y >-PASS Unscopable handled correctly for y property on HTMLImageElement > PASS HTMLImageElement interface: document.createElement('img') must inherit property "x" with the proper type > PASS HTMLImageElement interface: document.createElement('img') must inherit property "y" with the proper type > PASS HTMLElement interface: document.createElement('img') must inherit property "offsetParent" with the proper type >@@ -101,51 +100,28 @@ FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNod > FAIL Element interface: document.createElement('img') must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain > FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createElement('img') with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain > PASS Window interface: operation matchMedia(CSSOMString) >-PASS Unscopable handled correctly for matchMedia(CSSOMString) on Window > PASS Window interface: attribute screen >-PASS Unscopable handled correctly for screen property on Window > FAIL Window interface: operation moveTo(long, long) assert_equals: property has wrong .length expected 2 but got 0 >-PASS Unscopable handled correctly for moveTo(long, long) on Window > FAIL Window interface: operation moveBy(long, long) assert_equals: property has wrong .length expected 2 but got 0 >-PASS Unscopable handled correctly for moveBy(long, long) on Window > FAIL Window interface: operation resizeTo(long, long) assert_equals: property has wrong .length expected 2 but got 0 >-PASS Unscopable handled correctly for resizeTo(long, long) on Window > FAIL Window interface: operation resizeBy(long, long) assert_equals: property has wrong .length expected 2 but got 0 >-PASS Unscopable handled correctly for resizeBy(long, long) on Window > PASS Window interface: attribute innerWidth >-PASS Unscopable handled correctly for innerWidth property on Window > PASS Window interface: attribute innerHeight >-PASS Unscopable handled correctly for innerHeight property on Window > PASS Window interface: attribute scrollX >-PASS Unscopable handled correctly for scrollX property on Window > PASS Window interface: attribute pageXOffset >-PASS Unscopable handled correctly for pageXOffset property on Window > PASS Window interface: attribute scrollY >-PASS Unscopable handled correctly for scrollY property on Window > PASS Window interface: attribute pageYOffset >-PASS Unscopable handled correctly for pageYOffset property on Window > PASS Window interface: operation scroll(ScrollToOptions) >-PASS Unscopable handled correctly for scroll(ScrollToOptions) on Window > PASS Window interface: operation scroll(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scroll(unrestricted double, unrestricted double) on Window > PASS Window interface: operation scrollTo(ScrollToOptions) >-PASS Unscopable handled correctly for scrollTo(ScrollToOptions) on Window > PASS Window interface: operation scrollTo(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scrollTo(unrestricted double, unrestricted double) on Window > PASS Window interface: operation scrollBy(ScrollToOptions) >-PASS Unscopable handled correctly for scrollBy(ScrollToOptions) on Window > PASS Window interface: operation scrollBy(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scrollBy(unrestricted double, unrestricted double) on Window > PASS Window interface: attribute screenX >-PASS Unscopable handled correctly for screenX property on Window > PASS Window interface: attribute screenY >-PASS Unscopable handled correctly for screenY property on Window > PASS Window interface: attribute outerWidth >-PASS Unscopable handled correctly for outerWidth property on Window > PASS Window interface: attribute outerHeight >-PASS Unscopable handled correctly for outerHeight property on Window > PASS Window interface: attribute devicePixelRatio >-PASS Unscopable handled correctly for devicePixelRatio property on Window > PASS Window interface: window must inherit property "matchMedia(CSSOMString)" with the proper type > PASS Window interface: calling matchMedia(CSSOMString) on window with too few arguments must throw TypeError > PASS Window interface: window must inherit property "screen" with the proper type >@@ -194,21 +170,13 @@ PASS SharedWorkerGlobalScope interface: existence and properties of interface ob > PASS WorkerNavigator interface: existence and properties of interface object > PASS WorkerLocation interface: existence and properties of interface object > PASS Document interface: operation elementFromPoint(double, double) >-PASS Unscopable handled correctly for elementFromPoint(double, double) on Document > PASS Document interface: operation elementsFromPoint(double, double) >-PASS Unscopable handled correctly for elementsFromPoint(double, double) on Document > FAIL Document interface: operation caretPositionFromPoint(double, double) assert_own_property: interface prototype object missing non-static operation expected property "caretPositionFromPoint" missing >-PASS Unscopable handled correctly for caretPositionFromPoint(double, double) on Document > PASS Document interface: attribute scrollingElement >-PASS Unscopable handled correctly for scrollingElement property on Document > FAIL Document interface: operation getBoxQuads(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing >-PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Document > FAIL Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing >-PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Document > FAIL Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing >-PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Document > FAIL Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing >-PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Document > PASS Document interface: document must inherit property "elementFromPoint(double, double)" with the proper type > PASS Document interface: calling elementFromPoint(double, double) on document with too few arguments must throw TypeError > PASS Document interface: document must inherit property "elementsFromPoint(double, double)" with the proper type >@@ -225,47 +193,26 @@ FAIL Document interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNo > FAIL Document interface: document must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain > FAIL Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain > PASS Element interface: operation getClientRects() >-PASS Unscopable handled correctly for getClientRects() on Element > PASS Element interface: operation getBoundingClientRect() >-PASS Unscopable handled correctly for getBoundingClientRect() on Element > PASS Element interface: operation scrollIntoView([object Object],[object Object]) >-PASS Unscopable handled correctly for scrollIntoView([object Object],[object Object]) on Element > PASS Element interface: operation scroll(ScrollToOptions) >-PASS Unscopable handled correctly for scroll(ScrollToOptions) on Element > PASS Element interface: operation scroll(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scroll(unrestricted double, unrestricted double) on Element > PASS Element interface: operation scrollTo(ScrollToOptions) >-PASS Unscopable handled correctly for scrollTo(ScrollToOptions) on Element > PASS Element interface: operation scrollTo(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scrollTo(unrestricted double, unrestricted double) on Element > PASS Element interface: operation scrollBy(ScrollToOptions) >-PASS Unscopable handled correctly for scrollBy(ScrollToOptions) on Element > PASS Element interface: operation scrollBy(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scrollBy(unrestricted double, unrestricted double) on Element > PASS Element interface: attribute scrollTop >-PASS Unscopable handled correctly for scrollTop property on Element > PASS Element interface: attribute scrollLeft >-PASS Unscopable handled correctly for scrollLeft property on Element > PASS Element interface: attribute scrollWidth >-PASS Unscopable handled correctly for scrollWidth property on Element > PASS Element interface: attribute scrollHeight >-PASS Unscopable handled correctly for scrollHeight property on Element > PASS Element interface: attribute clientTop >-PASS Unscopable handled correctly for clientTop property on Element > PASS Element interface: attribute clientLeft >-PASS Unscopable handled correctly for clientLeft property on Element > PASS Element interface: attribute clientWidth >-PASS Unscopable handled correctly for clientWidth property on Element > PASS Element interface: attribute clientHeight >-PASS Unscopable handled correctly for clientHeight property on Element > FAIL Element interface: operation getBoxQuads(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing >-PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Element > FAIL Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing >-PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Element > FAIL Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing >-PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Element > FAIL Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing >-PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Element > PASS Element interface: document.createElementNS('x', 'y') must inherit property "getClientRects()" with the proper type > PASS Element interface: document.createElementNS('x', 'y') must inherit property "getBoundingClientRect()" with the proper type > PASS Element interface: document.createElementNS('x', 'y') must inherit property "scrollIntoView([object Object],[object Object])" with the proper type >@@ -299,13 +246,9 @@ FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNod > FAIL Element interface: document.createElementNS('x', 'y') must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain > FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createElementNS('x', 'y') with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain > FAIL Text interface: operation getBoxQuads(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing >-PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Text > FAIL Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing >-PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Text > FAIL Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing >-PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Text > FAIL Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing >-PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Text > FAIL Text interface: document.createTextNode('x') must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain > FAIL Text interface: calling getBoxQuads(BoxQuadOptions) on document.createTextNode('x') with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain > FAIL Text interface: document.createTextNode('x') must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain >@@ -315,9 +258,7 @@ FAIL Text interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, > FAIL Text interface: document.createTextNode('x') must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain > FAIL Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createTextNode('x') with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain > PASS Range interface: operation getClientRects() >-PASS Unscopable handled correctly for getClientRects() on Range > PASS Range interface: operation getBoundingClientRect() >-PASS Unscopable handled correctly for getBoundingClientRect() on Range > PASS Range interface: new Range() must inherit property "getClientRects()" with the proper type > PASS Range interface: new Range() must inherit property "getBoundingClientRect()" with the proper type > FAIL MediaQueryList interface: existence and properties of interface object assert_own_property: self does not have own property "MediaQueryList" expected property "MediaQueryList" missing >@@ -327,15 +268,10 @@ FAIL MediaQueryList interface: existence and properties of interface prototype o > FAIL MediaQueryList interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MediaQueryList" expected property "MediaQueryList" missing > FAIL MediaQueryList interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MediaQueryList" expected property "MediaQueryList" missing > FAIL MediaQueryList interface: attribute media assert_own_property: self does not have own property "MediaQueryList" expected property "MediaQueryList" missing >-PASS Unscopable handled correctly for media property on MediaQueryList > FAIL MediaQueryList interface: attribute matches assert_own_property: self does not have own property "MediaQueryList" expected property "MediaQueryList" missing >-PASS Unscopable handled correctly for matches property on MediaQueryList > FAIL MediaQueryList interface: operation addListener(EventListener) assert_own_property: self does not have own property "MediaQueryList" expected property "MediaQueryList" missing >-PASS Unscopable handled correctly for addListener(EventListener) on MediaQueryList > FAIL MediaQueryList interface: operation removeListener(EventListener) assert_own_property: self does not have own property "MediaQueryList" expected property "MediaQueryList" missing >-PASS Unscopable handled correctly for removeListener(EventListener) on MediaQueryList > FAIL MediaQueryList interface: attribute onchange assert_own_property: self does not have own property "MediaQueryList" expected property "MediaQueryList" missing >-PASS Unscopable handled correctly for onchange property on MediaQueryList > FAIL MediaQueryList must be primary interface of matchMedia('all') assert_own_property: self does not have own property "MediaQueryList" expected property "MediaQueryList" missing > PASS Stringification of matchMedia('all') > PASS MediaQueryList interface: matchMedia('all') must inherit property "media" with the proper type >@@ -356,9 +292,7 @@ FAIL MediaQueryListEvent interface: existence and properties of interface protot > FAIL MediaQueryListEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MediaQueryListEvent" expected property "MediaQueryListEvent" missing > FAIL MediaQueryListEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MediaQueryListEvent" expected property "MediaQueryListEvent" missing > FAIL MediaQueryListEvent interface: attribute media assert_own_property: self does not have own property "MediaQueryListEvent" expected property "MediaQueryListEvent" missing >-PASS Unscopable handled correctly for media property on MediaQueryListEvent > FAIL MediaQueryListEvent interface: attribute matches assert_own_property: self does not have own property "MediaQueryListEvent" expected property "MediaQueryListEvent" missing >-PASS Unscopable handled correctly for matches property on MediaQueryListEvent > FAIL MediaQueryListEvent must be primary interface of new MediaQueryListEvent('change') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: MediaQueryListEvent" > FAIL Stringification of new MediaQueryListEvent('change') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: MediaQueryListEvent" > FAIL MediaQueryListEvent interface: new MediaQueryListEvent('change') must inherit property "media" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: MediaQueryListEvent" >@@ -370,17 +304,11 @@ PASS Screen interface: existence and properties of interface prototype object > PASS Screen interface: existence and properties of interface prototype object's "constructor" property > PASS Screen interface: existence and properties of interface prototype object's @@unscopables property > PASS Screen interface: attribute availWidth >-PASS Unscopable handled correctly for availWidth property on Screen > PASS Screen interface: attribute availHeight >-PASS Unscopable handled correctly for availHeight property on Screen > PASS Screen interface: attribute width >-PASS Unscopable handled correctly for width property on Screen > PASS Screen interface: attribute height >-PASS Unscopable handled correctly for height property on Screen > PASS Screen interface: attribute colorDepth >-PASS Unscopable handled correctly for colorDepth property on Screen > PASS Screen interface: attribute pixelDepth >-PASS Unscopable handled correctly for pixelDepth property on Screen > PASS Screen must be primary interface of screen > PASS Stringification of screen > PASS Screen interface: screen must inherit property "availWidth" with the proper type >@@ -396,11 +324,8 @@ FAIL CaretPosition interface: existence and properties of interface prototype ob > FAIL CaretPosition interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing > FAIL CaretPosition interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing > FAIL CaretPosition interface: attribute offsetNode assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing >-PASS Unscopable handled correctly for offsetNode property on CaretPosition > FAIL CaretPosition interface: attribute offset assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing >-PASS Unscopable handled correctly for offset property on CaretPosition > FAIL CaretPosition interface: operation getClientRect() assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing >-PASS Unscopable handled correctly for getClientRect() on CaretPosition > FAIL CaretPosition must be primary interface of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function. (In 'document.caretPositionFromPoint(5, 5)', 'document.caretPositionFromPoint' is undefined)" > FAIL Stringification of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function. (In 'document.caretPositionFromPoint(5, 5)', 'document.caretPositionFromPoint' is undefined)" > FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offsetNode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function. (In 'document.caretPositionFromPoint(5, 5)', 'document.caretPositionFromPoint' is undefined)" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/geometry/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/geometry/interfaces-expected.txt >index c899a3189b84833295d754cb04f41d96606d58e2..fa635df434401137b9b5103d1d44ebbe30b5bd38 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/geometry/interfaces-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/geometry/interfaces-expected.txt >@@ -7,19 +7,12 @@ PASS DOMPointReadOnly interface: existence and properties of interface prototype > PASS DOMPointReadOnly interface: existence and properties of interface prototype object's "constructor" property > PASS DOMPointReadOnly interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMPointReadOnly interface: operation fromPoint(DOMPointInit) >-PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPointReadOnly > PASS DOMPointReadOnly interface: attribute x >-PASS Unscopable handled correctly for x property on DOMPointReadOnly > PASS DOMPointReadOnly interface: attribute y >-PASS Unscopable handled correctly for y property on DOMPointReadOnly > PASS DOMPointReadOnly interface: attribute z >-PASS Unscopable handled correctly for z property on DOMPointReadOnly > PASS DOMPointReadOnly interface: attribute w >-PASS Unscopable handled correctly for w property on DOMPointReadOnly > PASS DOMPointReadOnly interface: operation matrixTransform(DOMMatrixInit) >-PASS Unscopable handled correctly for matrixTransform(DOMMatrixInit) on DOMPointReadOnly > PASS DOMPointReadOnly interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on DOMPointReadOnly > PASS DOMPointReadOnly must be primary interface of new DOMPointReadOnly() > PASS Stringification of new DOMPointReadOnly() > PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "fromPoint(DOMPointInit)" with the proper type >@@ -44,15 +37,10 @@ PASS DOMPoint interface: existence and properties of interface prototype object > PASS DOMPoint interface: existence and properties of interface prototype object's "constructor" property > PASS DOMPoint interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMPoint interface: operation fromPoint(DOMPointInit) >-PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPoint > PASS DOMPoint interface: attribute x >-PASS Unscopable handled correctly for x property on DOMPoint > PASS DOMPoint interface: attribute y >-PASS Unscopable handled correctly for y property on DOMPoint > PASS DOMPoint interface: attribute z >-PASS Unscopable handled correctly for z property on DOMPoint > PASS DOMPoint interface: attribute w >-PASS Unscopable handled correctly for w property on DOMPoint > PASS DOMPoint must be primary interface of new DOMPoint() > PASS Stringification of new DOMPoint() > PASS DOMPoint interface: new DOMPoint() must inherit property "fromPoint(DOMPointInit)" with the proper type >@@ -78,25 +66,15 @@ PASS DOMRectReadOnly interface: existence and properties of interface prototype > PASS DOMRectReadOnly interface: existence and properties of interface prototype object's "constructor" property > PASS DOMRectReadOnly interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMRectReadOnly interface: operation fromRect(DOMRectInit) >-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute x >-PASS Unscopable handled correctly for x property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute y >-PASS Unscopable handled correctly for y property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute width >-PASS Unscopable handled correctly for width property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute height >-PASS Unscopable handled correctly for height property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute top >-PASS Unscopable handled correctly for top property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute right >-PASS Unscopable handled correctly for right property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute bottom >-PASS Unscopable handled correctly for bottom property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute left >-PASS Unscopable handled correctly for left property on DOMRectReadOnly > PASS DOMRectReadOnly interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on DOMRectReadOnly > PASS DOMRectReadOnly must be primary interface of new DOMRectReadOnly() > PASS Stringification of new DOMRectReadOnly() > PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "fromRect(DOMRectInit)" with the proper type >@@ -123,15 +101,10 @@ PASS DOMRect interface: existence and properties of interface prototype object > PASS DOMRect interface: existence and properties of interface prototype object's "constructor" property > PASS DOMRect interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMRect interface: operation fromRect(DOMRectInit) >-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRect > PASS DOMRect interface: attribute x >-PASS Unscopable handled correctly for x property on DOMRect > PASS DOMRect interface: attribute y >-PASS Unscopable handled correctly for y property on DOMRect > PASS DOMRect interface: attribute width >-PASS Unscopable handled correctly for width property on DOMRect > PASS DOMRect interface: attribute height >-PASS Unscopable handled correctly for height property on DOMRect > PASS DOMRect must be primary interface of new DOMRect() > PASS Stringification of new DOMRect() > PASS DOMRect interface: new DOMRect() must inherit property "fromRect(DOMRectInit)" with the proper type >@@ -159,9 +132,7 @@ PASS DOMRectList interface: existence and properties of interface prototype obje > PASS DOMRectList interface: existence and properties of interface prototype object's "constructor" property > PASS DOMRectList interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMRectList interface: attribute length >-PASS Unscopable handled correctly for length property on DOMRectList > PASS DOMRectList interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on DOMRectList > PASS DOMRectList must be primary interface of [object DOMRectList] > PASS Stringification of [object DOMRectList] > PASS DOMRectList interface: [object DOMRectList] must inherit property "length" with the proper type >@@ -174,21 +145,13 @@ PASS DOMQuad interface: existence and properties of interface prototype object > PASS DOMQuad interface: existence and properties of interface prototype object's "constructor" property > PASS DOMQuad interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMQuad interface: operation fromRect(DOMRectInit) >-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMQuad > PASS DOMQuad interface: operation fromQuad(DOMQuadInit) >-PASS Unscopable handled correctly for fromQuad(DOMQuadInit) on DOMQuad > PASS DOMQuad interface: attribute p1 >-PASS Unscopable handled correctly for p1 property on DOMQuad > PASS DOMQuad interface: attribute p2 >-PASS Unscopable handled correctly for p2 property on DOMQuad > PASS DOMQuad interface: attribute p3 >-PASS Unscopable handled correctly for p3 property on DOMQuad > PASS DOMQuad interface: attribute p4 >-PASS Unscopable handled correctly for p4 property on DOMQuad > PASS DOMQuad interface: operation getBounds() >-PASS Unscopable handled correctly for getBounds() on DOMQuad > PASS DOMQuad interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on DOMQuad > PASS DOMQuad must be primary interface of new DOMQuad() > PASS Stringification of new DOMQuad() > PASS DOMQuad interface: new DOMQuad() must inherit property "fromRect(DOMRectInit)" with the proper type >@@ -209,92 +172,49 @@ PASS DOMMatrixReadOnly interface: existence and properties of interface prototyp > PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's "constructor" property > PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMMatrixReadOnly interface: operation fromMatrix(DOMMatrixInit) >-PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation fromFloat32Array(Float32Array) >-PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation fromFloat64Array(Float64Array) >-PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute a >-PASS Unscopable handled correctly for a property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute b >-PASS Unscopable handled correctly for b property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute c >-PASS Unscopable handled correctly for c property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute d >-PASS Unscopable handled correctly for d property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute e >-PASS Unscopable handled correctly for e property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute f >-PASS Unscopable handled correctly for f property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m11 >-PASS Unscopable handled correctly for m11 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m12 >-PASS Unscopable handled correctly for m12 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m13 >-PASS Unscopable handled correctly for m13 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m14 >-PASS Unscopable handled correctly for m14 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m21 >-PASS Unscopable handled correctly for m21 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m22 >-PASS Unscopable handled correctly for m22 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m23 >-PASS Unscopable handled correctly for m23 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m24 >-PASS Unscopable handled correctly for m24 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m31 >-PASS Unscopable handled correctly for m31 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m32 >-PASS Unscopable handled correctly for m32 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m33 >-PASS Unscopable handled correctly for m33 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m34 >-PASS Unscopable handled correctly for m34 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m41 >-PASS Unscopable handled correctly for m41 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m42 >-PASS Unscopable handled correctly for m42 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m43 >-PASS Unscopable handled correctly for m43 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m44 >-PASS Unscopable handled correctly for m44 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute is2D >-PASS Unscopable handled correctly for is2D property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute isIdentity >-PASS Unscopable handled correctly for isIdentity property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation translate(unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation rotate(unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation rotateFromVector(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateFromVector(unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation skewX(unrestricted double) >-PASS Unscopable handled correctly for skewX(unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation skewY(unrestricted double) >-PASS Unscopable handled correctly for skewY(unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation multiply(DOMMatrixInit) >-PASS Unscopable handled correctly for multiply(DOMMatrixInit) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation flipX() >-PASS Unscopable handled correctly for flipX() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation flipY() >-PASS Unscopable handled correctly for flipY() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation inverse() >-PASS Unscopable handled correctly for inverse() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation transformPoint(DOMPointInit) >-PASS Unscopable handled correctly for transformPoint(DOMPointInit) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation toFloat32Array() >-PASS Unscopable handled correctly for toFloat32Array() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation toFloat64Array() >-PASS Unscopable handled correctly for toFloat64Array() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: stringifier > PASS DOMMatrixReadOnly interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly must be primary interface of new DOMMatrixReadOnly() > PASS Stringification of new DOMMatrixReadOnly() > PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type >@@ -368,79 +288,42 @@ PASS DOMMatrix interface: existence and properties of interface prototype object > PASS DOMMatrix interface: existence and properties of interface prototype object's "constructor" property > PASS DOMMatrix interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMMatrix interface: operation fromMatrix(DOMMatrixInit) >-PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrix > PASS DOMMatrix interface: operation fromFloat32Array(Float32Array) >-PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrix > PASS DOMMatrix interface: operation fromFloat64Array(Float64Array) >-PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrix > PASS DOMMatrix interface: attribute a >-PASS Unscopable handled correctly for a property on DOMMatrix > PASS DOMMatrix interface: attribute b >-PASS Unscopable handled correctly for b property on DOMMatrix > PASS DOMMatrix interface: attribute c >-PASS Unscopable handled correctly for c property on DOMMatrix > PASS DOMMatrix interface: attribute d >-PASS Unscopable handled correctly for d property on DOMMatrix > PASS DOMMatrix interface: attribute e >-PASS Unscopable handled correctly for e property on DOMMatrix > PASS DOMMatrix interface: attribute f >-PASS Unscopable handled correctly for f property on DOMMatrix > PASS DOMMatrix interface: attribute m11 >-PASS Unscopable handled correctly for m11 property on DOMMatrix > PASS DOMMatrix interface: attribute m12 >-PASS Unscopable handled correctly for m12 property on DOMMatrix > PASS DOMMatrix interface: attribute m13 >-PASS Unscopable handled correctly for m13 property on DOMMatrix > PASS DOMMatrix interface: attribute m14 >-PASS Unscopable handled correctly for m14 property on DOMMatrix > PASS DOMMatrix interface: attribute m21 >-PASS Unscopable handled correctly for m21 property on DOMMatrix > PASS DOMMatrix interface: attribute m22 >-PASS Unscopable handled correctly for m22 property on DOMMatrix > PASS DOMMatrix interface: attribute m23 >-PASS Unscopable handled correctly for m23 property on DOMMatrix > PASS DOMMatrix interface: attribute m24 >-PASS Unscopable handled correctly for m24 property on DOMMatrix > PASS DOMMatrix interface: attribute m31 >-PASS Unscopable handled correctly for m31 property on DOMMatrix > PASS DOMMatrix interface: attribute m32 >-PASS Unscopable handled correctly for m32 property on DOMMatrix > PASS DOMMatrix interface: attribute m33 >-PASS Unscopable handled correctly for m33 property on DOMMatrix > PASS DOMMatrix interface: attribute m34 >-PASS Unscopable handled correctly for m34 property on DOMMatrix > PASS DOMMatrix interface: attribute m41 >-PASS Unscopable handled correctly for m41 property on DOMMatrix > PASS DOMMatrix interface: attribute m42 >-PASS Unscopable handled correctly for m42 property on DOMMatrix > PASS DOMMatrix interface: attribute m43 >-PASS Unscopable handled correctly for m43 property on DOMMatrix > PASS DOMMatrix interface: attribute m44 >-PASS Unscopable handled correctly for m44 property on DOMMatrix > PASS DOMMatrix interface: operation multiplySelf(DOMMatrixInit) >-PASS Unscopable handled correctly for multiplySelf(DOMMatrixInit) on DOMMatrix > PASS DOMMatrix interface: operation preMultiplySelf(DOMMatrixInit) >-PASS Unscopable handled correctly for preMultiplySelf(DOMMatrixInit) on DOMMatrix > PASS DOMMatrix interface: operation translateSelf(unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for translateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation rotateSelf(unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation rotateFromVectorSelf(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateFromVectorSelf(unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation skewXSelf(unrestricted double) >-PASS Unscopable handled correctly for skewXSelf(unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation skewYSelf(unrestricted double) >-PASS Unscopable handled correctly for skewYSelf(unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation invertSelf() >-PASS Unscopable handled correctly for invertSelf() on DOMMatrix > PASS DOMMatrix interface: operation setMatrixValue(DOMString) >-PASS Unscopable handled correctly for setMatrixValue(DOMString) on DOMMatrix > PASS DOMMatrix must be primary interface of new DOMMatrix() > PASS Stringification of new DOMMatrix() > PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/geometry/interfaces.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/geometry/interfaces.worker-expected.txt >index 81ca4b8cfe106fa13466d8b06001ba15491bc6eb..90587082502fb0387b2ed4ececfa06ad7c104f88 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/geometry/interfaces.worker-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/geometry/interfaces.worker-expected.txt >@@ -7,19 +7,12 @@ PASS DOMPointReadOnly interface: existence and properties of interface prototype > PASS DOMPointReadOnly interface: existence and properties of interface prototype object's "constructor" property > PASS DOMPointReadOnly interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMPointReadOnly interface: operation fromPoint(DOMPointInit) >-PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPointReadOnly > PASS DOMPointReadOnly interface: attribute x >-PASS Unscopable handled correctly for x property on DOMPointReadOnly > PASS DOMPointReadOnly interface: attribute y >-PASS Unscopable handled correctly for y property on DOMPointReadOnly > PASS DOMPointReadOnly interface: attribute z >-PASS Unscopable handled correctly for z property on DOMPointReadOnly > PASS DOMPointReadOnly interface: attribute w >-PASS Unscopable handled correctly for w property on DOMPointReadOnly > PASS DOMPointReadOnly interface: operation matrixTransform(DOMMatrixInit) >-PASS Unscopable handled correctly for matrixTransform(DOMMatrixInit) on DOMPointReadOnly > PASS DOMPointReadOnly interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on DOMPointReadOnly > PASS DOMPointReadOnly must be primary interface of new DOMPointReadOnly() > PASS Stringification of new DOMPointReadOnly() > PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "fromPoint(DOMPointInit)" with the proper type >@@ -40,15 +33,10 @@ PASS DOMPoint interface: existence and properties of interface prototype object > PASS DOMPoint interface: existence and properties of interface prototype object's "constructor" property > PASS DOMPoint interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMPoint interface: operation fromPoint(DOMPointInit) >-PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPoint > PASS DOMPoint interface: attribute x >-PASS Unscopable handled correctly for x property on DOMPoint > PASS DOMPoint interface: attribute y >-PASS Unscopable handled correctly for y property on DOMPoint > PASS DOMPoint interface: attribute z >-PASS Unscopable handled correctly for z property on DOMPoint > PASS DOMPoint interface: attribute w >-PASS Unscopable handled correctly for w property on DOMPoint > PASS DOMPoint must be primary interface of new DOMPoint() > PASS Stringification of new DOMPoint() > PASS DOMPoint interface: new DOMPoint() must inherit property "fromPoint(DOMPointInit)" with the proper type >@@ -74,25 +62,15 @@ PASS DOMRectReadOnly interface: existence and properties of interface prototype > PASS DOMRectReadOnly interface: existence and properties of interface prototype object's "constructor" property > PASS DOMRectReadOnly interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMRectReadOnly interface: operation fromRect(DOMRectInit) >-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute x >-PASS Unscopable handled correctly for x property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute y >-PASS Unscopable handled correctly for y property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute width >-PASS Unscopable handled correctly for width property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute height >-PASS Unscopable handled correctly for height property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute top >-PASS Unscopable handled correctly for top property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute right >-PASS Unscopable handled correctly for right property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute bottom >-PASS Unscopable handled correctly for bottom property on DOMRectReadOnly > PASS DOMRectReadOnly interface: attribute left >-PASS Unscopable handled correctly for left property on DOMRectReadOnly > PASS DOMRectReadOnly interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on DOMRectReadOnly > PASS DOMRectReadOnly must be primary interface of new DOMRectReadOnly() > PASS Stringification of new DOMRectReadOnly() > PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "fromRect(DOMRectInit)" with the proper type >@@ -115,15 +93,10 @@ PASS DOMRect interface: existence and properties of interface prototype object > PASS DOMRect interface: existence and properties of interface prototype object's "constructor" property > PASS DOMRect interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMRect interface: operation fromRect(DOMRectInit) >-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRect > PASS DOMRect interface: attribute x >-PASS Unscopable handled correctly for x property on DOMRect > PASS DOMRect interface: attribute y >-PASS Unscopable handled correctly for y property on DOMRect > PASS DOMRect interface: attribute width >-PASS Unscopable handled correctly for width property on DOMRect > PASS DOMRect interface: attribute height >-PASS Unscopable handled correctly for height property on DOMRect > PASS DOMRect must be primary interface of new DOMRect() > PASS Stringification of new DOMRect() > PASS DOMRect interface: new DOMRect() must inherit property "fromRect(DOMRectInit)" with the proper type >@@ -152,21 +125,13 @@ PASS DOMQuad interface: existence and properties of interface prototype object > PASS DOMQuad interface: existence and properties of interface prototype object's "constructor" property > PASS DOMQuad interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMQuad interface: operation fromRect(DOMRectInit) >-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMQuad > PASS DOMQuad interface: operation fromQuad(DOMQuadInit) >-PASS Unscopable handled correctly for fromQuad(DOMQuadInit) on DOMQuad > PASS DOMQuad interface: attribute p1 >-PASS Unscopable handled correctly for p1 property on DOMQuad > PASS DOMQuad interface: attribute p2 >-PASS Unscopable handled correctly for p2 property on DOMQuad > PASS DOMQuad interface: attribute p3 >-PASS Unscopable handled correctly for p3 property on DOMQuad > PASS DOMQuad interface: attribute p4 >-PASS Unscopable handled correctly for p4 property on DOMQuad > PASS DOMQuad interface: operation getBounds() >-PASS Unscopable handled correctly for getBounds() on DOMQuad > PASS DOMQuad interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on DOMQuad > PASS DOMQuad must be primary interface of new DOMQuad() > PASS Stringification of new DOMQuad() > PASS DOMQuad interface: new DOMQuad() must inherit property "fromRect(DOMRectInit)" with the proper type >@@ -187,92 +152,49 @@ PASS DOMMatrixReadOnly interface: existence and properties of interface prototyp > PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's "constructor" property > PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMMatrixReadOnly interface: operation fromMatrix(DOMMatrixInit) >-PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation fromFloat32Array(Float32Array) >-PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation fromFloat64Array(Float64Array) >-PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute a >-PASS Unscopable handled correctly for a property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute b >-PASS Unscopable handled correctly for b property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute c >-PASS Unscopable handled correctly for c property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute d >-PASS Unscopable handled correctly for d property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute e >-PASS Unscopable handled correctly for e property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute f >-PASS Unscopable handled correctly for f property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m11 >-PASS Unscopable handled correctly for m11 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m12 >-PASS Unscopable handled correctly for m12 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m13 >-PASS Unscopable handled correctly for m13 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m14 >-PASS Unscopable handled correctly for m14 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m21 >-PASS Unscopable handled correctly for m21 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m22 >-PASS Unscopable handled correctly for m22 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m23 >-PASS Unscopable handled correctly for m23 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m24 >-PASS Unscopable handled correctly for m24 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m31 >-PASS Unscopable handled correctly for m31 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m32 >-PASS Unscopable handled correctly for m32 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m33 >-PASS Unscopable handled correctly for m33 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m34 >-PASS Unscopable handled correctly for m34 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m41 >-PASS Unscopable handled correctly for m41 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m42 >-PASS Unscopable handled correctly for m42 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m43 >-PASS Unscopable handled correctly for m43 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute m44 >-PASS Unscopable handled correctly for m44 property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute is2D >-PASS Unscopable handled correctly for is2D property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: attribute isIdentity >-PASS Unscopable handled correctly for isIdentity property on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation translate(unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation rotate(unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation rotateFromVector(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateFromVector(unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation skewX(unrestricted double) >-PASS Unscopable handled correctly for skewX(unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation skewY(unrestricted double) >-PASS Unscopable handled correctly for skewY(unrestricted double) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation multiply(DOMMatrixInit) >-PASS Unscopable handled correctly for multiply(DOMMatrixInit) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation flipX() >-PASS Unscopable handled correctly for flipX() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation flipY() >-PASS Unscopable handled correctly for flipY() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation inverse() >-PASS Unscopable handled correctly for inverse() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation transformPoint(DOMPointInit) >-PASS Unscopable handled correctly for transformPoint(DOMPointInit) on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation toFloat32Array() >-PASS Unscopable handled correctly for toFloat32Array() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: operation toFloat64Array() >-PASS Unscopable handled correctly for toFloat64Array() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly interface: member undefined > PASS DOMMatrixReadOnly interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on DOMMatrixReadOnly > PASS DOMMatrixReadOnly must be primary interface of new DOMMatrixReadOnly() > PASS Stringification of new DOMMatrixReadOnly() > PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type >@@ -343,77 +265,41 @@ PASS DOMMatrix interface: existence and properties of interface prototype object > PASS DOMMatrix interface: existence and properties of interface prototype object's "constructor" property > PASS DOMMatrix interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMMatrix interface: operation fromMatrix(DOMMatrixInit) >-PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrix > PASS DOMMatrix interface: operation fromFloat32Array(Float32Array) >-PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrix > PASS DOMMatrix interface: operation fromFloat64Array(Float64Array) >-PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrix > PASS DOMMatrix interface: attribute a >-PASS Unscopable handled correctly for a property on DOMMatrix > PASS DOMMatrix interface: attribute b >-PASS Unscopable handled correctly for b property on DOMMatrix > PASS DOMMatrix interface: attribute c >-PASS Unscopable handled correctly for c property on DOMMatrix > PASS DOMMatrix interface: attribute d >-PASS Unscopable handled correctly for d property on DOMMatrix > PASS DOMMatrix interface: attribute e >-PASS Unscopable handled correctly for e property on DOMMatrix > PASS DOMMatrix interface: attribute f >-PASS Unscopable handled correctly for f property on DOMMatrix > PASS DOMMatrix interface: attribute m11 >-PASS Unscopable handled correctly for m11 property on DOMMatrix > PASS DOMMatrix interface: attribute m12 >-PASS Unscopable handled correctly for m12 property on DOMMatrix > PASS DOMMatrix interface: attribute m13 >-PASS Unscopable handled correctly for m13 property on DOMMatrix > PASS DOMMatrix interface: attribute m14 >-PASS Unscopable handled correctly for m14 property on DOMMatrix > PASS DOMMatrix interface: attribute m21 >-PASS Unscopable handled correctly for m21 property on DOMMatrix > PASS DOMMatrix interface: attribute m22 >-PASS Unscopable handled correctly for m22 property on DOMMatrix > PASS DOMMatrix interface: attribute m23 >-PASS Unscopable handled correctly for m23 property on DOMMatrix > PASS DOMMatrix interface: attribute m24 >-PASS Unscopable handled correctly for m24 property on DOMMatrix > PASS DOMMatrix interface: attribute m31 >-PASS Unscopable handled correctly for m31 property on DOMMatrix > PASS DOMMatrix interface: attribute m32 >-PASS Unscopable handled correctly for m32 property on DOMMatrix > PASS DOMMatrix interface: attribute m33 >-PASS Unscopable handled correctly for m33 property on DOMMatrix > PASS DOMMatrix interface: attribute m34 >-PASS Unscopable handled correctly for m34 property on DOMMatrix > PASS DOMMatrix interface: attribute m41 >-PASS Unscopable handled correctly for m41 property on DOMMatrix > PASS DOMMatrix interface: attribute m42 >-PASS Unscopable handled correctly for m42 property on DOMMatrix > PASS DOMMatrix interface: attribute m43 >-PASS Unscopable handled correctly for m43 property on DOMMatrix > PASS DOMMatrix interface: attribute m44 >-PASS Unscopable handled correctly for m44 property on DOMMatrix > PASS DOMMatrix interface: operation multiplySelf(DOMMatrixInit) >-PASS Unscopable handled correctly for multiplySelf(DOMMatrixInit) on DOMMatrix > PASS DOMMatrix interface: operation preMultiplySelf(DOMMatrixInit) >-PASS Unscopable handled correctly for preMultiplySelf(DOMMatrixInit) on DOMMatrix > PASS DOMMatrix interface: operation translateSelf(unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for translateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation rotateSelf(unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation rotateFromVectorSelf(unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateFromVectorSelf(unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) >-PASS Unscopable handled correctly for rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation skewXSelf(unrestricted double) >-PASS Unscopable handled correctly for skewXSelf(unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation skewYSelf(unrestricted double) >-PASS Unscopable handled correctly for skewYSelf(unrestricted double) on DOMMatrix > PASS DOMMatrix interface: operation invertSelf() >-PASS Unscopable handled correctly for invertSelf() on DOMMatrix > PASS DOMMatrix interface: member setMatrixValue > PASS DOMMatrix must be primary interface of new DOMMatrix() > PASS Stringification of new DOMMatrix() >diff --git a/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt >index 44531be5ded3af31ba409ae569b8319448422285..e19316e494dd144ff543fef1ec14b12aa13163b9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt >@@ -1,19 +1,8 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > DOM IDL tests > > > PASS Test driver >-PASS WorkerGlobalScope interface: existence and properties of interface object >-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object >-PASS SharedWorkerGlobalScope interface: existence and properties of interface object >-PASS WorkerNavigator interface: existence and properties of interface object >-PASS WorkerLocation interface: existence and properties of interface object > PASS Event interface: existence and properties of interface object > PASS Event interface object length > PASS Event interface object name >@@ -21,13 +10,9 @@ PASS Event interface: existence and properties of interface prototype object > PASS Event interface: existence and properties of interface prototype object's "constructor" property > PASS Event interface: existence and properties of interface prototype object's @@unscopables property > PASS Event interface: attribute type >-PASS Unscopable handled correctly for type property on Event > PASS Event interface: attribute target >-PASS Unscopable handled correctly for target property on Event > PASS Event interface: attribute srcElement >-PASS Unscopable handled correctly for srcElement property on Event > PASS Event interface: attribute currentTarget >-PASS Unscopable handled correctly for currentTarget property on Event > PASS Event interface: constant NONE on interface object > PASS Event interface: constant NONE on interface prototype object > PASS Event interface: constant CAPTURING_PHASE on interface object >@@ -37,25 +22,15 @@ PASS Event interface: constant AT_TARGET on interface prototype object > PASS Event interface: constant BUBBLING_PHASE on interface object > PASS Event interface: constant BUBBLING_PHASE on interface prototype object > PASS Event interface: attribute eventPhase >-PASS Unscopable handled correctly for eventPhase property on Event > PASS Event interface: operation stopPropagation() >-PASS Unscopable handled correctly for stopPropagation() on Event > PASS Event interface: operation stopImmediatePropagation() >-PASS Unscopable handled correctly for stopImmediatePropagation() on Event > PASS Event interface: attribute bubbles >-PASS Unscopable handled correctly for bubbles property on Event > PASS Event interface: attribute cancelable >-PASS Unscopable handled correctly for cancelable property on Event > PASS Event interface: attribute returnValue >-PASS Unscopable handled correctly for returnValue property on Event > PASS Event interface: operation preventDefault() >-PASS Unscopable handled correctly for preventDefault() on Event > PASS Event interface: attribute defaultPrevented >-PASS Unscopable handled correctly for defaultPrevented property on Event > PASS Event interface: attribute timeStamp >-PASS Unscopable handled correctly for timeStamp property on Event > PASS Event interface: operation initEvent(DOMString, boolean, boolean) >-PASS Unscopable handled correctly for initEvent(DOMString, boolean, boolean) on Event > PASS Event must be primary interface of document.createEvent("Event") > PASS Stringification of document.createEvent("Event") > PASS Event interface: document.createEvent("Event") must inherit property "type" with the proper type >@@ -107,9 +82,7 @@ PASS CustomEvent interface: existence and properties of interface prototype obje > PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property > PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property > PASS CustomEvent interface: attribute detail >-PASS Unscopable handled correctly for detail property on CustomEvent > PASS CustomEvent interface: operation initCustomEvent(DOMString, boolean, boolean, any) >-PASS Unscopable handled correctly for initCustomEvent(DOMString, boolean, boolean, any) on CustomEvent > PASS CustomEvent must be primary interface of new CustomEvent("foo") > PASS Stringification of new CustomEvent("foo") > PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type >@@ -142,11 +115,8 @@ PASS EventTarget interface: existence and properties of interface prototype obje > PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property > PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property > PASS EventTarget interface: operation addEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation dispatchEvent(Event) >-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget > FAIL EventTarget must be primary interface of new EventTarget() assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new EventTarget()')" > FAIL Stringification of new EventTarget() assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new EventTarget()')" > FAIL EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new EventTarget()')" >@@ -160,7 +130,6 @@ PASS EventListener interface: existence and properties of interface prototype ob > PASS EventListener interface: existence and properties of interface prototype object's "constructor" property > PASS EventListener interface: existence and properties of interface prototype object's @@unscopables property > PASS EventListener interface: operation handleEvent(Event) >-PASS Unscopable handled correctly for handleEvent(Event) on EventListener > PASS AbortController interface: existence and properties of interface object > PASS AbortController interface object length > PASS AbortController interface object name >@@ -168,9 +137,7 @@ PASS AbortController interface: existence and properties of interface prototype > PASS AbortController interface: existence and properties of interface prototype object's "constructor" property > PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property > PASS AbortController interface: attribute signal >-PASS Unscopable handled correctly for signal property on AbortController > PASS AbortController interface: operation abort() >-PASS Unscopable handled correctly for abort() on AbortController > PASS AbortController must be primary interface of new AbortController() > PASS Stringification of new AbortController() > PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type >@@ -182,9 +149,7 @@ PASS AbortSignal interface: existence and properties of interface prototype obje > PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property > PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property > PASS AbortSignal interface: attribute aborted >-PASS Unscopable handled correctly for aborted property on AbortSignal > PASS AbortSignal interface: attribute onabort >-PASS Unscopable handled correctly for onabort property on AbortSignal > PASS AbortSignal must be primary interface of new AbortController().signal > PASS Stringification of new AbortController().signal > PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type >@@ -202,9 +167,7 @@ PASS NodeList interface: existence and properties of interface prototype object > PASS NodeList interface: existence and properties of interface prototype object's "constructor" property > PASS NodeList interface: existence and properties of interface prototype object's @@unscopables property > PASS NodeList interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on NodeList > PASS NodeList interface: attribute length >-PASS Unscopable handled correctly for length property on NodeList > PASS NodeList must be primary interface of document.querySelectorAll("script") > PASS Stringification of document.querySelectorAll("script") > PASS NodeList interface: document.querySelectorAll("script") must inherit property "item(unsigned long)" with the proper type >@@ -217,11 +180,8 @@ PASS HTMLCollection interface: existence and properties of interface prototype o > PASS HTMLCollection interface: existence and properties of interface prototype object's "constructor" property > PASS HTMLCollection interface: existence and properties of interface prototype object's @@unscopables property > PASS HTMLCollection interface: attribute length >-PASS Unscopable handled correctly for length property on HTMLCollection > PASS HTMLCollection interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on HTMLCollection > PASS HTMLCollection interface: operation namedItem(DOMString) >-PASS Unscopable handled correctly for namedItem(DOMString) on HTMLCollection > PASS HTMLCollection must be primary interface of document.body.children > PASS Stringification of document.body.children > PASS HTMLCollection interface: document.body.children must inherit property "length" with the proper type >@@ -236,11 +196,8 @@ PASS MutationObserver interface: existence and properties of interface prototype > PASS MutationObserver interface: existence and properties of interface prototype object's "constructor" property > PASS MutationObserver interface: existence and properties of interface prototype object's @@unscopables property > PASS MutationObserver interface: operation observe(Node, MutationObserverInit) >-PASS Unscopable handled correctly for observe(Node, MutationObserverInit) on MutationObserver > PASS MutationObserver interface: operation disconnect() >-PASS Unscopable handled correctly for disconnect() on MutationObserver > PASS MutationObserver interface: operation takeRecords() >-PASS Unscopable handled correctly for takeRecords() on MutationObserver > PASS MutationRecord interface: existence and properties of interface object > PASS MutationRecord interface object length > PASS MutationRecord interface object name >@@ -248,23 +205,14 @@ PASS MutationRecord interface: existence and properties of interface prototype o > PASS MutationRecord interface: existence and properties of interface prototype object's "constructor" property > PASS MutationRecord interface: existence and properties of interface prototype object's @@unscopables property > PASS MutationRecord interface: attribute type >-PASS Unscopable handled correctly for type property on MutationRecord > PASS MutationRecord interface: attribute target >-PASS Unscopable handled correctly for target property on MutationRecord > PASS MutationRecord interface: attribute addedNodes >-PASS Unscopable handled correctly for addedNodes property on MutationRecord > PASS MutationRecord interface: attribute removedNodes >-PASS Unscopable handled correctly for removedNodes property on MutationRecord > PASS MutationRecord interface: attribute previousSibling >-PASS Unscopable handled correctly for previousSibling property on MutationRecord > PASS MutationRecord interface: attribute nextSibling >-PASS Unscopable handled correctly for nextSibling property on MutationRecord > PASS MutationRecord interface: attribute attributeName >-PASS Unscopable handled correctly for attributeName property on MutationRecord > PASS MutationRecord interface: attribute attributeNamespace >-PASS Unscopable handled correctly for attributeNamespace property on MutationRecord > PASS MutationRecord interface: attribute oldValue >-PASS Unscopable handled correctly for oldValue property on MutationRecord > PASS Node interface: existence and properties of interface object > PASS Node interface object length > PASS Node interface object name >@@ -296,45 +244,25 @@ PASS Node interface: constant DOCUMENT_FRAGMENT_NODE on interface prototype obje > PASS Node interface: constant NOTATION_NODE on interface object > PASS Node interface: constant NOTATION_NODE on interface prototype object > PASS Node interface: attribute nodeType >-PASS Unscopable handled correctly for nodeType property on Node > PASS Node interface: attribute nodeName >-PASS Unscopable handled correctly for nodeName property on Node > PASS Node interface: attribute baseURI >-PASS Unscopable handled correctly for baseURI property on Node > PASS Node interface: attribute isConnected >-PASS Unscopable handled correctly for isConnected property on Node > PASS Node interface: attribute ownerDocument >-PASS Unscopable handled correctly for ownerDocument property on Node > PASS Node interface: operation getRootNode(GetRootNodeOptions) >-PASS Unscopable handled correctly for getRootNode(GetRootNodeOptions) on Node > PASS Node interface: attribute parentNode >-PASS Unscopable handled correctly for parentNode property on Node > PASS Node interface: attribute parentElement >-PASS Unscopable handled correctly for parentElement property on Node > PASS Node interface: operation hasChildNodes() >-PASS Unscopable handled correctly for hasChildNodes() on Node > PASS Node interface: attribute childNodes >-PASS Unscopable handled correctly for childNodes property on Node > PASS Node interface: attribute firstChild >-PASS Unscopable handled correctly for firstChild property on Node > PASS Node interface: attribute lastChild >-PASS Unscopable handled correctly for lastChild property on Node > PASS Node interface: attribute previousSibling >-PASS Unscopable handled correctly for previousSibling property on Node > PASS Node interface: attribute nextSibling >-PASS Unscopable handled correctly for nextSibling property on Node > PASS Node interface: attribute nodeValue >-PASS Unscopable handled correctly for nodeValue property on Node > PASS Node interface: attribute textContent >-PASS Unscopable handled correctly for textContent property on Node > PASS Node interface: operation normalize() >-PASS Unscopable handled correctly for normalize() on Node > PASS Node interface: operation cloneNode(boolean) >-PASS Unscopable handled correctly for cloneNode(boolean) on Node > PASS Node interface: operation isEqualNode(Node) >-PASS Unscopable handled correctly for isEqualNode(Node) on Node > PASS Node interface: operation isSameNode(Node) >-PASS Unscopable handled correctly for isSameNode(Node) on Node > PASS Node interface: constant DOCUMENT_POSITION_DISCONNECTED on interface object > PASS Node interface: constant DOCUMENT_POSITION_DISCONNECTED on interface prototype object > PASS Node interface: constant DOCUMENT_POSITION_PRECEDING on interface object >@@ -348,23 +276,14 @@ PASS Node interface: constant DOCUMENT_POSITION_CONTAINED_BY on interface protot > PASS Node interface: constant DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC on interface object > PASS Node interface: constant DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC on interface prototype object > PASS Node interface: operation compareDocumentPosition(Node) >-PASS Unscopable handled correctly for compareDocumentPosition(Node) on Node > PASS Node interface: operation contains(Node) >-PASS Unscopable handled correctly for contains(Node) on Node > PASS Node interface: operation lookupPrefix(DOMString) >-PASS Unscopable handled correctly for lookupPrefix(DOMString) on Node > PASS Node interface: operation lookupNamespaceURI(DOMString) >-PASS Unscopable handled correctly for lookupNamespaceURI(DOMString) on Node > PASS Node interface: operation isDefaultNamespace(DOMString) >-PASS Unscopable handled correctly for isDefaultNamespace(DOMString) on Node > PASS Node interface: operation insertBefore(Node, Node) >-PASS Unscopable handled correctly for insertBefore(Node, Node) on Node > PASS Node interface: operation appendChild(Node) >-PASS Unscopable handled correctly for appendChild(Node) on Node > PASS Node interface: operation replaceChild(Node, Node) >-PASS Unscopable handled correctly for replaceChild(Node, Node) on Node > PASS Node interface: operation removeChild(Node) >-PASS Unscopable handled correctly for removeChild(Node) on Node > PASS Document interface: existence and properties of interface object > PASS Document interface object length > PASS Document interface object name >@@ -372,81 +291,43 @@ PASS Document interface: existence and properties of interface prototype object > PASS Document interface: existence and properties of interface prototype object's "constructor" property > PASS Document interface: existence and properties of interface prototype object's @@unscopables property > PASS Document interface: attribute implementation >-PASS Unscopable handled correctly for implementation property on Document > PASS Document interface: attribute URL >-PASS Unscopable handled correctly for URL property on Document > PASS Document interface: attribute documentURI >-PASS Unscopable handled correctly for documentURI property on Document > PASS Document interface: attribute origin >-PASS Unscopable handled correctly for origin property on Document > PASS Document interface: attribute compatMode >-PASS Unscopable handled correctly for compatMode property on Document > PASS Document interface: attribute characterSet >-PASS Unscopable handled correctly for characterSet property on Document > PASS Document interface: attribute charset >-PASS Unscopable handled correctly for charset property on Document > PASS Document interface: attribute inputEncoding >-PASS Unscopable handled correctly for inputEncoding property on Document > PASS Document interface: attribute contentType >-PASS Unscopable handled correctly for contentType property on Document > PASS Document interface: attribute doctype >-PASS Unscopable handled correctly for doctype property on Document > PASS Document interface: attribute documentElement >-PASS Unscopable handled correctly for documentElement property on Document > PASS Document interface: operation getElementsByTagName(DOMString) >-PASS Unscopable handled correctly for getElementsByTagName(DOMString) on Document > PASS Document interface: operation getElementsByTagNameNS(DOMString, DOMString) >-PASS Unscopable handled correctly for getElementsByTagNameNS(DOMString, DOMString) on Document > PASS Document interface: operation getElementsByClassName(DOMString) >-PASS Unscopable handled correctly for getElementsByClassName(DOMString) on Document > PASS Document interface: operation createElement(DOMString, [object Object],[object Object]) >-PASS Unscopable handled correctly for createElement(DOMString, [object Object],[object Object]) on Document > PASS Document interface: operation createElementNS(DOMString, DOMString, [object Object],[object Object]) >-PASS Unscopable handled correctly for createElementNS(DOMString, DOMString, [object Object],[object Object]) on Document > PASS Document interface: operation createDocumentFragment() >-PASS Unscopable handled correctly for createDocumentFragment() on Document > PASS Document interface: operation createTextNode(DOMString) >-PASS Unscopable handled correctly for createTextNode(DOMString) on Document > PASS Document interface: operation createCDATASection(DOMString) >-PASS Unscopable handled correctly for createCDATASection(DOMString) on Document > PASS Document interface: operation createComment(DOMString) >-PASS Unscopable handled correctly for createComment(DOMString) on Document > PASS Document interface: operation createProcessingInstruction(DOMString, DOMString) >-PASS Unscopable handled correctly for createProcessingInstruction(DOMString, DOMString) on Document > PASS Document interface: operation importNode(Node, boolean) >-PASS Unscopable handled correctly for importNode(Node, boolean) on Document > PASS Document interface: operation adoptNode(Node) >-PASS Unscopable handled correctly for adoptNode(Node) on Document > PASS Document interface: operation createAttribute(DOMString) >-PASS Unscopable handled correctly for createAttribute(DOMString) on Document > PASS Document interface: operation createAttributeNS(DOMString, DOMString) >-PASS Unscopable handled correctly for createAttributeNS(DOMString, DOMString) on Document > PASS Document interface: operation createEvent(DOMString) >-PASS Unscopable handled correctly for createEvent(DOMString) on Document > PASS Document interface: operation createRange() >-PASS Unscopable handled correctly for createRange() on Document > PASS Document interface: operation createNodeIterator(Node, unsigned long, NodeFilter) >-PASS Unscopable handled correctly for createNodeIterator(Node, unsigned long, NodeFilter) on Document > PASS Document interface: operation createTreeWalker(Node, unsigned long, NodeFilter) >-PASS Unscopable handled correctly for createTreeWalker(Node, unsigned long, NodeFilter) on Document > PASS Document interface: operation getElementById(DOMString) >-PASS Unscopable handled correctly for getElementById(DOMString) on Document > PASS Document interface: attribute children >-PASS Unscopable handled correctly for children property on Document > PASS Document interface: attribute firstElementChild >-PASS Unscopable handled correctly for firstElementChild property on Document > PASS Document interface: attribute lastElementChild >-PASS Unscopable handled correctly for lastElementChild property on Document > PASS Document interface: attribute childElementCount >-PASS Unscopable handled correctly for childElementCount property on Document > PASS Document interface: operation prepend([object Object],[object Object]) >-PASS Unscopable handled correctly for prepend([object Object],[object Object]) on Document > PASS Document interface: operation append([object Object],[object Object]) >-PASS Unscopable handled correctly for append([object Object],[object Object]) on Document > PASS Document interface: operation querySelector(DOMString) >-PASS Unscopable handled correctly for querySelector(DOMString) on Document > PASS Document interface: operation querySelectorAll(DOMString) >-PASS Unscopable handled correctly for querySelectorAll(DOMString) on Document > PASS Document must be primary interface of new Document() > PASS Stringification of new Document() > PASS Document interface: new Document() must inherit property "implementation" with the proper type >@@ -714,13 +595,9 @@ PASS DOMImplementation interface: existence and properties of interface prototyp > PASS DOMImplementation interface: existence and properties of interface prototype object's "constructor" property > PASS DOMImplementation interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMImplementation interface: operation createDocumentType(DOMString, DOMString, DOMString) >-PASS Unscopable handled correctly for createDocumentType(DOMString, DOMString, DOMString) on DOMImplementation > PASS DOMImplementation interface: operation createDocument(DOMString, DOMString, DocumentType) >-PASS Unscopable handled correctly for createDocument(DOMString, DOMString, DocumentType) on DOMImplementation > PASS DOMImplementation interface: operation createHTMLDocument(DOMString) >-PASS Unscopable handled correctly for createHTMLDocument(DOMString) on DOMImplementation > PASS DOMImplementation interface: operation hasFeature() >-PASS Unscopable handled correctly for hasFeature() on DOMImplementation > PASS DOMImplementation must be primary interface of document.implementation > PASS Stringification of document.implementation > PASS DOMImplementation interface: document.implementation must inherit property "createDocumentType(DOMString, DOMString, DOMString)" with the proper type >@@ -737,19 +614,12 @@ PASS DocumentType interface: existence and properties of interface prototype obj > PASS DocumentType interface: existence and properties of interface prototype object's "constructor" property > PASS DocumentType interface: existence and properties of interface prototype object's @@unscopables property > PASS DocumentType interface: attribute name >-PASS Unscopable handled correctly for name property on DocumentType > PASS DocumentType interface: attribute publicId >-PASS Unscopable handled correctly for publicId property on DocumentType > PASS DocumentType interface: attribute systemId >-PASS Unscopable handled correctly for systemId property on DocumentType > PASS DocumentType interface: operation before([object Object],[object Object]) >-PASS Unscopable handled correctly for before([object Object],[object Object]) on DocumentType > PASS DocumentType interface: operation after([object Object],[object Object]) >-PASS Unscopable handled correctly for after([object Object],[object Object]) on DocumentType > PASS DocumentType interface: operation replaceWith([object Object],[object Object]) >-PASS Unscopable handled correctly for replaceWith([object Object],[object Object]) on DocumentType > PASS DocumentType interface: operation remove() >-PASS Unscopable handled correctly for remove() on DocumentType > PASS DocumentType must be primary interface of document.doctype > PASS Stringification of document.doctype > PASS DocumentType interface: document.doctype must inherit property "name" with the proper type >@@ -835,23 +705,14 @@ PASS DocumentFragment interface: existence and properties of interface prototype > PASS DocumentFragment interface: existence and properties of interface prototype object's "constructor" property > PASS DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property > PASS DocumentFragment interface: operation getElementById(DOMString) >-PASS Unscopable handled correctly for getElementById(DOMString) on DocumentFragment > PASS DocumentFragment interface: attribute children >-PASS Unscopable handled correctly for children property on DocumentFragment > PASS DocumentFragment interface: attribute firstElementChild >-PASS Unscopable handled correctly for firstElementChild property on DocumentFragment > PASS DocumentFragment interface: attribute lastElementChild >-PASS Unscopable handled correctly for lastElementChild property on DocumentFragment > PASS DocumentFragment interface: attribute childElementCount >-PASS Unscopable handled correctly for childElementCount property on DocumentFragment > PASS DocumentFragment interface: operation prepend([object Object],[object Object]) >-PASS Unscopable handled correctly for prepend([object Object],[object Object]) on DocumentFragment > PASS DocumentFragment interface: operation append([object Object],[object Object]) >-PASS Unscopable handled correctly for append([object Object],[object Object]) on DocumentFragment > PASS DocumentFragment interface: operation querySelector(DOMString) >-PASS Unscopable handled correctly for querySelector(DOMString) on DocumentFragment > PASS DocumentFragment interface: operation querySelectorAll(DOMString) >-PASS Unscopable handled correctly for querySelectorAll(DOMString) on DocumentFragment > PASS DocumentFragment must be primary interface of document.createDocumentFragment() > PASS Stringification of document.createDocumentFragment() > PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "getElementById(DOMString)" with the proper type >@@ -941,9 +802,7 @@ PASS ShadowRoot interface: existence and properties of interface prototype objec > PASS ShadowRoot interface: existence and properties of interface prototype object's "constructor" property > PASS ShadowRoot interface: existence and properties of interface prototype object's @@unscopables property > PASS ShadowRoot interface: attribute mode >-PASS Unscopable handled correctly for mode property on ShadowRoot > PASS ShadowRoot interface: attribute host >-PASS Unscopable handled correctly for host property on ShadowRoot > PASS Element interface: existence and properties of interface object > PASS Element interface object length > PASS Element interface object name >@@ -951,103 +810,54 @@ PASS Element interface: existence and properties of interface prototype object > PASS Element interface: existence and properties of interface prototype object's "constructor" property > PASS Element interface: existence and properties of interface prototype object's @@unscopables property > PASS Element interface: attribute namespaceURI >-PASS Unscopable handled correctly for namespaceURI property on Element > PASS Element interface: attribute prefix >-PASS Unscopable handled correctly for prefix property on Element > PASS Element interface: attribute localName >-PASS Unscopable handled correctly for localName property on Element > PASS Element interface: attribute tagName >-PASS Unscopable handled correctly for tagName property on Element > PASS Element interface: attribute id >-PASS Unscopable handled correctly for id property on Element > PASS Element interface: attribute className >-PASS Unscopable handled correctly for className property on Element > PASS Element interface: attribute classList >-PASS Unscopable handled correctly for classList property on Element > PASS Element interface: attribute slot >-PASS Unscopable handled correctly for slot property on Element > PASS Element interface: operation hasAttributes() >-PASS Unscopable handled correctly for hasAttributes() on Element > PASS Element interface: attribute attributes >-PASS Unscopable handled correctly for attributes property on Element > PASS Element interface: operation getAttributeNames() >-PASS Unscopable handled correctly for getAttributeNames() on Element > PASS Element interface: operation getAttribute(DOMString) >-PASS Unscopable handled correctly for getAttribute(DOMString) on Element > PASS Element interface: operation getAttributeNS(DOMString, DOMString) >-PASS Unscopable handled correctly for getAttributeNS(DOMString, DOMString) on Element > PASS Element interface: operation setAttribute(DOMString, DOMString) >-PASS Unscopable handled correctly for setAttribute(DOMString, DOMString) on Element > PASS Element interface: operation setAttributeNS(DOMString, DOMString, DOMString) >-PASS Unscopable handled correctly for setAttributeNS(DOMString, DOMString, DOMString) on Element > PASS Element interface: operation removeAttribute(DOMString) >-PASS Unscopable handled correctly for removeAttribute(DOMString) on Element > PASS Element interface: operation removeAttributeNS(DOMString, DOMString) >-PASS Unscopable handled correctly for removeAttributeNS(DOMString, DOMString) on Element > PASS Element interface: operation hasAttribute(DOMString) >-PASS Unscopable handled correctly for hasAttribute(DOMString) on Element > PASS Element interface: operation hasAttributeNS(DOMString, DOMString) >-PASS Unscopable handled correctly for hasAttributeNS(DOMString, DOMString) on Element > PASS Element interface: operation getAttributeNode(DOMString) >-PASS Unscopable handled correctly for getAttributeNode(DOMString) on Element > PASS Element interface: operation getAttributeNodeNS(DOMString, DOMString) >-PASS Unscopable handled correctly for getAttributeNodeNS(DOMString, DOMString) on Element > PASS Element interface: operation setAttributeNode(Attr) >-PASS Unscopable handled correctly for setAttributeNode(Attr) on Element > PASS Element interface: operation setAttributeNodeNS(Attr) >-PASS Unscopable handled correctly for setAttributeNodeNS(Attr) on Element > PASS Element interface: operation removeAttributeNode(Attr) >-PASS Unscopable handled correctly for removeAttributeNode(Attr) on Element > PASS Element interface: operation attachShadow(ShadowRootInit) >-PASS Unscopable handled correctly for attachShadow(ShadowRootInit) on Element > PASS Element interface: attribute shadowRoot >-PASS Unscopable handled correctly for shadowRoot property on Element > PASS Element interface: operation closest(DOMString) >-PASS Unscopable handled correctly for closest(DOMString) on Element > PASS Element interface: operation matches(DOMString) >-PASS Unscopable handled correctly for matches(DOMString) on Element > PASS Element interface: operation webkitMatchesSelector(DOMString) >-PASS Unscopable handled correctly for webkitMatchesSelector(DOMString) on Element > PASS Element interface: operation getElementsByTagName(DOMString) >-PASS Unscopable handled correctly for getElementsByTagName(DOMString) on Element > PASS Element interface: operation getElementsByTagNameNS(DOMString, DOMString) >-PASS Unscopable handled correctly for getElementsByTagNameNS(DOMString, DOMString) on Element > PASS Element interface: operation getElementsByClassName(DOMString) >-PASS Unscopable handled correctly for getElementsByClassName(DOMString) on Element > PASS Element interface: operation insertAdjacentElement(DOMString, Element) >-PASS Unscopable handled correctly for insertAdjacentElement(DOMString, Element) on Element > PASS Element interface: operation insertAdjacentText(DOMString, DOMString) >-PASS Unscopable handled correctly for insertAdjacentText(DOMString, DOMString) on Element > PASS Element interface: attribute children >-PASS Unscopable handled correctly for children property on Element > PASS Element interface: attribute firstElementChild >-PASS Unscopable handled correctly for firstElementChild property on Element > PASS Element interface: attribute lastElementChild >-PASS Unscopable handled correctly for lastElementChild property on Element > PASS Element interface: attribute childElementCount >-PASS Unscopable handled correctly for childElementCount property on Element > PASS Element interface: operation prepend([object Object],[object Object]) >-PASS Unscopable handled correctly for prepend([object Object],[object Object]) on Element > PASS Element interface: operation append([object Object],[object Object]) >-PASS Unscopable handled correctly for append([object Object],[object Object]) on Element > PASS Element interface: operation querySelector(DOMString) >-PASS Unscopable handled correctly for querySelector(DOMString) on Element > PASS Element interface: operation querySelectorAll(DOMString) >-PASS Unscopable handled correctly for querySelectorAll(DOMString) on Element > PASS Element interface: attribute previousElementSibling >-PASS Unscopable handled correctly for previousElementSibling property on Element > PASS Element interface: attribute nextElementSibling >-PASS Unscopable handled correctly for nextElementSibling property on Element > PASS Element interface: operation before([object Object],[object Object]) >-PASS Unscopable handled correctly for before([object Object],[object Object]) on Element > PASS Element interface: operation after([object Object],[object Object]) >-PASS Unscopable handled correctly for after([object Object],[object Object]) on Element > PASS Element interface: operation replaceWith([object Object],[object Object]) >-PASS Unscopable handled correctly for replaceWith([object Object],[object Object]) on Element > PASS Element interface: operation remove() >-PASS Unscopable handled correctly for remove() on Element > PASS Element interface: attribute assignedSlot >-PASS Unscopable handled correctly for assignedSlot property on Element > PASS Element must be primary interface of element > PASS Stringification of element > PASS Element interface: element must inherit property "namespaceURI" with the proper type >@@ -1201,21 +1011,13 @@ PASS NamedNodeMap interface: existence and properties of interface prototype obj > PASS NamedNodeMap interface: existence and properties of interface prototype object's "constructor" property > PASS NamedNodeMap interface: existence and properties of interface prototype object's @@unscopables property > PASS NamedNodeMap interface: attribute length >-PASS Unscopable handled correctly for length property on NamedNodeMap > PASS NamedNodeMap interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on NamedNodeMap > PASS NamedNodeMap interface: operation getNamedItem(DOMString) >-PASS Unscopable handled correctly for getNamedItem(DOMString) on NamedNodeMap > PASS NamedNodeMap interface: operation getNamedItemNS(DOMString, DOMString) >-PASS Unscopable handled correctly for getNamedItemNS(DOMString, DOMString) on NamedNodeMap > PASS NamedNodeMap interface: operation setNamedItem(Attr) >-PASS Unscopable handled correctly for setNamedItem(Attr) on NamedNodeMap > PASS NamedNodeMap interface: operation setNamedItemNS(Attr) >-PASS Unscopable handled correctly for setNamedItemNS(Attr) on NamedNodeMap > PASS NamedNodeMap interface: operation removeNamedItem(DOMString) >-PASS Unscopable handled correctly for removeNamedItem(DOMString) on NamedNodeMap > PASS NamedNodeMap interface: operation removeNamedItemNS(DOMString, DOMString) >-PASS Unscopable handled correctly for removeNamedItemNS(DOMString, DOMString) on NamedNodeMap > PASS Attr interface: existence and properties of interface object > PASS Attr interface object length > PASS Attr interface object name >@@ -1223,19 +1025,12 @@ PASS Attr interface: existence and properties of interface prototype object > PASS Attr interface: existence and properties of interface prototype object's "constructor" property > PASS Attr interface: existence and properties of interface prototype object's @@unscopables property > PASS Attr interface: attribute namespaceURI >-PASS Unscopable handled correctly for namespaceURI property on Attr > PASS Attr interface: attribute prefix >-PASS Unscopable handled correctly for prefix property on Attr > PASS Attr interface: attribute localName >-PASS Unscopable handled correctly for localName property on Attr > PASS Attr interface: attribute name >-PASS Unscopable handled correctly for name property on Attr > PASS Attr interface: attribute value >-PASS Unscopable handled correctly for value property on Attr > PASS Attr interface: attribute ownerElement >-PASS Unscopable handled correctly for ownerElement property on Attr > PASS Attr interface: attribute specified >-PASS Unscopable handled correctly for specified property on Attr > PASS Attr must be primary interface of document.querySelector("[id]").attributes[0] > PASS Stringification of document.querySelector("[id]").attributes[0] > PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "namespaceURI" with the proper type >@@ -1318,31 +1113,18 @@ PASS CharacterData interface: existence and properties of interface prototype ob > PASS CharacterData interface: existence and properties of interface prototype object's "constructor" property > PASS CharacterData interface: existence and properties of interface prototype object's @@unscopables property > PASS CharacterData interface: attribute data >-PASS Unscopable handled correctly for data property on CharacterData > PASS CharacterData interface: attribute length >-PASS Unscopable handled correctly for length property on CharacterData > PASS CharacterData interface: operation substringData(unsigned long, unsigned long) >-PASS Unscopable handled correctly for substringData(unsigned long, unsigned long) on CharacterData > PASS CharacterData interface: operation appendData(DOMString) >-PASS Unscopable handled correctly for appendData(DOMString) on CharacterData > PASS CharacterData interface: operation insertData(unsigned long, DOMString) >-PASS Unscopable handled correctly for insertData(unsigned long, DOMString) on CharacterData > PASS CharacterData interface: operation deleteData(unsigned long, unsigned long) >-PASS Unscopable handled correctly for deleteData(unsigned long, unsigned long) on CharacterData > PASS CharacterData interface: operation replaceData(unsigned long, unsigned long, DOMString) >-PASS Unscopable handled correctly for replaceData(unsigned long, unsigned long, DOMString) on CharacterData > PASS CharacterData interface: attribute previousElementSibling >-PASS Unscopable handled correctly for previousElementSibling property on CharacterData > PASS CharacterData interface: attribute nextElementSibling >-PASS Unscopable handled correctly for nextElementSibling property on CharacterData > PASS CharacterData interface: operation before([object Object],[object Object]) >-PASS Unscopable handled correctly for before([object Object],[object Object]) on CharacterData > PASS CharacterData interface: operation after([object Object],[object Object]) >-PASS Unscopable handled correctly for after([object Object],[object Object]) on CharacterData > PASS CharacterData interface: operation replaceWith([object Object],[object Object]) >-PASS Unscopable handled correctly for replaceWith([object Object],[object Object]) on CharacterData > PASS CharacterData interface: operation remove() >-PASS Unscopable handled correctly for remove() on CharacterData > PASS Text interface: existence and properties of interface object > PASS Text interface object length > PASS Text interface object name >@@ -1350,11 +1132,8 @@ PASS Text interface: existence and properties of interface prototype object > PASS Text interface: existence and properties of interface prototype object's "constructor" property > PASS Text interface: existence and properties of interface prototype object's @@unscopables property > PASS Text interface: operation splitText(unsigned long) >-PASS Unscopable handled correctly for splitText(unsigned long) on Text > PASS Text interface: attribute wholeText >-PASS Unscopable handled correctly for wholeText property on Text > PASS Text interface: attribute assignedSlot >-PASS Unscopable handled correctly for assignedSlot property on Text > PASS Text must be primary interface of document.createTextNode("abc") > PASS Stringification of document.createTextNode("abc") > PASS Text interface: document.createTextNode("abc") must inherit property "splitText(unsigned long)" with the proper type >@@ -1461,7 +1240,6 @@ PASS ProcessingInstruction interface: existence and properties of interface prot > PASS ProcessingInstruction interface: existence and properties of interface prototype object's "constructor" property > PASS ProcessingInstruction interface: existence and properties of interface prototype object's @@unscopables property > PASS ProcessingInstruction interface: attribute target >-PASS Unscopable handled correctly for target property on ProcessingInstruction > PASS ProcessingInstruction must be primary interface of xmlDoc.createProcessingInstruction("abc", "def") > PASS Stringification of xmlDoc.createProcessingInstruction("abc", "def") > PASS ProcessingInstruction interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "target" with the proper type >@@ -1654,15 +1432,10 @@ FAIL AbstractRange interface: existence and properties of interface prototype ob > FAIL AbstractRange interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "AbstractRange" expected property "AbstractRange" missing > FAIL AbstractRange interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "AbstractRange" expected property "AbstractRange" missing > FAIL AbstractRange interface: attribute startContainer assert_own_property: self does not have own property "AbstractRange" expected property "AbstractRange" missing >-PASS Unscopable handled correctly for startContainer property on AbstractRange > FAIL AbstractRange interface: attribute startOffset assert_own_property: self does not have own property "AbstractRange" expected property "AbstractRange" missing >-PASS Unscopable handled correctly for startOffset property on AbstractRange > FAIL AbstractRange interface: attribute endContainer assert_own_property: self does not have own property "AbstractRange" expected property "AbstractRange" missing >-PASS Unscopable handled correctly for endContainer property on AbstractRange > FAIL AbstractRange interface: attribute endOffset assert_own_property: self does not have own property "AbstractRange" expected property "AbstractRange" missing >-PASS Unscopable handled correctly for endOffset property on AbstractRange > FAIL AbstractRange interface: attribute collapsed assert_own_property: self does not have own property "AbstractRange" expected property "AbstractRange" missing >-PASS Unscopable handled correctly for collapsed property on AbstractRange > FAIL StaticRange interface: existence and properties of interface object assert_own_property: should inherit from AbstractRange, but self has no such property expected property "AbstractRange" missing > PASS StaticRange interface object length > PASS StaticRange interface object name >@@ -1676,25 +1449,15 @@ FAIL Range interface: existence and properties of interface prototype object ass > PASS Range interface: existence and properties of interface prototype object's "constructor" property > PASS Range interface: existence and properties of interface prototype object's @@unscopables property > PASS Range interface: attribute commonAncestorContainer >-PASS Unscopable handled correctly for commonAncestorContainer property on Range > PASS Range interface: operation setStart(Node, unsigned long) >-PASS Unscopable handled correctly for setStart(Node, unsigned long) on Range > PASS Range interface: operation setEnd(Node, unsigned long) >-PASS Unscopable handled correctly for setEnd(Node, unsigned long) on Range > PASS Range interface: operation setStartBefore(Node) >-PASS Unscopable handled correctly for setStartBefore(Node) on Range > PASS Range interface: operation setStartAfter(Node) >-PASS Unscopable handled correctly for setStartAfter(Node) on Range > PASS Range interface: operation setEndBefore(Node) >-PASS Unscopable handled correctly for setEndBefore(Node) on Range > PASS Range interface: operation setEndAfter(Node) >-PASS Unscopable handled correctly for setEndAfter(Node) on Range > PASS Range interface: operation collapse(boolean) >-PASS Unscopable handled correctly for collapse(boolean) on Range > PASS Range interface: operation selectNode(Node) >-PASS Unscopable handled correctly for selectNode(Node) on Range > PASS Range interface: operation selectNodeContents(Node) >-PASS Unscopable handled correctly for selectNodeContents(Node) on Range > PASS Range interface: constant START_TO_START on interface object > PASS Range interface: constant START_TO_START on interface prototype object > PASS Range interface: constant START_TO_END on interface object >@@ -1704,27 +1467,16 @@ PASS Range interface: constant END_TO_END on interface prototype object > PASS Range interface: constant END_TO_START on interface object > PASS Range interface: constant END_TO_START on interface prototype object > PASS Range interface: operation compareBoundaryPoints(unsigned short, Range) >-PASS Unscopable handled correctly for compareBoundaryPoints(unsigned short, Range) on Range > PASS Range interface: operation deleteContents() >-PASS Unscopable handled correctly for deleteContents() on Range > PASS Range interface: operation extractContents() >-PASS Unscopable handled correctly for extractContents() on Range > PASS Range interface: operation cloneContents() >-PASS Unscopable handled correctly for cloneContents() on Range > PASS Range interface: operation insertNode(Node) >-PASS Unscopable handled correctly for insertNode(Node) on Range > PASS Range interface: operation surroundContents(Node) >-PASS Unscopable handled correctly for surroundContents(Node) on Range > PASS Range interface: operation cloneRange() >-PASS Unscopable handled correctly for cloneRange() on Range > PASS Range interface: operation detach() >-PASS Unscopable handled correctly for detach() on Range > PASS Range interface: operation isPointInRange(Node, unsigned long) >-PASS Unscopable handled correctly for isPointInRange(Node, unsigned long) on Range > PASS Range interface: operation comparePoint(Node, unsigned long) >-PASS Unscopable handled correctly for comparePoint(Node, unsigned long) on Range > PASS Range interface: operation intersectsNode(Node) >-PASS Unscopable handled correctly for intersectsNode(Node) on Range > PASS Range interface: stringifier > PASS Range must be primary interface of document.createRange() > PASS Stringification of document.createRange() >@@ -1827,21 +1579,13 @@ PASS NodeIterator interface: existence and properties of interface prototype obj > PASS NodeIterator interface: existence and properties of interface prototype object's "constructor" property > PASS NodeIterator interface: existence and properties of interface prototype object's @@unscopables property > PASS NodeIterator interface: attribute root >-PASS Unscopable handled correctly for root property on NodeIterator > PASS NodeIterator interface: attribute referenceNode >-PASS Unscopable handled correctly for referenceNode property on NodeIterator > PASS NodeIterator interface: attribute pointerBeforeReferenceNode >-PASS Unscopable handled correctly for pointerBeforeReferenceNode property on NodeIterator > PASS NodeIterator interface: attribute whatToShow >-PASS Unscopable handled correctly for whatToShow property on NodeIterator > PASS NodeIterator interface: attribute filter >-PASS Unscopable handled correctly for filter property on NodeIterator > PASS NodeIterator interface: operation nextNode() >-PASS Unscopable handled correctly for nextNode() on NodeIterator > PASS NodeIterator interface: operation previousNode() >-PASS Unscopable handled correctly for previousNode() on NodeIterator > PASS NodeIterator interface: operation detach() >-PASS Unscopable handled correctly for detach() on NodeIterator > PASS NodeIterator must be primary interface of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) > PASS Stringification of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) > PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type >@@ -1859,27 +1603,16 @@ PASS TreeWalker interface: existence and properties of interface prototype objec > PASS TreeWalker interface: existence and properties of interface prototype object's "constructor" property > PASS TreeWalker interface: existence and properties of interface prototype object's @@unscopables property > PASS TreeWalker interface: attribute root >-PASS Unscopable handled correctly for root property on TreeWalker > PASS TreeWalker interface: attribute whatToShow >-PASS Unscopable handled correctly for whatToShow property on TreeWalker > PASS TreeWalker interface: attribute filter >-PASS Unscopable handled correctly for filter property on TreeWalker > PASS TreeWalker interface: attribute currentNode >-PASS Unscopable handled correctly for currentNode property on TreeWalker > PASS TreeWalker interface: operation parentNode() >-PASS Unscopable handled correctly for parentNode() on TreeWalker > PASS TreeWalker interface: operation firstChild() >-PASS Unscopable handled correctly for firstChild() on TreeWalker > PASS TreeWalker interface: operation lastChild() >-PASS Unscopable handled correctly for lastChild() on TreeWalker > PASS TreeWalker interface: operation previousSibling() >-PASS Unscopable handled correctly for previousSibling() on TreeWalker > PASS TreeWalker interface: operation nextSibling() >-PASS Unscopable handled correctly for nextSibling() on TreeWalker > PASS TreeWalker interface: operation previousNode() >-PASS Unscopable handled correctly for previousNode() on TreeWalker > PASS TreeWalker interface: operation nextNode() >-PASS Unscopable handled correctly for nextNode() on TreeWalker > PASS TreeWalker must be primary interface of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) > PASS Stringification of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) > PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type >@@ -1931,7 +1664,6 @@ PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototyp > PASS NodeFilter interface: constant SHOW_NOTATION on interface object > PASS NodeFilter interface: constant SHOW_NOTATION on interface prototype object > PASS NodeFilter interface: operation acceptNode(Node) >-PASS Unscopable handled correctly for acceptNode(Node) on NodeFilter > PASS DOMTokenList interface: existence and properties of interface object > PASS DOMTokenList interface object length > PASS DOMTokenList interface object name >@@ -1939,23 +1671,14 @@ PASS DOMTokenList interface: existence and properties of interface prototype obj > PASS DOMTokenList interface: existence and properties of interface prototype object's "constructor" property > PASS DOMTokenList interface: existence and properties of interface prototype object's @@unscopables property > PASS DOMTokenList interface: attribute length >-PASS Unscopable handled correctly for length property on DOMTokenList > PASS DOMTokenList interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on DOMTokenList > PASS DOMTokenList interface: operation contains(DOMString) >-PASS Unscopable handled correctly for contains(DOMString) on DOMTokenList > PASS DOMTokenList interface: operation add(DOMString) >-PASS Unscopable handled correctly for add(DOMString) on DOMTokenList > PASS DOMTokenList interface: operation remove(DOMString) >-PASS Unscopable handled correctly for remove(DOMString) on DOMTokenList > PASS DOMTokenList interface: operation toggle(DOMString, boolean) >-PASS Unscopable handled correctly for toggle(DOMString, boolean) on DOMTokenList > PASS DOMTokenList interface: operation replace(DOMString, DOMString) >-PASS Unscopable handled correctly for replace(DOMString, DOMString) on DOMTokenList > PASS DOMTokenList interface: operation supports(DOMString) >-PASS Unscopable handled correctly for supports(DOMString) on DOMTokenList > PASS DOMTokenList interface: attribute value >-PASS Unscopable handled correctly for value property on DOMTokenList > PASS DOMTokenList interface: stringifier > PASS DOMTokenList must be primary interface of document.body.classList > PASS Stringification of document.body.classList >@@ -1975,4 +1698,5 @@ PASS DOMTokenList interface: calling replace(DOMString, DOMString) on document.b > PASS DOMTokenList interface: document.body.classList must inherit property "supports(DOMString)" with the proper type > PASS DOMTokenList interface: calling supports(DOMString) on document.body.classList with too few arguments must throw TypeError > PASS DOMTokenList interface: document.body.classList must inherit property "value" with the proper type >+PASS WorkerGlobalScope interface: existence and properties of interface object > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces.html b/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces.html >index 3cb08f405a5a768c26c0c1f25d3d6d32ea9beb77..c0fab016ae75b733a17da29e176f28e6cec243b7 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces.html >@@ -19,11 +19,8 @@ element.setAttribute("bar", "baz"); > var idlArray = new IdlArray(); > > function doTest([html, dom]) { >- // HTML is needed for EventHandler. Provide a dummy interface for >- // LinkStyle which HTML depends on but we're not testing. >- idlArray.add_untested_idls('interface LinkStyle {};'); >- idlArray.add_untested_idls(html); > idlArray.add_idls(dom); >+ idlArray.add_dependency_idls(html); > idlArray.add_objects({ > EventTarget: ['new EventTarget()'], > Event: ['document.createEvent("Event")', 'new Event("foo")'], >diff --git a/LayoutTests/imported/w3c/web-platform-tests/encoding/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/encoding/idlharness-expected.txt >index ecad4499bac3f1b22d151749411747566cf56656..f3e5f15f3834987c108482184a02f3d57d82daed 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/encoding/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/encoding/idlharness-expected.txt >@@ -11,13 +11,9 @@ PASS TextDecoder interface: existence and properties of interface prototype obje > PASS TextDecoder interface: existence and properties of interface prototype object's "constructor" property > PASS TextDecoder interface: existence and properties of interface prototype object's @@unscopables property > PASS TextDecoder interface: attribute encoding >-PASS Unscopable handled correctly for encoding property on TextDecoder > PASS TextDecoder interface: attribute fatal >-PASS Unscopable handled correctly for fatal property on TextDecoder > PASS TextDecoder interface: attribute ignoreBOM >-PASS Unscopable handled correctly for ignoreBOM property on TextDecoder > PASS TextDecoder interface: operation decode(BufferSource, TextDecodeOptions) >-PASS Unscopable handled correctly for decode(BufferSource, TextDecodeOptions) on TextDecoder > PASS TextDecoder must be primary interface of new TextDecoder() > PASS Stringification of new TextDecoder() > PASS TextDecoder interface: new TextDecoder() must inherit property "encoding" with the proper type >@@ -32,9 +28,7 @@ PASS TextEncoder interface: existence and properties of interface prototype obje > PASS TextEncoder interface: existence and properties of interface prototype object's "constructor" property > PASS TextEncoder interface: existence and properties of interface prototype object's @@unscopables property > PASS TextEncoder interface: attribute encoding >-PASS Unscopable handled correctly for encoding property on TextEncoder > PASS TextEncoder interface: operation encode(USVString) >-PASS Unscopable handled correctly for encode(USVString) on TextEncoder > PASS TextEncoder must be primary interface of new TextEncoder() > PASS Stringification of new TextEncoder() > PASS TextEncoder interface: new TextEncoder() must inherit property "encoding" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/eventsource/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/eventsource/interfaces-expected.txt >index 350f21f73cd666043f2e402057db4e3a6dc2000d..bad30adff60f3b26037164701a6ad80efa89dfe8 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/eventsource/interfaces-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/eventsource/interfaces-expected.txt >@@ -1,4 +1,4 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > Blocked access to external URL http://foo/ > CONSOLE MESSAGE: EventSource cannot load http://foo/ due to access control checks. > EventSource IDL tests >@@ -11,17 +11,13 @@ PASS EventTarget interface: existence and properties of interface prototype obje > PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property > PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property > PASS EventTarget interface: operation addEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation dispatchEvent(Event) >-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget > PASS EventListener interface: existence and properties of interface object > PASS EventListener interface: existence and properties of interface prototype object > PASS EventListener interface: existence and properties of interface prototype object's "constructor" property > PASS EventListener interface: existence and properties of interface prototype object's @@unscopables property > PASS EventListener interface: operation handleEvent(Event) >-PASS Unscopable handled correctly for handleEvent(Event) on EventListener > PASS EventSource interface: existence and properties of interface object > PASS EventSource interface object length > PASS EventSource interface object name >@@ -29,9 +25,7 @@ PASS EventSource interface: existence and properties of interface prototype obje > PASS EventSource interface: existence and properties of interface prototype object's "constructor" property > PASS EventSource interface: existence and properties of interface prototype object's @@unscopables property > PASS EventSource interface: attribute url >-PASS Unscopable handled correctly for url property on EventSource > PASS EventSource interface: attribute withCredentials >-PASS Unscopable handled correctly for withCredentials property on EventSource > PASS EventSource interface: constant CONNECTING on interface object > PASS EventSource interface: constant CONNECTING on interface prototype object > PASS EventSource interface: constant OPEN on interface object >@@ -39,15 +33,10 @@ PASS EventSource interface: constant OPEN on interface prototype object > PASS EventSource interface: constant CLOSED on interface object > PASS EventSource interface: constant CLOSED on interface prototype object > PASS EventSource interface: attribute readyState >-PASS Unscopable handled correctly for readyState property on EventSource > PASS EventSource interface: attribute onopen >-PASS Unscopable handled correctly for onopen property on EventSource > PASS EventSource interface: attribute onmessage >-PASS Unscopable handled correctly for onmessage property on EventSource > PASS EventSource interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on EventSource > PASS EventSource interface: operation close() >-PASS Unscopable handled correctly for close() on EventSource > PASS EventSource must be primary interface of new EventSource("http://foo") > PASS Stringification of new EventSource("http://foo") > PASS EventSource interface: new EventSource("http://foo") must inherit property "url" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-idl-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-idl-expected.txt >index a3f80f7c4fe4e5b0177486d6a1e7f3de7540fad4..71976aff731ab55d2bba48695837852ed16253f7 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-idl-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-idl-expected.txt >@@ -6,25 +6,16 @@ PASS Headers interface: existence and properties of interface prototype object > PASS Headers interface: existence and properties of interface prototype object's "constructor" property > PASS Headers interface: existence and properties of interface prototype object's @@unscopables property > PASS Headers interface: operation append(ByteString, ByteString) >-PASS Unscopable handled correctly for append(ByteString, ByteString) on Headers > PASS Headers interface: operation delete(ByteString) >-PASS Unscopable handled correctly for delete(ByteString) on Headers > PASS Headers interface: operation get(ByteString) >-PASS Unscopable handled correctly for get(ByteString) on Headers > PASS Headers interface: operation has(ByteString) >-PASS Unscopable handled correctly for has(ByteString) on Headers > PASS Headers interface: operation set(ByteString, ByteString) >-PASS Unscopable handled correctly for set(ByteString, ByteString) on Headers > PASS Testing Symbol.iterator property of iterable interface Headers > PASS Testing pair iterable interface Headers > PASS Headers interface: operation entries() >-PASS Unscopable handled correctly for entries() on Headers > PASS Headers interface: operation keys() >-PASS Unscopable handled correctly for keys() on Headers > PASS Headers interface: operation values() >-PASS Unscopable handled correctly for values() on Headers > PASS Headers interface: operation forEach(function, any) >-PASS Unscopable handled correctly for forEach(function, any) on Headers > PASS Headers must be primary interface of new Headers() > PASS Stringification of new Headers() > PASS Headers interface: new Headers() must inherit property "append(ByteString, ByteString)" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-idl-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-idl-expected.txt >index fc66125e3c8012b262ccdfc13d1b0a81706f75d6..60a779c9ee49832c401ce3086b625bc7aa998943 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-idl-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-idl-expected.txt >@@ -6,43 +6,24 @@ PASS Request interface: existence and properties of interface prototype object > PASS Request interface: existence and properties of interface prototype object's "constructor" property > PASS Request interface: existence and properties of interface prototype object's @@unscopables property > PASS Request interface: attribute method >-PASS Unscopable handled correctly for method property on Request > PASS Request interface: attribute url >-PASS Unscopable handled correctly for url property on Request > PASS Request interface: attribute headers >-PASS Unscopable handled correctly for headers property on Request > PASS Request interface: attribute destination >-PASS Unscopable handled correctly for destination property on Request > PASS Request interface: attribute referrer >-PASS Unscopable handled correctly for referrer property on Request > PASS Request interface: attribute referrerPolicy >-PASS Unscopable handled correctly for referrerPolicy property on Request > PASS Request interface: attribute mode >-PASS Unscopable handled correctly for mode property on Request > PASS Request interface: attribute credentials >-PASS Unscopable handled correctly for credentials property on Request > PASS Request interface: attribute cache >-PASS Unscopable handled correctly for cache property on Request > PASS Request interface: attribute redirect >-PASS Unscopable handled correctly for redirect property on Request > PASS Request interface: attribute integrity >-PASS Unscopable handled correctly for integrity property on Request > PASS Request interface: operation clone() >-PASS Unscopable handled correctly for clone() on Request > PASS Request interface: attribute body >-PASS Unscopable handled correctly for body property on Request > PASS Request interface: attribute bodyUsed >-PASS Unscopable handled correctly for bodyUsed property on Request > PASS Request interface: operation arrayBuffer() >-PASS Unscopable handled correctly for arrayBuffer() on Request > PASS Request interface: operation blob() >-PASS Unscopable handled correctly for blob() on Request > PASS Request interface: operation formData() >-PASS Unscopable handled correctly for formData() on Request > PASS Request interface: operation json() >-PASS Unscopable handled correctly for json() on Request > PASS Request interface: operation text() >-PASS Unscopable handled correctly for text() on Request > PASS Request must be primary interface of new Request("") > PASS Stringification of new Request("") > PASS Request interface: new Request("") must inherit property "method" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl-expected.txt >index 263ccaa76e67fa18591d247640cb1019b4e1878b..4afab0229e4e982577cf276758a3a9c91dfabead 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl-expected.txt >@@ -6,39 +6,22 @@ PASS Response interface: existence and properties of interface prototype object > PASS Response interface: existence and properties of interface prototype object's "constructor" property > PASS Response interface: existence and properties of interface prototype object's @@unscopables property > PASS Response interface: operation error() >-PASS Unscopable handled correctly for error() on Response > PASS Response interface: operation redirect(USVString, unsigned short) >-PASS Unscopable handled correctly for redirect(USVString, unsigned short) on Response > PASS Response interface: attribute type >-PASS Unscopable handled correctly for type property on Response > PASS Response interface: attribute url >-PASS Unscopable handled correctly for url property on Response > PASS Response interface: attribute status >-PASS Unscopable handled correctly for status property on Response > PASS Response interface: attribute ok >-PASS Unscopable handled correctly for ok property on Response > PASS Response interface: attribute statusText >-PASS Unscopable handled correctly for statusText property on Response > PASS Response interface: attribute headers >-PASS Unscopable handled correctly for headers property on Response > FAIL Response interface: attribute trailer assert_true: The prototype object must have a property "trailer" expected true got false >-PASS Unscopable handled correctly for trailer property on Response > PASS Response interface: operation clone() >-PASS Unscopable handled correctly for clone() on Response > PASS Response interface: attribute body >-PASS Unscopable handled correctly for body property on Response > PASS Response interface: attribute bodyUsed >-PASS Unscopable handled correctly for bodyUsed property on Response > PASS Response interface: operation arrayBuffer() >-PASS Unscopable handled correctly for arrayBuffer() on Response > PASS Response interface: operation blob() >-PASS Unscopable handled correctly for blob() on Response > PASS Response interface: operation formData() >-PASS Unscopable handled correctly for formData() on Response > PASS Response interface: operation json() >-PASS Unscopable handled correctly for json() on Response > PASS Response interface: operation text() >-PASS Unscopable handled correctly for text() on Response > PASS Response must be primary interface of new Response() > PASS Stringification of new Response() > PASS Response interface: new Response() must inherit property "error()" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/hr-time/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/hr-time/idlharness-expected.txt >index 7302db2c23e6fbf30cfbcd5f51ff9a3b8629c7bd..42b5abd9a78a39b1b1affb0efb066b3552faeef1 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/hr-time/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/hr-time/idlharness-expected.txt >@@ -1,26 +1,24 @@ > High Resolution Time IDL tests > > >-FAIL Test driver promise_test: Unhandled rejection with value: object "Error: undefined EventTarget not found (inherited by Performance)" >-FAIL Performance interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >+PASS Test driver >+PASS Partial interface WindowOrWorkerGlobalScope: original interface defined >+PASS Performance interface: existence and properties of interface object > PASS Performance interface object length > PASS Performance interface object name >-FAIL Performance interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >+PASS Performance interface: existence and properties of interface prototype object > PASS Performance interface: existence and properties of interface prototype object's "constructor" property > PASS Performance interface: existence and properties of interface prototype object's @@unscopables property > PASS Performance interface: operation now() >-PASS Unscopable handled correctly for now() on Performance > FAIL Performance interface: attribute timeOrigin assert_true: The prototype object must have a property "timeOrigin" expected true got false >-PASS Unscopable handled correctly for timeOrigin property on Performance > FAIL Performance interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing >-PASS Unscopable handled correctly for toJSON() on Performance > PASS Performance must be primary interface of window.performance >-FAIL Stringification of window.performance undefined is not an object (evaluating 'this.array.members[this.base].has_stringifier') >+PASS Stringification of window.performance > PASS Performance interface: window.performance must inherit property "now()" with the proper type > FAIL Performance interface: window.performance must inherit property "timeOrigin" with the proper type assert_inherits: property "timeOrigin" not found in prototype chain > FAIL Performance interface: window.performance must inherit property "toJSON()" with the proper type assert_inherits: property "toJSON" not found in prototype chain >+FAIL Test default toJSON operation of Performance memberHolderObject.toJSON is not a function. (In 'memberHolderObject.toJSON()', 'memberHolderObject.toJSON' is undefined) >+PASS Window interface: attribute performance >+PASS Window interface: window must inherit property "performance" with the proper type >+PASS WorkerGlobalScope interface: existence and properties of interface object > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/hr-time/idlharness.html b/LayoutTests/imported/w3c/web-platform-tests/hr-time/idlharness.html >index 4abaf6033fd437c2691b8f540ec6499484acc6e0..cbf262cc241a4d9c32ea72a7f20e0e6a5a2e23ec 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/hr-time/idlharness.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/hr-time/idlharness.html >@@ -16,10 +16,11 @@ > <script> > 'use strict'; > >-function doTest([html, hr_time]) { >+function doTest([dom, html, hr_time]) { > var idl_array = new IdlArray(); >- idl_array.add_untested_idls(html, { only: ['WindowOrWorkerGlobalScope'] }); > idl_array.add_idls(hr_time); >+ idl_array.add_dependency_idls(html); >+ idl_array.add_dependency_idls(dom); > idl_array.add_objects({ > Performance: ["window.performance"], > Window: ["window"], >@@ -32,7 +33,8 @@ function fetchText(url) { > } > > promise_test(() => { >- return Promise.all(['/interfaces/html.idl', >+ return Promise.all(['/interfaces/dom.idl', >+ '/interfaces/html.idl', > '/interfaces/hr-time.idl'].map(fetchText)) > .then(doTest); > }, 'Test driver'); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/animation-frames/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/animation-frames/idlharness-expected.txt >index 41990aa931b1ec9e5c98d67153d344b9697837d7..6d8bf6e7f71f159939f33632c1fae9dd763194fd 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/animation-frames/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/animation-frames/idlharness-expected.txt >@@ -1,4 +1,4 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > idlharness test > > This test validates the WebIDL included in the Timing control for script-based animations specification. >@@ -10,10 +10,9 @@ partial interface Window { > > callback FrameRequestCallback = void (DOMHighResTimeStamp time); > >+PASS Partial interface Window: original interface defined > PASS Window interface: operation requestAnimationFrame(FrameRequestCallback) >-PASS Unscopable handled correctly for requestAnimationFrame(FrameRequestCallback) on Window > PASS Window interface: operation cancelAnimationFrame(long) >-PASS Unscopable handled correctly for cancelAnimationFrame(long) on Window > PASS Window interface: window must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type > PASS Window interface: calling requestAnimationFrame(FrameRequestCallback) on window with too few arguments must throw TypeError > PASS Window interface: window must inherit property "cancelAnimationFrame(long)" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/interfaces/IndexedDB.idl b/LayoutTests/imported/w3c/web-platform-tests/interfaces/IndexedDB.idl >index 89924c09b49e5c5a7a7fcf188eb4c224c3ba032a..cc41a23ba0cd0fca3cf0602eb167be4f1465a7ca 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/interfaces/IndexedDB.idl >+++ b/LayoutTests/imported/w3c/web-platform-tests/interfaces/IndexedDB.idl >@@ -150,7 +150,7 @@ interface IDBKeyRange { > optional boolean lowerOpen = false, > optional boolean upperOpen = false); > >- boolean includes(any key); >+ boolean _includes(any key); > }; > > [Exposed=(Window,Worker)] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/interfaces/intersection-observer.idl b/LayoutTests/imported/w3c/web-platform-tests/interfaces/intersection-observer.idl >new file mode 100644 >index 0000000000000000000000000000000000000000..b48e1cbab37fef9b9c8dd5efb03fc6c222a3e856 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/interfaces/intersection-observer.idl >@@ -0,0 +1,45 @@ >+// GENERATED CONTENT - DO NOT EDIT >+// Content was automatically extracted by Reffy into reffy-reports >+// (https://github.com/tidoust/reffy-reports) >+// Source: Intersection Observer (https://w3c.github.io/IntersectionObserver/) >+ >+callback IntersectionObserverCallback = void (sequence<IntersectionObserverEntry> entries, IntersectionObserver observer); >+ >+[Constructor(IntersectionObserverCallback callback, optional IntersectionObserverInit options), >+ Exposed=Window] >+interface IntersectionObserver { >+ readonly attribute Element? root; >+ readonly attribute DOMString rootMargin; >+ readonly attribute FrozenArray<double> thresholds; >+ void observe(Element target); >+ void unobserve(Element target); >+ void disconnect(); >+ sequence<IntersectionObserverEntry> takeRecords(); >+}; >+ >+[Constructor(IntersectionObserverEntryInit intersectionObserverEntryInit)] >+interface IntersectionObserverEntry { >+ readonly attribute DOMHighResTimeStamp time; >+ readonly attribute DOMRectReadOnly rootBounds; >+ readonly attribute DOMRectReadOnly boundingClientRect; >+ readonly attribute DOMRectReadOnly intersectionRect; >+ readonly attribute boolean isIntersecting; >+ readonly attribute double intersectionRatio; >+ readonly attribute Element target; >+}; >+ >+dictionary IntersectionObserverEntryInit { >+ required DOMHighResTimeStamp time; >+ required DOMRectInit rootBounds; >+ required DOMRectInit boundingClientRect; >+ required DOMRectInit intersectionRect; >+ required boolean isIntersecting; >+ required double intersectionRatio; >+ required Element target; >+}; >+ >+dictionary IntersectionObserverInit { >+ Element? root = null; >+ DOMString rootMargin = "0px"; >+ (double or sequence<double>) threshold = 0; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/interfaces/web-audio-api.idl b/LayoutTests/imported/w3c/web-platform-tests/interfaces/web-audio-api.idl >new file mode 100644 >index 0000000000000000000000000000000000000000..c6841db2a2a83d2cb7bf2dec44a4a042844fe59f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/interfaces/web-audio-api.idl >@@ -0,0 +1,18 @@ >+// Source: Web Audio API (https://webaudio.github.io/web-audio-api/) >+ >+enum ChannelCountMode { >+ "max", >+ "clamped-max", >+ "explicit" >+}; >+ >+enum ChannelInterpretation { >+ "speakers", >+ "discrete" >+}; >+ >+dictionary AudioNodeOptions { >+ unsigned long channelCount; >+ ChannelCountMode channelCountMode; >+ ChannelInterpretation channelInterpretation; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/intersection-observer/idlharness.window-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/intersection-observer/idlharness.window-expected.txt >index 0b7fee05acb0bd1e2990450bf1b8ee2d72e3b1ee..f10859e139abe4c932a6570e9307b608dd0bb983 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/intersection-observer/idlharness.window-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/intersection-observer/idlharness.window-expected.txt >@@ -1,4 +1,41 @@ >-CONSOLE MESSAGE: line 8: ReferenceError: Can't find variable: idl_test >+CONSOLE MESSAGE: line 482: callback not yet supported > >-FAIL Untitled ReferenceError: Can't find variable: idl_test >+PASS idl_test setup >+PASS IntersectionObserver interface: existence and properties of interface object >+PASS IntersectionObserver interface object length >+PASS IntersectionObserver interface object name >+PASS IntersectionObserver interface: existence and properties of interface prototype object >+PASS IntersectionObserver interface: existence and properties of interface prototype object's "constructor" property >+PASS IntersectionObserver interface: existence and properties of interface prototype object's @@unscopables property >+PASS IntersectionObserver interface: attribute root >+PASS IntersectionObserver interface: attribute rootMargin >+PASS IntersectionObserver interface: attribute thresholds >+PASS IntersectionObserver interface: operation observe(Element) >+PASS IntersectionObserver interface: operation unobserve(Element) >+PASS IntersectionObserver interface: operation disconnect() >+PASS IntersectionObserver interface: operation takeRecords() >+PASS IntersectionObserver must be primary interface of observer >+PASS Stringification of observer >+PASS IntersectionObserver interface: observer must inherit property "root" with the proper type >+PASS IntersectionObserver interface: observer must inherit property "rootMargin" with the proper type >+FAIL IntersectionObserver interface: observer must inherit property "thresholds" with the proper type assert_true: Value should be frozen expected true got false >+PASS IntersectionObserver interface: observer must inherit property "observe(Element)" with the proper type >+PASS IntersectionObserver interface: calling observe(Element) on observer with too few arguments must throw TypeError >+PASS IntersectionObserver interface: observer must inherit property "unobserve(Element)" with the proper type >+PASS IntersectionObserver interface: calling unobserve(Element) on observer with too few arguments must throw TypeError >+PASS IntersectionObserver interface: observer must inherit property "disconnect()" with the proper type >+PASS IntersectionObserver interface: observer must inherit property "takeRecords()" with the proper type >+PASS IntersectionObserverEntry interface: existence and properties of interface object >+PASS IntersectionObserverEntry interface object length >+PASS IntersectionObserverEntry interface object name >+PASS IntersectionObserverEntry interface: existence and properties of interface prototype object >+PASS IntersectionObserverEntry interface: existence and properties of interface prototype object's "constructor" property >+PASS IntersectionObserverEntry interface: existence and properties of interface prototype object's @@unscopables property >+PASS IntersectionObserverEntry interface: attribute time >+PASS IntersectionObserverEntry interface: attribute rootBounds >+PASS IntersectionObserverEntry interface: attribute boundingClientRect >+PASS IntersectionObserverEntry interface: attribute intersectionRect >+PASS IntersectionObserverEntry interface: attribute isIntersecting >+PASS IntersectionObserverEntry interface: attribute intersectionRatio >+PASS IntersectionObserverEntry interface: attribute target > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt >index d0a2d1a821abbecbbb905c0481926750835ca6b4..967f1bc229b896b19dc53a95ecd7b55f2916f153 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt >@@ -1,4 +1,9 @@ > >+PASS Partial interface URL: original interface defined >+PASS Partial interface URL: valid exposure set >+PASS Partial interface AudioTrack: original interface defined >+PASS Partial interface VideoTrack: original interface defined >+PASS Partial interface TextTrack: original interface defined > PASS URL interface: operation createObjectURL(MediaSource) > PASS AudioTrack interface: attribute sourceBuffer > PASS VideoTrack interface: attribute sourceBuffer >@@ -8,6 +13,7 @@ PASS MediaSource interface object length > PASS MediaSource interface object name > PASS MediaSource interface: existence and properties of interface prototype object > PASS MediaSource interface: existence and properties of interface prototype object's "constructor" property >+PASS MediaSource interface: existence and properties of interface prototype object's @@unscopables property > PASS MediaSource interface: attribute sourceBuffers > PASS MediaSource interface: attribute activeSourceBuffers > PASS MediaSource interface: attribute readyState >@@ -18,40 +24,35 @@ PASS MediaSource interface: attribute onsourceclose > PASS MediaSource interface: operation addSourceBuffer(DOMString) > PASS MediaSource interface: operation removeSourceBuffer(SourceBuffer) > PASS MediaSource interface: operation endOfStream(EndOfStreamError) >-PASS MediaSource interface: operation setLiveSeekableRange(double,double) >+PASS MediaSource interface: operation setLiveSeekableRange(double, double) > PASS MediaSource interface: operation clearLiveSeekableRange() > PASS MediaSource interface: operation isTypeSupported(DOMString) > PASS MediaSource must be primary interface of mediaSource > PASS Stringification of mediaSource >-PASS MediaSource interface: mediaSource must inherit property "sourceBuffers" with the proper type (0) >-PASS MediaSource interface: mediaSource must inherit property "activeSourceBuffers" with the proper type (1) >-PASS MediaSource interface: mediaSource must inherit property "readyState" with the proper type (2) >-PASS MediaSource interface: mediaSource must inherit property "duration" with the proper type (3) >-PASS MediaSource interface: mediaSource must inherit property "onsourceopen" with the proper type (4) >-PASS MediaSource interface: mediaSource must inherit property "onsourceended" with the proper type (5) >-PASS MediaSource interface: mediaSource must inherit property "onsourceclose" with the proper type (6) >-PASS MediaSource interface: mediaSource must inherit property "addSourceBuffer" with the proper type (7) >+PASS MediaSource interface: mediaSource must inherit property "sourceBuffers" with the proper type >+PASS MediaSource interface: mediaSource must inherit property "activeSourceBuffers" with the proper type >+PASS MediaSource interface: mediaSource must inherit property "readyState" with the proper type >+PASS MediaSource interface: mediaSource must inherit property "duration" with the proper type >+PASS MediaSource interface: mediaSource must inherit property "onsourceopen" with the proper type >+PASS MediaSource interface: mediaSource must inherit property "onsourceended" with the proper type >+PASS MediaSource interface: mediaSource must inherit property "onsourceclose" with the proper type >+PASS MediaSource interface: mediaSource must inherit property "addSourceBuffer(DOMString)" with the proper type > PASS MediaSource interface: calling addSourceBuffer(DOMString) on mediaSource with too few arguments must throw TypeError >-PASS MediaSource interface: mediaSource must inherit property "removeSourceBuffer" with the proper type (8) >+PASS MediaSource interface: mediaSource must inherit property "removeSourceBuffer(SourceBuffer)" with the proper type > PASS MediaSource interface: calling removeSourceBuffer(SourceBuffer) on mediaSource with too few arguments must throw TypeError >-PASS MediaSource interface: mediaSource must inherit property "endOfStream" with the proper type (9) >+PASS MediaSource interface: mediaSource must inherit property "endOfStream(EndOfStreamError)" with the proper type > PASS MediaSource interface: calling endOfStream(EndOfStreamError) on mediaSource with too few arguments must throw TypeError >-PASS MediaSource interface: mediaSource must inherit property "setLiveSeekableRange" with the proper type (10) >-PASS MediaSource interface: calling setLiveSeekableRange(double,double) on mediaSource with too few arguments must throw TypeError >-PASS MediaSource interface: mediaSource must inherit property "clearLiveSeekableRange" with the proper type (11) >-PASS MediaSource interface: mediaSource must inherit property "isTypeSupported" with the proper type (12) >+PASS MediaSource interface: mediaSource must inherit property "setLiveSeekableRange(double, double)" with the proper type >+PASS MediaSource interface: calling setLiveSeekableRange(double, double) on mediaSource with too few arguments must throw TypeError >+PASS MediaSource interface: mediaSource must inherit property "clearLiveSeekableRange()" with the proper type >+PASS MediaSource interface: mediaSource must inherit property "isTypeSupported(DOMString)" with the proper type > PASS MediaSource interface: calling isTypeSupported(DOMString) on mediaSource with too few arguments must throw TypeError >-PASS EventTarget interface: mediaSource must inherit property "addEventListener" with the proper type (0) >-PASS EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on mediaSource with too few arguments must throw TypeError >-PASS EventTarget interface: mediaSource must inherit property "removeEventListener" with the proper type (1) >-PASS EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on mediaSource with too few arguments must throw TypeError >-PASS EventTarget interface: mediaSource must inherit property "dispatchEvent" with the proper type (2) >-PASS EventTarget interface: calling dispatchEvent(Event) on mediaSource with too few arguments must throw TypeError > PASS SourceBuffer interface: existence and properties of interface object > PASS SourceBuffer interface object length > PASS SourceBuffer interface object name > PASS SourceBuffer interface: existence and properties of interface prototype object > PASS SourceBuffer interface: existence and properties of interface prototype object's "constructor" property >+PASS SourceBuffer interface: existence and properties of interface prototype object's @@unscopables property > PASS SourceBuffer interface: attribute mode > PASS SourceBuffer interface: attribute updating > PASS SourceBuffer interface: attribute buffered >@@ -68,51 +69,40 @@ PASS SourceBuffer interface: attribute onerror > PASS SourceBuffer interface: attribute onabort > PASS SourceBuffer interface: operation appendBuffer(BufferSource) > PASS SourceBuffer interface: operation abort() >-PASS SourceBuffer interface: operation remove(double,unrestricted double) >+PASS SourceBuffer interface: operation remove(double, unrestricted double) > PASS SourceBuffer must be primary interface of sourceBuffer > PASS Stringification of sourceBuffer >-PASS SourceBuffer interface: sourceBuffer must inherit property "mode" with the proper type (0) >-PASS SourceBuffer interface: sourceBuffer must inherit property "updating" with the proper type (1) >-PASS SourceBuffer interface: sourceBuffer must inherit property "buffered" with the proper type (2) >-PASS SourceBuffer interface: sourceBuffer must inherit property "timestampOffset" with the proper type (3) >-PASS SourceBuffer interface: sourceBuffer must inherit property "audioTracks" with the proper type (4) >-PASS SourceBuffer interface: sourceBuffer must inherit property "videoTracks" with the proper type (5) >-PASS SourceBuffer interface: sourceBuffer must inherit property "textTracks" with the proper type (6) >-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowStart" with the proper type (7) >-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowEnd" with the proper type (8) >-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdatestart" with the proper type (9) >-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdate" with the proper type (10) >-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdateend" with the proper type (11) >-PASS SourceBuffer interface: sourceBuffer must inherit property "onerror" with the proper type (12) >-PASS SourceBuffer interface: sourceBuffer must inherit property "onabort" with the proper type (13) >-PASS SourceBuffer interface: sourceBuffer must inherit property "appendBuffer" with the proper type (14) >+PASS SourceBuffer interface: sourceBuffer must inherit property "mode" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "updating" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "buffered" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "timestampOffset" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "audioTracks" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "videoTracks" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "textTracks" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowStart" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowEnd" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "onupdatestart" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "onupdate" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "onupdateend" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "onerror" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "onabort" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "appendBuffer(BufferSource)" with the proper type > PASS SourceBuffer interface: calling appendBuffer(BufferSource) on sourceBuffer with too few arguments must throw TypeError >-PASS SourceBuffer interface: sourceBuffer must inherit property "abort" with the proper type (15) >-PASS SourceBuffer interface: sourceBuffer must inherit property "remove" with the proper type (16) >-PASS SourceBuffer interface: calling remove(double,unrestricted double) on sourceBuffer with too few arguments must throw TypeError >-PASS EventTarget interface: sourceBuffer must inherit property "addEventListener" with the proper type (0) >-PASS EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on sourceBuffer with too few arguments must throw TypeError >-PASS EventTarget interface: sourceBuffer must inherit property "removeEventListener" with the proper type (1) >-PASS EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on sourceBuffer with too few arguments must throw TypeError >-PASS EventTarget interface: sourceBuffer must inherit property "dispatchEvent" with the proper type (2) >-PASS EventTarget interface: calling dispatchEvent(Event) on sourceBuffer with too few arguments must throw TypeError >+PASS SourceBuffer interface: sourceBuffer must inherit property "abort()" with the proper type >+PASS SourceBuffer interface: sourceBuffer must inherit property "remove(double, unrestricted double)" with the proper type >+PASS SourceBuffer interface: calling remove(double, unrestricted double) on sourceBuffer with too few arguments must throw TypeError > PASS SourceBufferList interface: existence and properties of interface object > PASS SourceBufferList interface object length > PASS SourceBufferList interface object name > PASS SourceBufferList interface: existence and properties of interface prototype object > PASS SourceBufferList interface: existence and properties of interface prototype object's "constructor" property >+PASS SourceBufferList interface: existence and properties of interface prototype object's @@unscopables property > PASS SourceBufferList interface: attribute length > PASS SourceBufferList interface: attribute onaddsourcebuffer > PASS SourceBufferList interface: attribute onremovesourcebuffer > PASS SourceBufferList must be primary interface of mediaSource.sourceBuffers > PASS Stringification of mediaSource.sourceBuffers >-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "length" with the proper type (0) >-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onaddsourcebuffer" with the proper type (1) >-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onremovesourcebuffer" with the proper type (2) >-PASS EventTarget interface: mediaSource.sourceBuffers must inherit property "addEventListener" with the proper type (0) >-PASS EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on mediaSource.sourceBuffers with too few arguments must throw TypeError >-PASS EventTarget interface: mediaSource.sourceBuffers must inherit property "removeEventListener" with the proper type (1) >-PASS EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on mediaSource.sourceBuffers with too few arguments must throw TypeError >-PASS EventTarget interface: mediaSource.sourceBuffers must inherit property "dispatchEvent" with the proper type (2) >-PASS EventTarget interface: calling dispatchEvent(Event) on mediaSource.sourceBuffers with too few arguments must throw TypeError >+PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "length" with the proper type >+PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onaddsourcebuffer" with the proper type >+PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onremovesourcebuffer" with the proper type > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt >index 17006761c55c34a58726a15fced21ced32719cd6..3f6224c68044289678e1caa085660d54ee923b00 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt >@@ -1,18 +1,13 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > Description > > This test checks for the presence of the navigator.mediaDevices.getUserMedia method. > > >-PASS Test driver >-PASS Navigator interface: attribute mediaDevices >-PASS Unscopable handled correctly for mediaDevices property on Navigator >-FAIL Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) assert_own_property: interface prototype object missing non-static operation expected property "getUserMedia" missing >-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator >-PASS Navigator interface: navigator must inherit property "mediaDevices" with the proper type >-FAIL Navigator interface: navigator must inherit property "getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)" with the proper type assert_inherits: property "getUserMedia" not found in prototype chain >-FAIL Navigator interface: calling getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on navigator with too few arguments must throw TypeError assert_inherits: property "getUserMedia" not found in prototype chain >+PASS idl_test setup >+PASS Partial interface NavigatorUserMedia: original interface defined >+PASS Partial interface MediaDevices: original interface defined > PASS MediaStream interface: existence and properties of interface object > PASS MediaStream interface object length > PASS MediaStream interface object name >@@ -20,27 +15,16 @@ PASS MediaStream interface: existence and properties of interface prototype obje > PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property > PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property > PASS MediaStream interface: attribute id >-PASS Unscopable handled correctly for id property on MediaStream > PASS MediaStream interface: operation getAudioTracks() >-PASS Unscopable handled correctly for getAudioTracks() on MediaStream > PASS MediaStream interface: operation getVideoTracks() >-PASS Unscopable handled correctly for getVideoTracks() on MediaStream > PASS MediaStream interface: operation getTracks() >-PASS Unscopable handled correctly for getTracks() on MediaStream > PASS MediaStream interface: operation getTrackById(DOMString) >-PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream > PASS MediaStream interface: operation addTrack(MediaStreamTrack) >-PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream > PASS MediaStream interface: operation removeTrack(MediaStreamTrack) >-PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream > PASS MediaStream interface: operation clone() >-PASS Unscopable handled correctly for clone() on MediaStream > PASS MediaStream interface: attribute active >-PASS Unscopable handled correctly for active property on MediaStream > PASS MediaStream interface: attribute onaddtrack >-PASS Unscopable handled correctly for onaddtrack property on MediaStream > PASS MediaStream interface: attribute onremovetrack >-PASS Unscopable handled correctly for onremovetrack property on MediaStream > PASS MediaStreamTrack interface: existence and properties of interface object > PASS MediaStreamTrack interface object length > PASS MediaStreamTrack interface object name >@@ -48,61 +32,35 @@ PASS MediaStreamTrack interface: existence and properties of interface prototype > PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property > PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property > PASS MediaStreamTrack interface: attribute kind >-PASS Unscopable handled correctly for kind property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute id >-PASS Unscopable handled correctly for id property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute label >-PASS Unscopable handled correctly for label property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute enabled >-PASS Unscopable handled correctly for enabled property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute muted >-PASS Unscopable handled correctly for muted property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute onmute >-PASS Unscopable handled correctly for onmute property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute onunmute >-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute readyState >-PASS Unscopable handled correctly for readyState property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute onended >-PASS Unscopable handled correctly for onended property on MediaStreamTrack > PASS MediaStreamTrack interface: operation clone() >-PASS Unscopable handled correctly for clone() on MediaStreamTrack > PASS MediaStreamTrack interface: operation stop() >-PASS Unscopable handled correctly for stop() on MediaStreamTrack > PASS MediaStreamTrack interface: operation getCapabilities() >-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack > PASS MediaStreamTrack interface: operation getConstraints() >-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack > PASS MediaStreamTrack interface: operation getSettings() >-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack > PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints) >-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack > PASS MediaStreamTrack interface: attribute onoverconstrained >-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack >-FAIL MediaStreamTrackEvent interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >+PASS MediaStreamTrackEvent interface: existence and properties of interface object > PASS MediaStreamTrackEvent interface object length > PASS MediaStreamTrackEvent interface object name >-FAIL MediaStreamTrackEvent interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >+PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object > PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property > PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property > PASS MediaStreamTrackEvent interface: attribute track >-PASS Unscopable handled correctly for track property on MediaStreamTrackEvent >-FAIL OverconstrainedErrorEvent interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >+PASS OverconstrainedErrorEvent interface: existence and properties of interface object > FAIL OverconstrainedErrorEvent interface object length assert_equals: wrong value for OverconstrainedErrorEvent.length expected 2 but got 1 > PASS OverconstrainedErrorEvent interface object name >-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >+PASS OverconstrainedErrorEvent interface: existence and properties of interface prototype object > PASS OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property > PASS OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property > PASS OverconstrainedErrorEvent interface: attribute error >-PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent > FAIL MediaDevices interface: existence and properties of interface object assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing > FAIL MediaDevices interface object length assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing > FAIL MediaDevices interface object name assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >@@ -110,13 +68,9 @@ FAIL MediaDevices interface: existence and properties of interface prototype obj > FAIL MediaDevices interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing > FAIL MediaDevices interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing > FAIL MediaDevices interface: attribute ondevicechange assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >-PASS Unscopable handled correctly for ondevicechange property on MediaDevices > FAIL MediaDevices interface: operation enumerateDevices() assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >-PASS Unscopable handled correctly for enumerateDevices() on MediaDevices > FAIL MediaDevices interface: operation getSupportedConstraints() assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >-PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices > FAIL MediaDevices interface: operation getUserMedia(MediaStreamConstraints) assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices > FAIL MediaDevices must be primary interface of navigator.mediaDevices assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing > PASS Stringification of navigator.mediaDevices > PASS MediaDevices interface: navigator.mediaDevices must inherit property "ondevicechange" with the proper type >@@ -131,15 +85,10 @@ PASS MediaDeviceInfo interface: existence and properties of interface prototype > PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property > PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property > PASS MediaDeviceInfo interface: attribute deviceId >-PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo > PASS MediaDeviceInfo interface: attribute kind >-PASS Unscopable handled correctly for kind property on MediaDeviceInfo > PASS MediaDeviceInfo interface: attribute label >-PASS Unscopable handled correctly for label property on MediaDeviceInfo > PASS MediaDeviceInfo interface: attribute groupId >-PASS Unscopable handled correctly for groupId property on MediaDeviceInfo > PASS MediaDeviceInfo interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo > FAIL InputDeviceInfo interface: existence and properties of interface object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing > FAIL InputDeviceInfo interface object length assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing > FAIL InputDeviceInfo interface object name assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing >@@ -147,5 +96,10 @@ FAIL InputDeviceInfo interface: existence and properties of interface prototype > FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing > FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing > FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing >-PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo >+PASS Navigator interface: attribute mediaDevices >+FAIL Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) assert_own_property: interface prototype object missing non-static operation expected property "getUserMedia" missing >+PASS Navigator interface: navigator must inherit property "mediaDevices" with the proper type >+FAIL Navigator interface: navigator must inherit property "getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)" with the proper type assert_inherits: property "getUserMedia" not found in prototype chain >+FAIL Navigator interface: calling getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on navigator with too few arguments must throw TypeError assert_inherits: property "getUserMedia" not found in prototype chain >+PASS WorkerNavigator interface: existence and properties of interface object > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all.html b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all.html >index f6dfb361bb48f7d45dd9648128571a2e2ec0c240..f7286419bcc14d87b2819ceb246f6423cf75134c 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all.html >@@ -19,27 +19,16 @@ > <script> > 'use strict'; > >- function doIdlTest(idlText) { >- var idl_array = new IdlArray(); >- >- // dummies >- idl_array.add_untested_idls("interface Navigator {};"); >- idl_array.add_untested_idls("interface EventTarget {};"); >- idl_array.add_untested_idls("interface EventHandler {};"); >- >- idl_array.add_idls(idlText); >- >- idl_array.add_objects({"Navigator": ["navigator"]}); >- idl_array.add_objects({"MediaDevices":["navigator.mediaDevices"]}); >- idl_array.test(); >- } >- >- promise_test(() => { >- return fetch('/interfaces/mediacapture-main.idl') >- .then(response => response.text()) >- .then(doIdlTest); >- >- }, 'Test driver') >+ idl_test( >+ ['mediacapture-main'], >+ ['dom', 'html'], >+ idl_array => { >+ idl_array.add_objects({ >+ "Navigator": ["navigator"], >+ "MediaDevices": ["navigator.mediaDevices"], >+ }); >+ } >+ ); > </script> > </body> > </html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt >index 9c7dbe457ad39e1c7ed69ecfb526deceb840d419..4c29673da6942980cb677cd9515d4b98a2a80ec7 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt >@@ -1,113 +1,66 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > Description > > This test checks for the presence of the navigator.mediaDevices.enumerateDevices() method. > > >-PASS Test MediaDevices.enumerateDevices call and result. Types only. >-PASS Navigator interface: attribute mediaDevices >-PASS Unscopable handled correctly for mediaDevices property on Navigator >-FAIL Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) assert_own_property: interface prototype object missing non-static operation expected property "getUserMedia" missing >-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator >-FAIL MediaStream interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >+PASS idl_test setup >+PASS Partial interface NavigatorUserMedia: original interface defined >+PASS Partial interface MediaDevices: original interface defined >+PASS MediaStream interface: existence and properties of interface object > PASS MediaStream interface object length > PASS MediaStream interface object name >-FAIL MediaStream interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >+PASS MediaStream interface: existence and properties of interface prototype object > PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property > PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property > PASS MediaStream interface: attribute id >-PASS Unscopable handled correctly for id property on MediaStream > PASS MediaStream interface: operation getAudioTracks() >-PASS Unscopable handled correctly for getAudioTracks() on MediaStream > PASS MediaStream interface: operation getVideoTracks() >-PASS Unscopable handled correctly for getVideoTracks() on MediaStream > PASS MediaStream interface: operation getTracks() >-PASS Unscopable handled correctly for getTracks() on MediaStream > PASS MediaStream interface: operation getTrackById(DOMString) >-PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream > PASS MediaStream interface: operation addTrack(MediaStreamTrack) >-PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream > PASS MediaStream interface: operation removeTrack(MediaStreamTrack) >-PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream > PASS MediaStream interface: operation clone() >-PASS Unscopable handled correctly for clone() on MediaStream > PASS MediaStream interface: attribute active >-PASS Unscopable handled correctly for active property on MediaStream > PASS MediaStream interface: attribute onaddtrack >-PASS Unscopable handled correctly for onaddtrack property on MediaStream > PASS MediaStream interface: attribute onremovetrack >-PASS Unscopable handled correctly for onremovetrack property on MediaStream >-FAIL MediaStreamTrack interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >+PASS MediaStreamTrack interface: existence and properties of interface object > PASS MediaStreamTrack interface object length > PASS MediaStreamTrack interface object name >-FAIL MediaStreamTrack interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >+PASS MediaStreamTrack interface: existence and properties of interface prototype object > PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property > PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property > PASS MediaStreamTrack interface: attribute kind >-PASS Unscopable handled correctly for kind property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute id >-PASS Unscopable handled correctly for id property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute label >-PASS Unscopable handled correctly for label property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute enabled >-PASS Unscopable handled correctly for enabled property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute muted >-PASS Unscopable handled correctly for muted property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute onmute >-PASS Unscopable handled correctly for onmute property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute onunmute >-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute readyState >-PASS Unscopable handled correctly for readyState property on MediaStreamTrack > PASS MediaStreamTrack interface: attribute onended >-PASS Unscopable handled correctly for onended property on MediaStreamTrack > PASS MediaStreamTrack interface: operation clone() >-PASS Unscopable handled correctly for clone() on MediaStreamTrack > PASS MediaStreamTrack interface: operation stop() >-PASS Unscopable handled correctly for stop() on MediaStreamTrack > PASS MediaStreamTrack interface: operation getCapabilities() >-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack > PASS MediaStreamTrack interface: operation getConstraints() >-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack > PASS MediaStreamTrack interface: operation getSettings() >-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack > PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints) >-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack > PASS MediaStreamTrack interface: attribute onoverconstrained >-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack >-FAIL MediaStreamTrackEvent interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >+PASS MediaStreamTrackEvent interface: existence and properties of interface object > PASS MediaStreamTrackEvent interface object length > PASS MediaStreamTrackEvent interface object name >-FAIL MediaStreamTrackEvent interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >+PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object > PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property > PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property > PASS MediaStreamTrackEvent interface: attribute track >-PASS Unscopable handled correctly for track property on MediaStreamTrackEvent >-FAIL OverconstrainedErrorEvent interface: existence and properties of interface object undefined is not an object (evaluating 'this.array >- .members[this.base] >- .has_extended_attribute') >+PASS OverconstrainedErrorEvent interface: existence and properties of interface object > FAIL OverconstrainedErrorEvent interface object length assert_equals: wrong value for OverconstrainedErrorEvent.length expected 2 but got 1 > PASS OverconstrainedErrorEvent interface object name >-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object undefined is not an object (evaluating 'this.array >- .members[inherit_interface] >- .has_extended_attribute') >+PASS OverconstrainedErrorEvent interface: existence and properties of interface prototype object > PASS OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property > PASS OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property > PASS OverconstrainedErrorEvent interface: attribute error >-PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent > FAIL MediaDevices interface: existence and properties of interface object assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing > FAIL MediaDevices interface object length assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing > FAIL MediaDevices interface object name assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >@@ -115,13 +68,9 @@ FAIL MediaDevices interface: existence and properties of interface prototype obj > FAIL MediaDevices interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing > FAIL MediaDevices interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing > FAIL MediaDevices interface: attribute ondevicechange assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >-PASS Unscopable handled correctly for ondevicechange property on MediaDevices > FAIL MediaDevices interface: operation enumerateDevices() assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >-PASS Unscopable handled correctly for enumerateDevices() on MediaDevices > FAIL MediaDevices interface: operation getSupportedConstraints() assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >-PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices > FAIL MediaDevices interface: operation getUserMedia(MediaStreamConstraints) assert_own_property: self does not have own property "MediaDevices" expected property "MediaDevices" missing >-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices > PASS MediaDeviceInfo interface: existence and properties of interface object > PASS MediaDeviceInfo interface object length > PASS MediaDeviceInfo interface object name >@@ -129,15 +78,10 @@ PASS MediaDeviceInfo interface: existence and properties of interface prototype > PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property > PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property > PASS MediaDeviceInfo interface: attribute deviceId >-PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo > PASS MediaDeviceInfo interface: attribute kind >-PASS Unscopable handled correctly for kind property on MediaDeviceInfo > PASS MediaDeviceInfo interface: attribute label >-PASS Unscopable handled correctly for label property on MediaDeviceInfo > PASS MediaDeviceInfo interface: attribute groupId >-PASS Unscopable handled correctly for groupId property on MediaDeviceInfo > PASS MediaDeviceInfo interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo > PASS MediaDeviceInfo must be primary interface of _mediaInfo > PASS Stringification of _mediaInfo > PASS MediaDeviceInfo interface: _mediaInfo must inherit property "deviceId" with the proper type >@@ -153,5 +97,7 @@ FAIL InputDeviceInfo interface: existence and properties of interface prototype > FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing > FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing > FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing >-PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo >+PASS Navigator interface: attribute mediaDevices >+FAIL Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) assert_own_property: interface prototype object missing non-static operation expected property "getUserMedia" missing >+PASS WorkerNavigator interface: existence and properties of interface object > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices.html b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices.html >index 4dc1c608d22a6a3bfad8b4ed9e5b9b83e72dae6b..e05c8d57bc3426707c7a542e18a3a6d6e002196b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices.html >@@ -19,21 +19,17 @@ > <script src=/resources/idlharness.js></script> > <script> > "use strict"; >- >- function doIdlTest(idlText) { >- const MDI_idl = new IdlArray(); >- >- MDI_idl.add_untested_idls("interface Navigator {};"); >- MDI_idl.add_idls(idlText); >- >- assert_true(undefined !== navigator.mediaDevices.enumerateDevices, >- "navigator.mediaDevices.enumerateDevices exists"); >- >- return navigator.mediaDevices.enumerateDevices() >- .then(function(list) { >+ idl_test( >+ ['mediacapture-main'], >+ ['dom', 'html'], >+ async idl_array => { >+ assert_true(undefined !== navigator.mediaDevices.enumerateDevices, >+ "navigator.mediaDevices.enumerateDevices exists"); >+ >+ const list = await navigator.mediaDevices.enumerateDevices(); > if( list.length > 0 ) { > window._mediaInfo = list[0]; >- MDI_idl.add_objects({MediaDeviceInfo: ["_mediaInfo"]}); >+ idl_array.add_objects({MediaDeviceInfo: ["_mediaInfo"]}); > } > > for(const media of list) { >@@ -46,17 +42,8 @@ > assert_unreached("media.kind should be one of 'audioinput', 'videoinput', or 'audiooutput'.") > } > } >- >- MDI_idl.test(); >- }); >- } >- >- promise_test(() => { >- return fetch('/interfaces/mediacapture-main.idl') >- .then(response => response.text()) >- .then(doIdlTest); >- >- }, "Test MediaDevices.enumerateDevices call and result. Types only."); >+ } >+ ); > </script> > </body> > </html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/notifications/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/notifications/interfaces-expected.txt >index 22b44fdba456caaa826d371ddbaec70daf668b37..97066b2b64b324c31a82aca385941043c9feef47 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/notifications/interfaces-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/notifications/interfaces-expected.txt >@@ -1,5 +1,5 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > > PASS Notification interface: existence and properties of interface object > PASS Notification interface object length >@@ -8,51 +8,28 @@ PASS Notification interface: existence and properties of interface prototype obj > PASS Notification interface: existence and properties of interface prototype object's "constructor" property > PASS Notification interface: existence and properties of interface prototype object's @@unscopables property > PASS Notification interface: attribute permission >-PASS Unscopable handled correctly for permission property on Notification > PASS Notification interface: operation requestPermission(NotificationPermissionCallback) >-PASS Unscopable handled correctly for requestPermission(NotificationPermissionCallback) on Notification > FAIL Notification interface: attribute maxActions assert_own_property: The interface object must have a property "maxActions" expected property "maxActions" missing >-PASS Unscopable handled correctly for maxActions property on Notification > PASS Notification interface: attribute onclick >-PASS Unscopable handled correctly for onclick property on Notification > PASS Notification interface: attribute onshow >-PASS Unscopable handled correctly for onshow property on Notification > PASS Notification interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on Notification > PASS Notification interface: attribute onclose >-PASS Unscopable handled correctly for onclose property on Notification > PASS Notification interface: attribute title >-PASS Unscopable handled correctly for title property on Notification > PASS Notification interface: attribute dir >-PASS Unscopable handled correctly for dir property on Notification > PASS Notification interface: attribute lang >-PASS Unscopable handled correctly for lang property on Notification > PASS Notification interface: attribute body >-PASS Unscopable handled correctly for body property on Notification > PASS Notification interface: attribute tag >-PASS Unscopable handled correctly for tag property on Notification > FAIL Notification interface: attribute image assert_true: The prototype object must have a property "image" expected true got false >-PASS Unscopable handled correctly for image property on Notification > PASS Notification interface: attribute icon >-PASS Unscopable handled correctly for icon property on Notification > FAIL Notification interface: attribute badge assert_true: The prototype object must have a property "badge" expected true got false >-PASS Unscopable handled correctly for badge property on Notification > FAIL Notification interface: attribute vibrate assert_true: The prototype object must have a property "vibrate" expected true got false >-PASS Unscopable handled correctly for vibrate property on Notification > FAIL Notification interface: attribute timestamp assert_true: The prototype object must have a property "timestamp" expected true got false >-PASS Unscopable handled correctly for timestamp property on Notification > FAIL Notification interface: attribute renotify assert_true: The prototype object must have a property "renotify" expected true got false >-PASS Unscopable handled correctly for renotify property on Notification > FAIL Notification interface: attribute silent assert_true: The prototype object must have a property "silent" expected true got false >-PASS Unscopable handled correctly for silent property on Notification > FAIL Notification interface: attribute requireInteraction assert_true: The prototype object must have a property "requireInteraction" expected true got false >-PASS Unscopable handled correctly for requireInteraction property on Notification > FAIL Notification interface: attribute data assert_true: The prototype object must have a property "data" expected true got false >-PASS Unscopable handled correctly for data property on Notification > FAIL Notification interface: attribute actions assert_true: The prototype object must have a property "actions" expected true got false >-PASS Unscopable handled correctly for actions property on Notification > PASS Notification interface: operation close() >-PASS Unscopable handled correctly for close() on Notification > PASS Notification must be primary interface of new Notification("Running idlharness.") > PASS Stringification of new Notification("Running idlharness.") > PASS Notification interface: new Notification("Running idlharness.") must inherit property "permission" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/payment-request/idlharness.https.window-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/payment-request/idlharness.https.window-expected.txt >index 0b7fee05acb0bd1e2990450bf1b8ee2d72e3b1ee..85d4f772fae5a35f4ee8fa37454a75c8a41bde4b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/payment-request/idlharness.https.window-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/payment-request/idlharness.https.window-expected.txt >@@ -1,4 +1,79 @@ >-CONSOLE MESSAGE: line 8: ReferenceError: Can't find variable: idl_test > >-FAIL Untitled ReferenceError: Can't find variable: idl_test >+PASS idl_test setup >+PASS PaymentRequest interface: existence and properties of interface object >+PASS PaymentRequest interface object length >+PASS PaymentRequest interface object name >+PASS PaymentRequest interface: existence and properties of interface prototype object >+PASS PaymentRequest interface: existence and properties of interface prototype object's "constructor" property >+PASS PaymentRequest interface: existence and properties of interface prototype object's @@unscopables property >+PASS PaymentRequest interface: operation show() >+PASS PaymentRequest interface: operation abort() >+PASS PaymentRequest interface: operation canMakePayment() >+PASS PaymentRequest interface: attribute id >+PASS PaymentRequest interface: attribute shippingAddress >+PASS PaymentRequest interface: attribute shippingOption >+PASS PaymentRequest interface: attribute shippingType >+PASS PaymentRequest interface: attribute onshippingaddresschange >+PASS PaymentRequest interface: attribute onshippingoptionchange >+PASS PaymentRequest must be primary interface of paymentRequest >+PASS Stringification of paymentRequest >+PASS PaymentRequest interface: paymentRequest must inherit property "show()" with the proper type >+PASS PaymentRequest interface: paymentRequest must inherit property "abort()" with the proper type >+PASS PaymentRequest interface: paymentRequest must inherit property "canMakePayment()" with the proper type >+PASS PaymentRequest interface: paymentRequest must inherit property "id" with the proper type >+PASS PaymentRequest interface: paymentRequest must inherit property "shippingAddress" with the proper type >+PASS PaymentRequest interface: paymentRequest must inherit property "shippingOption" with the proper type >+PASS PaymentRequest interface: paymentRequest must inherit property "shippingType" with the proper type >+PASS PaymentRequest interface: paymentRequest must inherit property "onshippingaddresschange" with the proper type >+PASS PaymentRequest interface: paymentRequest must inherit property "onshippingoptionchange" with the proper type >+PASS PaymentAddress interface: existence and properties of interface object >+PASS PaymentAddress interface object length >+PASS PaymentAddress interface object name >+PASS PaymentAddress interface: existence and properties of interface prototype object >+PASS PaymentAddress interface: existence and properties of interface prototype object's "constructor" property >+PASS PaymentAddress interface: existence and properties of interface prototype object's @@unscopables property >+PASS PaymentAddress interface: operation toJSON() >+PASS PaymentAddress interface: attribute country >+PASS PaymentAddress interface: attribute addressLine >+PASS PaymentAddress interface: attribute region >+FAIL PaymentAddress interface: attribute regionCode assert_true: The prototype object must have a property "regionCode" expected true got false >+PASS PaymentAddress interface: attribute city >+PASS PaymentAddress interface: attribute dependentLocality >+PASS PaymentAddress interface: attribute postalCode >+PASS PaymentAddress interface: attribute sortingCode >+FAIL PaymentAddress interface: attribute languageCode assert_true: The prototype object must have a property "languageCode" expected true got false >+PASS PaymentAddress interface: attribute organization >+PASS PaymentAddress interface: attribute recipient >+PASS PaymentAddress interface: attribute phone >+FAIL PaymentResponse interface: existence and properties of interface object assert_equals: prototype of self's property "PaymentResponse" is not Function.prototype expected function "function () { >+ [native code] >+}" but got function "function EventTarget() { >+ [native code] >+}" >+PASS PaymentResponse interface object length >+PASS PaymentResponse interface object name >+FAIL PaymentResponse interface: existence and properties of interface prototype object assert_equals: prototype of PaymentResponse.prototype is not Object.prototype expected object "[object Object]" but got object "[object EventTargetPrototype]" >+PASS PaymentResponse interface: existence and properties of interface prototype object's "constructor" property >+PASS PaymentResponse interface: existence and properties of interface prototype object's @@unscopables property >+PASS PaymentResponse interface: operation toJSON() >+PASS PaymentResponse interface: attribute requestId >+PASS PaymentResponse interface: attribute methodName >+PASS PaymentResponse interface: attribute details >+PASS PaymentResponse interface: attribute shippingAddress >+PASS PaymentResponse interface: attribute shippingOption >+PASS PaymentResponse interface: attribute payerName >+PASS PaymentResponse interface: attribute payerEmail >+PASS PaymentResponse interface: attribute payerPhone >+PASS PaymentResponse interface: operation complete(PaymentComplete) >+PASS PaymentRequestUpdateEvent interface: existence and properties of interface object >+PASS PaymentRequestUpdateEvent interface object length >+PASS PaymentRequestUpdateEvent interface object name >+PASS PaymentRequestUpdateEvent interface: existence and properties of interface prototype object >+PASS PaymentRequestUpdateEvent interface: existence and properties of interface prototype object's "constructor" property >+PASS PaymentRequestUpdateEvent interface: existence and properties of interface prototype object's @@unscopables property >+PASS PaymentRequestUpdateEvent interface: operation updateWith([object Object]) >+PASS PaymentRequestUpdateEvent must be primary interface of new PaymentRequestUpdateEvent("paymentrequestupdate") >+PASS Stringification of new PaymentRequestUpdateEvent("paymentrequestupdate") >+PASS PaymentRequestUpdateEvent interface: new PaymentRequestUpdateEvent("paymentrequestupdate") must inherit property "updateWith([object Object])" with the proper type >+PASS PaymentRequestUpdateEvent interface: calling updateWith([object Object]) on new PaymentRequestUpdateEvent("paymentrequestupdate") with too few arguments must throw TypeError > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resource-timing/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/resource-timing/idlharness-expected.txt >index c02c3d60007c1698c67bfd6d4adc627018b5cdb3..c12042c2547213ae2d8889a71785b89a3d2b02a7 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resource-timing/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/resource-timing/idlharness-expected.txt >@@ -1,12 +1,10 @@ > Resource Timing IDL tests > > >+PASS Partial interface Performance: original interface defined > PASS Performance interface: operation clearResourceTimings() >-PASS Unscopable handled correctly for clearResourceTimings() on Performance > PASS Performance interface: operation setResourceTimingBufferSize(unsigned long) >-PASS Unscopable handled correctly for setResourceTimingBufferSize(unsigned long) on Performance > PASS Performance interface: attribute onresourcetimingbufferfull >-PASS Unscopable handled correctly for onresourcetimingbufferfull property on Performance > PASS Performance interface: window.performance must inherit property "clearResourceTimings()" with the proper type > PASS Performance interface: window.performance must inherit property "setResourceTimingBufferSize(unsigned long)" with the proper type > PASS Performance interface: calling setResourceTimingBufferSize(unsigned long) on window.performance with too few arguments must throw TypeError >@@ -18,41 +16,23 @@ PASS PerformanceResourceTiming interface: existence and properties of interface > PASS PerformanceResourceTiming interface: existence and properties of interface prototype object's "constructor" property > PASS PerformanceResourceTiming interface: existence and properties of interface prototype object's @@unscopables property > PASS PerformanceResourceTiming interface: attribute initiatorType >-PASS Unscopable handled correctly for initiatorType property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute nextHopProtocol >-PASS Unscopable handled correctly for nextHopProtocol property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute workerStart >-PASS Unscopable handled correctly for workerStart property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute redirectStart >-PASS Unscopable handled correctly for redirectStart property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute redirectEnd >-PASS Unscopable handled correctly for redirectEnd property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute fetchStart >-PASS Unscopable handled correctly for fetchStart property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute domainLookupStart >-PASS Unscopable handled correctly for domainLookupStart property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute domainLookupEnd >-PASS Unscopable handled correctly for domainLookupEnd property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute connectStart >-PASS Unscopable handled correctly for connectStart property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute connectEnd >-PASS Unscopable handled correctly for connectEnd property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute secureConnectionStart >-PASS Unscopable handled correctly for secureConnectionStart property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute requestStart >-PASS Unscopable handled correctly for requestStart property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute responseStart >-PASS Unscopable handled correctly for responseStart property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: attribute responseEnd >-PASS Unscopable handled correctly for responseEnd property on PerformanceResourceTiming > FAIL PerformanceResourceTiming interface: attribute transferSize assert_true: The prototype object must have a property "transferSize" expected true got false >-PASS Unscopable handled correctly for transferSize property on PerformanceResourceTiming > FAIL PerformanceResourceTiming interface: attribute encodedBodySize assert_true: The prototype object must have a property "encodedBodySize" expected true got false >-PASS Unscopable handled correctly for encodedBodySize property on PerformanceResourceTiming > FAIL PerformanceResourceTiming interface: attribute decodedBodySize assert_true: The prototype object must have a property "decodedBodySize" expected true got false >-PASS Unscopable handled correctly for decodedBodySize property on PerformanceResourceTiming > PASS PerformanceResourceTiming interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on PerformanceResourceTiming > PASS PerformanceResourceTiming must be primary interface of window.performance.getEntriesByType('resource')[0] > PASS Stringification of window.performance.getEntriesByType('resource')[0] > PASS PerformanceResourceTiming interface: window.performance.getEntriesByType('resource')[0] must inherit property "initiatorType" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/idlharness.js b/LayoutTests/imported/w3c/web-platform-tests/resources/idlharness.js >index c3045c49f909c9514597a6d6f8a9a3f7fe0f4df2..a088bc4c2a78002500fb879410e1800f16845af7 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/idlharness.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/idlharness.js >@@ -48,6 +48,13 @@ policies and contribution forms [3]. > */ > (function(){ > "use strict"; >+// Support subsetTestByKey from /common/subset-tests-by-key.js, but make it optional >+if (!('subsetTestByKey' in self)) { >+ self.subsetTestByKey = function(key, callback, ...args) { >+ return callback(...args); >+ } >+ self.shouldRunSubTest = () => true; >+} > /// Helpers /// > function constValue (cnt) > //@{ >@@ -63,6 +70,11 @@ function constValue (cnt) > function minOverloadLength(overloads) > //@{ > { >+ // "The value of the Function objectâs âlengthâ property is >+ // a Number determined as follows: >+ // ". . . >+ // "Return the length of the shortest argument list of the >+ // entries in S." > if (!overloads.length) { > return 0; > } >@@ -183,11 +195,19 @@ self.IdlArray = function() > * A implements C; > * D implements E; > * >- * results in { A: ["B", "C"], D: ["E"] }. >+ * results in this["implements"] = { A: ["B", "C"], D: ["E"] }. >+ * >+ * Similarly, >+ * >+ * interface A : B {}; >+ * interface B : C {}; >+ * >+ * results in this["inheritance"] = { A: "B", B: "C" } > */ > this.partials = []; > this["implements"] = {}; > this["includes"] = {}; >+ this["inheritance"] = {}; > }; > > //@} >@@ -204,19 +224,142 @@ IdlArray.prototype.add_untested_idls = function(raw_idls, options) > { > /** Entry point. See documentation at beginning of file. */ > var parsed_idls = WebIDL2.parse(raw_idls); >- for (var i = 0; i < parsed_idls.length; i++) >- { >+ this.mark_as_untested(parsed_idls); >+ this.internal_add_idls(parsed_idls, options); >+}; >+ >+//@} >+IdlArray.prototype.mark_as_untested = function (parsed_idls) >+//@{ >+{ >+ for (var i = 0; i < parsed_idls.length; i++) { > parsed_idls[i].untested = true; >- if ("members" in parsed_idls[i]) >- { >- for (var j = 0; j < parsed_idls[i].members.length; j++) >- { >+ if ("members" in parsed_idls[i]) { >+ for (var j = 0; j < parsed_idls[i].members.length; j++) { > parsed_idls[i].members[j].untested = true; > } > } > } >- this.internal_add_idls(parsed_idls, options); > }; >+//@} >+ >+//@} >+IdlArray.prototype.is_excluded_by_options = function (name, options) >+//@{ >+{ >+ return options && >+ (options.except && options.except.includes(name) >+ || options.only && !options.only.includes(name)); >+}; >+//@} >+ >+//@} >+IdlArray.prototype.add_dependency_idls = function(raw_idls, options) >+//@{ >+{ >+ const parsed_idls = WebIDL2.parse(raw_idls); >+ const new_options = { only: [] } >+ >+ const all_deps = new Set(); >+ Object.values(this.inheritance).forEach(v => all_deps.add(v)); >+ Object.entries(this.implements).forEach(([k, v]) => { >+ all_deps.add(k); >+ all_deps.add(v); >+ }); >+ // NOTE: If 'A includes B' for B that we care about, then A is also a dep. >+ Object.keys(this.includes).forEach(k => { >+ all_deps.add(k); >+ this.includes[k].forEach(v => all_deps.add(v)); >+ }); >+ this.partials.map(p => p.name).forEach(v => all_deps.add(v)); >+ // Add the attribute idlTypes of all the nested members of all tested idls. >+ for (const obj of [this.members, this.partials]) { >+ const tested = Object.values(obj).filter(m => !m.untested && m.members); >+ for (const parsed of tested) { >+ for (const attr of Object.values(parsed.members).filter(m => !m.untested && m.type === 'attribute')) { >+ all_deps.add(attr.idlType.idlType); >+ } >+ } >+ } >+ >+ if (options && options.except && options.only) { >+ throw new IdlHarnessError("The only and except options can't be used together."); >+ } >+ >+ const should_skip = name => { >+ // NOTE: Deps are untested, so we're lenient, and skip re-encountered definitions. >+ // e.g. for 'idl' containing A:B, B:C, C:D >+ // array.add_idls(idl, {only: ['A','B']}). >+ // array.add_dependency_idls(idl); >+ // B would be encountered as tested, and encountered as a dep, so we ignore. >+ return name in this.members >+ || this.is_excluded_by_options(name, options); >+ } >+ // Record of skipped items, in case we later determine they are a dependency. >+ // Maps name -> [parsed_idl, ...] >+ const skipped = new Map(); >+ const process = function(parsed) { >+ var deps = []; >+ if (parsed.name) { >+ deps.push(parsed.name); >+ } else if (parsed.type === "implements") { >+ deps.push(parsed.target); >+ deps.push(parsed.implements); >+ } else if (parsed.type === "includes") { >+ deps.push(parsed.target); >+ deps.push(parsed.includes); >+ } >+ >+ deps = deps.filter(function(name) { >+ if (!name || should_skip(name) || !all_deps.has(name)) { >+ // Flag as skipped, if it's not already processed, so we can >+ // come back to it later if we retrospectively call it a dep. >+ if (name && !(name in this.members)) { >+ skipped.has(name) >+ ? skipped.get(name).push(parsed) >+ : skipped.set(name, [parsed]); >+ } >+ return false; >+ } >+ return true; >+ }.bind(this)); >+ >+ deps.forEach(function(name) { >+ new_options.only.push(name); >+ >+ const follow_up = new Set(); >+ for (const dep_type of ["inheritance", "implements", "includes"]) { >+ if (parsed[dep_type]) { >+ const inheriting = parsed[dep_type]; >+ const inheritor = parsed.name || parsed.target; >+ for (const dep of [inheriting, inheritor]) { >+ new_options.only.push(dep); >+ all_deps.add(dep); >+ follow_up.add(dep); >+ } >+ } >+ } >+ >+ for (const deferred of follow_up) { >+ if (skipped.has(deferred)) { >+ const next = skipped.get(deferred); >+ skipped.delete(deferred); >+ next.forEach(process); >+ } >+ } >+ }); >+ }.bind(this); >+ >+ for (let parsed of parsed_idls) { >+ process(parsed); >+ } >+ >+ this.mark_as_untested(parsed_idls); >+ >+ if (new_options.only.length) { >+ this.internal_add_idls(parsed_idls, new_options); >+ } >+} > > //@} > IdlArray.prototype.internal_add_idls = function(parsed_idls, options) >@@ -242,22 +385,19 @@ IdlArray.prototype.internal_add_idls = function(parsed_idls, options) > throw new IdlHarnessError("The only and except options can't be used together."); > } > >- function should_skip(name) >- { >- if (options && options.only && options.only.indexOf(name) == -1) >- { >- return true; >- } >- if (options && options.except && options.except.indexOf(name) != -1) >- { >- return true; >- } >- return false; >+ var should_skip = name => { >+ return this.is_excluded_by_options(name, options); > } > > parsed_idls.forEach(function(parsed_idl) > { >- if (parsed_idl.partial && ["interface", "dictionary"].includes(parsed_idl.type)) >+ var partial_types = [ >+ "interface", >+ "interface mixin", >+ "dictionary", >+ "namespace", >+ ]; >+ if (parsed_idl.partial && partial_types.includes(parsed_idl.type)) > { > if (should_skip(parsed_idl.name)) > { >@@ -304,6 +444,17 @@ IdlArray.prototype.internal_add_idls = function(parsed_idls, options) > { > throw new IdlHarnessError("Duplicate identifier " + parsed_idl.name); > } >+ >+ if (parsed_idl["inheritance"]) { >+ // NOTE: Clash should be impossible (would require redefinition of parsed_idl.name). >+ if (parsed_idl.name in this["inheritance"] >+ && parsed_idl["inheritance"] != this["inheritance"][parsed_idl.name]) { >+ throw new IdlHarnessError( >+ `Inheritance for ${parsed_idl.name} was already defined`); >+ } >+ this["inheritance"][parsed_idl.name] = parsed_idl["inheritance"]; >+ } >+ > switch(parsed_idl.type) > { > case "interface": >@@ -340,6 +491,10 @@ IdlArray.prototype.internal_add_idls = function(parsed_idls, options) > new IdlInterface(parsed_idl, /* is_callback = */ true, /* is_mixin = */ false); > break; > >+ case "namespace": >+ this.members[parsed_idl.name] = new IdlNamespace(parsed_idl); >+ break; >+ > default: > throw parsed_idl.name + ": " + parsed_idl.type + " not yet supported"; > } >@@ -553,41 +708,48 @@ IdlArray.prototype.is_json_type = function(type) > }; > > function exposure_set(object, default_set) { >- var exposed = object.extAttrs.filter(function(a) { return a.name == "Exposed" }); >- if (exposed.length > 1 || exposed.length < 0) { >- throw new IdlHarnessError("Unexpected Exposed extended attributes on " + memberName + ": " + exposed); >+ var exposed = object.extAttrs && object.extAttrs.filter(a => a.name === "Exposed"); >+ if (exposed && exposed.length > 1) { >+ throw new IdlHarnessError( >+ `Multiple 'Exposed' extended attributes on ${object.name}`); > } > >- if (exposed.length === 0) { >- return default_set; >+ let result = default_set || ["Window"]; >+ if (result && !(result instanceof Set)) { >+ result = new Set(result); > } >- >- var set = exposed[0].rhs.value; >- // Could be a list or a string. >- if (typeof set == "string") { >- set = [ set ]; >+ if (exposed && exposed.length) { >+ var set = exposed[0].rhs.value; >+ // Could be a list or a string. >+ if (typeof set == "string") { >+ set = [ set ]; >+ } >+ result = new Set(set); >+ } >+ if (result && result.has("Worker")) { >+ result.delete("Worker"); >+ result.add("DedicatedWorker"); >+ result.add("ServiceWorker"); >+ result.add("SharedWorker"); > } >- return set; >+ return result; > } > > function exposed_in(globals) { > if ('document' in self) { >- return globals.indexOf("Window") >= 0; >+ return globals.has("Window"); > } > if ('DedicatedWorkerGlobalScope' in self && > self instanceof DedicatedWorkerGlobalScope) { >- return globals.indexOf("Worker") >= 0 || >- globals.indexOf("DedicatedWorker") >= 0; >+ return globals.has("DedicatedWorker"); > } > if ('SharedWorkerGlobalScope' in self && > self instanceof SharedWorkerGlobalScope) { >- return globals.indexOf("Worker") >= 0 || >- globals.indexOf("SharedWorker") >= 0; >+ return globals.has("SharedWorker"); > } > if ('ServiceWorkerGlobalScope' in self && > self instanceof ServiceWorkerGlobalScope) { >- return globals.indexOf("Worker") >= 0 || >- globals.indexOf("ServiceWorker") >= 0; >+ return globals.has("ServiceWorker"); > } > throw new IdlHarnessError("Unexpected global object"); > } >@@ -627,27 +789,7 @@ IdlArray.prototype.test = function() > > // First merge in all the partial interfaces and implements statements we > // encountered. >- this.partials.forEach(function(parsed_idl) >- { >- if (!(parsed_idl.name in this.members) >- || !(this.members[parsed_idl.name] instanceof IdlInterface >- || this.members[parsed_idl.name] instanceof IdlDictionary)) >- { >- throw new IdlHarnessError(`Partial ${parsed_idl.type} ${parsed_idl.name} with no original ${parsed_idl.type}`); >- } >- if (parsed_idl.extAttrs) >- { >- parsed_idl.extAttrs.forEach(function(extAttr) >- { >- this.members[parsed_idl.name].extAttrs.push(extAttr); >- }.bind(this)); >- } >- parsed_idl.members.forEach(function(member) >- { >- this.members[parsed_idl.name].members.push(new IdlInterfaceMember(member)); >- }.bind(this)); >- }.bind(this)); >- this.partials = []; >+ this.collapse_partials(); > > for (var lhs in this["implements"]) > { >@@ -683,13 +825,28 @@ IdlArray.prototype.test = function() > } > this["includes"] = {}; > >+ // Assert B defined for A : B >+ for (const member of Object.values(this.members).filter(m => m.base)) { >+ const lhs = member.name; >+ const rhs = member.base; >+ if (!(rhs in this.members)) throw new IdlHarnessError(`${lhs} inherits ${rhs}, but ${rhs} is undefined.`); >+ const lhs_is_interface = this.members[lhs] instanceof IdlInterface; >+ const rhs_is_interface = this.members[rhs] instanceof IdlInterface; >+ if (rhs_is_interface != lhs_is_interface) { >+ if (!lhs_is_interface) throw new IdlHarnessError(`${lhs} inherits ${rhs}, but ${lhs} is not an interface.`); >+ if (!rhs_is_interface) throw new IdlHarnessError(`${lhs} inherits ${rhs}, but ${rhs} is not an interface.`); >+ } >+ // Check for circular dependencies. >+ member.get_inheritance_stack(); >+ } >+ > Object.getOwnPropertyNames(this.members).forEach(function(memberName) { > var member = this.members[memberName]; > if (!(member instanceof IdlInterface)) { > return; > } > >- var globals = exposure_set(member, ["Window"]); >+ var globals = exposure_set(member); > member.exposed = exposed_in(globals); > member.exposureSet = globals; > }.bind(this)); >@@ -700,14 +857,104 @@ IdlArray.prototype.test = function() > this.members[name].test(); > if (name in this.objects) > { >- this.objects[name].forEach(function(str) >+ const objects = this.objects[name]; >+ if (!objects || !Array.isArray(objects)) { >+ throw new IdlHarnessError(`Invalid or empty objects for member ${name}`); >+ } >+ objects.forEach(function(str) > { >+ if (!this.members[name] || !(this.members[name] instanceof IdlInterface)) { >+ throw new IdlHarnessError(`Invalid object member name ${name}`); >+ } > this.members[name].test_object(str); > }.bind(this)); > } > } > }; > >+//@} >+IdlArray.prototype.collapse_partials = function() >+//@{ >+{ >+ const testedPartials = new Map(); >+ this.partials.forEach(function(parsed_idl) >+ { >+ const originalExists = parsed_idl.name in this.members >+ && (this.members[parsed_idl.name] instanceof IdlInterface >+ || this.members[parsed_idl.name] instanceof IdlDictionary >+ || this.members[parsed_idl.name] instanceof IdlNamespace); >+ >+ let partialTestName = parsed_idl.name; >+ if (!parsed_idl.untested) { >+ // Ensure unique test name in case of multiple partials. >+ let partialTestCount = 1; >+ if (testedPartials.has(parsed_idl.name)) { >+ partialTestCount += testedPartials.get(parsed_idl.name); >+ partialTestName = `${partialTestName}[${partialTestCount}]`; >+ } >+ testedPartials.set(parsed_idl.name, partialTestCount); >+ >+ test(function () { >+ assert_true(originalExists, `Original ${parsed_idl.type} should be defined`); >+ >+ var expected = IdlInterface; >+ switch (parsed_idl.type) { >+ case 'interface': expected = IdlInterface; break; >+ case 'dictionary': expected = IdlDictionary; break; >+ case 'namespace': expected = IdlNamespace; break; >+ } >+ assert_true( >+ expected.prototype.isPrototypeOf(this.members[parsed_idl.name]), >+ `Original ${parsed_idl.name} definition should have type ${parsed_idl.type}`); >+ }.bind(this), `Partial ${parsed_idl.type} ${partialTestName}: original ${parsed_idl.type} defined`); >+ } >+ if (!originalExists) { >+ // Not good.. but keep calm and carry on. >+ return; >+ } >+ >+ if (parsed_idl.extAttrs) >+ { >+ // Special-case "Exposed". Must be a subset of original interface's exposure. >+ // Exposed on a partial is the equivalent of having the same Exposed on all nested members. >+ // See https://github.com/heycam/webidl/issues/154 for discrepency between Exposed and >+ // other extended attributes on partial interfaces. >+ const exposureAttr = parsed_idl.extAttrs.find(a => a.name === "Exposed"); >+ if (exposureAttr) { >+ if (!parsed_idl.untested) { >+ test(function () { >+ const partialExposure = exposure_set(parsed_idl); >+ const memberExposure = exposure_set(this.members[parsed_idl.name]); >+ partialExposure.forEach(name => { >+ if (!memberExposure || !memberExposure.has(name)) { >+ throw new IdlHarnessError( >+ `Partial ${parsed_idl.name} ${parsed_idl.type} is exposed to '${name}', the original ${parsed_idl.type} is not.`); >+ } >+ }); >+ }.bind(this), `Partial ${parsed_idl.type} ${partialTestName}: valid exposure set`); >+ } >+ parsed_idl.members.forEach(function (member) { >+ member.extAttrs.push(exposureAttr); >+ }.bind(this)); >+ } >+ >+ parsed_idl.extAttrs.forEach(function(extAttr) >+ { >+ // "Exposed" already handled above. >+ if (extAttr.name === "Exposed") { >+ return; >+ } >+ this.members[parsed_idl.name].extAttrs.push(extAttr); >+ }.bind(this)); >+ } >+ parsed_idl.members.forEach(function(member) >+ { >+ this.members[parsed_idl.name].members.push(new IdlInterfaceMember(member)); >+ }.bind(this)); >+ }.bind(this)); >+ this.partials = []; >+} >+ > //@} > IdlArray.prototype.assert_type_is = function(value, type) > //@{ >@@ -762,7 +1009,7 @@ IdlArray.prototype.assert_type_is = function(value, type) > return; > } > >- if (type.sequence) >+ if (type.generic === "sequence") > { > assert_true(Array.isArray(value), "should be an Array"); > if (!value.length) >@@ -1111,6 +1358,10 @@ IdlInterface.prototype.get_inheritance_stack = function() { > var base = this.array.members[idl_interface.base]; > if (!base) { > throw new Error(idl_interface.type + " " + idl_interface.base + " not found (inherited by " + idl_interface.name + ")"); >+ } else if (stack.indexOf(base) > -1) { >+ stack.push(base); >+ let dep_chain = stack.map(i => i.name).join(','); >+ throw new IdlHarnessError(`${this.name} has a circular dependency: ${dep_chain}`); > } > idl_interface = base; > stack.push(idl_interface); >@@ -1206,7 +1457,7 @@ IdlInterface.prototype.test = function() > } > > if (!this.exposed) { >- test(function() { >+ subsetTestByKey(this.name, test, function() { > assert_false(this.name in self); > }.bind(this), this.name + " interface: existence and properties of interface object"); > return; >@@ -1232,7 +1483,7 @@ IdlInterface.prototype.test = function() > IdlInterface.prototype.test_self = function() > //@{ > { >- test(function() >+ subsetTestByKey(this.name, test, function() > { > // This function tests WebIDL as of 2015-01-13. > >@@ -1339,7 +1590,7 @@ IdlInterface.prototype.test_self = function() > }.bind(this), this.name + " interface: existence and properties of interface object"); > > if (!this.is_callback()) { >- test(function() { >+ subsetTestByKey(this.name, test, function() { > // This function tests WebIDL as of 2014-10-25. > // https://heycam.github.io/webidl/#es-interface-call > >@@ -1366,7 +1617,7 @@ IdlInterface.prototype.test_self = function() > } > > if (!this.is_callback() || this.has_constants()) { >- test(function() { >+ subsetTestByKey(this.name, test, function() { > // This function tests WebIDL as of 2015-11-17. > // https://heycam.github.io/webidl/#interface-object > >@@ -1391,7 +1642,7 @@ IdlInterface.prototype.test_self = function() > > > if (this.has_extended_attribute("LegacyWindowAlias")) { >- test(function() >+ subsetTestByKey(this.name, test, function() > { > var aliasAttrs = this.extAttrs.filter(function(o) { return o.name === "LegacyWindowAlias"; }); > if (aliasAttrs.length > 1) { >@@ -1400,7 +1651,7 @@ IdlInterface.prototype.test_self = function() > if (this.is_callback()) { > throw new IdlHarnessError("Invalid IDL: LegacyWindowAlias extended attribute on non-interface " + this.name); > } >- if (this.exposureSet.indexOf("Window") === -1) { >+ if (!this.exposureSet.has("Window")) { > throw new IdlHarnessError("Invalid IDL: LegacyWindowAlias extended attribute on " + this.name + " which is not exposed in Window"); > } > // TODO: when testing of [NoInterfaceObject] interfaces is supported, >@@ -1443,7 +1694,7 @@ IdlInterface.prototype.test_self = function() > } > // TODO: Test named constructors if I find any interfaces that have them. > >- test(function() >+ subsetTestByKey(this.name, test, function() > { > // This function tests WebIDL as of 2015-01-21. > // https://heycam.github.io/webidl/#interface-object >@@ -1493,8 +1744,6 @@ IdlInterface.prototype.test_self = function() > // object. > // "Otherwise, if A is declared to inherit from another interface, then > // return the interface prototype object for the inherited interface. >- // "Otherwise, if A is declared with the [LegacyArrayClass] extended >- // attribute, then return %ArrayPrototype%. > // "Otherwise, return %ObjectPrototype%. > // > // "In the ECMAScript binding, the DOMException type has some additional >@@ -1517,9 +1766,6 @@ IdlInterface.prototype.test_self = function() > !this.array > .members[inherit_interface] > .has_extended_attribute("NoInterfaceObject"); >- } else if (this.has_extended_attribute('LegacyArrayClass')) { >- inherit_interface = 'Array'; >- inherit_interface_has_interface_object = true; > } else if (this.name === "DOMException") { > inherit_interface = 'Error'; > inherit_interface_has_interface_object = true; >@@ -1575,7 +1821,7 @@ IdlInterface.prototype.test_self = function() > this.test_immutable_prototype("interface prototype object", self[this.name].prototype); > } > >- test(function() >+ subsetTestByKey(this.name, test, function() > { > if (this.is_callback() && !this.has_constants()) { > return; >@@ -1611,7 +1857,7 @@ IdlInterface.prototype.test_self = function() > }.bind(this), this.name + ' interface: existence and properties of interface prototype object\'s "constructor" property'); > > >- test(function() >+ subsetTestByKey(this.name, test, function() > { > if (this.is_callback() && !this.has_constants()) { > return; >@@ -1671,7 +1917,6 @@ IdlInterface.prototype.test_self = function() > this.name + '.prototype should not have @@unscopables'); > } > }.bind(this), this.name + ' interface: existence and properties of interface prototype object\'s @@unscopables property'); >- > }; > > //@} >@@ -1682,7 +1927,7 @@ IdlInterface.prototype.test_immutable_prototype = function(type, obj) > return; > } > >- test(function(t) { >+ subsetTestByKey(this.name, test, function(t) { > var originalValue = Object.getPrototypeOf(obj); > var newValue = Object.create(null); > >@@ -1705,7 +1950,7 @@ IdlInterface.prototype.test_immutable_prototype = function(type, obj) > "of " + type + " - setting to a new value via Object.setPrototypeOf " + > "should throw a TypeError"); > >- test(function(t) { >+ subsetTestByKey(this.name, test, function(t) { > var originalValue = Object.getPrototypeOf(obj); > var newValue = Object.create(null); > >@@ -1732,7 +1977,7 @@ IdlInterface.prototype.test_immutable_prototype = function(type, obj) > "of " + type + " - setting to a new value via __proto__ " + > "should throw a TypeError"); > >- test(function(t) { >+ subsetTestByKey(this.name, test, function(t) { > var originalValue = Object.getPrototypeOf(obj); > var newValue = Object.create(null); > >@@ -1753,7 +1998,7 @@ IdlInterface.prototype.test_immutable_prototype = function(type, obj) > "of " + type + " - setting to a new value via Reflect.setPrototypeOf " + > "should return false"); > >- test(function() { >+ subsetTestByKey(this.name, test, function() { > var originalValue = Object.getPrototypeOf(obj); > > Object.setPrototypeOf(obj, originalValue); >@@ -1761,7 +2006,7 @@ IdlInterface.prototype.test_immutable_prototype = function(type, obj) > "of " + type + " - setting to its original value via Object.setPrototypeOf " + > "should not throw"); > >- test(function() { >+ subsetTestByKey(this.name, test, function() { > var originalValue = Object.getPrototypeOf(obj); > > obj.__proto__ = originalValue; >@@ -1769,7 +2014,7 @@ IdlInterface.prototype.test_immutable_prototype = function(type, obj) > "of " + type + " - setting to its original value via __proto__ " + > "should not throw"); > >- test(function() { >+ subsetTestByKey(this.name, test, function() { > var originalValue = Object.getPrototypeOf(obj); > > assert_true(Reflect.setPrototypeOf(obj, originalValue)); >@@ -1786,7 +2031,7 @@ IdlInterface.prototype.test_member_const = function(member) > throw new IdlHarnessError("Internal error: test_member_const called without any constants"); > } > >- test(function() >+ subsetTestByKey(this.name, test, function() > { > assert_own_property(self, this.name, > "self does not have own property " + format_value(this.name)); >@@ -1812,7 +2057,7 @@ IdlInterface.prototype.test_member_const = function(member) > > // "In addition, a property with the same characteristics must > // exist on the interface prototype object." >- test(function() >+ subsetTestByKey(this.name, test, function() > { > assert_own_property(self, this.name, > "self does not have own property " + format_value(this.name)); >@@ -1843,7 +2088,10 @@ IdlInterface.prototype.test_member_const = function(member) > IdlInterface.prototype.test_member_attribute = function(member) > //@{ > { >- var a_test = async_test(this.name + " interface: attribute " + member.name); >+ if (!shouldRunSubTest(this.name)) { >+ return; >+ } >+ var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: attribute " + member.name); > a_test.step(function() > { > if (this.is_callback() && !this.has_constants()) { >@@ -1861,7 +2109,12 @@ IdlInterface.prototype.test_member_attribute = function(member) > "The interface object must have a property " + > format_value(member.name)); > a_test.done(); >- } else if (this.is_global()) { >+ return; >+ } >+ >+ this.do_member_unscopable_asserts(member); >+ >+ if (this.is_global()) { > assert_own_property(self, member.name, > "The global object must have a property " + > format_value(member.name)); >@@ -1922,20 +2175,18 @@ IdlInterface.prototype.test_member_attribute = function(member) > // since it will call done() on a_test. > this.do_interface_attribute_asserts(self[this.name].prototype, member, a_test); > } >- > } > }.bind(this)); >- >- test(function () { >- this.do_member_unscopable_asserts(member); >- }.bind(this), 'Unscopable handled correctly for ' + member.name + ' property on ' + this.name); > }; > > //@} > IdlInterface.prototype.test_member_operation = function(member) > //@{ > { >- var a_test = async_test(this.name + " interface: operation " + member.name + >+ if (!shouldRunSubTest(this.name)) { >+ return; >+ } >+ var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: operation " + member.name + > "(" + member.arguments.map( > function(m) {return m.idlType.idlType; } ).join(", ") > +")"); >@@ -1991,16 +2242,9 @@ IdlInterface.prototype.test_member_operation = function(member) > "interface prototype object missing non-static operation"); > memberHolderObject = self[this.name].prototype; > } >+ this.do_member_unscopable_asserts(member); > this.do_member_operation_asserts(memberHolderObject, member, a_test); > }.bind(this)); >- >- test(function () { >- this.do_member_unscopable_asserts(member); >- }.bind(this), >- 'Unscopable handled correctly for ' + member.name + "(" + >- member.arguments.map( >- function(m) {return m.idlType.idlType; } ).join(", ") >- + ")" + ' on ' + this.name); > }; > > IdlInterface.prototype.do_member_unscopable_asserts = function(member) >@@ -2051,15 +2295,13 @@ IdlInterface.prototype.do_member_operation_asserts = function(memberHolderObject > // behavior is as follows . . ." > assert_equals(typeof memberHolderObject[member.name], "function", > "property must be a function"); >- // "The value of the Function objectâs âlengthâ property is >- // a Number determined as follows: >- // ". . . >- // "Return the length of the shortest argument list of the >- // entries in S." >- assert_equals(memberHolderObject[member.name].length, >- minOverloadLength(this.members.filter(function(m) { >- return m.type == "operation" && m.name == member.name; >- })), >+ >+ const ctors = this.members.filter(function(m) { >+ return m.type == "operation" && m.name == member.name; >+ }); >+ assert_equals( >+ memberHolderObject[member.name].length, >+ minOverloadLength(ctors), > "property has wrong .length"); > > // Make some suitable arguments >@@ -2119,10 +2361,11 @@ IdlInterface.prototype.add_iterable_members = function(member) > }; > > IdlInterface.prototype.test_to_json_operation = function(memberHolderObject, member) { >- var instanceName = memberHolderObject.constructor.name; >+ var instanceName = memberHolderObject && memberHolderObject.constructor.name >+ || member.name + " object"; > if (member.has_extended_attribute("Default")) { >- var map = this.default_to_json_operation(); >- test(function() { >+ subsetTestByKey(this.name, test, function() { >+ var map = this.default_to_json_operation(); > var json = memberHolderObject.toJSON(); > map.forEach(function(type, k) { > assert_true(k in json, "property " + JSON.stringify(k) + " should be present in the output of " + this.name + ".prototype.toJSON()"); >@@ -2135,7 +2378,7 @@ IdlInterface.prototype.test_to_json_operation = function(memberHolderObject, mem > }, this); > }.bind(this), "Test default toJSON operation of " + instanceName); > } else { >- test(function() { >+ subsetTestByKey(this.name, test, function() { > assert_true(this.array.is_json_type(member.idlType), JSON.stringify(member.idlType) + " is not an appropriate return value for the toJSON operation of " + instanceName); > this.array.assert_type_is(memberHolderObject.toJSON(), member.idlType); > }.bind(this), "Test toJSON operation of " + instanceName); >@@ -2147,8 +2390,8 @@ IdlInterface.prototype.test_member_iterable = function(member) > //@{ > { > var interfaceName = this.name; >- var isPairIterator = member.idlType instanceof Array; >- test(function() >+ var isPairIterator = member.idlType.length === 2; >+ subsetTestByKey(this.name, test, function() > { > var descriptor = Object.getOwnPropertyDescriptor(self[interfaceName].prototype, Symbol.iterator); > assert_true(descriptor.writable, "property should be writable"); >@@ -2158,11 +2401,11 @@ IdlInterface.prototype.test_member_iterable = function(member) > }, "Testing Symbol.iterator property of iterable interface " + interfaceName); > > if (isPairIterator) { >- test(function() { >+ subsetTestByKey(this.name, test, function() { > assert_equals(self[interfaceName].prototype[Symbol.iterator], self[interfaceName].prototype["entries"], "entries method is not the same as @@iterator"); > }, "Testing pair iterable interface " + interfaceName); > } else { >- test(function() { >+ subsetTestByKey(this.name, test, function() { > ["entries", "keys", "values", "forEach", Symbol.Iterator].forEach(function(property) { > assert_equals(self[interfaceName].prototype[property], Array.prototype[property], property + " function is not the same as Array one"); > }); >@@ -2174,7 +2417,7 @@ IdlInterface.prototype.test_member_iterable = function(member) > IdlInterface.prototype.test_member_stringifier = function(member) > //@{ > { >- test(function() >+ subsetTestByKey(this.name, test, function() > { > if (this.is_callback() && !this.has_constants()) { > return; >@@ -2259,7 +2502,7 @@ IdlInterface.prototype.test_members = function() > } > > if (!exposed_in(exposure_set(member, this.exposureSet))) { >- test(function() { >+ subsetTestByKey(this.name, test, function() { > // It's not exposed, so we shouldn't find it anywhere. > assert_false(member.name in self[this.name], > "The interface object must not have a property " + >@@ -2380,7 +2623,7 @@ IdlInterface.prototype.test_primary_interface_of = function(desc, obj, exception > if (!this.has_extended_attribute("NoInterfaceObject") > && (typeof obj != expected_typeof || obj instanceof Object)) > { >- test(function() >+ subsetTestByKey(this.name, test, function() > { > assert_equals(exception, null, "Unexpected exception when evaluating object"); > assert_equals(typeof obj, expected_typeof, "wrong typeof object"); >@@ -2402,7 +2645,7 @@ IdlInterface.prototype.test_primary_interface_of = function(desc, obj, exception > // "The class string of a platform object that implements one or more > // interfaces must be the identifier of the primary interface of the > // platform object." >- test(function() >+ subsetTestByKey(this.name, test, function() > { > assert_equals(exception, null, "Unexpected exception when evaluating object"); > assert_equals(typeof obj, expected_typeof, "wrong typeof object"); >@@ -2420,6 +2663,9 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect > { > // TODO: Indexed and named properties, more checks on interface members > this.already_tested = true; >+ if (!shouldRunSubTest(this.name)) { >+ return; >+ } > > for (var i = 0; i < this.members.length; i++) > { >@@ -2428,14 +2674,15 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect > continue; > } > if (!exposed_in(exposure_set(member, this.exposureSet))) { >- test(function() { >+ subsetTestByKey(this.name, test, function() { >+ assert_equals(exception, null, "Unexpected exception when evaluating object"); > assert_false(member.name in obj); > }.bind(this), this.name + " interface: " + desc + ' must not have property "' + member.name + '"'); > continue; > } > if (member.type == "attribute" && member.isUnforgeable) > { >- var a_test = async_test(this.name + " interface: " + desc + ' must have own property "' + member.name + '"'); >+ var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: " + desc + ' must have own property "' + member.name + '"'); > a_test.step(function() { > assert_equals(exception, null, "Unexpected exception when evaluating object"); > assert_equals(typeof obj, expected_typeof, "wrong typeof object"); >@@ -2447,7 +2694,7 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect > member.name && > member.isUnforgeable) > { >- var a_test = async_test(this.name + " interface: " + desc + ' must have own property "' + member.name + '"'); >+ var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: " + desc + ' must have own property "' + member.name + '"'); > a_test.step(function() > { > assert_equals(exception, null, "Unexpected exception when evaluating object"); >@@ -2467,7 +2714,7 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect > { > described_name += "(" + member.arguments.map(arg => arg.idlType.idlType).join(", ") + ")"; > } >- test(function() >+ subsetTestByKey(this.name, test, function() > { > assert_equals(exception, null, "Unexpected exception when evaluating object"); > assert_equals(typeof obj, expected_typeof, "wrong typeof object"); >@@ -2513,7 +2760,7 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect > // TODO: Test passing arguments of the wrong type. > if (member.type == "operation" && member.name && member.arguments.length) > { >- var a_test = async_test( this.name + " interface: calling " + member.name + >+ var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: calling " + member.name + > "(" + member.arguments.map(function(m) { return m.idlType.idlType; }).join(", ") + > ") on " + desc + " with too few arguments must throw TypeError"); > a_test.step(function() >@@ -2804,5 +3051,198 @@ function IdlTypedef(obj) > > IdlTypedef.prototype = Object.create(IdlObject.prototype); > >+/// IdlNamespace /// >+function IdlNamespace(obj) >+//@{ >+{ >+ this.name = obj.name; >+ this.extAttrs = obj.extAttrs; >+ this.untested = obj.untested; >+ /** A back-reference to our IdlArray. */ >+ this.array = obj.array; >+ >+ /** An array of IdlInterfaceMembers. */ >+ this.members = obj.members.map(m => new IdlInterfaceMember(m)); >+} >+//@} >+ >+IdlNamespace.prototype = Object.create(IdlObject.prototype); >+ >+IdlNamespace.prototype.do_member_operation_asserts = function (memberHolderObject, member, a_test) >+//@{ >+{ >+ var desc = Object.getOwnPropertyDescriptor(memberHolderObject, member.name); >+ >+ assert_false("get" in desc, "property should not have a getter"); >+ assert_false("set" in desc, "property should not have a setter"); >+ assert_equals( >+ desc.writable, >+ !member.isUnforgeable, >+ "property should be writable if and only if not unforgeable"); >+ assert_true(desc.enumerable, "property should be enumerable"); >+ assert_equals( >+ desc.configurable, >+ !member.isUnforgeable, >+ "property should be configurable if and only if not unforgeable"); >+ >+ assert_equals( >+ typeof memberHolderObject[member.name], >+ "function", >+ "property must be a function"); >+ >+ assert_equals( >+ memberHolderObject[member.name].length, >+ minOverloadLength(this.members.filter(function(m) { >+ return m.type == "operation" && m.name == member.name; >+ })), >+ "operation has wrong .length"); >+ a_test.done(); >+} >+//@} >+ >+IdlNamespace.prototype.test_member_operation = function(member) >+//@{ >+{ >+ if (!shouldRunSubTest(this.name)) { >+ return; >+ } >+ var args = member.arguments.map(function(a) { >+ var s = a.idlType.idlType; >+ if (a.variadic) { >+ s += '...'; >+ } >+ return s; >+ }).join(", "); >+ var a_test = subsetTestByKey( >+ this.name, >+ async_test, >+ this.name + ' namespace: operation ' + member.name + '(' + args + ')'); >+ a_test.step(function() { >+ assert_own_property( >+ self[this.name], >+ member.name, >+ 'namespace object missing operation ' + format_value(member.name)); >+ >+ this.do_member_operation_asserts(self[this.name], member, a_test); >+ }.bind(this)); >+}; >+//@} >+ >+IdlNamespace.prototype.test_member_attribute = function (member) >+//@{ >+{ >+ if (!shouldRunSubTest(this.name)) { >+ return; >+ } >+ var a_test = subsetTestByKey( >+ this.name, >+ async_test, >+ this.name + ' namespace: attribute ' + member.name); >+ a_test.step(function() >+ { >+ assert_own_property( >+ self[this.name], >+ member.name, >+ this.name + ' does not have property ' + format_value(member.name)); >+ >+ var desc = Object.getOwnPropertyDescriptor(self[this.name], member.name); >+ assert_equals(desc.set, undefined, "setter must be undefined for namespace members"); >+ a_test.done(); >+ }.bind(this)); >+}; >+//@} >+ >+IdlNamespace.prototype.test = function () >+//@{ >+{ >+ /** >+ * TODO(lukebjerring): Assert: >+ * - "Note that unlike interfaces or dictionaries, namespaces do not create types." >+ * - "Of the extended attributes defined in this specification, only the >+ * [Exposed] and [SecureContext] extended attributes are applicable to namespaces." >+ * - "Namespaces must be annotated with the [Exposed] extended attribute." >+ */ >+ >+ for (const v of Object.values(this.members)) { >+ switch (v.type) { >+ >+ case 'operation': >+ this.test_member_operation(v); >+ break; >+ >+ case 'attribute': >+ this.test_member_attribute(v); >+ break; >+ >+ default: >+ throw 'Invalid namespace member ' + v.name + ': ' + v.type + ' not supported'; >+ } >+ }; >+}; >+//@} >+ > }()); >+ >+/** >+ * idl_test is a promise_test wrapper that handles the fetching of the IDL, >+ * avoiding repetitive boilerplate. >+ * >+ * @param {String|String[]} srcs Spec name(s) for source idl files (fetched from >+ * /interfaces/{name}.idl). >+ * @param {String|String[]} deps Spec name(s) for dependency idl files (fetched >+ * from /interfaces/{name}.idl). Order is important - dependencies from >+ * each source will only be included if they're already know to be a >+ * dependency (i.e. have already been seen). >+ * @param {Function} setup_func Function for extra setup of the idl_array, such >+ * as adding objects. Do not call idl_array.test() in the setup; it is >+ * called by this function (idl_test). >+ */ >+function idl_test(srcs, deps, idl_setup_func) { >+ return promise_test(function (t) { >+ var idl_array = new IdlArray(); >+ srcs = (srcs instanceof Array) ? srcs : [srcs] || []; >+ deps = (deps instanceof Array) ? deps : [deps] || []; >+ var setup_error = null; >+ return Promise.all( >+ srcs.concat(deps).map(function(spec) { >+ return fetch_spec(spec); >+ })) >+ .then(function(idls) { >+ for (var i = 0; i < srcs.length; i++) { >+ idl_array.add_idls(idls[i]); >+ } >+ for (var i = srcs.length; i < srcs.length + deps.length; i++) { >+ idl_array.add_dependency_idls(idls[i]); >+ } >+ }) >+ .then(function() { >+ if (idl_setup_func) { >+ return idl_setup_func(idl_array, t); >+ } >+ }) >+ .catch(function(e) { setup_error = e || 'IDL setup failed.'; }) >+ .then(function () { >+ var error = setup_error; >+ try { >+ idl_array.test(); // Test what we can. >+ } catch (e) { >+ // If testing fails hard here, the original setup error >+ // is more likely to be the real cause. >+ error = error || e; >+ } >+ if (error) { >+ throw error; >+ } >+ }); >+ }, 'idl_test setup'); >+} >+ >+/** >+ * fetch_spec is a shorthand for a Promise that fetches the spec's content. >+ */ >+function fetch_spec(spec) { >+ return fetch('/interfaces/' + spec + '.idl').then(function (r) { >+ return r.text(); >+ }); >+} > // vim: set expandtab shiftwidth=4 tabstop=4 foldmarker=@{,@} foldmethod=marker: >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/CHANGELOG.md b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/CHANGELOG.md >new file mode 100644 >index 0000000000000000000000000000000000000000..91e22275e0700e1f553148c7f5414d7ccaf0fe33 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/CHANGELOG.md >@@ -0,0 +1,292 @@ >+# Change Log >+ >+## [v10.2.1](https://github.com/w3c/webidl2.js/tree/v10.2.1) (2018-03-09) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v10.2.0...v10.2.1) >+ >+**Merged pull requests:** >+ >+- Optimise tokenisation and whitespace skipping [\#139](https://github.com/w3c/webidl2.js/pull/139) ([ricea](https://github.com/ricea)) >+- refactor: small syntax changes [\#137](https://github.com/w3c/webidl2.js/pull/137) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v10.2.0](https://github.com/w3c/webidl2.js/tree/v10.2.0) (2018-01-30) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v10.1.0...v10.2.0) >+ >+**Merged pull requests:** >+ >+- Type on union idlType [\#135](https://github.com/w3c/webidl2.js/pull/135) ([saschanaz](https://github.com/saschanaz)) >+- feat: add argument/return type [\#134](https://github.com/w3c/webidl2.js/pull/134) ([saschanaz](https://github.com/saschanaz)) >+- feat: add dictionary/typedef-type [\#133](https://github.com/w3c/webidl2.js/pull/133) ([saschanaz](https://github.com/saschanaz)) >+- feat: add const-type for idlTypes [\#132](https://github.com/w3c/webidl2.js/pull/132) ([saschanaz](https://github.com/saschanaz)) >+- feat: add types on idlTypes [\#131](https://github.com/w3c/webidl2.js/pull/131) ([saschanaz](https://github.com/saschanaz)) >+- Auto acquisition for parser result changes [\#130](https://github.com/w3c/webidl2.js/pull/130) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v10.1.0](https://github.com/w3c/webidl2.js/tree/v10.1.0) (2018-01-19) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v10.0.0...v10.1.0) >+ >+**Closed issues:** >+ >+- Support `raises` and `setraises` [\#128](https://github.com/w3c/webidl2.js/issues/128) >+- Support `legacycaller` [\#127](https://github.com/w3c/webidl2.js/issues/127) >+- Improve "No semicolon after enum" message [\#119](https://github.com/w3c/webidl2.js/issues/119) >+ >+**Merged pull requests:** >+ >+- Let error messages include the current definition name [\#129](https://github.com/w3c/webidl2.js/pull/129) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v10.0.0](https://github.com/w3c/webidl2.js/tree/v10.0.0) (2017-12-20) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v9.0.0...v10.0.0) >+ >+**Closed issues:** >+ >+- Always return an array for idlType, etc. [\#113](https://github.com/w3c/webidl2.js/issues/113) >+- Maintain writer.js or not? [\#109](https://github.com/w3c/webidl2.js/issues/109) >+ >+**Merged pull requests:** >+ >+- Remove typeExtAttrs from docs [\#124](https://github.com/w3c/webidl2.js/pull/124) ([saschanaz](https://github.com/saschanaz)) >+- Remove iterator documentation [\#123](https://github.com/w3c/webidl2.js/pull/123) ([saschanaz](https://github.com/saschanaz)) >+- Maintain writer.js [\#122](https://github.com/w3c/webidl2.js/pull/122) ([saschanaz](https://github.com/saschanaz)) >+- BREAKING CHANGE: remove deprecated iterator operation [\#121](https://github.com/w3c/webidl2.js/pull/121) ([saschanaz](https://github.com/saschanaz)) >+- Use for-of on tests [\#120](https://github.com/w3c/webidl2.js/pull/120) ([saschanaz](https://github.com/saschanaz)) >+- docs\(README\): iterables ildType is always array [\#118](https://github.com/w3c/webidl2.js/pull/118) ([marcoscaceres](https://github.com/marcoscaceres)) >+ >+## [v9.0.0](https://github.com/w3c/webidl2.js/tree/v9.0.0) (2017-11-30) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v8.1.0...v9.0.0) >+ >+**Closed issues:** >+ >+- Code quality [\#116](https://github.com/w3c/webidl2.js/issues/116) >+- Unable to parse HTMLAllCollection interface [\#114](https://github.com/w3c/webidl2.js/issues/114) >+- Add support for mixin syntax [\#112](https://github.com/w3c/webidl2.js/issues/112) >+- Whitespace issues [\#111](https://github.com/w3c/webidl2.js/issues/111) >+ >+**Merged pull requests:** >+ >+- Consistent array type for iterable.idlType [\#117](https://github.com/w3c/webidl2.js/pull/117) ([saschanaz](https://github.com/saschanaz)) >+- Revert "chore: drop Node 6 support \(\#102\)" [\#115](https://github.com/w3c/webidl2.js/pull/115) ([TimothyGu](https://github.com/TimothyGu)) >+ >+## [v8.1.0](https://github.com/w3c/webidl2.js/tree/v8.1.0) (2017-11-03) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v8.0.1...v8.1.0) >+ >+**Closed issues:** >+ >+- Extended Attributes `rhs` should always be there [\#96](https://github.com/w3c/webidl2.js/issues/96) >+ >+**Merged pull requests:** >+ >+- Always add rhs property [\#110](https://github.com/w3c/webidl2.js/pull/110) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v8.0.1](https://github.com/w3c/webidl2.js/tree/v8.0.1) (2017-11-03) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v8.0.0...v8.0.1) >+ >+**Fixed bugs:** >+ >+- Comment order parsing bug [\#107](https://github.com/w3c/webidl2.js/issues/107) >+ >+**Merged pull requests:** >+ >+- Remove m postfix from all\_ws\(\) [\#108](https://github.com/w3c/webidl2.js/pull/108) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v8.0.0](https://github.com/w3c/webidl2.js/tree/v8.0.0) (2017-11-03) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v7.0.0...v8.0.0) >+ >+**Closed issues:** >+ >+- Remove creators support [\#100](https://github.com/w3c/webidl2.js/issues/100) >+- Add mixin support [\#92](https://github.com/w3c/webidl2.js/issues/92) >+ >+**Merged pull requests:** >+ >+- Support mixins + includes statements [\#105](https://github.com/w3c/webidl2.js/pull/105) ([saschanaz](https://github.com/saschanaz)) >+- chore: drop Node 6 support [\#102](https://github.com/w3c/webidl2.js/pull/102) ([marcoscaceres](https://github.com/marcoscaceres)) >+- BREAKING CHANGE: drop creator support [\#101](https://github.com/w3c/webidl2.js/pull/101) ([saschanaz](https://github.com/saschanaz)) >+- Normalize some whitespace to pass wpt's lint [\#99](https://github.com/w3c/webidl2.js/pull/99) ([foolip](https://github.com/foolip)) >+ >+## [v7.0.0](https://github.com/w3c/webidl2.js/tree/v7.0.0) (2017-10-27) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v6.1.0...v7.0.0) >+ >+**Closed issues:** >+ >+- Type conversion on default values is destructive [\#94](https://github.com/w3c/webidl2.js/issues/94) >+- extended attribute structure missing type [\#89](https://github.com/w3c/webidl2.js/issues/89) >+ >+**Merged pull requests:** >+ >+- BREAKING CHANGE: argument + default types should be string [\#95](https://github.com/w3c/webidl2.js/pull/95) ([marcoscaceres](https://github.com/marcoscaceres)) >+ >+## [v6.1.0](https://github.com/w3c/webidl2.js/tree/v6.1.0) (2017-10-23) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v6.0.1...v6.1.0) >+ >+**Merged pull requests:** >+ >+- feat: give extended attributes a type [\#90](https://github.com/w3c/webidl2.js/pull/90) ([marcoscaceres](https://github.com/marcoscaceres)) >+ >+## [v6.0.1](https://github.com/w3c/webidl2.js/tree/v6.0.1) (2017-10-18) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v6.0.0...v6.0.1) >+ >+**Closed issues:** >+ >+- Enum values should be objects [\#86](https://github.com/w3c/webidl2.js/issues/86) >+ >+**Merged pull requests:** >+ >+- Use ES2015 syntax for tests [\#88](https://github.com/w3c/webidl2.js/pull/88) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v6.0.0](https://github.com/w3c/webidl2.js/tree/v6.0.0) (2017-10-17) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v5.0.0...v6.0.0) >+ >+**Merged pull requests:** >+ >+- BREAKING CHANGE: ret enum value as object [\#87](https://github.com/w3c/webidl2.js/pull/87) ([marcoscaceres](https://github.com/marcoscaceres)) >+ >+## [v5.0.0](https://github.com/w3c/webidl2.js/tree/v5.0.0) (2017-10-17) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v4.2.0...v5.0.0) >+ >+**Closed issues:** >+ >+- Unable to parse annotated types in generics [\#83](https://github.com/w3c/webidl2.js/issues/83) >+- Drop support for Node 4, move to 6 LTS [\#82](https://github.com/w3c/webidl2.js/issues/82) >+ >+**Merged pull requests:** >+ >+- BREAKING CHANGE: Use ES2015 syntax [\#84](https://github.com/w3c/webidl2.js/pull/84) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v4.2.0](https://github.com/w3c/webidl2.js/tree/v4.2.0) (2017-10-16) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v4.1.0...v4.2.0) >+ >+**Closed issues:** >+ >+- Remove legacy caller support [\#78](https://github.com/w3c/webidl2.js/issues/78) >+- Should report error for using duplicate names [\#77](https://github.com/w3c/webidl2.js/issues/77) >+ >+**Merged pull requests:** >+ >+- Check duplicated names [\#80](https://github.com/w3c/webidl2.js/pull/80) ([saschanaz](https://github.com/saschanaz)) >+- Remove legacycaller [\#79](https://github.com/w3c/webidl2.js/pull/79) ([saschanaz](https://github.com/saschanaz)) >+- Add "sequence" property to IDL Type AST definition [\#76](https://github.com/w3c/webidl2.js/pull/76) ([lerouche](https://github.com/lerouche)) >+ >+## [v4.1.0](https://github.com/w3c/webidl2.js/tree/v4.1.0) (2017-07-04) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v4.0.0...v4.1.0) >+ >+**Closed issues:** >+ >+- Parsing error for annonated inner types of generic types [\#71](https://github.com/w3c/webidl2.js/issues/71) >+ >+**Merged pull requests:** >+ >+- Support TypeWithExtendedAttributes on generics [\#75](https://github.com/w3c/webidl2.js/pull/75) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v4.0.0](https://github.com/w3c/webidl2.js/tree/v4.0.0) (2017-06-27) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v3.0.2...v4.0.0) >+ >+**Closed issues:** >+ >+- Remove serializer-related productions [\#73](https://github.com/w3c/webidl2.js/issues/73) >+- Records don't seem to be working right [\#72](https://github.com/w3c/webidl2.js/issues/72) >+- Document namespace member output [\#59](https://github.com/w3c/webidl2.js/issues/59) >+ >+**Merged pull requests:** >+ >+- BREAKING CHANGE: remove serializers \(closes \#73\) [\#74](https://github.com/w3c/webidl2.js/pull/74) ([marcoscaceres](https://github.com/marcoscaceres)) >+- Add documentation for namespaces [\#70](https://github.com/w3c/webidl2.js/pull/70) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v3.0.2](https://github.com/w3c/webidl2.js/tree/v3.0.2) (2017-05-29) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v3.0.1...v3.0.2) >+ >+**Closed issues:** >+ >+- Whitespace issues [\#64](https://github.com/w3c/webidl2.js/issues/64) >+ >+**Merged pull requests:** >+ >+- Test for latest LTS/stable node versions [\#69](https://github.com/w3c/webidl2.js/pull/69) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v3.0.1](https://github.com/w3c/webidl2.js/tree/v3.0.1) (2017-05-18) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v2.4.0...v3.0.1) >+ >+**Closed issues:** >+ >+- Is array syntax dead? [\#66](https://github.com/w3c/webidl2.js/issues/66) >+- Remove exceptions support [\#65](https://github.com/w3c/webidl2.js/issues/65) >+ >+**Merged pull requests:** >+ >+- Fix whitespace error on parsing extended attributes [\#68](https://github.com/w3c/webidl2.js/pull/68) ([saschanaz](https://github.com/saschanaz)) >+- Remove deprecated IDL arrays and exceptions [\#67](https://github.com/w3c/webidl2.js/pull/67) ([saschanaz](https://github.com/saschanaz)) >+ >+## [v2.4.0](https://github.com/w3c/webidl2.js/tree/v2.4.0) (2017-04-12) >+[Full Changelog](https://github.com/w3c/webidl2.js/compare/v2.1.0...v2.4.0) >+ >+**Closed issues:** >+ >+- Add support for Annotated Types [\#60](https://github.com/w3c/webidl2.js/issues/60) >+- Question: Convert WebIDL -\> Javascript [\#56](https://github.com/w3c/webidl2.js/issues/56) >+- Get Robin to give us push permissions on npm [\#54](https://github.com/w3c/webidl2.js/issues/54) >+- Add support for records [\#53](https://github.com/w3c/webidl2.js/issues/53) >+- module not supported? [\#52](https://github.com/w3c/webidl2.js/issues/52) >+- Add support for namespaces [\#51](https://github.com/w3c/webidl2.js/issues/51) >+- Export is not AMD compatible [\#48](https://github.com/w3c/webidl2.js/issues/48) >+- Can't represent large constants [\#21](https://github.com/w3c/webidl2.js/issues/21) >+ >+**Merged pull requests:** >+ >+- Update webidl2.js [\#63](https://github.com/w3c/webidl2.js/pull/63) ([tqeto](https://github.com/tqeto)) >+- Remove support for MapClass \(no longer valid in WebIDL\) [\#62](https://github.com/w3c/webidl2.js/pull/62) ([dontcallmedom](https://github.com/dontcallmedom)) >+- Add support for annotated types [\#61](https://github.com/w3c/webidl2.js/pull/61) ([dontcallmedom](https://github.com/dontcallmedom)) >+- Support namespaces [\#58](https://github.com/w3c/webidl2.js/pull/58) ([saschanaz](https://github.com/saschanaz)) >+- Add support for records [\#57](https://github.com/w3c/webidl2.js/pull/57) ([TimothyGu](https://github.com/TimothyGu)) >+- Refactor [\#50](https://github.com/w3c/webidl2.js/pull/50) ([marcoscaceres](https://github.com/marcoscaceres)) >+- feat\(lib\): add AMD export support \(closes \#48\) [\#49](https://github.com/w3c/webidl2.js/pull/49) ([marcoscaceres](https://github.com/marcoscaceres)) >+ >+## [v2.1.0](https://github.com/w3c/webidl2.js/tree/v2.1.0) (2016-08-12) >+**Closed issues:** >+ >+- Exception when parsing test/syntax/idl/typedef.widl [\#46](https://github.com/w3c/webidl2.js/issues/46) >+- Wrong jsondiffpatch location [\#42](https://github.com/w3c/webidl2.js/issues/42) >+- 'npm install' fails on building microtime [\#40](https://github.com/w3c/webidl2.js/issues/40) >+- Can't represent union types in typedefs [\#38](https://github.com/w3c/webidl2.js/issues/38) >+- tokenise\(\) assumes a specific property enumeration order [\#27](https://github.com/w3c/webidl2.js/issues/27) >+- Add support for iterable\<\>, maplike\<\>, setlike\<\> declarations [\#24](https://github.com/w3c/webidl2.js/issues/24) >+- WebIDL2 fails to parse `attribute Promise\<DOMString\>\[\] baz` [\#19](https://github.com/w3c/webidl2.js/issues/19) >+- Support for ExtendedAttributeIdentList \(current editor's draft\) [\#18](https://github.com/w3c/webidl2.js/issues/18) >+- No Licensing Information [\#17](https://github.com/w3c/webidl2.js/issues/17) >+- how to regenerate w3c idl files ? [\#14](https://github.com/w3c/webidl2.js/issues/14) >+- What is lib/writer.js [\#13](https://github.com/w3c/webidl2.js/issues/13) >+- Numerous tests are failing [\#7](https://github.com/w3c/webidl2.js/issues/7) >+- Add support for missing types in ServiceWorker [\#5](https://github.com/w3c/webidl2.js/issues/5) >+- How can I parse just a function? [\#3](https://github.com/w3c/webidl2.js/issues/3) >+- Parser throws on nullable array of nullable array [\#2](https://github.com/w3c/webidl2.js/issues/2) >+- Parser throws on nullable array of any [\#1](https://github.com/w3c/webidl2.js/issues/1) >+ >+**Merged pull requests:** >+ >+- Fix "default": undefined [\#47](https://github.com/w3c/webidl2.js/pull/47) ([mkwtys](https://github.com/mkwtys)) >+- Replace expect.js with expct [\#45](https://github.com/w3c/webidl2.js/pull/45) ([halton](https://github.com/halton)) >+- Correct jsondiffpatch location. [\#44](https://github.com/w3c/webidl2.js/pull/44) ([halton](https://github.com/halton)) >+- Bump microtime to 2.1.1 [\#43](https://github.com/w3c/webidl2.js/pull/43) ([halton](https://github.com/halton)) >+- Expand writer support [\#39](https://github.com/w3c/webidl2.js/pull/39) ([markandrus](https://github.com/markandrus)) >+- Accept wider \(but still incomplete\) set of allowed syntax for extended attributes [\#37](https://github.com/w3c/webidl2.js/pull/37) ([mlogan](https://github.com/mlogan)) >+- Add test for callback with multiple arguments. [\#36](https://github.com/w3c/webidl2.js/pull/36) ([tobie](https://github.com/tobie)) >+- Iterables [\#34](https://github.com/w3c/webidl2.js/pull/34) ([motiz88](https://github.com/motiz88)) >+- Allow trailing comma in enum value lists, per spec [\#33](https://github.com/w3c/webidl2.js/pull/33) ([motiz88](https://github.com/motiz88)) >+- Allow typedefs within interfaces \(behind an opt-in flag\) [\#32](https://github.com/w3c/webidl2.js/pull/32) ([motiz88](https://github.com/motiz88)) >+- In draft [\#31](https://github.com/w3c/webidl2.js/pull/31) ([othree](https://github.com/othree)) >+- Add support for extended attributes identifier lists [\#29](https://github.com/w3c/webidl2.js/pull/29) ([tobie](https://github.com/tobie)) >+- Make `attribute Promise\<T\>\[\] attr;` work. [\#26](https://github.com/w3c/webidl2.js/pull/26) ([jyasskin](https://github.com/jyasskin)) >+- Parse required dictionary fields. [\#25](https://github.com/w3c/webidl2.js/pull/25) ([jyasskin](https://github.com/jyasskin)) >+- Define the WebIDL2 property on self rather than window. [\#23](https://github.com/w3c/webidl2.js/pull/23) ([Ms2ger](https://github.com/Ms2ger)) >+- Teach WebIDL2 to parse \[\] default values. [\#22](https://github.com/w3c/webidl2.js/pull/22) ([jyasskin](https://github.com/jyasskin)) >+- Support ID list in extended attributes [\#20](https://github.com/w3c/webidl2.js/pull/20) ([othree](https://github.com/othree)) >+- Make sure that `sequence` property of idl types is set to false if the type is actually `sequence`. [\#16](https://github.com/w3c/webidl2.js/pull/16) ([tobie](https://github.com/tobie)) >+- Parametrized [\#15](https://github.com/w3c/webidl2.js/pull/15) ([tobie](https://github.com/tobie)) >+- Add promise support [\#12](https://github.com/w3c/webidl2.js/pull/12) ([tobie](https://github.com/tobie)) >+- Remove broken coverage support from travis for now. [\#11](https://github.com/w3c/webidl2.js/pull/11) ([tobie](https://github.com/tobie)) >+- Add support for \[MapClass\(type, type\)\]. [\#10](https://github.com/w3c/webidl2.js/pull/10) ([tobie](https://github.com/tobie)) >+- Incorporate tests from widlproc\[1\] and remove dependency on said project. [\#9](https://github.com/w3c/webidl2.js/pull/9) ([tobie](https://github.com/tobie)) >+- README incorrectly recommended updating the widlproc submodule. [\#8](https://github.com/w3c/webidl2.js/pull/8) ([tobie](https://github.com/tobie)) >+- Fix bug where instrumented version of webidl2 was loaded. [\#6](https://github.com/w3c/webidl2.js/pull/6) ([tobie](https://github.com/tobie)) >+- Use https:// instead of git:// [\#4](https://github.com/w3c/webidl2.js/pull/4) ([Manishearth](https://github.com/Manishearth)) >+ >+ >+ >+\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/README.md b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/README.md >index 5d128ed27ca87cc76f15caeb63c9ceec0d8aa790..9a8f3f8e9c1dfbe897e8a6d8267cf89ec00cb20a 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/README.md >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/README.md >@@ -1,7 +1,7 @@ > > # WebIDL 2 > >-[](http://badge.fury.io/js/webidl2) >+[](http://badge.fury.io/js/webidl2) > > ## Purpose > >@@ -10,26 +10,6 @@ you don't know what that is, then you probably don't need it. It is meant to be > both in Node and in the browser (the parser likely works in other JS environments, but > not the test suite). > >-### What of v1? >- >-There was a previous incarnation of this project. I had written it in the most quick >-and dirty manner that was handy because I required it as a dependency in an experiment. >-As these things tend to happen, some people started using that, which then had to be >-maintained. But since it was not built on solid foundations, it was painful to keep >-up to date with the specification, which is a bit of a moving target. >- >-So I started from scratch. Compared to the previous version (which used a parser generator) >-this one is about 6x less code (which translates to 4x smaller minified or 2x smaller >-minizipped) and 4x faster. The test suite is reasonably complete (95% coverage), much more >-than previously. This version is up to date with WebIDL, rather than a couple years' behind. >-It also has *far* better error reporting. >- >-The AST you get from parsing is very similar to the one you got in v1, but some adjustments >-have been made in order to be more systematic, and to map better to what's actually in the spec >-now. If you used v1, you will need to tweak your code but the result ought to be simpler and >-you ought to be able to be a fair bit less defensive against irregularities in the way >-information is represented. >- > ## Installation > > Just the usual. For Node: >@@ -46,7 +26,6 @@ In the browser: > > ## Documentation > >- > The API to WebIDL2 is trivial: you parse a string of WebIDL and it returns a syntax tree. > > ### Parsing >@@ -66,23 +45,6 @@ In the browser: > </script> > ``` > >-### Advanced Parsing >- >-`parse()` can optionally accept a second parameter, an options object, which can be used to >-modify parsing behavior. >- >-The following options are recognized: >-```JS >-{ >- allowNestedTypedefs: false >-} >-``` >- >-And their meanings are as follows: >- >-* `allowNestedTypedefs`: Boolean indicating whether the parser should accept `typedef`s as valid members of `interface`s. >-This is non-standard syntax and therefore the default is `false`. >- > ### Errors > > When there is a syntax error in the WebIDL, it throws an exception object with the following >@@ -103,7 +65,7 @@ The `parse()` method returns a tree object representing the parse tree of the ID > Comment and white space are not represented in the AST. > > The root of this object is always an array of definitions (where definitions are >-any of interfaces, exceptions, callbacks, etc. â anything that can occur at the root >+any of interfaces, dictionaries, callbacks, etc. â anything that can occur at the root > of the IDL). > > ### IDL Type >@@ -114,18 +76,18 @@ attached to a field called `idlType`: > > ```JS > { >- "array": false, >+ "type": "attribute-type", > "generic": null, >- "idlType": "void", >+ "idlType": "unsigned short", > "nullable": false, > "union": false, >+ "extAttrs": [...] > } > ``` > > Where the fields are as follows: > >-* `array`: Either `false` to indicate that it is not an array, or a number for the level of >- array nesting. >+* `type`: String indicating where this type is used. Can be `null` if not applicable. > * `generic`: String indicating the generic type (e.g. "Promise", "sequence"). `null` > otherwise. > * `idlType`: Can be different things depending on context. In most cases, this will just >@@ -135,41 +97,10 @@ Where the fields are as follows: > description for the type in the sequence, the eventual value of the promise, etc. > * `nullable`: Boolean indicating whether this is nullable or not. > * `union`: Boolean indicating whether this is a union type or not. >- >-#### Interactions between `nullable` and `array` >- >-A more complex data model for our AST would likely represent `Foo[][][]` as a series of >-nested types four levels deep with three anonymous array types eventually containing a >-`Foo` type. But experience shows that such structures are cumbersome to use, and so we >-have a simpler model in which the depth of the array is specified with the `array` field. >- >-This is all fine and well, and in the vast majority of cases is actually simpler. But it >-does run afoul of cases in which it is necessary to distinguish between `Foo[][][]?`, >-`Foo?[][][]`, `Foo[][]?[]`, or even `Foo?[]?[]?[]?`. >- >-For this, when a type is an array type an additional `nullableArray` field is made available >-that captures which of the arrays contain nullable elements. It contains booleans that are >-true if the given array depth contains nullable elements, and false otherwise (mapping that to >-the syntax, and item is true if there is a `?` preceding the `[]`). These examples ought to >-clarify the model: >- >- Foo[][][]? >- -> nullable: true >- -> nullableArray: [false, false, false] >- Foo?[][][] >- -> nullable: false >- -> nullableArray: [true, false, false] >- Foo[][]?[] >- -> nullable: false >- -> nullableArray: [false, false, true] >- Foo?[]?[]?[]? >- -> nullable: true >- -> nullableArray: [true, true, true] >- >-Of particular importance, please note that the overall type is only `nullable` if there is >-a `?` at the end. >+* `extAttrs`: A list of [extended attributes](#extended-attributes). > > ### Interface >+ > Interfaces look like this: > > ```JS >@@ -193,7 +124,7 @@ Interfaces look like this: > The fields are as follows: > > * `type`: Always "interface". >-* `name`: The name of the interface >+* `name`: The name of the interface. > * `partial`: A boolean indicating whether it's a partial interface. > * `members`: An array of interface members (attributes, operations, etc.). Empty if there are none. > * `inheritance`: A string giving the name of an interface this one inherits from, `null` otherwise. >@@ -201,6 +132,56 @@ The fields are as follows: > sense. > * `extAttrs`: A list of [extended attributes](#extended-attributes). > >+### Interface mixins >+ >+Interfaces mixins look like this: >+ >+```JS >+{ >+ "type": "interface mixin", >+ "name": "Animal", >+ "partial": false, >+ "members": [...], >+ "extAttrs": [...] >+}, { >+ "type": "interface mixin", >+ "name": "Human", >+ "partial": false, >+ "members": [...], >+ "extAttrs": [...] >+} >+``` >+ >+The fields are as follows: >+ >+* `type`: Always "interface mixin". >+* `name`: The name of the interface mixin. >+* `partial`: A boolean indicating whether it's a partial interface mixin. >+* `members`: An array of interface members (attributes, operations, etc.). Empty if there are none. >+* `extAttrs`: A list of [extended attributes](#extended-attributes). >+ >+### Namespace >+ >+Namespaces look like this: >+ >+```JS >+{ >+ "type": "namespace", >+ "name": "Console", >+ "partial": false, >+ "members": [...], >+ "extAttrs": [...] >+} >+``` >+ >+The fields are as follows: >+ >+* `type`: Always "namespace". >+* `name`: The name of the namespace. >+* `partial`: A boolean indicating whether it's a partial namespace. >+* `members`: An array of namespace members (attributes and operations). Empty if there are none. >+* `extAttrs`: A list of [extended attributes](#extended-attributes). >+ > ### Callback Interfaces > > These are captured by the same structure as [Interfaces](#interface) except that >@@ -215,12 +196,13 @@ A callback looks like this: > "type": "callback", > "name": "AsyncOperationCallback", > "idlType": { >+ "type": "return-type", > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "arguments": [...], > "extAttrs": [] >@@ -249,12 +231,13 @@ A dictionary looks like this: > "name": "fillPattern", > "required": false, > "idlType": { >+ "type": "dictionary-type", > "sequence": false, > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [...] > }, > "extAttrs": [], > "default": { >@@ -285,47 +268,6 @@ All the members are fields as follows: > * `extAttrs`: A list of [extended attributes](#extended-attributes). > * `default`: A [default value](#default-and-const-values), absent if there is none. > >-### Exception >- >-An exception looks like this: >- >-```JS >-{ >- "type": "exception", >- "name": "HierarchyRequestError", >- "members": [{ >- "type": "field", >- "name": "code", >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "unsigned short" >- }, >- "extAttrs": [] >- }], >- "inheritance": "DOMException", >- "extAttrs": [] >-} >-``` >- >-The fields are as follows: >- >-* `type`: Always "exception". >-* `name`: The exception name. >-* `members`: An array of members (constants or fields, where fields are described below). >-* `inheritance`: A string indicating which exception is being inherited from, `null` otherwise. >-* `extAttrs`: A list of [extended attributes](#extended-attributes). >- >-Members that aren't [constants](#constants) have the following fields: >- >-* `type`: Always "field". >-* `name`: The field's name. >-* `idlType`: An [IDL Type](#idl-type) describing what field's type. >-* `extAttrs`: A list of [extended attributes](#extended-attributes). >- > ### Enum > > An enum looks like this: >@@ -335,9 +277,9 @@ An enum looks like this: > "type": "enum", > "name": "MealType", > "values": [ >- "rice", >- "noodles", >- "other" >+ { "type": "string", "value": "rice" }, >+ { "type": "string", "value": "noodles" }, >+ { "type": "string", "value": "other" } > ], > "extAttrs": [] > } >@@ -347,7 +289,7 @@ The fields are as follows: > > * `type`: Always "enum". > * `name`: The enum's name. >-* `value`: An array of values (strings). >+* `values`: An array of values. > * `extAttrs`: A list of [extended attributes](#extended-attributes). > > ### Typedef >@@ -357,21 +299,22 @@ A typedef looks like this: > ```JS > { > "type": "typedef", >- "typeExtAttrs": [], > "idlType": { >+ "type": "typedef-type", > "sequence": true, > "generic": "sequence", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >+ "type": "typedef-type", > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Point" >- } >+ "idlType": "Point", >+ "extAttrs": [...] >+ }, >+ "extAttrs": [...] > }, > "name": "PointSequence", > "extAttrs": [] >@@ -385,8 +328,6 @@ The fields are as follows: > * `name`: The typedef's name. > * `idlType`: An [IDL Type](#idl-type) describing what typedef's type. > * `extAttrs`: A list of [extended attributes](#extended-attributes). >-* `typeExtAttrs`: A list of [extended attributes](#extended-attributes) that apply to the >-type rather than to the typedef as a whole. > > ### Implements > >@@ -408,6 +349,26 @@ The fields are as follows: > * `implements`: The interface that is being implemented by the target. > * `extAttrs`: A list of [extended attributes](#extended-attributes). > >+### Includes >+ >+An includes definition looks like this: >+ >+```JS >+{ >+ "type": "includes", >+ "target": "Node", >+ "includes": "EventTarget", >+ "extAttrs": [] >+} >+``` >+ >+The fields are as follows: >+ >+* `type`: Always "includes". >+* `target`: The interface that includes an interface mixin. >+* `includes`: The interface mixin that is being included by the target. >+* `extAttrs`: A list of [extended attributes](#extended-attributes). >+ > ### Operation Member > > An operation looks like this: >@@ -416,18 +377,17 @@ An operation looks like this: > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >+ "type": "return-type", > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "intersection", > "arguments": [{ >@@ -435,12 +395,13 @@ An operation looks like this: > "variadic": true, > "extAttrs": [], > "idlType": { >+ "type": "argument-type", > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [...] > }, > "name": "ints" > }], >@@ -453,9 +414,7 @@ The fields are as follows: > * `type`: Always "operation". > * `getter`: True if a getter operation. > * `setter`: True if a setter operation. >-* `creator`: True if a creator operation. > * `deleter`: True if a deleter operation. >-* `legacycaller`: True if a legacycaller operation. > * `static`: True if a static operation. > * `stringifier`: True if a stringifier operation. > * `idlType`: An [IDL Type](#idl-type) of what the operation returns. If a stringifier, may be absent. >@@ -475,12 +434,13 @@ An attribute member looks like this: > "inherit": false, > "readonly": false, > "idlType": { >+ "type": "attribute-type", > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "RegExp" >+ "idlType": "RegExp", >+ "extAttrs": [...] > }, > "name": "regexp", > "extAttrs": [] >@@ -506,7 +466,15 @@ A constant member looks like this: > { > "type": "const", > "nullable": false, >- "idlType": "boolean", >+ "idlType": { >+ "type": "const-type", >+ "sequence": false, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "boolean" >+ "extAttrs": [] >+ }, > "name": "DEBUG", > "value": { > "type": "boolean", >@@ -520,132 +488,11 @@ The fields are as follows: > > * `type`: Always "const". > * `nullable`: Whether its type is nullable. >-* `idlType`: The type of the constant (a simple type, the type name). >+* `idlType`: An [IDL Type](#idl-type) of the constant that represents a simple type, the type name. > * `name`: The name of the constant. > * `value`: The constant value as described by [Const Values](#default-and-const-values) > * `extAttrs`: A list of [extended attributes](#extended-attributes). > >-### Serializer Member >- >-Serializers come in many shapes, which are best understood by looking at the >-examples below that map the IDL to the produced AST. >- >-```JS >-// serializer; >-{ >- "type": "serializer", >- "extAttrs": [] >-} >- >-// serializer DOMString serialize(); >-{ >- "type": "serializer", >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "operation": { >- "name": "serialize", >- "arguments": [] >- }, >- "extAttrs": [] >-} >- >-// serializer = { from, to, amount, description }; >-{ >- "type": "serializer", >- "patternMap": true, >- "names": [ >- "from", >- "to", >- "amount", >- "description" >- ], >- "extAttrs": [] >-} >- >-// serializer = number; >-{ >- "type": "serializer", >- "name": "number", >- "extAttrs": [] >-} >- >-// serializer = [ name, number ]; >-{ >- "type": "serializer", >- "patternList": true, >- "names": [ >- "name", >- "number" >- ], >- "extAttrs": [] >-} >- >-``` >- >-The common fields are as follows: >- >-* `type`: Always "serializer". >-* `extAttrs`: A list of [extended attributes](#extended-attributes). >- >-For a simple serializer, that's all there is. If the serializer is an operation, it will >-have: >- >-* `idlType`: An [IDL Type](#idl-type) describing what the serializer returns. >-* `operation`: An object with the following fields: >- * `name`: The name of the operation. >- * `arguments`: An array of [arguments](#arguments) for the operation. >- >-If the serializer is a pattern map: >- >-* `patternMap`: Always true. >-* `names`: An array of names in the pattern map. >- >-If the serializer is a pattern list: >- >-* `patternList`: Always true. >-* `names`: An array of names in the pattern list. >- >-Finally, if the serializer is a named serializer: >- >-* `name`: The serializer's name. >- >-### Iterator Member >- >-Iterator members look like this >- >-```JS >-{ >- "type": "iterator", >- "getter": false, >- "setter": false, >- "creator": false, >- "deleter": false, >- "legacycaller": false, >- "static": false, >- "stringifier": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "Session2" >- }, >- "iteratorObject": "SessionIterator", >- "extAttrs": [] >-} >-``` >- >-* `type`: Always "iterator". >-* `iteratorObject`: The string on the right-hand side; absent if there isn't one. >-* the rest: same as on [operations](#operation-member). >- > ### Arguments > > The arguments (e.g. for an operation) look like this: >@@ -657,12 +504,13 @@ The arguments (e.g. for an operation) look like this: > "variadic": true, > "extAttrs": [], > "idlType": { >+ "type": "argument-type", > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [...] > }, > "name": "ints" > }] >@@ -686,6 +534,7 @@ Extended attributes are arrays of items that look like this: > "extAttrs": [{ > "name": "TreatNullAs", > "arguments": null, >+ "type": "extended-attribute", > "rhs": { > "type": "identifier", > "value": "EmptyString" >@@ -703,10 +552,9 @@ The fields are as follows: > whereas the lack thereof will yield a `null`. If there is an `rhs` field then > they are the right-hand side's arguments, otherwise they apply to the extended > attribute directly. >+* `type`: Always `"extended-attribute"`. > * `rhs`: If there is a right-hand side, this will capture its `type` (which can be > "identifier" or "identifier-list") and its `value`. >-* `typePair`: If the extended attribute is a `MapClass` this will capture the >- map's key type and value type respectively. > > ### Default and Const Values > >@@ -717,7 +565,7 @@ values, all of which have the following fields: > > For string, number, boolean, and sequence: > >-* `value`: The value of the given type. For sequence, the only possible value is `[]`. >+* `value`: The value of the given type, as a string. For sequence, the only possible value is `[]`. > > For Infinity: > >@@ -739,21 +587,13 @@ These appear as members of interfaces that look like this: > The fields are as follows: > > * `type`: Always one of "iterable", "legacyiterable", "maplike" or "setlike". >-* `idlType`: An [IDL Type](#idl-type) (or an array of two types) representing the declared type arguments. >+* `idlType`: An array with one or more [IDL Types](#idl-type) representing the declared type arguments. > * `readonly`: Whether the maplike or setlike is declared as read only. > * `extAttrs`: A list of [extended attributes](#extended-attributes). > > > ## Testing > >-In order to run the tests you need to ensure that the widlproc submodule inside `test` is >-initialized and up to date: >- >-```Bash >-git submodule init >-git submodule update >-``` >- > ### Running > > The test runs with mocha and expect.js. Normally, running mocha in the root directory >@@ -787,8 +627,3 @@ In order to test in the browser, get inside `test/web` and run `make-web-tests.j > will generate a `browser-tests.html` file that you can open in a browser. As of this > writing tests pass in the latest Firefox, Chrome, Opera, and Safari. Testing on IE > and older versions will happen progressively. >- >-## TODO >- >-* add some tests to address coverage limitations >-* add a push API for processors that need to process things like comments >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/checker/index.html b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/checker/index.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9897d8572f22a0e66ba6c4704606d94fb66bba59 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/checker/index.html >@@ -0,0 +1,55 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<title>WebIDL 2 Checker</title> >+ >+<script src='../lib/webidl2.js'></script> >+<script> >+let parserResult = undefined; >+ >+function formatParserOutput() { >+ const outputEl = document.getElementById('webidl-checker-output'); >+ if (parserResult) { >+ const prettyPrintEl = document.getElementById('pretty-print'); >+ outputEl.innerText = JSON.stringify(parserResult, null, prettyPrintEl.checked ? 2 : null); >+ } else { >+ outputEl.innerText = ''; >+ } >+} >+ >+function checkWebIDL(textToCheck) { >+ const validation = document.getElementById('webidl-checker-validation'); >+ parserResult = null; >+ try { >+ parserResult = WebIDL2.parse(textToCheck); >+ validation.innerText = 'WebIDL parsed successfully!'; >+ } catch (e) { >+ validation.innerText = 'Exception while parsing WebIDL. See JavaScript console for more details.\n\n' + e.toString(); >+ // Pass it along to the JavaScript console. >+ throw e; >+ } finally { >+ formatParserOutput(); >+ } >+} >+</script> >+<style> >+textarea { >+ font-family: monospace; >+} >+</style> >+</head> >+<body> >+<h2>WebIDL Checker</h2> >+<p>This is an online checker for WebIDL built on the <a href="https://github.com/w3c/webidl2.js">webidl2.js</a> project.</p> >+<p>Enter your WebIDL to check below:</p> >+<textarea id='webidl-to-check' rows='20' cols='80'></textarea> >+<br> >+<input type='button' value='Check WebIDL' onclick='checkWebIDL(document.getElementById("webidl-to-check").value)'> >+<p>Validation results:</p> >+<textarea id='webidl-checker-validation' rows='20' cols='80'></textarea> >+<p>Parser output:</p> >+<textarea id='webidl-checker-output' rows='20' cols='80'></textarea> >+<br> >+<input type='checkbox' id='pretty-print' checked='true' onchange='formatParserOutput()'>Pretty Print >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/checker/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/checker/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..7affc26d975007dc62b9d331e3fc257c004a9e3c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/checker/w3c-import.log >@@ -0,0 +1,17 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/checker/index.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/w3c-import.log >index 7802428012cb75dd353343c508594c85e3bc1cb3..0bc9abba1930c96d42d023741af1ea5c757c16bd 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/w3c-import.log >@@ -1,7 +1,7 @@ > The tests in this directory were imported from the W3C repository. > Do NOT modify these tests directly in WebKit. > Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >+ https://github.com/web-platform-tests/wpt > > Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/webidl2.js b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/webidl2.js >index 0c9a1faacf7c7403bc5b0dbe12f524aefc9f3840..ef519c09df6d6da812fcbba57c7ca0f475af1ed5 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/webidl2.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/webidl2.js >@@ -1,33 +1,161 @@ > "use strict"; > > (() => { >+ // These regular expressions use the sticky flag so they will only match at >+ // the current location (ie. the offset of lastIndex). >+ const tokenRe = { >+ // This expression uses a lookahead assertion to catch false matches >+ // against integers early. >+ "float": /-?(?=[0-9]*\.|[0-9]+[eE])(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][-+]?[0-9]+)?|[0-9]+[Ee][-+]?[0-9]+)/y, >+ "integer": /-?(0([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*)/y, >+ "identifier": /_?[A-Za-z][0-9A-Z_a-z-]*/y, >+ "string": /"[^"]*"/y, >+ "whitespace": /[\t\n\r ]+/y, >+ "comment": /((\/(\/.*|\*([^*]|\*[^\/])*\*\/)[\t\n\r ]*)+)/y, >+ "other": /[^\t\n\r 0-9A-Za-z]/y >+ }; >+ >+ const stringTypes = [ >+ "ByteString", >+ "DOMString", >+ "USVString" >+ ]; >+ >+ const argumentNameKeywords = [ >+ "attribute", >+ "callback", >+ "const", >+ "deleter", >+ "dictionary", >+ "enum", >+ "getter", >+ "includes", >+ "inherit", >+ "interface", >+ "iterable", >+ "maplike", >+ "namespace", >+ "partial", >+ "required", >+ "setlike", >+ "setter", >+ "static", >+ "stringifier", >+ "typedef", >+ "unrestricted" >+ ]; >+ >+ const nonRegexTerminals = [ >+ "FrozenArray", >+ "Infinity", >+ "NaN", >+ "Promise", >+ "boolean", >+ "byte", >+ "double", >+ "false", >+ "float", >+ "implements", >+ "legacyiterable", >+ "long", >+ "mixin", >+ "null", >+ "octet", >+ "optional", >+ "or", >+ "readonly", >+ "record", >+ "sequence", >+ "short", >+ "true", >+ "unsigned", >+ "void" >+ ].concat(argumentNameKeywords, stringTypes); >+ >+ const punctuations = [ >+ "(", >+ ")", >+ ",", >+ "-Infinity", >+ "...", >+ ":", >+ ";", >+ "<", >+ "=", >+ ">", >+ "?", >+ "[", >+ "]", >+ "{", >+ "}" >+ ]; >+ > function tokenise(str) { > const tokens = []; >- const re = { >- "float": /^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][-+]?[0-9]+)?|[0-9]+[Ee][-+]?[0-9]+)/, >- "integer": /^-?(0([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*)/, >- "identifier": /^[A-Z_a-z][0-9A-Z_a-z-]*/, >- "string": /^"[^"]*"/, >- "whitespace": /^(?:[\t\n\r ]+|[\t\n\r ]*((\/\/.*|\/\*(.|\n|\r)*?\*\/)[\t\n\r ]*))+/, >- "other": /^[^\t\n\r 0-9A-Z_a-z]/ >- }; >- const types = ["float", "integer", "identifier", "string", "whitespace", "other"]; >- while (str.length > 0) { >- let matched = false; >- for (var i in types) { >- const type = types[i]; >- str = str.replace(re[type], tok => { >- tokens.push({ type, value: tok }); >- matched = true; >- return ""; >- }); >- if (matched) break; >+ let lastIndex = 0; >+ let trivia = ""; >+ while (lastIndex < str.length) { >+ const nextChar = str.charAt(lastIndex); >+ let result = -1; >+ >+ if (/[\t\n\r ]/.test(nextChar)) { >+ result = attemptTokenMatch("whitespace", { noFlushTrivia: true }); >+ } else if (nextChar === '/') { >+ result = attemptTokenMatch("comment", { noFlushTrivia: true }); >+ } >+ >+ if (result !== -1) { >+ trivia += tokens.pop().value; >+ } else if (/[-0-9.]/.test(nextChar)) { >+ result = attemptTokenMatch("float"); >+ if (result === -1) { >+ result = attemptTokenMatch("integer"); >+ } >+ } else if (/[A-Z_a-z]/.test(nextChar)) { >+ result = attemptTokenMatch("identifier"); >+ const token = tokens[tokens.length - 1]; >+ if (result !== -1 && nonRegexTerminals.includes(token.value)) { >+ token.type = token.value; >+ } >+ } else if (nextChar === '"') { >+ result = attemptTokenMatch("string"); >+ } >+ >+ for (const punctuation of punctuations) { >+ if (str.startsWith(punctuation, lastIndex)) { >+ tokens.push({ type: punctuation, value: punctuation, trivia }); >+ trivia = ""; >+ lastIndex += punctuation.length; >+ result = lastIndex; >+ break; >+ } >+ } >+ >+ // other as the last try >+ if (result === -1) { >+ result = attemptTokenMatch("other"); >+ } >+ if (result === -1) { >+ throw new Error("Token stream not progressing"); > } >- if (matched) continue; >- throw new Error("Token stream not progressing"); >+ lastIndex = result; > } > return tokens; >- }; >+ >+ function attemptTokenMatch(type, { noFlushTrivia } = {}) { >+ const re = tokenRe[type]; >+ re.lastIndex = lastIndex; >+ const result = re.exec(str); >+ if (result) { >+ tokens.push({ type, value: result[0], trivia }); >+ if (!noFlushTrivia) { >+ trivia = ""; >+ } >+ return re.lastIndex; >+ } >+ return -1; >+ } >+ } > > class WebIDLParseError { > constructor(str, line, input, tokens) { >@@ -38,14 +166,17 @@ > } > > toString() { >- return `${this.message}, line ${this.line} (tokens: '${this.input}')\n${JSON.stringify(this.tokens, null, 4)}`; >+ const escapedInput = JSON.stringify(this.input); >+ const tokens = JSON.stringify(this.tokens, null, 4); >+ return `${this.message}, line ${this.line} (tokens: ${escapedInput})\n${tokens}`; > } > } > >- function parse(tokens, opt) { >+ function parse(tokens) { > let line = 1; > tokens = tokens.slice(); > const names = new Map(); >+ let current = null; > > const FLOAT = "float"; > const INT = "integer"; >@@ -58,20 +189,39 @@ > getter: false, > setter: false, > deleter: false, >- "static": false, >+ static: false, > stringifier: false > }); > >+ const EMPTY_IDLTYPE = Object.freeze({ >+ generic: null, >+ nullable: false, >+ union: false, >+ idlType: null, >+ extAttrs: [] >+ }); >+ > function error(str) { >- let tok = ""; >- let numTokens = 0; > const maxTokens = 5; >- while (numTokens < maxTokens && tokens.length > numTokens) { >- tok += tokens[numTokens].value; >- numTokens++; >+ const tok = tokens >+ .slice(consume_position, consume_position + maxTokens) >+ .map(t => t.trivia + t.value).join(""); >+ // Count newlines preceding the actual erroneous token >+ if (tokens.length) { >+ line += count(tokens[consume_position].trivia, "\n"); > } >- throw new WebIDLParseError(str, line, tok, tokens.slice(0, maxTokens)); >- }; >+ >+ let message; >+ if (current) { >+ message = `Got an error during or right after parsing \`${current.partial ? "partial " : ""}${current.type} ${current.name}\`: ${str}` >+ } >+ else { >+ // throwing before any valid definition >+ message = `Got an error before parsing any named definition: ${str}`; >+ } >+ >+ throw new WebIDLParseError(message, line, tok, tokens.slice(0, maxTokens)); >+ } > > function sanitize_name(name, type) { > if (names.has(name)) { >@@ -81,587 +231,457 @@ > return name; > } > >- let last_token = null; >+ let consume_position = 0; > >- function consume(type, value) { >- if (!tokens.length || tokens[0].type !== type) return; >- if (typeof value === "undefined" || tokens[0].value === value) { >- last_token = tokens.shift(); >- if (type === ID) last_token.value = last_token.value.replace(/^_/, ""); >- return last_token; >- } >- }; >- >- function ws() { >- if (!tokens.length) return; >- if (tokens[0].type === "whitespace") { >- const t = tokens.shift(); >- t.value.replace(/\n/g, m => { >- line++; >- return m; >- }); >- return t; >+ function probe(type) { >+ return tokens.length > consume_position && tokens[consume_position].type === type; >+ } >+ >+ function consume(...candidates) { >+ // TODO: use const when Servo updates its JS engine >+ for (let type of candidates) { >+ if (!probe(type)) continue; >+ const token = tokens[consume_position]; >+ consume_position++; >+ line += count(token.trivia, "\n"); >+ return token; > } >- }; >+ } > >- function all_ws(store, pea) { // pea == post extended attribute, tpea = same for types >- const t = { type: "whitespace", value: "" }; >- while (true) { >- const w = ws(); >- if (!w) break; >- t.value += w.value; >+ function unescape(identifier) { >+ return identifier.startsWith('_') ? identifier.slice(1) : identifier; >+ } >+ >+ function unconsume(position) { >+ while (consume_position > position) { >+ consume_position--; >+ line -= count(tokens[consume_position].trivia, "\n"); > } >- if (t.value.length > 0) { >- if (store) { >- let w = t.value; >- const re = { >- "ws": /^([\t\n\r ]+)/, >- "line-comment": /^\/\/(.*)\r?\n?/, >- "multiline-comment": /^\/\*((?:.|\n|\r)*?)\*\// >- }; >- const wsTypes = []; >- for (var k in re) wsTypes.push(k); >- while (w.length) { >- let matched = false; >- for (var i in wsTypes) { >- const type = wsTypes[i]; >- w = w.replace(re[type], (tok, m1) => { >- store.push({ type: type + (pea ? ("-" + pea) : ""), value: m1 }); >- matched = true; >- return ""; >- }); >- if (matched) break; >- } >- if (matched) continue; >- throw new Error("Surprising white space construct."); // this shouldn't happen >- } >- } >- return t; >+ } >+ >+ function count(str, char) { >+ let total = 0; >+ for (let i = str.indexOf(char); i !== -1; i = str.indexOf(char, i + 1)) { >+ ++total; > } >- }; >+ return total; >+ } > > function integer_type() { > let ret = ""; >- all_ws(); >- if (consume(ID, "unsigned")) ret = "unsigned "; >- all_ws(); >- if (consume(ID, "short")) return ret + "short"; >- if (consume(ID, "long")) { >+ if (consume("unsigned")) ret = "unsigned "; >+ if (consume("short")) return ret + "short"; >+ if (consume("long")) { > ret += "long"; >- all_ws(); >- if (consume(ID, "long")) return ret + " long"; >+ if (consume("long")) return ret + " long"; > return ret; > } > if (ret) error("Failed to parse integer type"); >- }; >+ } > > function float_type() { > let ret = ""; >- all_ws(); >- if (consume(ID, "unrestricted")) ret = "unrestricted "; >- all_ws(); >- if (consume(ID, "float")) return ret + "float"; >- if (consume(ID, "double")) return ret + "double"; >+ if (consume("unrestricted")) ret = "unrestricted "; >+ if (consume("float")) return ret + "float"; >+ if (consume("double")) return ret + "double"; > if (ret) error("Failed to parse float type"); >- }; >+ } > > function primitive_type() { > const num_type = integer_type() || float_type(); > if (num_type) return num_type; >- all_ws(); >- if (consume(ID, "boolean")) return "boolean"; >- if (consume(ID, "byte")) return "byte"; >- if (consume(ID, "octet")) return "octet"; >- }; >+ if (consume("boolean")) return "boolean"; >+ if (consume("byte")) return "byte"; >+ if (consume("octet")) return "octet"; >+ } > > function const_value() { >- if (consume(ID, "true")) return { type: "boolean", value: true }; >- if (consume(ID, "false")) return { type: "boolean", value: false }; >- if (consume(ID, "null")) return { type: "null" }; >- if (consume(ID, "Infinity")) return { type: "Infinity", negative: false }; >- if (consume(ID, "NaN")) return { type: "NaN" }; >- const ret = consume(FLOAT) || consume(INT); >+ if (consume("true")) return { type: "boolean", value: true }; >+ if (consume("false")) return { type: "boolean", value: false }; >+ if (consume("null")) return { type: "null" }; >+ if (consume("Infinity")) return { type: "Infinity", negative: false }; >+ if (consume("-Infinity")) return { type: "Infinity", negative: true }; >+ if (consume("NaN")) return { type: "NaN" }; >+ const ret = consume(FLOAT, INT); > if (ret) return { type: "number", value: ret.value }; >- const tok = consume(OTHER, "-"); >- if (tok) { >- if (consume(ID, "Infinity")) return { type: "Infinity", negative: true }; >- else tokens.unshift(tok); >- } >- }; >+ } > > function type_suffix(obj) { >- while (true) { >- all_ws(); >- if (consume(OTHER, "?")) { >- if (obj.nullable) error("Can't nullable more than once"); >- obj.nullable = true; >- } else return; >+ obj.nullable = !!consume("?"); >+ if (probe("?")) error("Can't nullable more than once"); >+ } >+ >+ function generic_type(typeName) { >+ const name = consume("FrozenArray", "Promise", "sequence", "record"); >+ if (!name) { >+ return; >+ } >+ const ret = { generic: name.type }; >+ consume("<") || error(`No opening bracket after ${name.type}`); >+ switch (name.type) { >+ case "Promise": >+ if (probe("[")) error("Promise type cannot have extended attribute"); >+ ret.idlType = return_type(typeName); >+ break; >+ case "sequence": >+ case "FrozenArray": >+ ret.idlType = type_with_extended_attributes(typeName); >+ break; >+ case "record": >+ if (probe("[")) error("Record key cannot have extended attribute"); >+ ret.idlType = []; >+ const keyType = consume(...stringTypes); >+ if (!keyType) error(`Record key must be a string type`); >+ ret.idlType.push(Object.assign({ type: typeName }, EMPTY_IDLTYPE, { idlType: keyType.value })); >+ consume(",") || error("Missing comma after record key type"); >+ const valueType = type_with_extended_attributes(typeName) || error("Error parsing generic type record"); >+ ret.idlType.push(valueType); >+ break; > } >- }; >+ if (!ret.idlType) error(`Error parsing generic type ${name.type}`); >+ consume(">") || error(`Missing closing bracket after ${name.type}`); >+ if (name.type === "Promise" && probe("?")) { >+ error("Promise type cannot be nullable"); >+ } >+ type_suffix(ret); >+ return ret; >+ } > >- function single_type() { >+ function single_type(typeName) { >+ const ret = Object.assign({ type: typeName || null }, EMPTY_IDLTYPE); >+ const generic = generic_type(typeName); >+ if (generic) { >+ return Object.assign(ret, generic); >+ } > const prim = primitive_type(); >- const ret = { sequence: false, generic: null, nullable: false, union: false }; > let name; >- let value; > if (prim) { > ret.idlType = prim; >- } else if (name = consume(ID)) { >- value = name.value; >- all_ws(); >- // Generic types >- if (consume(OTHER, "<")) { >- // backwards compat >- if (value === "sequence") { >- ret.sequence = true; >- } >- ret.generic = value; >- const types = []; >- do { >- all_ws(); >- types.push(type_with_extended_attributes() || error("Error parsing generic type " + value)); >- all_ws(); >- } >- while (consume(OTHER, ",")); >- if (value === "sequence") { >- if (types.length !== 1) error("A sequence must have exactly one subtype"); >- } else if (value === "record") { >- if (types.length !== 2) error("A record must have exactly two subtypes"); >- if (!/^(DOMString|USVString|ByteString)$/.test(types[0].idlType)) { >- error("Record key must be DOMString, USVString, or ByteString"); >- } >- if (types[0].extAttrs) error("Record key cannot have extended attribute"); >- } else if (value === "Promise") { >- if (types[0].extAttrs) error("Promise type cannot have extended attribute"); >- } >- ret.idlType = types.length === 1 ? types[0] : types; >- all_ws(); >- if (!consume(OTHER, ">")) error("Unterminated generic type " + value); >- type_suffix(ret); >- return ret; >- } else { >- ret.idlType = value; >- } >+ } else if (name = consume(ID, ...stringTypes)) { >+ ret.idlType = name.value; >+ if (probe("<")) error(`Unsupported generic type ${name.value}`); > } else { > return; > } > type_suffix(ret); > if (ret.nullable && ret.idlType === "any") error("Type any cannot be made nullable"); > return ret; >- }; >- >- function union_type() { >- all_ws(); >- if (!consume(OTHER, "(")) return; >- const ret = { sequence: false, generic: null, nullable: false, union: true, idlType: [] }; >- const fst = type_with_extended_attributes() || error("Union type with no content"); >- ret.idlType.push(fst); >- while (true) { >- all_ws(); >- if (!consume(ID, "or")) break; >- const typ = type_with_extended_attributes() || error("No type after 'or' in union type"); >+ } >+ >+ function union_type(typeName) { >+ if (!consume("(")) return; >+ const ret = Object.assign({ type: typeName || null }, EMPTY_IDLTYPE, { union: true, idlType: [] }); >+ do { >+ const typ = type_with_extended_attributes() || error("No type after open parenthesis or 'or' in union type"); > ret.idlType.push(typ); >+ } while (consume("or")); >+ if (ret.idlType.length < 2) { >+ error("At least two types are expected in a union type but found less"); > } >- if (!consume(OTHER, ")")) error("Unterminated union type"); >+ if (!consume(")")) error("Unterminated union type"); > type_suffix(ret); > return ret; >- }; >+ } > >- function type() { >- return single_type() || union_type(); >- }; >+ function type(typeName) { >+ return single_type(typeName) || union_type(typeName); >+ } > >- function type_with_extended_attributes() { >+ function type_with_extended_attributes(typeName) { > const extAttrs = extended_attrs(); >- const ret = single_type() || union_type(); >+ const ret = single_type(typeName) || union_type(typeName); > if (extAttrs.length && ret) ret.extAttrs = extAttrs; > return ret; >- }; >+ } > >- function argument(store) { >- const ret = { optional: false, variadic: false }; >- ret.extAttrs = extended_attrs(store); >- all_ws(store, "pea"); >- const opt_token = consume(ID, "optional"); >+ function argument() { >+ const start_position = consume_position; >+ const ret = { optional: false, variadic: false, default: null }; >+ ret.extAttrs = extended_attrs(); >+ const opt_token = consume("optional"); > if (opt_token) { > ret.optional = true; >- all_ws(); > } >- ret.idlType = type_with_extended_attributes(); >+ ret.idlType = type_with_extended_attributes("argument-type"); > if (!ret.idlType) { >- if (opt_token) tokens.unshift(opt_token); >+ unconsume(start_position); > return; > } >- const type_token = last_token; >- if (!ret.optional) { >- all_ws(); >- if (tokens.length >= 3 && >- tokens[0].type === "other" && tokens[0].value === "." && >- tokens[1].type === "other" && tokens[1].value === "." && >- tokens[2].type === "other" && tokens[2].value === "." >- ) { >- tokens.shift(); >- tokens.shift(); >- tokens.shift(); >- ret.variadic = true; >- } >+ if (!ret.optional && consume("...")) { >+ ret.variadic = true; > } >- all_ws(); >- const name = consume(ID); >+ const name = consume(ID, ...argumentNameKeywords); > if (!name) { >- if (opt_token) tokens.unshift(opt_token); >- tokens.unshift(type_token); >+ unconsume(start_position); > return; > } >- ret.name = name.value; >+ ret.name = unescape(name.value); >+ ret.escapedName = name.value; > if (ret.optional) { >- all_ws(); >- const dflt = default_(); >- if (typeof dflt !== "undefined") { >- ret["default"] = dflt; >- } >+ ret.default = default_() || null; > } > return ret; >- }; >+ } > >- function argument_list(store) { >+ function argument_list() { > const ret = []; >- const arg = argument(store ? ret : null); >- if (!arg) return; >+ const arg = argument(); >+ if (!arg) return ret; > ret.push(arg); > while (true) { >- all_ws(store ? ret : null); >- if (!consume(OTHER, ",")) return ret; >- const nxt = argument(store ? ret : null) || error("Trailing comma in arguments list"); >+ if (!consume(",")) return ret; >+ const nxt = argument() || error("Trailing comma in arguments list"); > ret.push(nxt); > } >- }; >+ } > >- function simple_extended_attr(store) { >- all_ws(); >+ function simple_extended_attr() { > const name = consume(ID); > if (!name) return; > const ret = { > name: name.value, >- "arguments": null, >+ arguments: null, > type: "extended-attribute", > rhs: null > }; >- all_ws(); >- const eq = consume(OTHER, "="); >+ const eq = consume("="); > if (eq) { >- all_ws(); >- ret.rhs = consume(ID) || >- consume(FLOAT) || >- consume(INT) || >- consume(STR); >- if (!ret.rhs && consume(OTHER, "(")) { >+ ret.rhs = consume(ID, FLOAT, INT, STR); >+ if (ret.rhs) { >+ // No trivia exposure yet >+ ret.rhs.trivia = undefined; >+ } >+ } >+ if (consume("(")) { >+ if (eq && !ret.rhs) { > // [Exposed=(Window,Worker)] >- const rhs_list = []; >- const id = consume(ID); >- if (id) { >- rhs_list.push(id.value); >- } >- identifiers(rhs_list); >- consume(OTHER, ")") || error("Unexpected token in extended attribute argument list or type pair"); > ret.rhs = { > type: "identifier-list", >- value: rhs_list >+ value: identifiers() > }; > } >- if (!ret.rhs) return error("No right hand side to extended attribute assignment"); >- } >- all_ws(); >- if (consume(OTHER, "(")) { >- let args, pair; >- // [Constructor(DOMString str)] >- if (args = argument_list(store)) { >- ret["arguments"] = args; >- } >- // [Constructor()] > else { >- ret["arguments"] = []; >+ // [NamedConstructor=Audio(DOMString src)] or [Constructor(DOMString str)] >+ ret.arguments = argument_list(); > } >- all_ws(); >- consume(OTHER, ")") || error("Unexpected token in extended attribute argument list"); >+ consume(")") || error("Unexpected token in extended attribute argument list"); > } >+ if (eq && !ret.rhs) error("No right hand side to extended attribute assignment"); > return ret; >- }; >+ } > > // Note: we parse something simpler than the official syntax. It's all that ever > // seems to be used >- function extended_attrs(store) { >+ function extended_attrs() { > const eas = []; >- all_ws(store); >- if (!consume(OTHER, "[")) return eas; >- eas[0] = simple_extended_attr(store) || error("Extended attribute with not content"); >- all_ws(); >- while (consume(OTHER, ",")) { >- if (eas.length) { >- eas.push(simple_extended_attr(store)); >- } else { >- eas.push(simple_extended_attr(store) || error("Trailing comma in extended attribute")); >- } >+ if (!consume("[")) return eas; >+ eas[0] = simple_extended_attr() || error("Extended attribute with not content"); >+ while (consume(",")) { >+ eas.push(simple_extended_attr() || error("Trailing comma in extended attribute")); > } >- all_ws(); >- consume(OTHER, "]") || error("No end of extended attribute"); >+ consume("]") || error("No end of extended attribute"); > return eas; >- }; >+ } > > function default_() { >- all_ws(); >- if (consume(OTHER, "=")) { >- all_ws(); >+ if (consume("=")) { > const def = const_value(); > if (def) { > return def; >- } else if (consume(OTHER, "[")) { >- if (!consume(OTHER, "]")) error("Default sequence value must be empty"); >+ } else if (consume("[")) { >+ if (!consume("]")) error("Default sequence value must be empty"); > return { type: "sequence", value: [] }; > } else { > const str = consume(STR) || error("No value for default"); >- str.value = str.value.replace(/^"/, "").replace(/"$/, ""); >+ str.value = str.value.slice(1, -1); >+ // No trivia exposure yet >+ str.trivia = undefined; > return str; > } > } >- }; >+ } > >- function const_(store) { >- all_ws(store, "pea"); >- if (!consume(ID, "const")) return; >+ function const_() { >+ if (!consume("const")) return; > const ret = { type: "const", nullable: false }; >- all_ws(); > let typ = primitive_type(); > if (!typ) { > typ = consume(ID) || error("No type for const"); > typ = typ.value; > } >- ret.idlType = typ; >- all_ws(); >- if (consume(OTHER, "?")) { >- ret.nullable = true; >- all_ws(); >- } >+ ret.idlType = Object.assign({ type: "const-type" }, EMPTY_IDLTYPE, { idlType: typ }); >+ type_suffix(ret); > const name = consume(ID) || error("No name for const"); > ret.name = name.value; >- all_ws(); >- consume(OTHER, "=") || error("No value assignment for const"); >- all_ws(); >+ consume("=") || error("No value assignment for const"); > const cnt = const_value(); > if (cnt) ret.value = cnt; > else error("No value for const"); >- all_ws(); >- consume(OTHER, ";") || error("Unterminated const"); >+ consume(";") || error("Unterminated const"); > return ret; >- }; >+ } > > function inheritance() { >- all_ws(); >- if (consume(OTHER, ":")) { >- all_ws(); >+ if (consume(":")) { > const inh = consume(ID) || error("No type in inheritance"); > return inh.value; > } >- }; >+ } > >- function operation_rest(ret, store) { >- all_ws(); >+ function operation_rest(ret) { > if (!ret) ret = {}; > const name = consume(ID); >- ret.name = name ? name.value : null; >- all_ws(); >- consume(OTHER, "(") || error("Invalid operation"); >- ret["arguments"] = argument_list(store) || []; >- all_ws(); >- consume(OTHER, ")") || error("Unterminated operation"); >- all_ws(); >- consume(OTHER, ";") || error("Unterminated operation"); >+ ret.name = name ? unescape(name.value) : null; >+ ret.escapedName = name ? name.value : null; >+ consume("(") || error("Invalid operation"); >+ ret.arguments = argument_list(); >+ consume(")") || error("Unterminated operation"); >+ consume(";") || error("Unterminated operation"); > return ret; >- }; >+ } > >- function callback(store) { >- all_ws(store, "pea"); >+ function callback() { > let ret; >- if (!consume(ID, "callback")) return; >- all_ws(); >- const tok = consume(ID, "interface"); >+ if (!consume("callback")) return; >+ const tok = consume("interface"); > if (tok) { >- ret = interface_rest(); >- ret.type = "callback interface"; >+ ret = interface_rest(false, "callback interface"); > return ret; > } > const name = consume(ID) || error("No name for callback"); >- ret = { type: "callback", name: sanitize_name(name.value, "callback") }; >- all_ws(); >- consume(OTHER, "=") || error("No assignment in callback"); >- all_ws(); >- ret.idlType = return_type(); >- all_ws(); >- consume(OTHER, "(") || error("No arguments in callback"); >- ret["arguments"] = argument_list(store) || []; >- all_ws(); >- consume(OTHER, ")") || error("Unterminated callback"); >- all_ws(); >- consume(OTHER, ";") || error("Unterminated callback"); >+ ret = current = { type: "callback", name: sanitize_name(name.value, "callback") }; >+ consume("=") || error("No assignment in callback"); >+ ret.idlType = return_type() || error("Missing return type"); >+ consume("(") || error("No arguments in callback"); >+ ret.arguments = argument_list(); >+ consume(")") || error("Unterminated callback"); >+ consume(";") || error("Unterminated callback"); > return ret; >- }; >+ } > >- function attribute(store) { >- all_ws(store, "pea"); >- const grabbed = []; >+ function attribute({ noInherit = false, readonly = false } = {}) { >+ const start_position = consume_position; > const ret = { > type: "attribute", >- "static": false, >+ static: false, > stringifier: false, > inherit: false, > readonly: false > }; >- const w = all_ws(); >- if (w) grabbed.push(w); >- if (consume(ID, "inherit")) { >- if (ret["static"] || ret.stringifier) error("Cannot have a static or stringifier inherit"); >+ if (!noInherit && consume("inherit")) { > ret.inherit = true; >- grabbed.push(last_token); >- const w = all_ws(); >- if (w) grabbed.push(w); > } >- if (consume(ID, "readonly")) { >+ if (consume("readonly")) { > ret.readonly = true; >- grabbed.push(last_token); >- const w = all_ws(); >- if (w) grabbed.push(w); >+ } else if (readonly && probe("attribute")) { >+ error("Attributes must be readonly in this context"); > } > const rest = attribute_rest(ret); > if (!rest) { >- tokens = grabbed.concat(tokens); >+ unconsume(start_position); > } > return rest; >- }; >+ } > > function attribute_rest(ret) { >- if (!consume(ID, "attribute")) { >+ if (!consume("attribute")) { > return; > } >- all_ws(); >- ret.idlType = type_with_extended_attributes() || error("No type in attribute"); >- if (ret.idlType.sequence) error("Attributes cannot accept sequence types"); >+ ret.idlType = type_with_extended_attributes("attribute-type") || error("No type in attribute"); >+ if (ret.idlType.generic === "sequence") error("Attributes cannot accept sequence types"); > if (ret.idlType.generic === "record") error("Attributes cannot accept record types"); >- all_ws(); >- const name = consume(ID) || error("No name in attribute"); >- ret.name = name.value; >- all_ws(); >- consume(OTHER, ";") || error("Unterminated attribute"); >+ const name = consume(ID, "required") || error("No name in attribute"); >+ ret.name = unescape(name.value); >+ ret.escapedName = name.value; >+ consume(";") || error("Unterminated attribute"); > return ret; >- }; >+ } > >- function return_type() { >- const typ = type(); >- if (!typ) { >- if (consume(ID, "void")) { >- return "void"; >- } else error("No return type"); >+ function return_type(typeName) { >+ const typ = type(typeName || "return-type"); >+ if (typ) { >+ return typ; >+ } >+ if (consume("void")) { >+ return Object.assign({ type: "return-type" }, EMPTY_IDLTYPE, { idlType: "void" }); > } >- return typ; >- }; >+ } > >- function operation(store) { >- all_ws(store, "pea"); >+ function operation({ regular = false } = {}) { > const ret = Object.assign({}, EMPTY_OPERATION); >- while (true) { >- all_ws(); >- if (consume(ID, "getter")) ret.getter = true; >- else if (consume(ID, "setter")) ret.setter = true; >- else if (consume(ID, "deleter")) ret.deleter = true; >+ while (!regular) { >+ if (consume("getter")) ret.getter = true; >+ else if (consume("setter")) ret.setter = true; >+ else if (consume("deleter")) ret.deleter = true; > else break; > } >- if (ret.getter || ret.setter || ret.deleter) { >- all_ws(); >- ret.idlType = return_type(); >- operation_rest(ret, store); >- return ret; >- } >- ret.idlType = return_type(); >- all_ws(); >- if (consume(ID, "iterator")) { >- all_ws(); >- ret.type = "iterator"; >- if (consume(ID, "object")) { >- ret.iteratorObject = "object"; >- } else if (consume(OTHER, "=")) { >- all_ws(); >- var name = consume(ID) || error("No right hand side in iterator"); >- ret.iteratorObject = name.value; >- } >- all_ws(); >- consume(OTHER, ";") || error("Unterminated iterator"); >- return ret; >- } else { >- operation_rest(ret, store); >- return ret; >- } >- }; >- >- function static_member(store) { >- all_ws(store, "pea"); >- if (!consume(ID, "static")) return; >- all_ws(); >- return noninherited_attribute(store, "static") || >- regular_operation(store, "static") || >+ ret.idlType = return_type() || error("Missing return type"); >+ operation_rest(ret); >+ return ret; >+ } >+ >+ function static_member() { >+ if (!consume("static")) return; >+ const member = attribute({ noInherit: true }) || >+ operation({ regular: true }) || > error("No body in static member"); >+ member.static = true; >+ return member; > } > >- function stringifier(store) { >- all_ws(store, "pea"); >- if (!consume(ID, "stringifier")) return; >- all_ws(); >- if (consume(OTHER, ";")) { >+ function stringifier() { >+ if (!consume("stringifier")) return; >+ if (consume(";")) { > return Object.assign({}, EMPTY_OPERATION, { stringifier: true }); > } >- return noninherited_attribute(store, "stringifier") || >- regular_operation(store, "stringifier") || >+ const member = attribute({ noInherit: true }) || >+ operation({ regular: true }) || > error("Unterminated stringifier"); >+ member.stringifier = true; >+ return member; > } > >- function identifiers(arr) { >+ function identifiers() { >+ const arr = []; >+ const id = consume(ID); >+ if (id) { >+ arr.push(id.value); >+ } >+ else error("Expected identifiers but not found"); > while (true) { >- all_ws(); >- if (consume(OTHER, ",")) { >- all_ws(); >+ if (consume(",")) { > const name = consume(ID) || error("Trailing comma in identifiers list"); > arr.push(name.value); > } else break; > } >- }; >+ return arr; >+ } > > function iterable_type() { >- if (consume(ID, "iterable")) return "iterable"; >- else if (consume(ID, "legacyiterable")) return "legacyiterable"; >- else if (consume(ID, "maplike")) return "maplike"; >- else if (consume(ID, "setlike")) return "setlike"; >+ if (consume("iterable")) return "iterable"; >+ else if (consume("legacyiterable")) return "legacyiterable"; >+ else if (consume("maplike")) return "maplike"; >+ else if (consume("setlike")) return "setlike"; > else return; >- }; >+ } > > function readonly_iterable_type() { >- if (consume(ID, "maplike")) return "maplike"; >- else if (consume(ID, "setlike")) return "setlike"; >+ if (consume("maplike")) return "maplike"; >+ else if (consume("setlike")) return "setlike"; > else return; >- }; >+ } > >- function iterable(store) { >- all_ws(store, "pea"); >- const grabbed = []; >+ function iterable() { >+ const start_position = consume_position; > const ret = { type: null, idlType: null, readonly: false }; >- if (consume(ID, "readonly")) { >+ if (consume("readonly")) { > ret.readonly = true; >- grabbed.push(last_token); >- var w = all_ws(); >- if (w) grabbed.push(w); > } > const consumeItType = ret.readonly ? readonly_iterable_type : iterable_type; > > const ittype = consumeItType(); > if (!ittype) { >- tokens = grabbed.concat(tokens); >+ unconsume(start_position); > return; > } > >@@ -670,357 +690,255 @@ > ret.type = ittype; > if (ret.type !== 'maplike' && ret.type !== 'setlike') > delete ret.readonly; >- all_ws(); >- if (consume(OTHER, "<")) { >- ret.idlType = type_with_extended_attributes() || error(`Error parsing ${ittype} declaration`); >- all_ws(); >+ if (consume("<")) { >+ ret.idlType = [type_with_extended_attributes()] || error(`Error parsing ${ittype} declaration`); > if (secondTypeAllowed) { >- let type2 = null; >- if (consume(OTHER, ",")) { >- all_ws(); >- type2 = type_with_extended_attributes(); >- all_ws(); >+ if (consume(",")) { >+ ret.idlType.push(type_with_extended_attributes()); > } >- if (type2) >- ret.idlType = [ret.idlType, type2]; > else if (secondTypeRequired) > error(`Missing second type argument in ${ittype} declaration`); > } >- if (!consume(OTHER, ">")) error(`Unterminated ${ittype} declaration`); >- all_ws(); >- if (!consume(OTHER, ";")) error(`Missing semicolon after ${ittype} declaration`); >+ if (!consume(">")) error(`Unterminated ${ittype} declaration`); >+ if (!consume(";")) error(`Missing semicolon after ${ittype} declaration`); > } else > error(`Error parsing ${ittype} declaration`); > > return ret; >- }; >+ } > >- function interface_rest(isPartial, store) { >- all_ws(); >+ function interface_rest(isPartial, typeName = "interface") { > const name = consume(ID) || error("No name for interface"); > const mems = []; >- const ret = { >- type: "interface", >+ const ret = current = { >+ type: typeName, > name: isPartial ? name.value : sanitize_name(name.value, "interface"), >- partial: false, >+ partial: isPartial, > members: mems > }; > if (!isPartial) ret.inheritance = inheritance() || null; >- all_ws(); >- consume(OTHER, "{") || error("Bodyless interface"); >+ consume("{") || error("Bodyless interface"); > while (true) { >- all_ws(store ? mems : null); >- if (consume(OTHER, "}")) { >- all_ws(); >- consume(OTHER, ";") || error("Missing semicolon after interface"); >+ if (consume("}")) { >+ consume(";") || error("Missing semicolon after interface"); > return ret; > } >- const ea = extended_attrs(store ? mems : null); >- all_ws(); >- const cnt = const_(store ? mems : null); >- if (cnt) { >- cnt.extAttrs = ea; >- ret.members.push(cnt); >- continue; >- } >- const mem = (opt.allowNestedTypedefs && typedef(store ? mems : null)) || >- static_member(store ? mems : null) || >- stringifier(store ? mems : null) || >- iterable(store ? mems : null) || >- attribute(store ? mems : null) || >- operation(store ? mems : null) || >+ const ea = extended_attrs(); >+ const mem = const_() || >+ static_member() || >+ stringifier() || >+ iterable() || >+ attribute() || >+ operation() || > error("Unknown member"); > mem.extAttrs = ea; > ret.members.push(mem); > } >- }; >+ } > >- function mixin_rest(isPartial, store) { >- all_ws(); >- if (!consume(ID, "mixin")) return; >- all_ws(); >+ function mixin_rest(isPartial) { >+ if (!consume("mixin")) return; > const name = consume(ID) || error("No name for interface mixin"); > const mems = []; >- const ret = { >+ const ret = current = { > type: "interface mixin", > name: isPartial ? name.value : sanitize_name(name.value, "interface mixin"), >- partial: false, >+ partial: isPartial, > members: mems > }; >- all_ws(); >- consume(OTHER, "{") || error("Bodyless interface mixin"); >+ consume("{") || error("Bodyless interface mixin"); > while (true) { >- all_ws(store ? mems : null); >- if (consume(OTHER, "}")) { >- all_ws(); >- consume(OTHER, ";") || error("Missing semicolon after interface mixin"); >+ if (consume("}")) { >+ consume(";") || error("Missing semicolon after interface mixin"); > return ret; > } >- const ea = extended_attrs(store ? mems : null); >- all_ws(); >- const cnt = const_(store ? mems : null); >- if (cnt) { >- cnt.extAttrs = ea; >- ret.members.push(cnt); >- continue; >- } >- const mem = stringifier(store ? mems : null) || >- noninherited_attribute(store ? mems : null) || >- regular_operation(store ? mems : null) || >+ const ea = extended_attrs(); >+ const mem = const_() || >+ stringifier() || >+ attribute({ noInherit: true }) || >+ operation({ regular: true }) || > error("Unknown member"); > mem.extAttrs = ea; > ret.members.push(mem); > } > } > >- function interface_(isPartial, store) { >- all_ws(isPartial ? null : store, "pea"); >- if (!consume(ID, "interface")) return; >- return mixin_rest(isPartial, store) || >- interface_rest(isPartial, store) || >+ function interface_(isPartial) { >+ if (!consume("interface")) return; >+ return mixin_rest(isPartial) || >+ interface_rest(isPartial) || > error("Interface has no proper body"); > } > >- function namespace(isPartial, store) { >- all_ws(isPartial ? null : store, "pea"); >- if (!consume(ID, "namespace")) return; >- all_ws(); >+ function namespace(isPartial) { >+ if (!consume("namespace")) return; > const name = consume(ID) || error("No name for namespace"); > const mems = []; >- const ret = { >+ const ret = current = { > type: "namespace", > name: isPartial ? name.value : sanitize_name(name.value, "namespace"), > partial: isPartial, > members: mems > }; >- all_ws(); >- consume(OTHER, "{") || error("Bodyless namespace"); >+ consume("{") || error("Bodyless namespace"); > while (true) { >- all_ws(store ? mems : null); >- if (consume(OTHER, "}")) { >- all_ws(); >- consume(OTHER, ";") || error("Missing semicolon after namespace"); >+ if (consume("}")) { >+ consume(";") || error("Missing semicolon after namespace"); > return ret; > } >- const ea = extended_attrs(store ? mems : null); >- all_ws(); >- const mem = noninherited_attribute(store ? mems : null) || >- regular_operation(store ? mems : null) || >+ const ea = extended_attrs(); >+ const mem = attribute({ noInherit: true, readonly: true }) || >+ operation({ regular: true }) || > error("Unknown member"); > mem.extAttrs = ea; > ret.members.push(mem); > } > } > >- function noninherited_attribute(store, prefix) { >- const w = all_ws(store, "pea"); >- const grabbed = []; >- const ret = { >- type: "attribute", >- "static": false, >- stringifier: false, >- inherit: false, >- readonly: false >- }; >- if (prefix) { >- ret[prefix] = true; >- } >- if (w) grabbed.push(w); >- if (consume(ID, "readonly")) { >- ret.readonly = true; >- grabbed.push(last_token); >- const w = all_ws(); >- if (w) grabbed.push(w); >- } >- const rest = attribute_rest(ret); >- if (!rest) { >- tokens = grabbed.concat(tokens); >- } >- return rest; >- } >- >- function regular_operation(store, prefix) { >- all_ws(store, "pea"); >- const ret = Object.assign({}, EMPTY_OPERATION); >- if (prefix) { >- ret[prefix] = true; >- } >- ret.idlType = return_type(); >- return operation_rest(ret, store); >- } >- >- function partial(store) { >- all_ws(store, "pea"); >- if (!consume(ID, "partial")) return; >- const thing = dictionary(true, store) || >- interface_(true, store) || >- namespace(true, store) || >+ function partial() { >+ if (!consume("partial")) return; >+ const thing = dictionary(true) || >+ interface_(true) || >+ namespace(true) || > error("Partial doesn't apply to anything"); >- thing.partial = true; > return thing; >- }; >+ } > >- function dictionary(isPartial, store) { >- all_ws(isPartial ? null : store, "pea"); >- if (!consume(ID, "dictionary")) return; >- all_ws(); >+ function dictionary(isPartial) { >+ if (!consume("dictionary")) return; > const name = consume(ID) || error("No name for dictionary"); > const mems = []; >- const ret = { >+ const ret = current = { > type: "dictionary", > name: isPartial ? name.value : sanitize_name(name.value, "dictionary"), >- partial: false, >+ partial: isPartial, > members: mems > }; > if (!isPartial) ret.inheritance = inheritance() || null; >- all_ws(); >- consume(OTHER, "{") || error("Bodyless dictionary"); >+ consume("{") || error("Bodyless dictionary"); > while (true) { >- all_ws(store ? mems : null); >- if (consume(OTHER, "}")) { >- all_ws(); >- consume(OTHER, ";") || error("Missing semicolon after dictionary"); >+ if (consume("}")) { >+ consume(";") || error("Missing semicolon after dictionary"); > return ret; > } >- const ea = extended_attrs(store ? mems : null); >- all_ws(store ? mems : null, "pea"); >- const required = consume(ID, "required"); >- const typ = type_with_extended_attributes() || error("No type for dictionary member"); >- all_ws(); >+ const ea = extended_attrs(); >+ const required = consume("required"); >+ const typ = type_with_extended_attributes("dictionary-type") || error("No type for dictionary member"); > const name = consume(ID) || error("No name for dictionary member"); >- const dflt = default_(); >+ const dflt = default_() || null; > if (required && dflt) error("Required member must not have a default"); > const member = { > type: "field", >- name: name.value, >+ name: unescape(name.value), >+ escapedName: name.value, > required: !!required, > idlType: typ, >- extAttrs: ea >+ extAttrs: ea, >+ default: dflt > }; >- if (typeof dflt !== "undefined") { >- member["default"] = dflt; >- } > ret.members.push(member); >- all_ws(); >- consume(OTHER, ";") || error("Unterminated dictionary member"); >+ consume(";") || error("Unterminated dictionary member"); > } >- }; >+ } > >- function enum_(store) { >- all_ws(store, "pea"); >- if (!consume(ID, "enum")) return; >- all_ws(); >+ function enum_() { >+ if (!consume("enum")) return; > const name = consume(ID) || error("No name for enum"); > const vals = []; >- const ret = { >+ const ret = current = { > type: "enum", > name: sanitize_name(name.value, "enum"), > values: vals > }; >- all_ws(); >- consume(OTHER, "{") || error("No curly for enum"); >- let saw_comma = false; >+ consume("{") || error("No curly for enum"); >+ let value_expected = true; > while (true) { >- all_ws(store ? vals : null); >- if (consume(OTHER, "}")) { >- all_ws(); >- consume(OTHER, ";") || error("No semicolon after enum"); >+ if (consume("}")) { >+ if (!ret.values.length) error("No value in enum"); >+ consume(";") || error("No semicolon after enum"); > return ret; > } >+ else if (!value_expected) { >+ error("No comma between enum values"); >+ } > const val = consume(STR) || error("Unexpected value in enum"); >- val.value = val.value.replace(/"/g, ""); >+ val.value = val.value.slice(1, -1); >+ // No trivia exposure yet >+ val.trivia = undefined; > ret.values.push(val); >- all_ws(store ? vals : null); >- if (consume(OTHER, ",")) { >- if (store) vals.push({ type: "," }); >- all_ws(store ? vals : null); >- saw_comma = true; >- } else { >- saw_comma = false; >- } >+ value_expected = !!consume(","); > } >- }; >+ } > >- function typedef(store) { >- all_ws(store, "pea"); >- if (!consume(ID, "typedef")) return; >+ function typedef() { >+ if (!consume("typedef")) return; > const ret = { > type: "typedef" > }; >- all_ws(); >- ret.idlType = type_with_extended_attributes() || error("No type in typedef"); >- all_ws(); >+ ret.idlType = type_with_extended_attributes("typedef-type") || error("No type in typedef"); > const name = consume(ID) || error("No name in typedef"); > ret.name = sanitize_name(name.value, "typedef"); >- all_ws(); >- consume(OTHER, ";") || error("Unterminated typedef"); >+ current = ret; >+ consume(";") || error("Unterminated typedef"); > return ret; >- }; >+ } > >- function implements_(store) { >- all_ws(store, "pea"); >+ function implements_() { >+ const start_position = consume_position; > const target = consume(ID); > if (!target) return; >- const w = all_ws(); >- if (consume(ID, "implements")) { >+ if (consume("implements")) { > const ret = { > type: "implements", > target: target.value > }; >- all_ws(); > const imp = consume(ID) || error("Incomplete implements statement"); >- ret["implements"] = imp.value; >- all_ws(); >- consume(OTHER, ";") || error("No terminating ; for implements statement"); >+ ret.implements = imp.value; >+ consume(";") || error("No terminating ; for implements statement"); > return ret; > } else { > // rollback >- tokens.unshift(w); >- tokens.unshift(target); >+ unconsume(start_position); > } >- }; >+ } > >- function includes(store) { >- all_ws(store, "pea"); >+ function includes() { >+ const start_position = consume_position; > const target = consume(ID); > if (!target) return; >- const w = all_ws(); >- if (consume(ID, "includes")) { >+ if (consume("includes")) { > const ret = { > type: "includes", > target: target.value > }; >- all_ws(); > const imp = consume(ID) || error("Incomplete includes statement"); >- ret["includes"] = imp.value; >- all_ws(); >- consume(OTHER, ";") || error("No terminating ; for includes statement"); >+ ret.includes = imp.value; >+ consume(";") || error("No terminating ; for includes statement"); > return ret; > } else { > // rollback >- tokens.unshift(w); >- tokens.unshift(target); >+ unconsume(start_position); > } >- }; >- >- function definition(store) { >- return callback(store) || >- interface_(false, store) || >- partial(store) || >- dictionary(false, store) || >- enum_(store) || >- typedef(store) || >- implements_(store) || >- includes(store) || >- namespace(false, store); >- }; >- >- function definitions(store) { >+ } >+ >+ function definition() { >+ return callback() || >+ interface_(false) || >+ partial() || >+ dictionary(false) || >+ enum_() || >+ typedef() || >+ implements_() || >+ includes() || >+ namespace(false); >+ } >+ >+ function definitions() { > if (!tokens.length) return []; > const defs = []; > while (true) { >- const ea = extended_attrs(store ? defs : null); >- const def = definition(store ? defs : null); >+ const ea = extended_attrs(); >+ const def = definition(); > if (!def) { > if (ea.length) error("Stray extended attributes"); > break; >@@ -1029,17 +947,16 @@ > defs.push(def); > } > return defs; >- }; >- const res = definitions(opt.ws); >- if (tokens.length) error("Unrecognised tokens"); >+ } >+ const res = definitions(); >+ if (consume_position < tokens.length) error("Unrecognised tokens"); > return res; >- }; >+ } > > const obj = { >- parse(str, opt) { >- if (!opt) opt = {}; >+ parse(str) { > const tokens = tokenise(str); >- return parse(tokens, opt); >+ return parse(tokens); > } > }; > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/writer.js b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/writer.js >index f7c79f8289358a5ba57911246440fb192f099e08..b3097a6f8a74e4cdeaf71f688ece20423c238a0d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/writer.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/writer.js >@@ -1,280 +1,221 @@ >-(function() { >+"use strict"; > >- var write = function(ast, opt) { >- var curPea = "", >- curTPea = "", >- opt = opt || {}, >- noop = function(str) { >- return str; }, >- optNames = "type".split(" "), >- context = []; >- for (var i = 0, n = optNames.length; i < n; i++) { >- var o = optNames[i]; >+(() => { >+ function write(ast, opt = {}) { >+ const noop = str => str; >+ const optNames = "type".split(" "); >+ const context = []; >+ for (const o of optNames) { > if (!opt[o]) opt[o] = noop; > } > >- var literal = function(it) { >+ function literal(it) { > return it.value; > }; >- var wsPea = function(it) { >- curPea += it.value; >- return ""; >- }; >- var wsTPea = function(it) { >- curTPea += it.value; >- return ""; >- }; >- var lineComment = function(it) { >- return "//" + it.value + "\n"; >- }; >- var multilineComment = function(it) { >- return "/*" + it.value + "*/"; >- }; >- var type = function(it) { >+ function type(it) { > if (typeof it === "string") return opt.type(it); // XXX should maintain some context >- if (it.union) return "(" + it.idlType.map(type).join(" or ") + ")"; >- var ret = ""; >- if (it.generic) ret += it.generic + "<"; >- else if (it.sequence) ret += "sequence<"; >- if (Array.isArray(it.idlType)) ret += it.idlType.map(type).join(", "); >- else ret += type(it.idlType); >- if (it.array || it.generic === 'Array') { >- for (var i = 0, n = it.nullableArray.length; i < n; i++) { >- var val = it.nullableArray[i]; >- if (val) ret += "?"; >- ret += "[]"; >- } >+ let ret = extended_attributes(it.extAttrs); >+ if (it.union) ret += `(${it.idlType.map(type).join(" or ")})`; >+ else { >+ if (it.generic) ret += `${it.generic}<`; >+ if (Array.isArray(it.idlType)) ret += it.idlType.map(type).join(", "); >+ else ret += type(it.idlType); >+ if (it.generic) ret += ">"; > } >- if (it.generic || it.sequence) ret += ">"; > if (it.nullable) ret += "?"; > > return ret; > }; >- var const_value = function(it) { >- var tp = it.type; >+ function const_value(it) { >+ const tp = it.type; > if (tp === "boolean") return it.value ? "true" : "false"; > else if (tp === "null") return "null"; > else if (tp === "Infinity") return (it.negative ? "-" : "") + "Infinity"; > else if (tp === "NaN") return "NaN"; > else if (tp === "number") return it.value; >- else return '"' + it.value + '"'; >+ else if (tp === "sequence") return "[]"; >+ else return `"${it.value}"`; > }; >- var argument = function(arg, pea) { >- var ret = extended_attributes(arg.extAttrs, pea); >+ function argument(arg) { >+ let ret = extended_attributes(arg.extAttrs); > if (arg.optional) ret += "optional "; > ret += type(arg.idlType); > if (arg.variadic) ret += "..."; >- ret += " " + arg.name; >- if (arg["default"]) ret += " = " + const_value(arg["default"]); >+ ret += ` ${arg.escapedName}`; >+ if (arg.default) ret += ` = ${const_value(arg.default)}`; > return ret; > }; >- var args = function(its) { >- var res = "", >- pea = ""; >- for (var i = 0, n = its.length; i < n; i++) { >- var arg = its[i]; >- if (arg.type === "ws") res += arg.value; >- else if (arg.type === "ws-pea") pea += arg.value; >- else { >- res += argument(arg, pea); >- if (i < n - 1) res += ","; >- pea = ""; >- } >- } >- return res; >- }; >- var make_ext_at = function(it) { >- if (it["arguments"] === null) return it.name; >+ function make_ext_at(it) { > context.unshift(it); >- var ret = it.name + "(" + (it["arguments"].length ? args(it["arguments"]) : "") + ")"; >+ let ret = it.name; >+ if (it.rhs) { >+ if (it.rhs.type === "identifier-list") ret += `=(${it.rhs.value.join(",")})`; >+ else ret += `=${it.rhs.value}`; >+ } >+ if (it.arguments) ret += `(${it.arguments.length ? it.arguments.map(argument).join(",") : ""})`; > context.shift(); // XXX need to add more contexts, but not more than needed for ReSpec > return ret; > }; >- var extended_attributes = function(eats, pea) { >+ function extended_attributes(eats) { > if (!eats || !eats.length) return ""; >- return "[" + eats.map(make_ext_at).join(", ") + "]" + pea; >+ return `[${eats.map(make_ext_at).join(", ")}]`; > }; > >- var modifiers = "getter setter creator deleter legacycaller stringifier static".split(" "); >- var operation = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >+ const modifiers = "getter setter deleter stringifier static".split(" "); >+ function operation(it) { >+ let ret = extended_attributes(it.extAttrs); > if (it.stringifier && !it.idlType) return "stringifier;"; >- for (var i = 0, n = modifiers.length; i < n; i++) { >- var mod = modifiers[i]; >+ for (const mod of modifiers) { > if (it[mod]) ret += mod + " "; > } > ret += type(it.idlType) + " "; >- if (it.name) ret += it.name; >- ret += "(" + args(it["arguments"]) + ");"; >+ if (it.name) ret += it.escapedName; >+ ret += `(${it.arguments.map(argument).join(",")});`; > return ret; > }; > >- var attribute = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >- if (it["static"]) ret += "static "; >+ function attribute(it) { >+ let ret = extended_attributes(it.extAttrs); >+ if (it.static) ret += "static "; > if (it.stringifier) ret += "stringifier "; >- if (it.readonly) ret += "readonly "; > if (it.inherit) ret += "inherit "; >- ret += "attribute " + type(it.idlType) + " " + it.name + ";"; >+ if (it.readonly) ret += "readonly "; >+ ret += `attribute ${type(it.idlType)} ${it.escapedName};`; > return ret; > }; > >- var interface_ = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >+ function interface_(it) { >+ let ret = extended_attributes(it.extAttrs); > if (it.partial) ret += "partial "; >- ret += "interface " + it.name + " "; >- if (it.inheritance) ret += ": " + it.inheritance + " "; >- ret += "{" + iterate(it.members) + "};"; >+ ret += `interface ${it.name} `; >+ if (it.inheritance) ret += `: ${it.inheritance} `; >+ ret += `{${iterate(it.members)}};`; > return ret; > }; > >- var dictionary = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >+ function interface_mixin(it) { >+ let ret = extended_attributes(it.extAttrs); > if (it.partial) ret += "partial "; >- ret += "dictionary " + it.name + " "; >- ret += "{" + iterate(it.members) + "};"; >+ ret += `interface mixin ${it.name} `; >+ ret += `{${iterate(it.members)}};`; >+ return ret; >+ } >+ >+ function namespace(it) { >+ let ret = extended_attributes(it.extAttrs); >+ if (it.partial) ret += "partial "; >+ ret += `namespace ${it.name} `; >+ ret += `{${iterate(it.members)}};`; >+ return ret; >+ } >+ >+ function dictionary(it) { >+ let ret = extended_attributes(it.extAttrs); >+ if (it.partial) ret += "partial "; >+ ret += `dictionary ${it.name} `; >+ if (it.inheritance) ret += `: ${it.inheritance} `; >+ ret += `{${iterate(it.members)}};`; > return ret; > }; >- var field = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >+ function field(it) { >+ let ret = extended_attributes(it.extAttrs); > if (it.required) ret += "required "; >- ret += type(it.idlType) + " " + it.name; >- if (it["default"]) ret += " = " + const_value(it["default"]); >+ ret += `${type(it.idlType)} ${it.escapedName}`; >+ if (it.default) ret += ` = ${const_value(it.default)}`; > ret += ";"; > return ret; > }; >- var exception = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >- ret += "exception " + it.name + " "; >- if (it.inheritance) ret += ": " + it.inheritance + " "; >- ret += "{" + iterate(it.members) + "};"; >- return ret; >+ function const_(it) { >+ const ret = extended_attributes(it.extAttrs); >+ return `${ret}const ${type(it.idlType)}${it.nullable ? "?" : ""} ${it.name} = ${const_value(it.value)};`; > }; >- var const_ = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >- return ret + "const " + type(it.idlType) + " " + it.name + " = " + const_value(it.value) + ";"; >+ function typedef(it) { >+ let ret = extended_attributes(it.extAttrs); >+ ret += `typedef ${extended_attributes(it.typeExtAttrs)}`; >+ return `${ret}${type(it.idlType)} ${it.name};`; > }; >- var typedef = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >- ret += "typedef " + extended_attributes(it.typeExtAttrs, curTPea); >- curTPea = ""; >- return ret + type(it.idlType) + " " + it.name + ";"; >+ function implements_(it) { >+ const ret = extended_attributes(it.extAttrs); >+ return `${ret}${it.target} implements ${it.implements};`; > }; >- var implements_ = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >- return ret + it.target + " implements " + it["implements"] + ";"; >+ function includes(it) { >+ const ret = extended_attributes(it.extAttrs); >+ return `${ret}${it.target} includes ${it.includes};`; > }; >- var callback = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >- return ret + "callback " + it.name + " = " + type(it.idlType) + >- "(" + args(it["arguments"]) + ");"; >+ function callback(it) { >+ const ret = extended_attributes(it.extAttrs); >+ return `${ret}callback ${it.name} = ${type(it.idlType)}(${it.arguments.map(argument).join(",")});`; > }; >- var enum_ = function(it) { >- var ret = extended_attributes(it.extAttrs, curPea); >- curPea = ""; >- ret += "enum " + it.name + " {"; >- for (var i = 0, n = it.values.length; i < n; i++) { >- var v = it.values[i]; >- if (typeof v === "string") ret += '"' + v + '"'; >- else if (v.type === "ws") ret += v.value; >- else if (v.type === ",") ret += ","; >+ function enum_(it) { >+ let ret = extended_attributes(it.extAttrs); >+ ret += `enum ${it.name} {`; >+ for (const v of it.values) { >+ ret += `"${v.value}",`; > } > return ret + "};"; > }; >- var serializer = function(it) { >- var ret = "serializer"; >- if (it.name) { >- ret += " = " + it.name + ";"; >- } else if (it.patternList) { >- ret += " = [ " + it.names.join(", ") + " ];"; >- } else if (it.patternMap) { >- ret += " = { " + it.names.join(", ") + " };"; >- } else if (it.operation) { >- ret += " " + operation(it); >- } else { >- ret += ";"; >- } >- return ret; >- }; >- var iterable = function(it) { >- return "iterable<" + (it.idlType instanceof Array ? it.idlType.map(type).join(", ") : type(it.idlType)) + ">;"; >+ function iterable(it) { >+ return `iterable<${Array.isArray(it.idlType) ? it.idlType.map(type).join(", ") : type(it.idlType)}>;`; > }; >- var legacyiterable = function(it) { >- return "legacyiterable<" + (it.idlType instanceof Array ? it.idlType.map(type).join(", ") : type(it.idlType)) + ">;"; >+ function legacyiterable(it) { >+ return `legacyiterable<${Array.isArray(it.idlType) ? it.idlType.map(type).join(", ") : type(it.idlType)}>;`; > }; >- var maplike = function(it) { >- return (it.readonly ? "readonly " : "") + "maplike<" + >- it.idlType.map(type).join(", ") + ">;"; >+ function maplike(it) { >+ return `${it.readonly ? "readonly " : ""}maplike<${it.idlType.map(type).join(", ")}>;`; > }; >- var setlike = function(it) { >- return (it.readonly ? "readonly " : "") + "setlike<" + >- type(it.idlType) + ">;"; >+ function setlike(it) { >+ return `${it.readonly ? "readonly " : ""}setlike<${type(it.idlType[0])}>;`; > }; >- var callbackInterface = function(it) { >- return 'callback ' + interface_(it); >+ function callbackInterface(it) { >+ return `callback ${interface_(it)}`; > }; > >- var table = { >- ws: literal, >- "ws-pea": wsPea, >- "ws-tpea": wsTPea, >- "line-comment": lineComment, >- "multiline-comment": multilineComment, >- "interface": interface_, >- operation: operation, >- attribute: attribute, >- dictionary: dictionary, >- field: field, >- exception: exception, >- "const": const_, >- typedef: typedef, >- "implements": implements_, >- callback: callback, >- "enum": enum_, >- serializer: serializer, >- iterable: iterable, >- legacyiterable: legacyiterable, >- maplike: maplike, >- setlike: setlike, >+ const table = { >+ interface: interface_, >+ "interface mixin": interface_mixin, >+ namespace, >+ operation, >+ attribute, >+ dictionary, >+ field, >+ const: const_, >+ typedef, >+ implements: implements_, >+ includes, >+ callback, >+ enum: enum_, >+ iterable, >+ legacyiterable, >+ maplike, >+ setlike, > "callback interface": callbackInterface > }; >- var dispatch = function(it) { >+ function dispatch(it) { >+ const dispatcher = table[it.type]; >+ if (!dispatcher) { >+ throw new Error(`Type "${it.type}" is unsupported`) >+ } > return table[it.type](it); > }; >- var iterate = function(things) { >+ function iterate(things) { > if (!things) return; >- var ret = ""; >- for (var i = 0, n = things.length; i < n; i++) ret += dispatch(things[i]); >+ let ret = ""; >+ for (const thing of things) ret += dispatch(thing); > return ret; > }; > return iterate(ast); > }; > > >- var obj = { >- write: function(ast, opt) { >- if (!opt) opt = {}; >- return write(ast, opt); >- } >+ const obj = { >+ write > }; > > if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { > module.exports = obj; > } else if (typeof define === 'function' && define.amd) { >- define([], function() { >- return obj; >- }); >+ define([], () => obj); > } else { > (self || window).WebIDL2Writer = obj; > } >-}()); >+})(); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/package-lock.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/package-lock.json >new file mode 100644 >index 0000000000000000000000000000000000000000..b0581037fe943423f4f09bceabbef0f8828d6fc3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/package-lock.json >@@ -0,0 +1,700 @@ >+{ >+ "name": "webidl2", >+ "version": "13.0.3", >+ "lockfileVersion": 1, >+ "requires": true, >+ "dependencies": { >+ "@babel/code-frame": { >+ "version": "7.0.0-beta.40", >+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz", >+ "integrity": "sha512-eVXQSbu/RimU6OKcK2/gDJVTFcxXJI4sHbIqw2mhwMZeQ2as/8AhS9DGkEDoHMBBNJZ5B0US63lF56x+KDcxiA==", >+ "dev": true, >+ "requires": { >+ "@babel/highlight": "7.0.0-beta.40" >+ } >+ }, >+ "@babel/highlight": { >+ "version": "7.0.0-beta.40", >+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.40.tgz", >+ "integrity": "sha512-mOhhTrzieV6VO7odgzFGFapiwRK0ei8RZRhfzHhb6cpX3QM8XXuCLXWjN8qBB7JReDdUR80V3LFfFrGUYevhNg==", >+ "dev": true, >+ "requires": { >+ "chalk": "^2.0.0", >+ "esutils": "^2.0.2", >+ "js-tokens": "^3.0.0" >+ } >+ }, >+ "ansi-regex": { >+ "version": "3.0.0", >+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", >+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", >+ "dev": true >+ }, >+ "ansi-styles": { >+ "version": "3.2.1", >+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", >+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", >+ "dev": true, >+ "requires": { >+ "color-convert": "^1.9.0" >+ } >+ }, >+ "arr-diff": { >+ "version": "2.0.0", >+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", >+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", >+ "dev": true, >+ "requires": { >+ "arr-flatten": "^1.0.1" >+ } >+ }, >+ "arr-flatten": { >+ "version": "1.1.0", >+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", >+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", >+ "dev": true >+ }, >+ "array-unique": { >+ "version": "0.2.1", >+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", >+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", >+ "dev": true >+ }, >+ "balanced-match": { >+ "version": "1.0.0", >+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", >+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", >+ "dev": true >+ }, >+ "brace-expansion": { >+ "version": "1.1.11", >+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", >+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", >+ "dev": true, >+ "requires": { >+ "balanced-match": "^1.0.0", >+ "concat-map": "0.0.1" >+ } >+ }, >+ "braces": { >+ "version": "1.8.5", >+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", >+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", >+ "dev": true, >+ "requires": { >+ "expand-range": "^1.8.1", >+ "preserve": "^0.2.0", >+ "repeat-element": "^1.1.2" >+ } >+ }, >+ "browser-stdout": { >+ "version": "1.3.1", >+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", >+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", >+ "dev": true >+ }, >+ "chalk": { >+ "version": "2.3.2", >+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", >+ "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", >+ "dev": true, >+ "requires": { >+ "ansi-styles": "^3.2.1", >+ "escape-string-regexp": "^1.0.5", >+ "supports-color": "^5.3.0" >+ } >+ }, >+ "color-convert": { >+ "version": "1.9.1", >+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", >+ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", >+ "dev": true, >+ "requires": { >+ "color-name": "^1.1.1" >+ } >+ }, >+ "color-name": { >+ "version": "1.1.3", >+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", >+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", >+ "dev": true >+ }, >+ "commander": { >+ "version": "2.11.0", >+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", >+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", >+ "dev": true >+ }, >+ "concat-map": { >+ "version": "0.0.1", >+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", >+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", >+ "dev": true >+ }, >+ "debug": { >+ "version": "3.1.0", >+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", >+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", >+ "dev": true, >+ "requires": { >+ "ms": "2.0.0" >+ } >+ }, >+ "diff": { >+ "version": "3.5.0", >+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", >+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", >+ "dev": true >+ }, >+ "diff-match-patch": { >+ "version": "1.0.0", >+ "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.0.tgz", >+ "integrity": "sha1-HMPIOkkNZ/ldkeOfatHy4Ia2MEg=", >+ "dev": true >+ }, >+ "escape-string-regexp": { >+ "version": "1.0.5", >+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", >+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", >+ "dev": true >+ }, >+ "esutils": { >+ "version": "2.0.2", >+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", >+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", >+ "dev": true >+ }, >+ "expand-brackets": { >+ "version": "0.1.5", >+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", >+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", >+ "dev": true, >+ "requires": { >+ "is-posix-bracket": "^0.1.0" >+ } >+ }, >+ "expand-range": { >+ "version": "1.8.2", >+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", >+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", >+ "dev": true, >+ "requires": { >+ "fill-range": "^2.1.0" >+ } >+ }, >+ "expect": { >+ "version": "22.4.0", >+ "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.0.tgz", >+ "integrity": "sha512-Fiy862jT3qc70hwIHwwCBNISmaqBrfWKKrtqyMJ6iwZr+6KXtcnHojZFtd63TPRvRl8EQTJ+YXYy2lK6/6u+Hw==", >+ "dev": true, >+ "requires": { >+ "ansi-styles": "^3.2.0", >+ "jest-diff": "^22.4.0", >+ "jest-get-type": "^22.1.0", >+ "jest-matcher-utils": "^22.4.0", >+ "jest-message-util": "^22.4.0", >+ "jest-regex-util": "^22.1.0" >+ } >+ }, >+ "extglob": { >+ "version": "0.3.2", >+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", >+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", >+ "dev": true, >+ "requires": { >+ "is-extglob": "^1.0.0" >+ } >+ }, >+ "filename-regex": { >+ "version": "2.0.1", >+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", >+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", >+ "dev": true >+ }, >+ "fill-range": { >+ "version": "2.2.4", >+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", >+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", >+ "dev": true, >+ "requires": { >+ "is-number": "^2.1.0", >+ "isobject": "^2.0.0", >+ "randomatic": "^3.0.0", >+ "repeat-element": "^1.1.2", >+ "repeat-string": "^1.5.2" >+ } >+ }, >+ "for-in": { >+ "version": "1.0.2", >+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", >+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", >+ "dev": true >+ }, >+ "for-own": { >+ "version": "0.1.5", >+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", >+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", >+ "dev": true, >+ "requires": { >+ "for-in": "^1.0.1" >+ } >+ }, >+ "fs.realpath": { >+ "version": "1.0.0", >+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", >+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", >+ "dev": true >+ }, >+ "glob": { >+ "version": "7.1.2", >+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", >+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", >+ "dev": true, >+ "requires": { >+ "fs.realpath": "^1.0.0", >+ "inflight": "^1.0.4", >+ "inherits": "2", >+ "minimatch": "^3.0.4", >+ "once": "^1.3.0", >+ "path-is-absolute": "^1.0.0" >+ } >+ }, >+ "glob-base": { >+ "version": "0.3.0", >+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", >+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", >+ "dev": true, >+ "requires": { >+ "glob-parent": "^2.0.0", >+ "is-glob": "^2.0.0" >+ } >+ }, >+ "glob-parent": { >+ "version": "2.0.0", >+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", >+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", >+ "dev": true, >+ "requires": { >+ "is-glob": "^2.0.0" >+ } >+ }, >+ "growl": { >+ "version": "1.10.3", >+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", >+ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", >+ "dev": true >+ }, >+ "has-flag": { >+ "version": "3.0.0", >+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", >+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", >+ "dev": true >+ }, >+ "he": { >+ "version": "1.1.1", >+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", >+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", >+ "dev": true >+ }, >+ "inflight": { >+ "version": "1.0.6", >+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", >+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", >+ "dev": true, >+ "requires": { >+ "once": "^1.3.0", >+ "wrappy": "1" >+ } >+ }, >+ "inherits": { >+ "version": "2.0.3", >+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", >+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", >+ "dev": true >+ }, >+ "is-buffer": { >+ "version": "1.1.6", >+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", >+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", >+ "dev": true >+ }, >+ "is-dotfile": { >+ "version": "1.0.3", >+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", >+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", >+ "dev": true >+ }, >+ "is-equal-shallow": { >+ "version": "0.1.3", >+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", >+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", >+ "dev": true, >+ "requires": { >+ "is-primitive": "^2.0.0" >+ } >+ }, >+ "is-extendable": { >+ "version": "0.1.1", >+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", >+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", >+ "dev": true >+ }, >+ "is-extglob": { >+ "version": "1.0.0", >+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", >+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", >+ "dev": true >+ }, >+ "is-glob": { >+ "version": "2.0.1", >+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", >+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", >+ "dev": true, >+ "requires": { >+ "is-extglob": "^1.0.0" >+ } >+ }, >+ "is-number": { >+ "version": "2.1.0", >+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", >+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", >+ "dev": true, >+ "requires": { >+ "kind-of": "^3.0.2" >+ } >+ }, >+ "is-posix-bracket": { >+ "version": "0.1.1", >+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", >+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", >+ "dev": true >+ }, >+ "is-primitive": { >+ "version": "2.0.0", >+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", >+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", >+ "dev": true >+ }, >+ "isarray": { >+ "version": "1.0.0", >+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", >+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", >+ "dev": true >+ }, >+ "isobject": { >+ "version": "2.1.0", >+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", >+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", >+ "dev": true, >+ "requires": { >+ "isarray": "1.0.0" >+ } >+ }, >+ "jest-diff": { >+ "version": "22.4.0", >+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.0.tgz", >+ "integrity": "sha512-+/t20WmnkOkB8MOaGaPziI8zWKxquMvYw4Ub+wOzi7AUhmpFXz43buWSxVoZo4J5RnCozpGbX3/FssjJ5KV9Nw==", >+ "dev": true, >+ "requires": { >+ "chalk": "^2.0.1", >+ "diff": "^3.2.0", >+ "jest-get-type": "^22.1.0", >+ "pretty-format": "^22.4.0" >+ } >+ }, >+ "jest-get-type": { >+ "version": "22.1.0", >+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", >+ "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==", >+ "dev": true >+ }, >+ "jest-matcher-utils": { >+ "version": "22.4.0", >+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.0.tgz", >+ "integrity": "sha512-03m3issxUXpWMwDYTfmL8hRNewUB0yCRTeXPm+eq058rZxLHD9f5NtSSO98CWHqe4UyISIxd9Ao9iDVjHWd2qg==", >+ "dev": true, >+ "requires": { >+ "chalk": "^2.0.1", >+ "jest-get-type": "^22.1.0", >+ "pretty-format": "^22.4.0" >+ } >+ }, >+ "jest-message-util": { >+ "version": "22.4.0", >+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.0.tgz", >+ "integrity": "sha512-eyCJB0T3hrlpFF2FqQoIB093OulP+1qvATQmD3IOgJgMGqPL6eYw8TbC5P/VCWPqKhGL51xvjIIhow5eZ2wHFw==", >+ "dev": true, >+ "requires": { >+ "@babel/code-frame": "^7.0.0-beta.35", >+ "chalk": "^2.0.1", >+ "micromatch": "^2.3.11", >+ "slash": "^1.0.0", >+ "stack-utils": "^1.0.1" >+ } >+ }, >+ "jest-regex-util": { >+ "version": "22.1.0", >+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.1.0.tgz", >+ "integrity": "sha512-on0LqVS6Xeh69sw3d1RukVnur+lVOl3zkmb0Q54FHj9wHoq6dbtWqb3TSlnVUyx36hqjJhjgs/QLqs07Bzu72Q==", >+ "dev": true >+ }, >+ "js-tokens": { >+ "version": "3.0.2", >+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", >+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", >+ "dev": true >+ }, >+ "jsondiffpatch": { >+ "version": "0.3.5", >+ "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.3.5.tgz", >+ "integrity": "sha512-v7eaGLDMCHXH+fsIaZhptEUJmS8EJpunq7IM4cc4vIT/kSRAkaZ6ZF4ebiNcyUelL0znbvj6o2B5Gh9v7Og0BQ==", >+ "dev": true, >+ "requires": { >+ "chalk": "^2.3.0", >+ "diff-match-patch": "^1.0.0" >+ } >+ }, >+ "kind-of": { >+ "version": "3.2.2", >+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", >+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", >+ "dev": true, >+ "requires": { >+ "is-buffer": "^1.1.5" >+ } >+ }, >+ "math-random": { >+ "version": "1.0.1", >+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", >+ "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", >+ "dev": true >+ }, >+ "micromatch": { >+ "version": "2.3.11", >+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", >+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", >+ "dev": true, >+ "requires": { >+ "arr-diff": "^2.0.0", >+ "array-unique": "^0.2.1", >+ "braces": "^1.8.2", >+ "expand-brackets": "^0.1.4", >+ "extglob": "^0.3.1", >+ "filename-regex": "^2.0.0", >+ "is-extglob": "^1.0.0", >+ "is-glob": "^2.0.1", >+ "kind-of": "^3.0.2", >+ "normalize-path": "^2.0.1", >+ "object.omit": "^2.0.0", >+ "parse-glob": "^3.0.4", >+ "regex-cache": "^0.4.2" >+ } >+ }, >+ "minimatch": { >+ "version": "3.0.4", >+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", >+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", >+ "dev": true, >+ "requires": { >+ "brace-expansion": "^1.1.7" >+ } >+ }, >+ "minimist": { >+ "version": "0.0.8", >+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", >+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", >+ "dev": true >+ }, >+ "mkdirp": { >+ "version": "0.5.1", >+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", >+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", >+ "dev": true, >+ "requires": { >+ "minimist": "0.0.8" >+ } >+ }, >+ "mocha": { >+ "version": "5.0.4", >+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.4.tgz", >+ "integrity": "sha512-nMOpAPFosU1B4Ix1jdhx5e3q7XO55ic5a8cgYvW27CequcEY+BabS0kUVL1Cw1V5PuVHZWeNRWFLmEPexo79VA==", >+ "dev": true, >+ "requires": { >+ "browser-stdout": "1.3.1", >+ "commander": "2.11.0", >+ "debug": "3.1.0", >+ "diff": "3.5.0", >+ "escape-string-regexp": "1.0.5", >+ "glob": "7.1.2", >+ "growl": "1.10.3", >+ "he": "1.1.1", >+ "mkdirp": "0.5.1", >+ "supports-color": "4.4.0" >+ }, >+ "dependencies": { >+ "has-flag": { >+ "version": "2.0.0", >+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", >+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", >+ "dev": true >+ }, >+ "supports-color": { >+ "version": "4.4.0", >+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", >+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", >+ "dev": true, >+ "requires": { >+ "has-flag": "^2.0.0" >+ } >+ } >+ } >+ }, >+ "ms": { >+ "version": "2.0.0", >+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", >+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", >+ "dev": true >+ }, >+ "normalize-path": { >+ "version": "2.1.1", >+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", >+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", >+ "dev": true, >+ "requires": { >+ "remove-trailing-separator": "^1.0.1" >+ } >+ }, >+ "object.omit": { >+ "version": "2.0.1", >+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", >+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", >+ "dev": true, >+ "requires": { >+ "for-own": "^0.1.4", >+ "is-extendable": "^0.1.1" >+ } >+ }, >+ "once": { >+ "version": "1.4.0", >+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", >+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", >+ "dev": true, >+ "requires": { >+ "wrappy": "1" >+ } >+ }, >+ "parse-glob": { >+ "version": "3.0.4", >+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", >+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", >+ "dev": true, >+ "requires": { >+ "glob-base": "^0.3.0", >+ "is-dotfile": "^1.0.0", >+ "is-extglob": "^1.0.0", >+ "is-glob": "^2.0.0" >+ } >+ }, >+ "path-is-absolute": { >+ "version": "1.0.1", >+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", >+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", >+ "dev": true >+ }, >+ "preserve": { >+ "version": "0.2.0", >+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", >+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", >+ "dev": true >+ }, >+ "pretty-format": { >+ "version": "22.4.0", >+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", >+ "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", >+ "dev": true, >+ "requires": { >+ "ansi-regex": "^3.0.0", >+ "ansi-styles": "^3.2.0" >+ } >+ }, >+ "randomatic": { >+ "version": "3.0.0", >+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", >+ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", >+ "dev": true, >+ "requires": { >+ "is-number": "^4.0.0", >+ "kind-of": "^6.0.0", >+ "math-random": "^1.0.1" >+ }, >+ "dependencies": { >+ "is-number": { >+ "version": "4.0.0", >+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", >+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", >+ "dev": true >+ }, >+ "kind-of": { >+ "version": "6.0.2", >+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", >+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", >+ "dev": true >+ } >+ } >+ }, >+ "regex-cache": { >+ "version": "0.4.4", >+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", >+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", >+ "dev": true, >+ "requires": { >+ "is-equal-shallow": "^0.1.3" >+ } >+ }, >+ "remove-trailing-separator": { >+ "version": "1.1.0", >+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", >+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", >+ "dev": true >+ }, >+ "repeat-element": { >+ "version": "1.1.2", >+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", >+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", >+ "dev": true >+ }, >+ "repeat-string": { >+ "version": "1.6.1", >+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", >+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", >+ "dev": true >+ }, >+ "slash": { >+ "version": "1.0.0", >+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", >+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", >+ "dev": true >+ }, >+ "stack-utils": { >+ "version": "1.0.1", >+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", >+ "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", >+ "dev": true >+ }, >+ "supports-color": { >+ "version": "5.3.0", >+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", >+ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", >+ "dev": true, >+ "requires": { >+ "has-flag": "^3.0.0" >+ } >+ }, >+ "wrappy": { >+ "version": "1.0.2", >+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", >+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", >+ "dev": true >+ } >+ } >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/package.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/package.json >index 02b2a9d9b1644eb6e614fa7394ad6c0dde1fed86..92faccafa813fb607f5be73a07cda7f7079d63d5 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/package.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/package.json >@@ -1,21 +1,27 @@ > { > "name": "webidl2", > "description": "A WebIDL Parser", >- "version": "2.4.0", >- "author": "Robin Berjon <robin@berjon.com>", >- "license": "MIT", >+ "version": "13.0.3", >+ "contributors": [ >+ "Robin Berjon <robin@berjon.com> (https://berjon.com)", >+ "Marcos Caceres <marcos@marcosc.com> (https://marcosc.com)", >+ "Kagami Sascha Rosylight <saschaplas@outlook.com>", >+ "Timothy Gu <timothygu99@gmail.com>" >+ ], >+ "license": "W3C", > "dependencies": {}, > "devDependencies": { >- "mocha": "3.2.0", >- "expect": "1.20.2", >- "underscore": "1.8.3", >- "jsondiffpatch": "0.2.4", >- "benchmark": "*", >- "microtime": "2.1.3" >+ "expect": "22.4.0", >+ "jsondiffpatch": "0.3.5", >+ "mocha": "5.0.4" > }, > "scripts": { >- "test": "mocha" >+ "test": "mocha", >+ "acquire": "node test/util/acquire.js" > }, >- "repository": "git://github.com/darobin/webidl2.js", >- "main": "index" >+ "repository": "git://github.com/w3c/webidl2.js", >+ "main": "index.js", >+ "files": [ >+ "lib/*" >+ ] > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid.js b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid.js >index b8ab3a1866de0f05d23b2999f97a216e8b789c7e..19bbf006e579ef5997ae23c01decf28c0b0acb68 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid.js >@@ -1,42 +1,20 @@ >- > // NOTES: > // - the errors actually still need to be reviewed to check that they > // are fully correct interpretations of the IDLs > >-var wp = process.env.JSCOV ? require("../lib-cov/webidl2") : require("../lib/webidl2") >-, expect = require("expect") >-, pth = require("path") >-, fs = require("fs") >-; >-describe("Parses all of the invalid IDLs to check that they blow up correctly", function () { >- var dir = pth.join(__dirname, "invalid/idl") >- , skip = {} >- , idls = fs.readdirSync(dir) >- .filter(function (it) { return (/\.w?idl$/).test(it) && !skip[it]; }) >- .map(function (it) { return pth.join(dir, it); }) >- , errors = idls.map(function (it) { return pth.join(__dirname, "invalid", "json", pth.basename(it).replace(/\.w?idl/, ".json")); }) >- ; >+"use strict"; > >- for (var i = 0, n = idls.length; i < n; i++) { >- var idl = idls[i], error = JSON.parse(fs.readFileSync(errors[i], "utf8")); >- var func = (function (idl, err) { >- return function () { >- var error; >- try { >- var ast = wp.parse(fs.readFileSync(idl, "utf8")); >- console.log(JSON.stringify(ast, null, 4)); >- } >- catch (e) { >- error = e; >- } >- finally { >- expect(error).toExist(); >- expect(error.message).toEqual(err.message); >- expect(error.line).toEqual(err.line); >- } >+const { collect } = require("./util/collect"); >+const fs = require("fs"); >+const expect = require("expect"); > >- }; >- }(idl, error)); >- it("should produce the right error for " + idl, func); >- } >+describe("Parses all of the invalid IDLs to check that they blow up correctly", () => { >+ for (const test of collect("invalid", { expectError: true })) { >+ it(`should produce the right error for ${test.path}`, () => { >+ const err = test.readJSON(); >+ expect(test.error).toBeTruthy(); >+ expect(test.error.message).toEqual(err.message); >+ expect(test.error.line).toEqual(err.line); >+ }); >+ } > }); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/array.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/array.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..58a8618ab648579247a8cd00ac9dc4a585faf6b8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/array.widl >@@ -0,0 +1,6 @@ >+// Extracted from http://dev.w3.org/2006/webapi/WebIDL/ on 2011-05-06 >+// T[] is removed by https://github.com/heycam/webidl/commit/079cbb861a99e9e857a3f2a169c0beeb49cd020a >+[Constructor] >+interface LotteryResults { >+ readonly attribute unsigned short[][] numbers; >+}; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/caller.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/caller.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..26fedc33f9402c651ebd15629a8fcb7212102120 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/caller.widl >@@ -0,0 +1,7 @@ >+// Extracted from http://dev.w3.org/2006/webapi/WebIDL/ on 2011-05-06 >+// legacycallers are removed by https://github.com/heycam/webidl/pull/412 >+ >+interface NumberQuadrupler { >+ // This operation simply returns four times the given number x. >+ legacycaller float compute(float x); >+}; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/duplicate.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/duplicate.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..4916af34273d30dd7579a9be362c5f8deb65df36 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/duplicate.widl >@@ -0,0 +1,5 @@ >+typedef int Test; >+ >+interface Test { >+ void foo(); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/enum-empty.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/enum-empty.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..7f189eb62c1bd2b6d710532b8042a459d7ba1b1f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/enum-empty.widl >@@ -0,0 +1 @@ >+enum Empty {}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/enum-wo-comma.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/enum-wo-comma.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..ebc53065ededed62d27c87ae3b1b661874d3c715 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/enum-wo-comma.widl >@@ -0,0 +1 @@ >+enum NoComma { "value1" "value2" }; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/exception.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/exception.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..a0ea2e47e20833641440b095a9b2d2d02f4504b7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/exception.widl >@@ -0,0 +1,6 @@ >+// Extracted from http://dev.w3.org/2006/webapi/WebIDL/ on 2011-05-06 >+// IDL exceptions are removed by https://github.com/heycam/webidl/commit/50e172ec079db073c3724c9beac1b576fb5dbc47 >+ >+exception SomeException { >+}; >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/extattr-empty-ids.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/extattr-empty-ids.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..93c48c3ade5fa448cddd3399f0d41de56268f2af >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/extattr-empty-ids.widl >@@ -0,0 +1,2 @@ >+[Exposed=()] >+interface Unexposed {}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/id-underscored-number.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/id-underscored-number.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..d00121fd54f2f31903fb7592f5d6e438b697a4fb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/id-underscored-number.widl >@@ -0,0 +1 @@ >+interface _0 {}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/implements_and_includes_ws.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/implements_and_includes_ws.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..6666daed00c3e7d9b7f64970030a2d46a38e4967 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/implements_and_includes_ws.widl >@@ -0,0 +1,4 @@ >+// This hits the unshifting of whitespace in the "implements" and >+// "includes" productions. If there is a bug in that whitespace >+// rollback, the wrong exception will be produced. >+foobar; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/iterator.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/iterator.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..3bf1b36dec675656cbfd7ea4603617b3db91bfc6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/iterator.widl >@@ -0,0 +1,35 @@ >+interface SessionManager { >+ Session getSessionForUser(DOMString username); >+ readonly attribute unsigned long sessionCount; >+ >+ Session iterator; >+}; >+ >+interface Session { >+ readonly attribute DOMString username; >+ // ... >+}; >+ >+interface SessionManager2 { >+ Session2 getSessionForUser(DOMString username); >+ readonly attribute unsigned long sessionCount; >+ >+ Session2 iterator = SessionIterator; >+}; >+ >+interface Session2 { >+ readonly attribute DOMString username; >+ // ... >+}; >+ >+interface SessionIterator { >+ readonly attribute unsigned long remainingSessions; >+}; >+ >+ interface NodeList { >+ Node iterator = NodeIterator; >+ }; >+ >+ interface NodeIterator { >+ Node iterator object; >+ }; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/maplike-1type.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/maplike-1type.widl >index 33c274b8b9a88605ed538b270ff6f5c7d0762016..efb5c14ffd626f7719277ee3892fce5fb664ec45 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/maplike-1type.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/maplike-1type.widl >@@ -1,3 +1,3 @@ > interface MapLikeOneType { >- maplike<long>; >+ maplike<long>; > } >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/namespace-readwrite.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/namespace-readwrite.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..e184133228458e91cff2cc88fcf3ee87fff92e3f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/namespace-readwrite.widl >@@ -0,0 +1,3 @@ >+namespace CSS { >+ attribute object readwrite; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon-callback.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon-callback.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..cb2055718e5f044a671424532eee6afe577bebc2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon-callback.widl >@@ -0,0 +1,7 @@ >+callback interface NoSemicolon { >+ attribute boolean noSemiColon; >+} >+ >+enum YouNeedOne { >+ "really" >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..10bc716249b3e1fa40faacb7298ee3b1f7b673bf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon.widl >@@ -0,0 +1,7 @@ >+partial interface NoSemicolon { >+ attribute boolean noSemiColon; >+} >+ >+enum YouNeedOne { >+ "really" >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/nonnullableobjects.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/nonnullableobjects.widl >index 1deac5aeec90815102bf41fc437da2c962eaefac..6c875ff04b52312bc55f737347e9924c26847cd8 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/nonnullableobjects.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/nonnullableobjects.widl >@@ -1,5 +1,6 @@ > interface Foo {}; > > interface NonNullable { >- attribute Foo?? foo; >-}; >\ No newline at end of file >+ attribute Foo?? >+ foo; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/promise-nullable.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/promise-nullable.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..894d7c044b2a5b4e9d30427cd913df7b709bdfa5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/promise-nullable.widl >@@ -0,0 +1,4 @@ >+interface X { >+ attribute Promise<void>? >+ promise; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/promise-with-extended-attribute.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/promise-with-extended-attribute.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..0ce171fec33e72d36168ad0d731c5199adb8b08e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/promise-with-extended-attribute.widl >@@ -0,0 +1,3 @@ >+interface Foo { >+ Promise<[XAttr] DOMString> foo(any param); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/readonly-iterable.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/readonly-iterable.widl >index fc4ae2be908446e336cadd84c475cb7462b0b355..6057aa1feba64ebce61c9ec067f6250f036efa0e 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/readonly-iterable.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/readonly-iterable.widl >@@ -1,3 +1,3 @@ > interface ReadonlyIterable { >- readonly iterable<long>; >+ readonly iterable<long>; > } >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/record-key-with-extended-attribute.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/record-key-with-extended-attribute.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..c11eb7414b0b8fcd9f2f6a1833bc764185b051fe >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/record-key-with-extended-attribute.widl >@@ -0,0 +1,3 @@ >+interface Foo { >+ void foo(record<[XAttr] DOMString, any> param); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/record-single.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/record-single.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..84db40282433b85f6a29cd236fdd51afe42c53a8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/record-single.widl >@@ -0,0 +1,3 @@ >+interface Foo { >+ void foo(record<DOMString> param); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/setlike-2types.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/setlike-2types.widl >index 1ecae22c0106cc9b8e5b30d6af3dfeeefb3dc22b..c2681bc75f1e8b38a2b83ce9ee5a262fbdcda762 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/setlike-2types.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/setlike-2types.widl >@@ -1,3 +1,3 @@ > interface SetLikeTwoTypes { >- setlike<long, long>; >+ setlike<long, long>; > } >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/setter-creator.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/setter-creator.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..a70b26774d722f99119b8e7ce975b11627338145 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/setter-creator.widl >@@ -0,0 +1,4 @@ >+// Extracted from http://dev.w3.org/2006/webapi/WebIDL/ on 2011-05-06 >+interface OrderedMap { >+ setter creator void set(DOMString name, any value); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/spaced-negative-infinity.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/spaced-negative-infinity.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..3d71222e54b5929062fc7b2080b99107e9f119c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/spaced-negative-infinity.widl >@@ -0,0 +1,3 @@ >+interface X { >+ const float infinity = - Infinity; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/spaced-variadic.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/spaced-variadic.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..6d77e186d6670fd0351934db12be01f7d4aff01a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/spaced-variadic.widl >@@ -0,0 +1,3 @@ >+interface X { >+ void operation(object . . . args); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/special-omittable.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/special-omittable.widl >index bdfbfa709733f9faa6672ac3953b4673f283092f..dd0c1b18589979c4baba301a6e792bb1d1eca4e1 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/special-omittable.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/special-omittable.widl >@@ -1,5 +1,5 @@ > // Extracted from http://dev.w3.org/2006/webapi/WebIDL/ on 2011-05-06 >-// omittable is no longer a recognized keywoard as of 20110905 >+// omittable is no longer a recognized keyword as of 20110905 > interface Dictionary { > readonly attribute unsigned long propertyCount; > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stray-slash.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stray-slash.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..b673aa94b01d65a0b666879f8c899c86111c7ab4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stray-slash.widl >@@ -0,0 +1,2 @@ >+// This is a comment. >+/ This is not. >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.idl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.idl >deleted file mode 100644 >index 44fd3ff136ee5671637d02cb80964ddba092a658..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.idl >+++ /dev/null >@@ -1,3 +0,0 @@ >-interface Util { >- const DOMString hello = "world"; >-}; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..44fd3ff136ee5671637d02cb80964ddba092a658 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.widl >@@ -0,0 +1,3 @@ >+interface Util { >+ const DOMString hello = "world"; >+}; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/typedef-nested.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/typedef-nested.widl >index 106f30b8f72ec7df496302b4a03ddddb55bf7f19..dfd377bf932b98cceeeb69755e8eacfa38417ae0 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/typedef-nested.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/typedef-nested.widl >@@ -19,4 +19,4 @@ > boolean allPointsWithinBounds(PointSequence ps); > }; > >- typedef [Clamp] octet value; >\ No newline at end of file >+ typedef [Clamp] octet value; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-dangling-or.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-dangling-or.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..0aa043e9aca9587dfb5c44ef96477b98d5215ed4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-dangling-or.widl >@@ -0,0 +1 @@ >+typedef (One or Two or) UnionOr; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-one.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-one.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..86ee96f516d63536a17bf1ef5cb8d178dc0ca326 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-one.widl >@@ -0,0 +1 @@ >+typedef (OnlyOne) UnionOne; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-zero.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-zero.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..177fc4c708f901c089983317b5dbce23941329b1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-zero.widl >@@ -0,0 +1 @@ >+typedef () UnionZero; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/unknown-generic.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/unknown-generic.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..ee4a2db74a63bdef11d2920e6b698b7b4dc0f155 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/unknown-generic.widl >@@ -0,0 +1,3 @@ >+interface FetchEvent : Event { >+ ResponsePromise<any> default(); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/w3c-import.log >index 6a3f4930a4eb7f3dbf3a4e17fd2aea3dc26d3550..f2ceb4df6ec7d56de91e80d85d8e3a429db03d5c 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/w3c-import.log >@@ -1,7 +1,7 @@ > The tests in this directory were imported from the W3C repository. > Do NOT modify these tests directly in WebKit. > Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >+ https://github.com/web-platform-tests/wpt > > Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport > >@@ -14,18 +14,43 @@ Property values requiring vendor prefixes: > None > ------------------------------------------------------------------------ > List of files: >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/array.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/caller.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/dict-required-default.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/duplicate.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/enum-empty.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/enum-wo-comma.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/enum.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/exception.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/extattr-empty-ids.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/id-underscored-number.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/implements_and_includes_ws.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/iterator.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/maplike-1type.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/module.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/namespace-readwrite.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon-callback.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/no-semicolon.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/nonnullableany.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/nonnullableobjects.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/promise-nullable.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/promise-with-extended-attribute.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/raises.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/readonly-iterable.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/record-key-with-extended-attribute.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/record-key.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/record-single.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/scopedname.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/sequenceAsAttribute.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/setlike-2types.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/setter-creator.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/spaced-negative-infinity.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/spaced-variadic.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/special-omittable.widl >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.idl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stray-slash.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/stringconstants.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/typedef-nested.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-dangling-or.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-one.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/union-zero.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/idl/unknown-generic.widl >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/array.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/array.json >new file mode 100644 >index 0000000000000000000000000000000000000000..898b2d836bff81330d734e0ba10372e9772fd523 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/array.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface LotteryResults`: No name in attribute", >+ "line": 5 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/caller.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/caller.json >new file mode 100644 >index 0000000000000000000000000000000000000000..567fa3368129f9b6d54bb3bb4c0f9d4d50186525 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/caller.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface NumberQuadrupler`: Invalid operation", >+ "line": 6 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/dict-required-default.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/dict-required-default.json >index c5afeca85c05debc159481b3e8344aa87fd96da2..82b6b2ae42a6f61a20a32bcb67f44461ba7adae1 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/dict-required-default.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/dict-required-default.json >@@ -1,4 +1,4 @@ > { >- "message": "Required member must not have a default" >+ "message": "Got an error during or right after parsing `dictionary Dict`: Required member must not have a default" > , "line": 4 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/duplicate.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/duplicate.json >new file mode 100644 >index 0000000000000000000000000000000000000000..e88a7156fe8c1c602ebe1ae8d66cbeebe69ff060 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/duplicate.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `typedef Test`: The name \"Test\" of type \"typedef\" is already seen", >+ "line": 3 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum-empty.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum-empty.json >new file mode 100644 >index 0000000000000000000000000000000000000000..734bc67de1fd67e98c8c8d78bde45c62fb3201ed >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum-empty.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `enum Empty`: No value in enum", >+ "line": 1 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum-wo-comma.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum-wo-comma.json >new file mode 100644 >index 0000000000000000000000000000000000000000..bfd0b0951fce8d25739d2e18a027e7fc600d9b14 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum-wo-comma.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `enum NoComma`: No comma between enum values", >+ "line": 1 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum.json >index 166115801c3411b8faf7d3e9bccbe4a022a02b0e..073ff6c290cafdf614909b8f6ef27ba0a4c5829d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum.json >@@ -1,4 +1,4 @@ > { >- "message": "Unexpected value in enum" >+ "message": "Got an error during or right after parsing `enum foo`: Unexpected value in enum" > , "line": 1 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/exception.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/exception.json >new file mode 100644 >index 0000000000000000000000000000000000000000..ad9fac6ca2f64e7083421516a9ceb9e6397555ec >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/exception.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error before parsing any named definition: Unrecognised tokens", >+ "line": 4 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/extattr-empty-ids.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/extattr-empty-ids.json >new file mode 100644 >index 0000000000000000000000000000000000000000..4337f1e180c28881514845d54557819674a76418 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/extattr-empty-ids.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error before parsing any named definition: Expected identifiers but not found", >+ "line": 1 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/id-underscored-number.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/id-underscored-number.json >new file mode 100644 >index 0000000000000000000000000000000000000000..419ed946fca05c2097ff3c2c48b91cb11e5a1b2a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/id-underscored-number.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error before parsing any named definition: No name for interface", >+ "line": 1 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/implements_and_includes_ws.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/implements_and_includes_ws.json >new file mode 100644 >index 0000000000000000000000000000000000000000..ad9fac6ca2f64e7083421516a9ceb9e6397555ec >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/implements_and_includes_ws.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error before parsing any named definition: Unrecognised tokens", >+ "line": 4 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/iterator.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/iterator.json >new file mode 100644 >index 0000000000000000000000000000000000000000..e46d653ae3c51293d584045cdadd6c0a301206fe >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/iterator.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface SessionManager`: Invalid operation", >+ "line": 5 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/maplike-1type.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/maplike-1type.json >index 859a820a4910cd1592dd52b31adebb013409f917..75e7a35ee256e91357994ff8a85b1828cb48112e 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/maplike-1type.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/maplike-1type.json >@@ -1,4 +1,4 @@ > { >- "message": "Missing second type argument in maplike declaration", >+ "message": "Got an error during or right after parsing `interface MapLikeOneType`: Missing second type argument in maplike declaration", > "line": 2 >-} >\ No newline at end of file >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/module.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/module.json >index 3b0984d973f45e32c56dd76d6d8b7fd6d8beb220..9c071cdd07a7a39ed18592e82100d8d50065a030 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/module.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/module.json >@@ -1,4 +1,4 @@ > { >- "message": "Unrecognised tokens" >+ "message": "Got an error before parsing any named definition: Unrecognised tokens" > , "line": 2 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/namespace-readwrite.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/namespace-readwrite.json >new file mode 100644 >index 0000000000000000000000000000000000000000..d21215111f1ee27ae73df035349c576c64362a43 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/namespace-readwrite.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `namespace CSS`: Attributes must be readonly in this context", >+ "line": 2 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon-callback.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon-callback.json >new file mode 100644 >index 0000000000000000000000000000000000000000..1db9d14c8e2c51204a1e2a2d7d1e98c3066106ef >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon-callback.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `callback interface NoSemicolon`: Missing semicolon after interface", >+ "line": 5 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon.json >new file mode 100644 >index 0000000000000000000000000000000000000000..087532a012f59276976b70b1709e927c2ddd0797 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `partial interface NoSemicolon`: Missing semicolon after interface", >+ "line": 5 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableany.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableany.json >index cf5229e8e44ab096ae16c22e0b0b04c392fcb28b..8a1f90046ae4d9df8c58bf17e0c2ed6bdc7c4fd0 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableany.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableany.json >@@ -1,4 +1,4 @@ > { >- "message": "Type any cannot be made nullable" >+ "message": "Got an error during or right after parsing `interface NonNullable`: Type any cannot be made nullable" > , "line": 2 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableobjects.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableobjects.json >index 23cbb3e5d180f15a898743edbd7ec400a74b32f4..d470ec94a606c6caa01901d9724128d31111d216 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableobjects.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableobjects.json >@@ -1,4 +1,4 @@ > { >- "message": "Can't nullable more than once" >-, "line": 4 >+ "message": "Got an error during or right after parsing `interface NonNullable`: Can't nullable more than once", >+ "line": 4 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/promise-nullable.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/promise-nullable.json >new file mode 100644 >index 0000000000000000000000000000000000000000..ced51faf1be4df756b4bc987356ad88ada0f0038 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/promise-nullable.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface X`: Promise type cannot be nullable", >+ "line": 2 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/promise-with-extended-attribute.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/promise-with-extended-attribute.json >new file mode 100644 >index 0000000000000000000000000000000000000000..71212d46e3c011aed64cb6b6008a4a1b427d14bf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/promise-with-extended-attribute.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface Foo`: Promise type cannot have extended attribute", >+ "line": 2 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/raises.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/raises.json >index 8b67afe4fc9702d3577aef8cf9f430662cd60119..3165b874f0c1891186b479b6460c0ae90a8533db 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/raises.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/raises.json >@@ -1,4 +1,4 @@ > { >- "message": "Unterminated attribute" >+ "message": "Got an error during or right after parsing `interface Person`: Unterminated attribute" > , "line": 5 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/readonly-iterable.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/readonly-iterable.json >index c6f52a24615883eddf581aa15d215b426859c4cb..a571b22271b80e1f863fdba263603518a71899b3 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/readonly-iterable.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/readonly-iterable.json >@@ -1,4 +1,4 @@ > { >- "message": "Invalid operation", >+ "message": "Got an error during or right after parsing `interface ReadonlyIterable`: Missing return type", > "line": 2 >-} >\ No newline at end of file >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-key-with-extended-attribute.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-key-with-extended-attribute.json >new file mode 100644 >index 0000000000000000000000000000000000000000..4002e7fe0155d5bc2d615d55a4e4e976e13e38a8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-key-with-extended-attribute.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface Foo`: Record key cannot have extended attribute", >+ "line": 2 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-key.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-key.json >index 3b929b926a30a7d0b776961ee5135fae3ae57265..6f1bb99be9080873adc0c7c685dca0d55c2b67ec 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-key.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-key.json >@@ -1,4 +1,4 @@ > { >- "message": "Record key must be DOMString, USVString, or ByteString", >+ "message": "Got an error during or right after parsing `interface Foo`: Record key must be a string type", > "line": 2 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-single.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-single.json >new file mode 100644 >index 0000000000000000000000000000000000000000..ece4fb2fee3c07c3aa6241e3c0cb6ed5477257db >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-single.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface Foo`: Missing comma after record key type", >+ "line": 2 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/scopedname.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/scopedname.json >index 8e2cd803287ef4fce3812c5ea55cfdc87c01e31f..4620d2df5fa0cc254a6d6cd3c6b75147c658b40a 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/scopedname.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/scopedname.json >@@ -1,4 +1,4 @@ > { >- "message": "No name in typedef" >+ "message": "Got an error before parsing any named definition: No name in typedef" > , "line": 2 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/sequenceAsAttribute.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/sequenceAsAttribute.json >index b714f5d92434a2cc45630336b33d7645556c329c..5b4314a6de128dc602ae1dec4601a00f86c111bf 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/sequenceAsAttribute.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/sequenceAsAttribute.json >@@ -1,4 +1,4 @@ > { >- "message": "Attributes cannot accept sequence types" >+ "message": "Got an error during or right after parsing `interface sequenceAsAttribute`: Attributes cannot accept sequence types" > , "line": 2 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/setlike-2types.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/setlike-2types.json >index c9e49b6756d5d900a0c1b18a440e62b4811a1d3b..2900e1bac300742cec71ee8f66977bde9b9c60ac 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/setlike-2types.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/setlike-2types.json >@@ -1,4 +1,4 @@ > { >- "message": "Unterminated setlike declaration", >+ "message": "Got an error during or right after parsing `interface SetLikeTwoTypes`: Unterminated setlike declaration", > "line": 2 >-} >\ No newline at end of file >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/setter-creator.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/setter-creator.json >new file mode 100644 >index 0000000000000000000000000000000000000000..25decb374e12fe27f05979e40d7f30647395be16 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/setter-creator.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface OrderedMap`: Invalid operation", >+ "line": 3 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/spaced-negative-infinity.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/spaced-negative-infinity.json >new file mode 100644 >index 0000000000000000000000000000000000000000..9e5d61804990bb8a99e1c863b2c73bb8eb5ee142 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/spaced-negative-infinity.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface X`: No value for const", >+ "line": 2 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/spaced-variadic.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/spaced-variadic.json >new file mode 100644 >index 0000000000000000000000000000000000000000..0090abeeb71b23148a5d9ccd2a3bff927774ed5d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/spaced-variadic.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface X`: Unterminated operation", >+ "line": 2 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/special-omittable.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/special-omittable.json >index 7acb08834b0e6eaf0ece877b63466eadb42a5299..c20b28e03c17d6df29e2ca1b7ee948f579ff3f27 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/special-omittable.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/special-omittable.json >@@ -1,4 +1,4 @@ > { >- "message": "Invalid operation" >+ "message": "Got an error during or right after parsing `interface Dictionary`: Invalid operation" > , "line": 6 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/stray-slash.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/stray-slash.json >new file mode 100644 >index 0000000000000000000000000000000000000000..9c071cdd07a7a39ed18592e82100d8d50065a030 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/stray-slash.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error before parsing any named definition: Unrecognised tokens" >+, "line": 2 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/stringconstants.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/stringconstants.json >index d5bf1a8832c664a02c488f70df005311d30b926a..745d6e6e08ba2238002d27bb5bc4a7e0c6c01bfa 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/stringconstants.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/stringconstants.json >@@ -1,4 +1,4 @@ > { >- "message": "No value for const" >+ "message": "Got an error during or right after parsing `interface Util`: No type for const" > , "line": 2 > } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/typedef-nested.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/typedef-nested.json >index d7fb9182f86e9d3db758763f472e2ab056fcaf09..e1843cec7d93e4f7df588724a4fe3985ec53c48b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/typedef-nested.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/typedef-nested.json >@@ -1,4 +1,4 @@ > { >- "message": "Invalid operation" >+ "message": "Got an error during or right after parsing `interface Widget`: Missing return type" > , "line": 14 >-} >\ No newline at end of file >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-dangling-or.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-dangling-or.json >new file mode 100644 >index 0000000000000000000000000000000000000000..68dfd8b2ae60986b15ab06b4bd90c3a9a1f64d5b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-dangling-or.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error before parsing any named definition: No type after open parenthesis or 'or' in union type", >+ "line": 1 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-one.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-one.json >new file mode 100644 >index 0000000000000000000000000000000000000000..476403d6889be7754ff7d2fa65edbe31b4bb4ea1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-one.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error before parsing any named definition: At least two types are expected in a union type but found less", >+ "line": 1 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-zero.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-zero.json >new file mode 100644 >index 0000000000000000000000000000000000000000..68dfd8b2ae60986b15ab06b4bd90c3a9a1f64d5b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-zero.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error before parsing any named definition: No type after open parenthesis or 'or' in union type", >+ "line": 1 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/unknown-generic.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/unknown-generic.json >new file mode 100644 >index 0000000000000000000000000000000000000000..3703db3b2ab332bb1754e01f0e8dbe012a3f99d7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/unknown-generic.json >@@ -0,0 +1,4 @@ >+{ >+ "message": "Got an error during or right after parsing `interface FetchEvent`: Unsupported generic type ResponsePromise", >+ "line": 2 >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/w3c-import.log >index 7bc368eafaa544d2ea457f2748b2eeb4a509cec8..30181bf61575c8c9259cdd17111f5f7c597d992a 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/w3c-import.log >@@ -1,7 +1,7 @@ > The tests in this directory were imported from the W3C repository. > Do NOT modify these tests directly in WebKit. > Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >+ https://github.com/web-platform-tests/wpt > > Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport > >@@ -14,18 +14,43 @@ Property values requiring vendor prefixes: > None > ------------------------------------------------------------------------ > List of files: >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/array.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/caller.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/dict-required-default.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/duplicate.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum-empty.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum-wo-comma.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/enum.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/exception.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/extattr-empty-ids.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/id-underscored-number.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/implements_and_includes_ws.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/iterator.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/maplike-1type.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/module.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/namespace-readwrite.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon-callback.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/no-semicolon.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableany.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/nonnullableobjects.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/promise-nullable.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/promise-with-extended-attribute.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/raises.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/readonly-iterable.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-key-with-extended-attribute.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-key.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/record-single.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/scopedname.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/sequenceAsAttribute.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/setlike-2types.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/setter-creator.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/spaced-negative-infinity.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/spaced-variadic.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/special-omittable.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/stray-slash.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/stringconstants.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/typedef-nested.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-dangling-or.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-one.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/union-zero.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid/json/unknown-generic.json >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax.js b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax.js >index 3b343e4229d5027d9fe081418d2d5fb47d49a8f5..05d647eda103945b0633bef0b53ee789268165d3 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax.js >@@ -1,41 +1,19 @@ >+"use strict"; > >-var wp = process.env.JSCOV ? require("../lib-cov/webidl2") : require("../lib/webidl2") >-, expect = require("expect") >-, pth = require("path") >-, fs = require("fs") >-, jdp = require("jsondiffpatch") >-, debug = true >-; >-describe("Parses all of the IDLs to produce the correct ASTs", function () { >- var dir = pth.join(__dirname, "syntax/idl") >- , skip = {} // use if we have a broken test >- , idls = fs.readdirSync(dir) >- .filter(function (it) { return (/\.widl$/).test(it) && !skip[it]; }) >- .map(function (it) { return pth.join(dir, it); }) >- , jsons = idls.map(function (it) { return pth.join(__dirname, "syntax/json", pth.basename(it).replace(".widl", ".json")); }) >- ; >+const { collect } = require("./util/collect"); >+const expect = require("expect"); >+const debug = true; > >- for (var i = 0, n = idls.length; i < n; i++) { >- var idl = idls[i], json = jsons[i]; >- >- var func = (function (idl, json) { >- return function () { >- try { >- var optFile = pth.join(__dirname, "syntax/opt", pth.basename(json)); >- var opt = undefined; >- if (fs.existsSync(optFile)) >- opt = JSON.parse(fs.readFileSync(optFile, "utf8")); >- var diff = jdp.diff(JSON.parse(fs.readFileSync(json, "utf8")), >- wp.parse(fs.readFileSync(idl, "utf8"), opt)); >- if (diff && debug) console.log(JSON.stringify(diff, null, 4)); >- expect(diff).toBe(undefined); >- } >- catch (e) { >- console.log(e.toString()); >- throw e; >- } >- }; >- }(idl, json)); >- it("should produce the same AST for " + idl, func); >- } >+describe("Parses all of the IDLs to produce the correct ASTs", () => { >+ for (const test of collect("syntax")) { >+ it(`should produce the same AST for ${test.path}`, () => { >+ try { >+ expect(test.diff()).toBeFalsy(); >+ } >+ catch (e) { >+ console.log(e.toString()); >+ throw e; >+ } >+ }); >+ } > }); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/array.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/array.widl >deleted file mode 100644 >index 22e21fb6564738bd56830ce0300da389ce0574bf..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/array.widl >+++ /dev/null >@@ -1,5 +0,0 @@ >-// Extracted from http://dev.w3.org/2006/webapi/WebIDL/ on 2011-05-06 >-[Constructor] >-interface LotteryResults { >- readonly attribute unsigned short[][] numbers; >-}; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/attributes.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/attributes.widl >index 7e1d691cbe28afdc58082a7fd81cbdb4f37cf456..f665c1fc47276f700dabab71f869c0b0ead28163 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/attributes.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/attributes.widl >@@ -1,9 +1,4 @@ > // Extracted from http://dev.w3.org/2006/webapi/WebIDL/ on 2011-05-06 >-exception InvalidName { >- DOMString reason; >-}; >- >-exception NoSuchPet { }; > > interface Person { > >@@ -11,4 +6,6 @@ interface Person { > // short can take. > attribute unsigned short age; > >-}; >\ No newline at end of file >+ // required is an allowed attribute name >+ attribute any required; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/caller.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/caller.widl >deleted file mode 100644 >index 92acb1c017631f04762f8d68e0462e10d3739dad..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/caller.widl >+++ /dev/null >@@ -1,5 +0,0 @@ >-// Extracted from http://dev.w3.org/2006/webapi/WebIDL/ on 2011-05-06 >-interface NumberQuadrupler { >- // This operation simply returns four times the given number x. >- legacycaller float compute(float x); >-}; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/constants.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/constants.widl >index 5e28ae9c116a9d9262ea9e59e5b95350a1ce613f..043b022b6462eed600c8a9ceab87d1ebaef5ea18 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/constants.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/constants.widl >@@ -8,11 +8,4 @@ interface Util { > const unrestricted float sobig = Infinity; > const unrestricted double minusonedividedbyzero = -Infinity; > const short notanumber = NaN; >-}; >- >-exception Error { >- const short ERR_UNKNOWN = 0; >- const short ERR_OUT_OF_MEMORY = 1; >- >- short errorCode; > }; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/equivalent-decl.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/equivalent-decl.widl >index 6b3e0eda284ad71f7b3ad6221a15214d4fc0fc23..6ffeb3c20a1a47209ceb2ec2441f62be3f553158 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/equivalent-decl.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/equivalent-decl.widl >@@ -7,7 +7,7 @@ interface Dictionary { > }; > > >-interface Dictionary { >+interface Dictionary2 { > readonly attribute unsigned long propertyCount; > > float getProperty(DOMString propertyName); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/exception-inheritance.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/exception-inheritance.widl >deleted file mode 100644 >index 258fdeba6f43d36a2a8d7927b695d53a5cc5d2e3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/exception-inheritance.widl >+++ /dev/null >@@ -1,7 +0,0 @@ >-// from http://lists.w3.org/Archives/Public/public-script-coord/2010OctDec/0112.html >- exception DOMException { >- unsigned short code; >- }; >- >- exception HierarchyRequestError : DOMException { }; >- exception NoModificationAllowedError : DOMException { }; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/exception.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/exception.widl >deleted file mode 100644 >index f4b6ae29e10ddb18ffa5fc2b6201f923cb1ad50d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/exception.widl >+++ /dev/null >@@ -1,8 +0,0 @@ >-// Extracted from http://dev.w3.org/2006/webapi/WebIDL/ on 2011-05-06 >-interface Dahut { >- attribute DOMString type; >-}; >- >-exception SomeException { >-}; >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/extended-attributes.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/extended-attributes.widl >index c1df79e142d54dbf9bd4c3c298b0c270e679ffc2..57d4f97de7c3176b65e3da2aa7ed53d3db789fd9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/extended-attributes.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/extended-attributes.widl >@@ -2,10 +2,28 @@ > > [Global=(Worker,ServiceWorker), Exposed=ServiceWorker] > interface ServiceWorkerGlobalScope : WorkerGlobalScope { >- >+ > }; > > // Conformance with ExtendedAttributeList grammar in http://www.w3.org/TR/WebIDL/#idl-extended-attributes > // Section 3.11 > [IntAttr=0, FloatAttr=3.14, StringAttr="abc"] > interface IdInterface {}; >+ >+// Extracted from http://www.w3.org/TR/2016/REC-WebIDL-1-20161215/#Constructor on 2017-5-18 with whitespace differences >+[ >+ Constructor, >+ Constructor(double radius) >+] >+interface Circle { >+ attribute double r; >+ attribute double cx; >+ attribute double cy; >+ readonly attribute double circumference; >+}; >+ >+// Extracted from https://heycam.github.io/webidl/#idl-annotated-types on 2017-12-15 >+[Exposed=Window] >+interface I { >+ attribute [XAttr] (long or Node) attrib; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/generic.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/generic.widl >index 02b64572a426abc69e4247563eb1d4797aec321e..693cd324e96b85dbb4ff25d2c9d8dd1edbf495b3 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/generic.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/generic.widl >@@ -1,17 +1,17 @@ > interface Foo { >- Promise<ResponsePromise<sequence<DOMString?>>> bar(); >- readonly attribute Promise<DOMString>[] baz; >+ Promise<Promise<sequence<DOMString?>>> bar(); >+ readonly attribute Promise<DOMString> baz; > }; > > // Extracted from https://slightlyoff.github.io/ServiceWorker/spec/service_worker/ on 2014-05-08 > > interface ServiceWorkerClients { >- Promise<Client[]?> getServiced(); >+ Promise<Client?> getServiced(); > Promise<any> reloadAll(); > }; > > // Extracted from https://slightlyoff.github.io/ServiceWorker/spec/service_worker/ on 2014-05-13 > > interface FetchEvent : Event { >- ResponsePromise<any> default(); >+ Promise<any> default(); > }; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/identifier-qualified-names.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/identifier-qualified-names.widl >index 33893d4c64498240b5cb84f19081dbd6f90e0d2a..c39f84b45a36cccd360a861b118c3723aeb3ef2d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/identifier-qualified-names.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/identifier-qualified-names.widl >@@ -3,18 +3,6 @@ > // Qualified name: "::framework::number" > typedef float number; > >- // Exception identifier: "FrameworkException" >- // Qualified name: "::framework::FrameworkException" >- exception FrameworkException { >- >- // Constant identifier: "ERR_NOT_FOUND" >- // Qualified name: "::framework::FrameworkException::ERR_NOT_FOUND" >- const long ERR_NOT_FOUND = 1; >- >- // Exception field identifier: "code" >- long code; >- }; >- > // Interface identifier: "System" > // Qualified name: "::framework::System" > interface System { >@@ -27,7 +15,7 @@ > getter DOMString (DOMString keyName); > }; > >- >+ > // Interface identifier: "TextField" > // Qualified name: "::framework::gui::TextField" > interface TextField { >@@ -39,6 +27,7 @@ > attribute DOMString? _value; > }; > >-interface Foo { >- void op(object interface); >-}; >\ No newline at end of file >+interface FooEventTarget { >+ // Argument names allow some selected keywords >+ void addEventListener(EventListener? callback); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/indexed-properties.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/indexed-properties.widl >index acf0ed3bf849f06b2fc1d375cb3a82488b3bd050..4b8aa9e353fac89c05ad21fe065b455e049268e3 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/indexed-properties.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/indexed-properties.widl >@@ -7,6 +7,6 @@ interface OrderedMap { > deleter void removeByIndex(unsigned long index); > > getter any get(DOMString name); >- setter creator void set(DOMString name, any value); >+ setter void set(DOMString name, any value); > deleter void remove(DOMString name); >-}; >\ No newline at end of file >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/inherits-getter.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/inherits-getter.widl >index 558e8116494b2b3b5cf0ab5bc4f3c9f384aa906b..435b3ab3c8cd5877a1c096504f953dd287a8acfc 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/inherits-getter.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/inherits-getter.widl >@@ -13,4 +13,10 @@ interface Person : Animal { > // Its getter behavior is inherited from Animal, and need not be specified > // the description of Person. > inherit attribute DOMString name; >-}; >\ No newline at end of file >+}; >+ >+interface Ghost : Person { >+ >+ // An attribute that only inherits the getter behavior >+ inherit readonly attribute DOMString name; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterable.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterable.widl >index c7dfafa4daa808a225a1678ba52f350555de93c6..7f726f926fdecd72600c43e328f1e0bfb36f9be1 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterable.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterable.widl >@@ -1,7 +1,11 @@ > interface IterableOne { >- iterable<long>; >+ iterable<long>; > }; > > interface IterableTwo { >- iterable<short, double?>; >+ iterable<short, double?>; >+}; >+ >+interface IterableThree { >+ iterable<[XAttr] long>; > }; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterator.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterator.widl >deleted file mode 100644 >index 3bf1b36dec675656cbfd7ea4603617b3db91bfc6..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterator.widl >+++ /dev/null >@@ -1,35 +0,0 @@ >-interface SessionManager { >- Session getSessionForUser(DOMString username); >- readonly attribute unsigned long sessionCount; >- >- Session iterator; >-}; >- >-interface Session { >- readonly attribute DOMString username; >- // ... >-}; >- >-interface SessionManager2 { >- Session2 getSessionForUser(DOMString username); >- readonly attribute unsigned long sessionCount; >- >- Session2 iterator = SessionIterator; >-}; >- >-interface Session2 { >- readonly attribute DOMString username; >- // ... >-}; >- >-interface SessionIterator { >- readonly attribute unsigned long remainingSessions; >-}; >- >- interface NodeList { >- Node iterator = NodeIterator; >- }; >- >- interface NodeIterator { >- Node iterator object; >- }; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/legacyiterable.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/legacyiterable.widl >index eafa7cf0445947efee5d58bc1ff77376d166d8f0..9e1e9c527447a2bb2013baf28c31d3faddcac6ff 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/legacyiterable.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/legacyiterable.widl >@@ -1,3 +1,3 @@ > interface LegacyIterable { >- legacyiterable<long>; >+ legacyiterable<long>; > }; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/maplike.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/maplike.widl >index 7b79b3888026a7693be7e46e10187290ebe2b1b4..437e381fef7673ecacc52362b5a30910c68156cd 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/maplike.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/maplike.widl >@@ -1,7 +1,13 @@ > interface MapLike { >- maplike<long, float>; >+ maplike<long, float>; > }; > > interface ReadOnlyMapLike { >- readonly maplike<long, float>; >+ readonly maplike<long, float>; >+}; >+ >+// Extracted from https://heycam.github.io/webidl/#idl-type-extended-attribute-associated-with on 2017-07-01 >+ >+interface I { >+ maplike<[XAttr2] DOMString, [XAttr3] long>; > }; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/mixin.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/mixin.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..7c37a6ee4207b31ddd2c48f9e1725721679e79e2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/mixin.widl >@@ -0,0 +1,12 @@ >+// Extracted from https://heycam.github.io/webidl/#using-mixins-and-partials on 2017-11-02 >+ >+interface mixin GlobalCrypto { >+ readonly attribute Crypto crypto; >+}; >+ >+Window includes GlobalCrypto; >+WorkerGlobalScope includes GlobalCrypto; >+ >+partial interface mixin WindowOrWorkerGlobalScope { >+ readonly attribute Crypto crypto; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/overloading.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/overloading.widl >index ef1288a887763dd78947de6b8786c00539474e97..52d8d15c1a13c81397bff5981d5745d9e42ea92d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/overloading.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/overloading.widl >@@ -12,9 +12,9 @@ interface C { > void f(B x); > }; > >-interface A { >+interface D { > /* f1 */ void f(DOMString a); > /* f2 */ void f([AllowAny] DOMString a, DOMString b, float... c); > /* f3 */ void f(); > /* f4 */ void f(long a, DOMString b, optional DOMString c, float... d); >-}; >\ No newline at end of file >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/primitives.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/primitives.widl >index 92939601a1a839cf7c48c3ed748eeb93bfa3febc..a91455ee192f192187e23728c78eaa6fda8d733f 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/primitives.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/primitives.widl >@@ -9,11 +9,11 @@ interface Primitives { > attribute long long bigbig; > attribute unsigned long long bigbigpositive; > attribute float real; >- attribute double bigreal; >+ attribute double bigreal; > attribute unrestricted float realwithinfinity; >- attribute unrestricted double bigrealwithinfinity; >- attribute DOMString string; >- attribute ByteString bytes; >+ attribute unrestricted double bigrealwithinfinity; >+ attribute DOMString string; >+ attribute ByteString bytes; > attribute Date date; > attribute RegExp regexp; >-}; >\ No newline at end of file >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/promise-void.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/promise-void.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..c4eac3b75c46ac02a22c7682056cb32b5ecb4d89 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/promise-void.widl >@@ -0,0 +1,3 @@ >+interface Cat { >+ attribute Promise<void> meow; >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/record.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/record.widl >index 6cdedb219bece6da8fdc98c739d341b599f71c99..dbfad3afbfeb6875725c977be301476292e48f41 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/record.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/record.widl >@@ -2,7 +2,8 @@ > interface Foo { > void foo(sequence<record<ByteString, any>> param); > record<DOMString, (float or DOMString)?> bar(); >+}; > >- // Make sure record can still be registered as a type. >- record baz(); >+interface Bar { >+ record<DOMString, [XAttr] float> bar(); > }; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/reg-operations.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/reg-operations.widl >index 13997cb1d121ce106f49cfdcdeb9789074704842..338c8d427636fb340a00db9ec9b1ac51cfe15388 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/reg-operations.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/reg-operations.widl >@@ -4,8 +4,6 @@ interface Dimensions { > attribute unsigned long height; > }; > >-exception NoPointerDevice { }; >- > interface Button { > > // An operation that takes no arguments, returns a boolean >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/sequence.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/sequence.widl >index 6ba0d390d251a7df21c785d3c4b100ef23717cbe..b47c98225c71568e933139a902517bcf860a20e9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/sequence.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/sequence.widl >@@ -6,7 +6,8 @@ interface Canvas { > // ... > }; > >-// Make sure sequence can still be registered as a type. >-interface Foo { >- sequence bar(); >-}; >\ No newline at end of file >+// Extracted from https://heycam.github.io/webidl/#idl-type-extended-attribute-associated-with on 2017-07-01 >+ >+interface I { >+ void f1(sequence<[XAttr] long> arg); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/serializer.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/serializer.widl >deleted file mode 100644 >index 6f6ccd0e8d59e3e057f5ad0d2f65530b16a39359..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/serializer.widl >+++ /dev/null >@@ -1,64 +0,0 @@ >-interface Transaction { >- readonly attribute Account from; >- readonly attribute Account to; >- readonly attribute float amount; >- readonly attribute DOMString description; >- readonly attribute unsigned long number; >- >- serializer; >-}; >- >-interface Account { >- attribute DOMString name; >- attribute unsigned long number; >- serializer DOMString serialize(); >-}; >- >-interface Transaction2 { >- readonly attribute Account2 from; >- readonly attribute Account2 to; >- readonly attribute float amount; >- readonly attribute DOMString description; >- readonly attribute unsigned long number; >- >- serializer = { from, to, amount, description }; >-}; >- >-interface Account2 { >- attribute DOMString name; >- attribute unsigned long number; >- serializer = number; >-}; >- >-interface Account3 { >- attribute DOMString name; >- attribute unsigned long number; >- >- serializer = { attribute }; >-}; >- >-interface Account4 { >- getter object getItem(unsigned long index); >- serializer = { getter }; >-}; >- >-interface Account5 : Account { >- attribute DOMString secondname; >- serializer = { inherit, secondname }; >-}; >- >-interface Account6 : Account { >- attribute DOMString secondname; >- serializer = { inherit, attribute }; >-}; >- >-interface Account7 { >- attribute DOMString name; >- attribute unsigned long number; >- serializer = [ name, number ]; >-}; >- >-interface Account8 { >- getter object getItem(unsigned long index); >- serializer = [ getter ]; >-}; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/setlike.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/setlike.widl >index 890e8e5a7597dde08c2fa7cb95461baddde69bba..4512f286b59a506fcbb957befe24a081b097d73e 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/setlike.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/setlike.widl >@@ -1,7 +1,11 @@ > interface SetLike { >- setlike<long>; >+ setlike<long>; > }; > > interface ReadOnlySetLike { >- readonly setlike<long>; >+ readonly setlike<long>; >+}; >+ >+interface SetLikeExt { >+ setlike<[XAttr] long>; > }; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/stringifier.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/stringifier.widl >index 4eb483d9b53861a104f712d942af3b10566023c5..c45277ea8db3377952b4bfa8a040aadb1d1c340e 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/stringifier.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/stringifier.widl >@@ -3,6 +3,6 @@ interface A { > stringifier DOMString (); > }; > >-interface A { >+interface B { > stringifier; > }; >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.idl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.idl >deleted file mode 100644 >index 3048703e0c5541d5ca69f51870f219abf3745b44..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.idl >+++ /dev/null >@@ -1,4 +0,0 @@ >- typedef (ImageData or >- HTMLImageElement or >- HTMLCanvasElement or >- HTMLVideoElement) TexImageSource; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.widl >new file mode 100644 >index 0000000000000000000000000000000000000000..3048703e0c5541d5ca69f51870f219abf3745b44 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.widl >@@ -0,0 +1,4 @@ >+ typedef (ImageData or >+ HTMLImageElement or >+ HTMLCanvasElement or >+ HTMLVideoElement) TexImageSource; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typesuffixes.widl b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typesuffixes.widl >index 95e31c1690236ce77703c9a3ca03e88e5ba1fc06..beaaa8726009e6b1a3ffe3aafd5f89bf7cafe4bb 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typesuffixes.widl >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typesuffixes.widl >@@ -1,3 +1,3 @@ > interface Suffixes { >- void test(sequence<DOMString[]?>? foo); >+ void test(sequence<DOMString?>? foo); > }; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/w3c-import.log >index e800709d6a2170f8246bf8c84930b90e5d582eb4..42d1d760df0f5fe2c90ecbf9f298d98982a05a9e 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/w3c-import.log >@@ -1,7 +1,7 @@ > The tests in this directory were imported from the W3C repository. > Do NOT modify these tests directly in WebKit. > Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >+ https://github.com/web-platform-tests/wpt > > Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport > >@@ -15,10 +15,8 @@ None > ------------------------------------------------------------------------ > List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/allowany.widl >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/array.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/attributes.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/callback.widl >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/caller.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/constants.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/constructor.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/dictionary-inherits.widl >@@ -27,8 +25,6 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/documentation.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/enum.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/equivalent-decl.widl >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/exception-inheritance.widl >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/exception.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/extended-attributes.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/generic.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/getter-setter.widl >@@ -38,9 +34,9 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/inherits-getter.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/interface-inherits.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterable.widl >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/iterator.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/legacyiterable.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/maplike.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/mixin.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/namedconstructor.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/namespace.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/nointerfaceobject.widl >@@ -51,13 +47,13 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/overridebuiltins.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/partial-interface.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/primitives.widl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/promise-void.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/prototyperoot.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/putforwards.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/record.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/reg-operations.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/replaceable.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/sequence.widl >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/serializer.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/setlike.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/static.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/stringifier-attribute.widl >@@ -65,7 +61,7 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/stringifier.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/treatasnull.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/treatasundefined.widl >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.idl >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typedef.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/typesuffixes.widl > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/idl/uniontype.widl >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/allowany.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/allowany.json >index 8abc7f9e09248acbe909c32eb007b10e75987339..2a93518ed9463776d3e7397074655a2aa9526af7 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/allowany.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/allowany.json >@@ -8,20 +8,19 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "g", >+ "escapedName": "g", > "arguments": [], > "extAttrs": [] > }, >@@ -29,34 +28,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "g", >+ "escapedName": "g", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "B" >+ "idlType": "B", >+ "extAttrs": [] > }, >- "name": "b" >+ "name": "b", >+ "escapedName": "b" > } > ], > "extAttrs": [] >@@ -65,39 +65,42 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "g", >+ "escapedName": "g", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [ > { > "name": "AllowAny", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > } > ], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "s" >+ "name": "s", >+ "escapedName": "s" > } > ], > "extAttrs": [] >@@ -106,4 +109,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/array.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/array.json >deleted file mode 100644 >index 39afaf6c8eb20192e60be96b962d2d641cf3998e..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/array.json >+++ /dev/null >@@ -1,34 +0,0 @@ >-[ >- { >- "type": "interface", >- "name": "LotteryResults", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": 2, >- "nullableArray": [false, false], >- "union": false, >- "idlType": "unsigned short" >- }, >- "name": "numbers", >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [ >- { >- "name": "Constructor", >- "arguments": null >- } >- ] >- } >-] >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/attributes.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/attributes.json >index cdf46b0ecc20f4d4326e7fb9ad8e0384ac9dcb0e..f02cb2187a2af2d95d92135893ecdb97f91ba611 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/attributes.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/attributes.json >@@ -1,37 +1,27 @@ > [ > { >- "type": "exception", >- "name": "InvalidName", >+ "type": "interface", >+ "name": "Person", >+ "partial": false, > "members": [ > { >- "type": "field", >- "name": "reason", >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "unsigned short", >+ "extAttrs": [] > }, >+ "name": "age", >+ "escapedName": "age", > "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "exception", >- "name": "NoSuchPet", >- "members": [], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Person", >- "partial": false, >- "members": [ >+ }, > { > "type": "attribute", > "static": false, >@@ -39,18 +29,19 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned short" >+ "idlType": "any", >+ "extAttrs": [] > }, >- "name": "age", >+ "name": "required", >+ "escapedName": "required", > "extAttrs": [] > } > ], > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/callback.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/callback.json >index 43a517510467c6666e69356b1f540b5da0f89f4c..89d63aae53d02a5f51dfcae4137fd3b9b1fe2c1d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/callback.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/callback.json >@@ -3,27 +3,29 @@ > "type": "callback", > "name": "AsyncOperationCallback", > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "status" >+ "name": "status", >+ "escapedName": "status" > } > ], > "extAttrs": [] >@@ -37,34 +39,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "eventOccurred", >+ "escapedName": "eventOccurred", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "details" >+ "name": "details", >+ "escapedName": "details" > } > ], > "extAttrs": [] >@@ -77,43 +80,47 @@ > "type": "callback", > "name": "SortCallback", > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "boolean" >+ "idlType": "boolean", >+ "extAttrs": [] > }, > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >+ "idlType": "any", >+ "extAttrs": [] > }, >- "name": "a" >+ "name": "a", >+ "escapedName": "a" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >+ "idlType": "any", >+ "extAttrs": [] > }, >- "name": "b" >+ "name": "b", >+ "escapedName": "b" > } > ], > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/caller.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/caller.json >deleted file mode 100644 >index a0fb5e396a5a0e87721609c16e0e98eeaf362001..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/caller.json >+++ /dev/null >@@ -1,47 +0,0 @@ >-[ >- { >- "type": "interface", >- "name": "NumberQuadrupler", >- "partial": false, >- "members": [ >- { >- "type": "operation", >- "getter": false, >- "setter": false, >- "creator": false, >- "deleter": false, >- "legacycaller": true, >- "static": false, >- "stringifier": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "float" >- }, >- "name": "compute", >- "arguments": [ >- { >- "optional": false, >- "variadic": false, >- "extAttrs": [], >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "float" >- }, >- "name": "x" >- } >- ], >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- } >-] >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constants.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constants.json >index 0fe6e92afc3a23571522d5a526c9f81ba538a74b..ef2b8c44ca167cf6eb866febb850062f2f456a75 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constants.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constants.json >@@ -7,7 +7,14 @@ > { > "type": "const", > "nullable": false, >- "idlType": "boolean", >+ "idlType": { >+ "type": "const-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "boolean", >+ "extAttrs": [] >+ }, > "name": "DEBUG", > "value": { > "type": "boolean", >@@ -18,51 +25,86 @@ > { > "type": "const", > "nullable": false, >- "idlType": "short", >+ "idlType": { >+ "type": "const-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "short", >+ "extAttrs": [] >+ }, > "name": "negative", > "value": { > "type": "number", >- "value": -1 >+ "value": "-1" > }, > "extAttrs": [] > }, > { > "type": "const", > "nullable": false, >- "idlType": "octet", >+ "idlType": { >+ "type": "const-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "octet", >+ "extAttrs": [] >+ }, > "name": "LF", > "value": { > "type": "number", >- "value": 10 >+ "value": "10" > }, > "extAttrs": [] > }, > { > "type": "const", > "nullable": false, >- "idlType": "unsigned long", >+ "idlType": { >+ "type": "const-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "unsigned long", >+ "extAttrs": [] >+ }, > "name": "BIT_MASK", > "value": { > "type": "number", >- "value": 64512 >+ "value": "0x0000fc00" > }, > "extAttrs": [] > }, > { > "type": "const", > "nullable": false, >- "idlType": "float", >+ "idlType": { >+ "type": "const-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "float", >+ "extAttrs": [] >+ }, > "name": "AVOGADRO", > "value": { > "type": "number", >- "value": 6.022e+23 >+ "value": "6.022e23" > }, > "extAttrs": [] > }, > { > "type": "const", > "nullable": false, >- "idlType": "unrestricted float", >+ "idlType": { >+ "type": "const-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "unrestricted float", >+ "extAttrs": [] >+ }, > "name": "sobig", > "value": { > "type": "Infinity", >@@ -73,7 +115,14 @@ > { > "type": "const", > "nullable": false, >- "idlType": "unrestricted double", >+ "idlType": { >+ "type": "const-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "unrestricted double", >+ "extAttrs": [] >+ }, > "name": "minusonedividedbyzero", > "value": { > "type": "Infinity", >@@ -84,53 +133,17 @@ > { > "type": "const", > "nullable": false, >- "idlType": "short", >- "name": "notanumber", >- "value": { >- "type": "NaN" >- }, >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "exception", >- "name": "Error", >- "members": [ >- { >- "type": "const", >- "nullable": false, >- "idlType": "short", >- "name": "ERR_UNKNOWN", >- "value": { >- "type": "number", >- "value": 0 >- }, >- "extAttrs": [] >- }, >- { >- "type": "const", >- "nullable": false, >- "idlType": "short", >- "name": "ERR_OUT_OF_MEMORY", >- "value": { >- "type": "number", >- "value": 1 >- }, >- "extAttrs": [] >- }, >- { >- "type": "field", >- "name": "errorCode", > "idlType": { >- "sequence": false, >+ "type": "const-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "short" >+ "idlType": "short", >+ "extAttrs": [] >+ }, >+ "name": "notanumber", >+ "value": { >+ "type": "NaN" > }, > "extAttrs": [] > } >@@ -138,4 +151,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constructor.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constructor.json >index e5944f32ee8671b13f86bed7b76a2a4d6c28bae8..efdd1b5a6bedc626b483a06d92260e57e37aceee 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constructor.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constructor.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "r", >+ "escapedName": "r", > "extAttrs": [] > }, > { >@@ -28,14 +29,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "cx", >+ "escapedName": "cx", > "extAttrs": [] > }, > { >@@ -45,14 +47,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "cy", >+ "escapedName": "cy", > "extAttrs": [] > }, > { >@@ -62,14 +65,15 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "circumference", >+ "escapedName": "circumference", > "extAttrs": [] > } > ], >@@ -77,7 +81,9 @@ > "extAttrs": [ > { > "name": "Constructor", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > }, > { > "name": "Constructor", >@@ -85,19 +91,23 @@ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "radius" >+ "name": "radius", >+ "escapedName": "radius" > } >- ] >+ ], >+ "type": "extended-attribute", >+ "rhs": null > } > ] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/dictionary-inherits.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/dictionary-inherits.json >index fbb2338a8df82cfa5beac24ab29e5fab73673525..595c35cf79748ac535a04d564bc8fe6377b5d728 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/dictionary-inherits.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/dictionary-inherits.json >@@ -7,14 +7,15 @@ > { > "type": "field", > "name": "fillPattern", >+ "escapedName": "fillPattern", > "required": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "extAttrs": [], > "default": { >@@ -25,14 +26,15 @@ > { > "type": "field", > "name": "strokePattern", >+ "escapedName": "strokePattern", > "required": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "extAttrs": [], > "default": { >@@ -42,16 +44,18 @@ > { > "type": "field", > "name": "position", >+ "escapedName": "position", > "required": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Point" >+ "idlType": "Point", >+ "extAttrs": [] > }, >- "extAttrs": [] >+ "extAttrs": [], >+ "default": null > } > ], > "inheritance": null, >@@ -65,19 +69,21 @@ > { > "type": "field", > "name": "hydrometry", >+ "escapedName": "hydrometry", > "required": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "extAttrs": [] >+ "extAttrs": [], >+ "default": null > } > ], > "inheritance": "PaintOptions", > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/dictionary.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/dictionary.json >index a7c89caab23a3f88d748cbd91f497e788ad9c6bc..8bbc6b9dfabb4e55c309ff2ee31042823dcf963c 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/dictionary.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/dictionary.json >@@ -7,14 +7,15 @@ > { > "type": "field", > "name": "fillPattern", >+ "escapedName": "fillPattern", > "required": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "extAttrs": [], > "default": { >@@ -25,14 +26,15 @@ > { > "type": "field", > "name": "strokePattern", >+ "escapedName": "strokePattern", > "required": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "extAttrs": [], > "default": { >@@ -42,35 +44,38 @@ > { > "type": "field", > "name": "position", >+ "escapedName": "position", > "required": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Point" >+ "idlType": "Point", >+ "extAttrs": [] > }, >- "extAttrs": [] >+ "extAttrs": [], >+ "default": null > }, > { > "type": "field", > "name": "seq", >+ "escapedName": "seq", > "required": false, > "idlType": { >- "sequence": true, >+ "type": "dictionary-type", > "generic": "sequence", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >- } >+ "idlType": "long", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, > "extAttrs": [], > "default": { >@@ -81,16 +86,18 @@ > { > "type": "field", > "name": "reqSeq", >+ "escapedName": "reqSeq", > "required": true, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, >- "extAttrs": [] >+ "extAttrs": [], >+ "default": null > } > ], > "inheritance": null, >@@ -104,32 +111,36 @@ > { > "type": "field", > "name": "h", >+ "escapedName": "h", > "required": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, >- "extAttrs": [] >+ "extAttrs": [], >+ "default": null > }, > { > "type": "field", > "name": "d", >+ "escapedName": "d", > "required": false, > "idlType": { >- "sequence": false, >+ "type": "dictionary-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, >- "extAttrs": [] >+ "extAttrs": [], >+ "default": null > } > ], > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/documentation-dos.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/documentation-dos.json >index 340e039b4495d7c93522046a4408ce5fad3e1da7..baa0b5a09b5ee17b95bcdd42dba4faba25cd3733 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/documentation-dos.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/documentation-dos.json >@@ -7,4 +7,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/documentation.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/documentation.json >index 340e039b4495d7c93522046a4408ce5fad3e1da7..baa0b5a09b5ee17b95bcdd42dba4faba25cd3733 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/documentation.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/documentation.json >@@ -7,4 +7,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/enum.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/enum.json >index 196ee4e6405f27e19afeaca160c5c90afa78e54d..11f5d09f54b62b9eb14b5adae15822263d0ce738 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/enum.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/enum.json >@@ -3,9 +3,18 @@ > "type": "enum", > "name": "MealType", > "values": [ >- "rice", >- "noodles", >- "other" >+ { >+ "type": "string", >+ "value": "rice" >+ }, >+ { >+ "type": "string", >+ "value": "noodles" >+ }, >+ { >+ "type": "string", >+ "value": "other" >+ } > ], > "extAttrs": [] > }, >@@ -21,14 +30,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "MealType" >+ "idlType": "MealType", >+ "extAttrs": [] > }, > "name": "type", >+ "escapedName": "type", > "extAttrs": [] > }, > { >@@ -38,62 +48,66 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "size", >+ "escapedName": "size", > "extAttrs": [] > }, > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "initialize", >+ "escapedName": "initialize", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "MealType" >+ "idlType": "MealType", >+ "extAttrs": [] > }, >- "name": "type" >+ "name": "type", >+ "escapedName": "type" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "size" >+ "name": "size", >+ "escapedName": "size" > } > ], > "extAttrs": [] >@@ -106,10 +120,19 @@ > "type": "enum", > "name": "AltMealType", > "values": [ >- "rice", >- "noodles", >- "other" >+ { >+ "type": "string", >+ "value": "rice" >+ }, >+ { >+ "type": "string", >+ "value": "noodles" >+ }, >+ { >+ "type": "string", >+ "value": "other" >+ } > ], > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/equivalent-decl.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/equivalent-decl.json >index 55a787fdcf08aa928188790abec2d236863dd53b..ee079a77790531666d214b67b58ea0d9f89e2f28 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/equivalent-decl.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/equivalent-decl.json >@@ -11,48 +11,50 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "propertyCount", >+ "escapedName": "propertyCount", > "extAttrs": [] > }, > { > "type": "operation", > "getter": true, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "getProperty", >+ "escapedName": "getProperty", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "propertyName" >+ "name": "propertyName", >+ "escapedName": "propertyName" > } > ], > "extAttrs": [] >@@ -61,48 +63,51 @@ > "type": "operation", > "getter": false, > "setter": true, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "setProperty", >+ "escapedName": "setProperty", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "propertyName" >+ "name": "propertyName", >+ "escapedName": "propertyName" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "propertyValue" >+ "name": "propertyValue", >+ "escapedName": "propertyValue" > } > ], > "extAttrs": [] >@@ -113,7 +118,7 @@ > }, > { > "type": "interface", >- "name": "Dictionary", >+ "name": "Dictionary2", > "partial": false, > "members": [ > { >@@ -123,48 +128,50 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "propertyCount", >+ "escapedName": "propertyCount", > "extAttrs": [] > }, > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "getProperty", >+ "escapedName": "getProperty", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "propertyName" >+ "name": "propertyName", >+ "escapedName": "propertyName" > } > ], > "extAttrs": [] >@@ -173,48 +180,51 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "setProperty", >+ "escapedName": "setProperty", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "propertyName" >+ "name": "propertyName", >+ "escapedName": "propertyName" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "propertyValue" >+ "name": "propertyValue", >+ "escapedName": "propertyValue" > } > ], > "extAttrs": [] >@@ -223,34 +233,35 @@ > "type": "operation", > "getter": true, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": null, >+ "escapedName": null, > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "propertyName" >+ "name": "propertyName", >+ "escapedName": "propertyName" > } > ], > "extAttrs": [] >@@ -259,48 +270,51 @@ > "type": "operation", > "getter": false, > "setter": true, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": null, >+ "escapedName": null, > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "propertyName" >+ "name": "propertyName", >+ "escapedName": "propertyName" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "propertyValue" >+ "name": "propertyValue", >+ "escapedName": "propertyValue" > } > ], > "extAttrs": [] >@@ -309,4 +323,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/exception-inheritance.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/exception-inheritance.json >index f4dc68699a6d5d3d0fe83364764c92563d2d1a43..4a76b98285697e39b3b7a284bb20e8fa0a72c1ab 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/exception-inheritance.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/exception-inheritance.json >@@ -10,7 +10,6 @@ > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "unsigned short" > }, >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/exception.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/exception.json >deleted file mode 100644 >index 3f16de828ac8927be5a8d8dd5218c436c57bd266..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/exception.json >+++ /dev/null >@@ -1,35 +0,0 @@ >-[ >- { >- "type": "interface", >- "name": "Dahut", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "name": "type", >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "exception", >- "name": "SomeException", >- "members": [], >- "inheritance": null, >- "extAttrs": [] >- } >-] >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/extended-attributes.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/extended-attributes.json >index 3b5a3b2e22b31a9ddb322c07cfbd389df360a66b..25f56f0340ac8736b048fc2c48de87c2b37c6bd4 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/extended-attributes.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/extended-attributes.json >@@ -9,6 +9,7 @@ > { > "name": "Global", > "arguments": null, >+ "type": "extended-attribute", > "rhs": { > "type": "identifier-list", > "value": [ >@@ -20,6 +21,7 @@ > { > "name": "Exposed", > "arguments": null, >+ "type": "extended-attribute", > "rhs": { > "type": "identifier", > "value": "ServiceWorker" >@@ -28,36 +30,211 @@ > ] > }, > { >- "type": "interface", >- "name": "IdInterface", >- "partial": false, >- "members": [], >- "inheritance": null, >- "extAttrs": [ >- { >- "name": "IntAttr", >- "arguments": null, >- "rhs": { >- "type": "integer", >- "value": "0" >- } >- }, >- { >- "name": "FloatAttr", >- "arguments": null, >- "rhs": { >- "type": "float", >- "value": "3.14" >- } >- }, >- { >- "name": "StringAttr", >- "arguments": null, >- "rhs": { >- "type": "string", >- "value": "\"abc\"" >- } >- } >- ] >+ "type": "interface", >+ "name": "IdInterface", >+ "partial": false, >+ "members": [], >+ "inheritance": null, >+ "extAttrs": [ >+ { >+ "name": "IntAttr", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": { >+ "type": "integer", >+ "value": "0" >+ } >+ }, >+ { >+ "name": "FloatAttr", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": { >+ "type": "float", >+ "value": "3.14" >+ } >+ }, >+ { >+ "name": "StringAttr", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": { >+ "type": "string", >+ "value": "\"abc\"" >+ } >+ } >+ ] >+ }, >+ { >+ "type": "interface", >+ "name": "Circle", >+ "partial": false, >+ "members": [ >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": false, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "double", >+ "extAttrs": [] >+ }, >+ "name": "r", >+ "escapedName": "r", >+ "extAttrs": [] >+ }, >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": false, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "double", >+ "extAttrs": [] >+ }, >+ "name": "cx", >+ "escapedName": "cx", >+ "extAttrs": [] >+ }, >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": false, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "double", >+ "extAttrs": [] >+ }, >+ "name": "cy", >+ "escapedName": "cy", >+ "extAttrs": [] >+ }, >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": true, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "double", >+ "extAttrs": [] >+ }, >+ "name": "circumference", >+ "escapedName": "circumference", >+ "extAttrs": [] >+ } >+ ], >+ "inheritance": null, >+ "extAttrs": [ >+ { >+ "name": "Constructor", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null >+ }, >+ { >+ "name": "Constructor", >+ "arguments": [ >+ { >+ "optional": false, >+ "variadic": false, >+ "default": null, >+ "extAttrs": [], >+ "idlType": { >+ "type": "argument-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "double", >+ "extAttrs": [] >+ }, >+ "name": "radius", >+ "escapedName": "radius" >+ } >+ ], >+ "type": "extended-attribute", >+ "rhs": null >+ } >+ ] >+ }, >+ { >+ "type": "interface", >+ "name": "I", >+ "partial": false, >+ "members": [ >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": false, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": true, >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [] >+ }, >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "Node", >+ "extAttrs": [] >+ } >+ ], >+ "extAttrs": [ >+ { >+ "name": "XAttr", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null >+ } >+ ] >+ }, >+ "name": "attrib", >+ "escapedName": "attrib", >+ "extAttrs": [] >+ } >+ ], >+ "inheritance": null, >+ "extAttrs": [ >+ { >+ "name": "Exposed", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": { >+ "type": "identifier", >+ "value": "Window" >+ } >+ } >+ ] > } > ] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/generic.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/generic.json >index e39654ffdb2131fd0260e1a6264dbf48f74945b9..d3c26ac7cd0ddd9eb167d7a5ea9891f82fb06d5b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/generic.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/generic.json >@@ -8,41 +8,40 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": "Promise", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >- "generic": "ResponsePromise", >+ "type": "return-type", >+ "generic": "Promise", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": true, >+ "type": "return-type", > "generic": "sequence", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "DOMString" >- } >- } >- } >+ "idlType": "DOMString", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] >+ }, >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, > "name": "bar", >+ "escapedName": "bar", > "arguments": [], > "extAttrs": [] > }, >@@ -53,22 +52,22 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": "Promise", > "nullable": false, >- "array": 1, >- "nullableArray": [false], > "union": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >- } >+ "idlType": "DOMString", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, > "name": "baz", >+ "escapedName": "baz", > "extAttrs": [] > } > ], >@@ -84,28 +83,26 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": "Promise", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": true, >- "nullableArray": [false], >- "array": 1, > "union": false, >- "idlType": "Client" >- } >+ "idlType": "Client", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, > "name": "getServiced", >+ "escapedName": "getServiced", > "arguments": [], > "extAttrs": [] > }, >@@ -113,27 +110,26 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": "Promise", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >- } >+ "idlType": "any", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, > "name": "reloadAll", >+ "escapedName": "reloadAll", > "arguments": [], > "extAttrs": [] > } >@@ -150,27 +146,26 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >- "generic": "ResponsePromise", >+ "type": "return-type", >+ "generic": "Promise", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >- } >+ "idlType": "any", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, > "name": "default", >+ "escapedName": "default", > "arguments": [], > "extAttrs": [] > } >@@ -178,4 +173,4 @@ > "inheritance": "Event", > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/getter-setter.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/getter-setter.json >index 94d20d594db15e5e2e15403930c2bd1e32a28b33..6f8196fe56dd3d04e9f64f719c82c552193320d8 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/getter-setter.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/getter-setter.json >@@ -11,48 +11,50 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "propertyCount", >+ "escapedName": "propertyCount", > "extAttrs": [] > }, > { > "type": "operation", > "getter": true, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": null, >+ "escapedName": null, > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "propertyName" >+ "name": "propertyName", >+ "escapedName": "propertyName" > } > ], > "extAttrs": [] >@@ -61,48 +63,51 @@ > "type": "operation", > "getter": false, > "setter": true, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": null, >+ "escapedName": null, > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "propertyName" >+ "name": "propertyName", >+ "escapedName": "propertyName" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "propertyValue" >+ "name": "propertyValue", >+ "escapedName": "propertyValue" > } > ], > "extAttrs": [] >@@ -111,4 +116,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/identifier-qualified-names.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/identifier-qualified-names.json >index d87ea3b5f369db698e93072a1b76562a16d50fec..098cdcb1fbbc4f140f6aadaa7ee2977b2fccd4b9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/identifier-qualified-names.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/identifier-qualified-names.json >@@ -2,48 +2,16 @@ > { > "type": "typedef", > "idlType": { >- "sequence": false, >+ "type": "typedef-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "number", > "extAttrs": [] > }, >- { >- "type": "exception", >- "name": "FrameworkException", >- "members": [ >- { >- "type": "const", >- "nullable": false, >- "idlType": "long", >- "name": "ERR_NOT_FOUND", >- "value": { >- "type": "number", >- "value": 1 >- }, >- "extAttrs": [] >- }, >- { >- "type": "field", >- "name": "code", >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "long" >- }, >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, > { > "type": "interface", > "name": "System", >@@ -53,34 +21,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "object" >+ "idlType": "object", >+ "extAttrs": [] > }, > "name": "createObject", >+ "escapedName": "createObject", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "interface" >+ "name": "interface", >+ "escapedName": "_interface" > } > ], > "extAttrs": [] >@@ -89,34 +58,35 @@ > "type": "operation", > "getter": true, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": null, >+ "escapedName": null, > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "keyName" >+ "name": "keyName", >+ "escapedName": "keyName" > } > ], > "extAttrs": [] >@@ -137,14 +107,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "boolean" >+ "idlType": "boolean", >+ "extAttrs": [] > }, > "name": "const", >+ "escapedName": "_const", > "extAttrs": [] > }, > { >@@ -154,14 +125,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "value", >+ "escapedName": "_value", > "extAttrs": [] > } > ], >@@ -170,41 +142,42 @@ > }, > { > "type": "interface", >- "name": "Foo", >+ "name": "FooEventTarget", > "partial": false, > "members": [ > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, >- "name": "op", >+ "name": "addEventListener", >+ "escapedName": "addEventListener", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, >- "nullable": false, >- "array": false, >+ "nullable": true, > "union": false, >- "idlType": "object" >+ "idlType": "EventListener", >+ "extAttrs": [] > }, >- "name": "interface" >+ "name": "callback", >+ "escapedName": "callback" > } > ], > "extAttrs": [] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/implements.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/implements.json >index fa00e3374267b93b9d56b2ddc8b0b35e7302f481..1736118cd902fb6af5ebca4eba656ffb51bff28b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/implements.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/implements.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned short" >+ "idlType": "unsigned short", >+ "extAttrs": [] > }, > "name": "nodeType", >+ "escapedName": "nodeType", > "extAttrs": [] > } > ], >@@ -34,62 +35,67 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "addEventListener", >+ "escapedName": "addEventListener", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "type" >+ "name": "type", >+ "escapedName": "type" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "EventListener" >+ "idlType": "EventListener", >+ "extAttrs": [] > }, >- "name": "listener" >+ "name": "listener", >+ "escapedName": "listener" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "boolean" >+ "idlType": "boolean", >+ "extAttrs": [] > }, >- "name": "useCapture" >+ "name": "useCapture", >+ "escapedName": "useCapture" > } > ], > "extAttrs": [] >@@ -104,4 +110,4 @@ > "implements": "EventTarget", > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/indexed-properties.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/indexed-properties.json >index 23cc4ab1023c2fedd4dab6c640a2b1307bc800af..dccd511af96bfd6e90d2b6829d823fabbf8c6d94 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/indexed-properties.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/indexed-properties.json >@@ -11,48 +11,50 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "size", >+ "escapedName": "size", > "extAttrs": [] > }, > { > "type": "operation", > "getter": true, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >+ "idlType": "any", >+ "extAttrs": [] > }, > "name": "getByIndex", >+ "escapedName": "getByIndex", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, >- "name": "index" >+ "name": "index", >+ "escapedName": "index" > } > ], > "extAttrs": [] >@@ -61,48 +63,51 @@ > "type": "operation", > "getter": false, > "setter": true, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "setByIndex", >+ "escapedName": "setByIndex", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, >- "name": "index" >+ "name": "index", >+ "escapedName": "index" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >+ "idlType": "any", >+ "extAttrs": [] > }, >- "name": "value" >+ "name": "value", >+ "escapedName": "value" > } > ], > "extAttrs": [] >@@ -111,34 +116,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": true, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "removeByIndex", >+ "escapedName": "removeByIndex", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, >- "name": "index" >+ "name": "index", >+ "escapedName": "index" > } > ], > "extAttrs": [] >@@ -147,34 +153,35 @@ > "type": "operation", > "getter": true, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >+ "idlType": "any", >+ "extAttrs": [] > }, > "name": "get", >+ "escapedName": "get", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "name" >+ "name": "name", >+ "escapedName": "name" > } > ], > "extAttrs": [] >@@ -183,48 +190,51 @@ > "type": "operation", > "getter": false, > "setter": true, >- "creator": true, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "set", >+ "escapedName": "set", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "name" >+ "name": "name", >+ "escapedName": "name" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >+ "idlType": "any", >+ "extAttrs": [] > }, >- "name": "value" >+ "name": "value", >+ "escapedName": "value" > } > ], > "extAttrs": [] >@@ -233,34 +243,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": true, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "remove", >+ "escapedName": "remove", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "name" >+ "name": "name", >+ "escapedName": "name" > } > ], > "extAttrs": [] >@@ -269,4 +280,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/inherits-getter.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/inherits-getter.json >index 468e3caef711f3afab68a785805dd75f74f96ab9..86eb68e270e46a9c5ab56456c3610d523bcdaeb9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/inherits-getter.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/inherits-getter.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "name", >+ "escapedName": "name", > "extAttrs": [] > } > ], >@@ -37,14 +38,15 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned short" >+ "idlType": "unsigned short", >+ "extAttrs": [] > }, > "name": "age", >+ "escapedName": "age", > "extAttrs": [] > }, > { >@@ -54,18 +56,46 @@ > "inherit": true, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "name", >+ "escapedName": "name", > "extAttrs": [] > } > ], > "inheritance": "Animal", > "extAttrs": [] >+ }, >+ { >+ "type": "interface", >+ "name": "Ghost", >+ "partial": false, >+ "members": [ >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": true, >+ "readonly": true, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "DOMString", >+ "extAttrs": [] >+ }, >+ "name": "name", >+ "escapedName": "name", >+ "extAttrs": [] >+ } >+ ], >+ "inheritance": "Person", >+ "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/interface-inherits.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/interface-inherits.json >index eee07cd1dec7bb6e3691fb207a0ca45ead4a310d..02caf35f605ab376cee42c8b5e981d1ca18772c1 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/interface-inherits.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/interface-inherits.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "name", >+ "escapedName": "name", > "extAttrs": [] > } > ], >@@ -37,14 +38,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Dog" >+ "idlType": "Dog", >+ "extAttrs": [] > }, > "name": "pet", >+ "escapedName": "pet", > "extAttrs": [] > } > ], >@@ -63,18 +65,19 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Human" >+ "idlType": "Human", >+ "extAttrs": [] > }, > "name": "owner", >+ "escapedName": "owner", > "extAttrs": [] > } > ], > "inheritance": "Animal", > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/iterable.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/iterable.json >index 3e38991dd9db21c92bc2b50769ff8b87247dacef..ee906f75ea2eb5f7a3aef33c53a7e03443b6f450 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/iterable.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/iterable.json >@@ -6,14 +6,16 @@ > "members": [ > { > "type": "iterable", >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "long" >- }, >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [] >+ } >+ ], > "extAttrs": [] > } > ], >@@ -29,20 +31,50 @@ > "type": "iterable", > "idlType": [ > { >- "sequence": false, >+ "type": null, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "short" >+ "idlType": "short", >+ "extAttrs": [] > }, > { >- "sequence": false, >+ "type": null, > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "double" >+ "idlType": "double", >+ "extAttrs": [] >+ } >+ ], >+ "extAttrs": [] >+ } >+ ], >+ "inheritance": null, >+ "extAttrs": [] >+ }, >+ { >+ "type": "interface", >+ "name": "IterableThree", >+ "partial": false, >+ "members": [ >+ { >+ "type": "iterable", >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [ >+ { >+ "name": "XAttr", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null >+ } >+ ] > } > ], > "extAttrs": [] >@@ -52,4 +84,3 @@ > "extAttrs": [] > } > ] >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/iterator.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/iterator.json >index cc3c9ec505d8e39b249121a3acdb33ea555f08d6..f9605b83450cb5dcd21ec338b82796a2a2304b08 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/iterator.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/iterator.json >@@ -8,16 +8,13 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "Session" > }, >@@ -31,7 +28,6 @@ > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "DOMString" > }, >@@ -50,7 +46,6 @@ > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "unsigned long" > }, >@@ -61,16 +56,13 @@ > "type": "iterator", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "Session" > }, >@@ -95,7 +87,6 @@ > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "DOMString" > }, >@@ -115,16 +106,13 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "Session2" > }, >@@ -138,7 +126,6 @@ > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "DOMString" > }, >@@ -157,7 +144,6 @@ > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "unsigned long" > }, >@@ -168,16 +154,13 @@ > "type": "iterator", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "Session2" > }, >@@ -203,7 +186,6 @@ > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "DOMString" > }, >@@ -229,7 +211,6 @@ > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "unsigned long" > }, >@@ -249,16 +230,13 @@ > "type": "iterator", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "Node" > }, >@@ -278,16 +256,13 @@ > "type": "iterator", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { > "sequence": false, > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "Node" > }, >@@ -298,4 +273,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/legacyiterable.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/legacyiterable.json >index e63f99de43f43d2170867185971bd49e2b5f5587..80fd000a84937162deb765f585e4bdd24dc83ebe 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/legacyiterable.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/legacyiterable.json >@@ -6,14 +6,16 @@ > "members": [ > { > "type": "legacyiterable", >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "long" >- }, >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [] >+ } >+ ], > "extAttrs": [] > } > ], >@@ -21,4 +23,3 @@ > "extAttrs": [] > } > ] >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/maplike.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/maplike.json >index 017d8b3f3ec2c406b25ebf904737458f8f6d1174..2cb8c360ee3e2f03fe400307bbf757b4458af887 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/maplike.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/maplike.json >@@ -8,20 +8,20 @@ > "type": "maplike", > "idlType": [ > { >- "sequence": false, >+ "type": null, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, > { >- "sequence": false, >+ "type": null, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > } > ], > "readonly": false, >@@ -40,20 +40,20 @@ > "type": "maplike", > "idlType": [ > { >- "sequence": false, >+ "type": null, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, > { >- "sequence": false, >+ "type": null, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > } > ], > "readonly": true, >@@ -62,6 +62,51 @@ > ], > "inheritance": null, > "extAttrs": [] >+ }, >+ { >+ "type": "interface", >+ "name": "I", >+ "partial": false, >+ "members": [ >+ { >+ "type": "maplike", >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "DOMString", >+ "extAttrs": [ >+ { >+ "name": "XAttr2", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null >+ } >+ ] >+ }, >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [ >+ { >+ "name": "XAttr3", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null >+ } >+ ] >+ } >+ ], >+ "readonly": false, >+ "extAttrs": [] >+ } >+ ], >+ "inheritance": null, >+ "extAttrs": [] > } > ] >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/mixin.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/mixin.json >new file mode 100644 >index 0000000000000000000000000000000000000000..b037cb3577941adf5c591b2d2e9312ebd6d77f02 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/mixin.json >@@ -0,0 +1,66 @@ >+[ >+ { >+ "type": "interface mixin", >+ "name": "GlobalCrypto", >+ "partial": false, >+ "members": [ >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": true, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "Crypto", >+ "extAttrs": [] >+ }, >+ "name": "crypto", >+ "escapedName": "crypto", >+ "extAttrs": [] >+ } >+ ], >+ "extAttrs": [] >+ }, >+ { >+ "type": "includes", >+ "target": "Window", >+ "includes": "GlobalCrypto", >+ "extAttrs": [] >+ }, >+ { >+ "type": "includes", >+ "target": "WorkerGlobalScope", >+ "includes": "GlobalCrypto", >+ "extAttrs": [] >+ }, >+ { >+ "type": "interface mixin", >+ "name": "WindowOrWorkerGlobalScope", >+ "partial": true, >+ "members": [ >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": true, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "Crypto", >+ "extAttrs": [] >+ }, >+ "name": "crypto", >+ "escapedName": "crypto", >+ "extAttrs": [] >+ } >+ ], >+ "extAttrs": [] >+ } >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namedconstructor.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namedconstructor.json >index a947a64a4e2e3c050a4ad154826282f3b4a5fb33..deb429e986eb106e958e799048f6b4ce2da1df51 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namedconstructor.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namedconstructor.json >@@ -9,6 +9,7 @@ > { > "name": "NamedConstructor", > "arguments": null, >+ "type": "extended-attribute", > "rhs": { > "type": "identifier", > "value": "Audio" >@@ -20,18 +21,21 @@ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "src" >+ "name": "src", >+ "escapedName": "src" > } > ], >+ "type": "extended-attribute", > "rhs": { > "type": "identifier", > "value": "Audio" >@@ -39,4 +43,4 @@ > } > ] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namespace.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namespace.json >index 7c7ba771e1bf3ade1dc128e38a8d8bdbf02702b6..9e37b26fa6504f9862877c25c97e94893dc8d833 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namespace.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namespace.json >@@ -11,62 +11,66 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Vector" >+ "idlType": "Vector", >+ "extAttrs": [] > }, > "name": "unit", >+ "escapedName": "unit", > "extAttrs": [] > }, > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "double" >+ "idlType": "double", >+ "extAttrs": [] > }, > "name": "dotProduct", >+ "escapedName": "dotProduct", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Vector" >+ "idlType": "Vector", >+ "extAttrs": [] > }, >- "name": "x" >+ "name": "x", >+ "escapedName": "x" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Vector" >+ "idlType": "Vector", >+ "extAttrs": [] > }, >- "name": "y" >+ "name": "y", >+ "escapedName": "y" > } > ], > "extAttrs": [] >@@ -75,48 +79,51 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Vector" >+ "idlType": "Vector", >+ "extAttrs": [] > }, > "name": "crossProduct", >+ "escapedName": "crossProduct", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Vector" >+ "idlType": "Vector", >+ "extAttrs": [] > }, >- "name": "x" >+ "name": "x", >+ "escapedName": "x" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Vector" >+ "idlType": "Vector", >+ "extAttrs": [] > }, >- "name": "y" >+ "name": "y", >+ "escapedName": "y" > } > ], > "extAttrs": [] >@@ -131,4 +138,4 @@ > "members": [], > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nointerfaceobject.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nointerfaceobject.json >index 90f0d63c82e3f25d7f097b2f0f4cd1b0899fb1dc..cafb5e0e156bd0b6e90f37f94bc551a9937f5e40 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nointerfaceobject.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nointerfaceobject.json >@@ -8,34 +8,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >+ "idlType": "any", >+ "extAttrs": [] > }, > "name": "lookupEntry", >+ "escapedName": "lookupEntry", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, >- "name": "key" >+ "name": "key", >+ "escapedName": "key" > } > ], > "extAttrs": [] >@@ -45,8 +46,10 @@ > "extAttrs": [ > { > "name": "NoInterfaceObject", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > } > ] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nullable.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nullable.json >index 300442f0d4661722e18af8f1e7b97940e92afe64..f325e2eab7b8af6c102c941d686f14411915c5c1 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nullable.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nullable.json >@@ -7,7 +7,14 @@ > { > "type": "const", > "nullable": true, >- "idlType": "boolean", >+ "idlType": { >+ "type": "const-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "boolean", >+ "extAttrs": [] >+ }, > "name": "ARE_WE_THERE_YET", > "value": { > "type": "boolean", >@@ -31,18 +38,19 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "namespaceURI", >+ "escapedName": "namespaceURI", > "extAttrs": [] > } > ], > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nullableobjects.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nullableobjects.json >index 40f7db0c1c9c8c435eb216205b239959995548a2..27ecd25d363bfb39524327d09e0f8ca6c0a56788 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nullableobjects.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nullableobjects.json >@@ -24,34 +24,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "f", >+ "escapedName": "f", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "A" >+ "idlType": "A", >+ "extAttrs": [] > }, >- "name": "x" >+ "name": "x", >+ "escapedName": "x" > } > ], > "extAttrs": [] >@@ -60,34 +61,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "f", >+ "escapedName": "f", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "B" >+ "idlType": "B", >+ "extAttrs": [] > }, >- "name": "x" >+ "name": "x", >+ "escapedName": "x" > } > ], > "extAttrs": [] >@@ -96,4 +98,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/operation-optional-arg.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/operation-optional-arg.json >index 6ca32576b7a41f81dcddfb7eb462508eae5d91a5..4b7436ba5baf7601936b34050e71191a47812c6b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/operation-optional-arg.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/operation-optional-arg.json >@@ -8,80 +8,86 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "object" >+ "idlType": "object", >+ "extAttrs": [] > }, > "name": "createColor", >+ "escapedName": "createColor", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "v1" >+ "name": "v1", >+ "escapedName": "v1" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "v2" >+ "name": "v2", >+ "escapedName": "v2" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "v3" >+ "name": "v3", >+ "escapedName": "v3" > }, > { > "optional": true, > "variadic": false, >+ "default": { >+ "type": "number", >+ "value": "3.5" >+ }, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "alpha", >- "default": { >- "type": "number", >- "value": 3.5 >- } >+ "escapedName": "alpha" > } > ], > "extAttrs": [] >@@ -90,4 +96,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/overloading.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/overloading.json >index c3baa439623b09bfdb6a71b571a621a12a2e6dc5..bf7aca6cde3808e7ed3616407f7dc49fa631b769 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/overloading.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/overloading.json >@@ -24,34 +24,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "f", >+ "escapedName": "f", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "A" >+ "idlType": "A", >+ "extAttrs": [] > }, >- "name": "x" >+ "name": "x", >+ "escapedName": "x" > } > ], > "extAttrs": [] >@@ -60,34 +61,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "f", >+ "escapedName": "f", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "B" >+ "idlType": "B", >+ "extAttrs": [] > }, >- "name": "x" >+ "name": "x", >+ "escapedName": "x" > } > ], > "extAttrs": [] >@@ -98,41 +100,42 @@ > }, > { > "type": "interface", >- "name": "A", >+ "name": "D", > "partial": false, > "members": [ > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "f", >+ "escapedName": "f", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "a" >+ "name": "a", >+ "escapedName": "a" > } > ], > "extAttrs": [] >@@ -141,67 +144,74 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "f", >+ "escapedName": "f", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [ > { > "name": "AllowAny", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > } > ], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "a" >+ "name": "a", >+ "escapedName": "a" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "b" >+ "name": "b", >+ "escapedName": "b" > }, > { > "optional": false, > "variadic": true, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "c" >+ "name": "c", >+ "escapedName": "c" > } > ], > "extAttrs": [] >@@ -210,20 +220,19 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "f", >+ "escapedName": "f", > "arguments": [], > "extAttrs": [] > }, >@@ -231,76 +240,83 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "f", >+ "escapedName": "f", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, >- "name": "a" >+ "name": "a", >+ "escapedName": "a" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "b" >+ "name": "b", >+ "escapedName": "b" > }, > { > "optional": true, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "c" >+ "name": "c", >+ "escapedName": "c" > }, > { > "optional": false, > "variadic": true, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, >- "name": "d" >+ "name": "d", >+ "escapedName": "d" > } > ], > "extAttrs": [] >@@ -309,4 +325,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/overridebuiltins.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/overridebuiltins.json >index 9e2f795e2ae175fd31eb891bd07df595cc4e7cd9..e54a468eb98e867ed8b0d68a9c75dcfbd763e98f 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/overridebuiltins.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/overridebuiltins.json >@@ -11,48 +11,50 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "length", >+ "escapedName": "length", > "extAttrs": [] > }, > { > "type": "operation", > "getter": true, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "lookup", >+ "escapedName": "lookup", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "key" >+ "name": "key", >+ "escapedName": "key" > } > ], > "extAttrs": [] >@@ -62,8 +64,10 @@ > "extAttrs": [ > { > "name": "OverrideBuiltins", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > } > ] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/partial-interface.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/partial-interface.json >index 53c65a453bd7301863ed0fae935a10eb2aa7360f..d791262f465691ebd7aeab9118d48475c3230a0c 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/partial-interface.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/partial-interface.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "bar", >+ "escapedName": "bar", > "extAttrs": [] > } > ], >@@ -37,17 +38,18 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "quux", >+ "escapedName": "quux", > "extAttrs": [] > } > ], > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/primitives.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/primitives.json >index 7160c2a4ce066df3284c50eaf4f4af80ef01ab90..a216221140c65aec9d7878ef0a96a8f02fe0ea60 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/primitives.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/primitives.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "boolean" >+ "idlType": "boolean", >+ "extAttrs": [] > }, > "name": "truth", >+ "escapedName": "truth", > "extAttrs": [] > }, > { >@@ -28,14 +29,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "byte" >+ "idlType": "byte", >+ "extAttrs": [] > }, > "name": "character", >+ "escapedName": "character", > "extAttrs": [] > }, > { >@@ -45,14 +47,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "octet" >+ "idlType": "octet", >+ "extAttrs": [] > }, > "name": "value", >+ "escapedName": "value", > "extAttrs": [] > }, > { >@@ -62,14 +65,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "short" >+ "idlType": "short", >+ "extAttrs": [] > }, > "name": "number", >+ "escapedName": "number", > "extAttrs": [] > }, > { >@@ -79,14 +83,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned short" >+ "idlType": "unsigned short", >+ "extAttrs": [] > }, > "name": "positive", >+ "escapedName": "positive", > "extAttrs": [] > }, > { >@@ -96,14 +101,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, > "name": "big", >+ "escapedName": "big", > "extAttrs": [] > }, > { >@@ -113,14 +119,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "bigpositive", >+ "escapedName": "bigpositive", > "extAttrs": [] > }, > { >@@ -130,14 +137,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long long" >+ "idlType": "long long", >+ "extAttrs": [] > }, > "name": "bigbig", >+ "escapedName": "bigbig", > "extAttrs": [] > }, > { >@@ -147,14 +155,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long long" >+ "idlType": "unsigned long long", >+ "extAttrs": [] > }, > "name": "bigbigpositive", >+ "escapedName": "bigbigpositive", > "extAttrs": [] > }, > { >@@ -164,14 +173,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "real", >+ "escapedName": "real", > "extAttrs": [] > }, > { >@@ -181,14 +191,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "double" >+ "idlType": "double", >+ "extAttrs": [] > }, > "name": "bigreal", >+ "escapedName": "bigreal", > "extAttrs": [] > }, > { >@@ -198,14 +209,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unrestricted float" >+ "idlType": "unrestricted float", >+ "extAttrs": [] > }, > "name": "realwithinfinity", >+ "escapedName": "realwithinfinity", > "extAttrs": [] > }, > { >@@ -215,14 +227,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unrestricted double" >+ "idlType": "unrestricted double", >+ "extAttrs": [] > }, > "name": "bigrealwithinfinity", >+ "escapedName": "bigrealwithinfinity", > "extAttrs": [] > }, > { >@@ -232,14 +245,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "string", >+ "escapedName": "string", > "extAttrs": [] > }, > { >@@ -249,14 +263,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "ByteString" >+ "idlType": "ByteString", >+ "extAttrs": [] > }, > "name": "bytes", >+ "escapedName": "bytes", > "extAttrs": [] > }, > { >@@ -266,14 +281,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Date" >+ "idlType": "Date", >+ "extAttrs": [] > }, > "name": "date", >+ "escapedName": "date", > "extAttrs": [] > }, > { >@@ -283,18 +299,19 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "RegExp" >+ "idlType": "RegExp", >+ "extAttrs": [] > }, > "name": "regexp", >+ "escapedName": "regexp", > "extAttrs": [] > } > ], > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/promise-void.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/promise-void.json >new file mode 100644 >index 0000000000000000000000000000000000000000..7676838b8179d9e736a8f36b97628bece12a84d8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/promise-void.json >@@ -0,0 +1,36 @@ >+[ >+ { >+ "type": "interface", >+ "name": "Cat", >+ "partial": false, >+ "members": [ >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": false, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": "Promise", >+ "nullable": false, >+ "union": false, >+ "idlType": { >+ "type": "return-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "void", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] >+ }, >+ "name": "meow", >+ "escapedName": "meow", >+ "extAttrs": [] >+ } >+ ], >+ "inheritance": null, >+ "extAttrs": [] >+ } >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/prototyperoot.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/prototyperoot.json >index 666798d94cfd272ca349d7ba549512025d4aa4f0..cec79ff66b6a49dc39def76c4252d87e96a2ce28 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/prototyperoot.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/prototyperoot.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned short" >+ "idlType": "unsigned short", >+ "extAttrs": [] > }, > "name": "nodeType", >+ "escapedName": "nodeType", > "extAttrs": [] > } > ], >@@ -26,8 +27,10 @@ > "extAttrs": [ > { > "name": "PrototypeRoot", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > } > ] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/putforwards.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/putforwards.json >index bd5e619cac553463e125d2489b4b282e46563ae8..951b3ef718ccc90c7cee3ff035aca61e61396898 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/putforwards.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/putforwards.json >@@ -11,18 +11,20 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Name" >+ "idlType": "Name", >+ "extAttrs": [] > }, > "name": "name", >+ "escapedName": "name", > "extAttrs": [ > { > "name": "PutForwards", > "arguments": null, >+ "type": "extended-attribute", > "rhs": { > "type": "identifier", > "value": "full" >@@ -37,18 +39,19 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned short" >+ "idlType": "unsigned short", >+ "extAttrs": [] > }, > "name": "age", >+ "escapedName": "age", > "extAttrs": [] > } > ], > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/record.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/record.json >index d2a21a4acd99936119cd7d8a6757e361c83141cc..1be5427c74d6c83b429273443fefb03263d0f98f 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/record.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/record.json >@@ -8,58 +8,59 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "foo", >+ "escapedName": "foo", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": true, >+ "type": "argument-type", > "generic": "sequence", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": "record", > "nullable": false, >- "array": false, > "union": false, > "idlType": [ > { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "ByteString" >+ "idlType": "ByteString", >+ "extAttrs": [] > }, > { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "any" >+ "idlType": "any", >+ "extAttrs": [] > } >- ] >- } >+ ], >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, >- "name": "param" >+ "name": "param", >+ "escapedName": "param" > } > ], > "extAttrs": [] >@@ -68,75 +69,53 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": "record", > "nullable": false, >- "array": false, > "union": false, > "idlType": [ > { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": true, >- "array": false, > "union": true, > "idlType": [ > { >- "sequence": false, >+ "type": null, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > { >- "sequence": false, >+ "type": null, > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > } >- ] >+ ], >+ "extAttrs": [] > } >- ] >+ ], >+ "extAttrs": [] > }, > "name": "bar", >- "arguments": [], >- "extAttrs": [] >- }, >- { >- "type": "operation", >- "getter": false, >- "setter": false, >- "creator": false, >- "deleter": false, >- "legacycaller": false, >- "static": false, >- "stringifier": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "record" >- }, >- "name": "baz", >+ "escapedName": "bar", > "arguments": [], > "extAttrs": [] > } >@@ -149,36 +128,93 @@ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": "record", > "nullable": false, >- "array": false, > "union": false, > "idlType": [ > { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "USVString" >+ "idlType": "USVString", >+ "extAttrs": [] > }, > { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "USVString" >+ "idlType": "USVString", >+ "extAttrs": [] > } >- ] >+ ], >+ "extAttrs": [] > }, >- "name": "init" >+ "name": "init", >+ "escapedName": "init" > } >- ] >+ ], >+ "type": "extended-attribute", >+ "rhs": null > } > ] >+ }, >+ { >+ "type": "interface", >+ "name": "Bar", >+ "partial": false, >+ "members": [ >+ { >+ "type": "operation", >+ "getter": false, >+ "setter": false, >+ "deleter": false, >+ "static": false, >+ "stringifier": false, >+ "idlType": { >+ "type": "return-type", >+ "generic": "record", >+ "nullable": false, >+ "union": false, >+ "idlType": [ >+ { >+ "type": "return-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "DOMString", >+ "extAttrs": [] >+ }, >+ { >+ "type": "return-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "float", >+ "extAttrs": [ >+ { >+ "name": "XAttr", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null >+ } >+ ] >+ } >+ ], >+ "extAttrs": [] >+ }, >+ "name": "bar", >+ "escapedName": "bar", >+ "arguments": [], >+ "extAttrs": [] >+ } >+ ], >+ "inheritance": null, >+ "extAttrs": [] > } > ] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/reg-operations.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/reg-operations.json >index c827fff03b6bf3bb4357d1aeee4170345e61437e..8795c59ec87371e74bf7597861478ab8b1c15b54 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/reg-operations.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/reg-operations.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "width", >+ "escapedName": "width", > "extAttrs": [] > }, > { >@@ -28,27 +29,21 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "height", >+ "escapedName": "height", > "extAttrs": [] > } > ], > "inheritance": null, > "extAttrs": [] > }, >- { >- "type": "exception", >- "name": "NoPointerDevice", >- "members": [], >- "inheritance": null, >- "extAttrs": [] >- }, > { > "type": "interface", > "name": "Button", >@@ -58,20 +53,19 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "boolean" >+ "idlType": "boolean", >+ "extAttrs": [] > }, > "name": "isMouseOver", >+ "escapedName": "isMouseOver", > "arguments": [], > "extAttrs": [] > }, >@@ -79,34 +73,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "setDimensions", >+ "escapedName": "setDimensions", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Dimensions" >+ "idlType": "Dimensions", >+ "extAttrs": [] > }, >- "name": "size" >+ "name": "size", >+ "escapedName": "size" > } > ], > "extAttrs": [] >@@ -115,48 +110,51 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "setDimensions", >+ "escapedName": "setDimensions", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, >- "name": "width" >+ "name": "width", >+ "escapedName": "width" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, >- "name": "height" >+ "name": "height", >+ "escapedName": "height" > } > ], > "extAttrs": [] >@@ -165,4 +163,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/replaceable.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/replaceable.json >index 4d25f3d9317e12da6d73723cefa7ff8a071be053..133891d461db315c17b4184b0d7443dd35feaf50 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/replaceable.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/replaceable.json >@@ -11,18 +11,21 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "value", >+ "escapedName": "value", > "extAttrs": [ > { > "name": "Replaceable", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > } > ] > }, >@@ -30,20 +33,19 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "increment", >+ "escapedName": "increment", > "arguments": [], > "extAttrs": [] > } >@@ -51,4 +53,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/sequence.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/sequence.json >index 7ddd402b402aee67c8b0a697d5fc006306e541b6..ead0cdd862c7867cc8cb2e0b55bbca4367aeb89d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/sequence.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/sequence.json >@@ -8,41 +8,42 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "drawPolygon", >+ "escapedName": "drawPolygon", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": true, >+ "type": "argument-type", > "generic": "sequence", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >- } >+ "idlType": "float", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, >- "name": "coordinates" >+ "name": "coordinates", >+ "escapedName": "coordinates" > } > ], > "extAttrs": [] >@@ -51,27 +52,26 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": true, >+ "type": "return-type", > "generic": "sequence", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >- } >+ "idlType": "float", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, > "name": "getInflectionPoints", >+ "escapedName": "getInflectionPoints", > "arguments": [], > "extAttrs": [] > } >@@ -81,33 +81,62 @@ > }, > { > "type": "interface", >- "name": "Foo", >+ "name": "I", > "partial": false, > "members": [ >- > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "sequence" >+ "idlType": "void", >+ "extAttrs": [] > }, >- "name": "bar", >- "arguments": [], >+ "name": "f1", >+ "escapedName": "f1", >+ "arguments": [ >+ { >+ "optional": false, >+ "variadic": false, >+ "default": null, >+ "extAttrs": [], >+ "idlType": { >+ "type": "argument-type", >+ "generic": "sequence", >+ "nullable": false, >+ "union": false, >+ "idlType": { >+ "type": "argument-type", >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [ >+ { >+ "name": "XAttr", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null >+ } >+ ] >+ }, >+ "extAttrs": [] >+ }, >+ "name": "arg", >+ "escapedName": "arg" >+ } >+ ], > "extAttrs": [] > } > ], > "inheritance": null, > "extAttrs": [] >- } >-] >\ No newline at end of file >+ } >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/serializer.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/serializer.json >deleted file mode 100644 >index 79b501fcbc4c7c492607b51d7f5f0ce41ce02bd8..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/serializer.json >+++ /dev/null >@@ -1,591 +0,0 @@ >-[ >- { >- "type": "interface", >- "name": "Transaction", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "Account" >- }, >- "name": "from", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "Account" >- }, >- "name": "to", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "float" >- }, >- "name": "amount", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "name": "description", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "unsigned long" >- }, >- "name": "number", >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Account", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "name": "name", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "unsigned long" >- }, >- "name": "number", >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "operation": { >- "name": "serialize", >- "arguments": [] >- }, >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Transaction2", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "Account2" >- }, >- "name": "from", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "Account2" >- }, >- "name": "to", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "float" >- }, >- "name": "amount", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "name": "description", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": true, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "unsigned long" >- }, >- "name": "number", >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "patternMap": true, >- "names": [ >- "from", >- "to", >- "amount", >- "description" >- ], >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Account2", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "name": "name", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "unsigned long" >- }, >- "name": "number", >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "name": "number", >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Account3", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "name": "name", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "unsigned long" >- }, >- "name": "number", >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "patternMap": true, >- "names": [ >- "attribute" >- ], >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Account4", >- "partial": false, >- "members": [ >- { >- "type": "operation", >- "getter": true, >- "setter": false, >- "creator": false, >- "deleter": false, >- "legacycaller": false, >- "static": false, >- "stringifier": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "object" >- }, >- "name": "getItem", >- "arguments": [ >- { >- "optional": false, >- "variadic": false, >- "extAttrs": [], >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "unsigned long" >- }, >- "name": "index" >- } >- ], >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "patternMap": true, >- "names": [ >- "getter" >- ], >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Account5", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "name": "secondname", >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "patternMap": true, >- "names": [ >- "inherit", >- "secondname" >- ], >- "extAttrs": [] >- } >- ], >- "inheritance": "Account", >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Account6", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "name": "secondname", >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "patternMap": true, >- "names": [ >- "inherit", >- "attribute" >- ], >- "extAttrs": [] >- } >- ], >- "inheritance": "Account", >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Account7", >- "partial": false, >- "members": [ >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "DOMString" >- }, >- "name": "name", >- "extAttrs": [] >- }, >- { >- "type": "attribute", >- "static": false, >- "stringifier": false, >- "inherit": false, >- "readonly": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "unsigned long" >- }, >- "name": "number", >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "patternList": true, >- "names": [ >- "name", >- "number" >- ], >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- }, >- { >- "type": "interface", >- "name": "Account8", >- "partial": false, >- "members": [ >- { >- "type": "operation", >- "getter": true, >- "setter": false, >- "creator": false, >- "deleter": false, >- "legacycaller": false, >- "static": false, >- "stringifier": false, >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "object" >- }, >- "name": "getItem", >- "arguments": [ >- { >- "optional": false, >- "variadic": false, >- "extAttrs": [], >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "unsigned long" >- }, >- "name": "index" >- } >- ], >- "extAttrs": [] >- }, >- { >- "type": "serializer", >- "patternList": true, >- "names": [ >- "getter" >- ], >- "extAttrs": [] >- } >- ], >- "inheritance": null, >- "extAttrs": [] >- } >-] >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/setlike.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/setlike.json >index d44043a944aa9bd58223a96ca7b7deeef6055091..d8583538fd0f0a1f1e4b3e03942c2aca5f615270 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/setlike.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/setlike.json >@@ -6,14 +6,16 @@ > "members": [ > { > "type": "setlike", >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "long" >- }, >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [] >+ } >+ ], > "readonly": false, > "extAttrs": [] > } >@@ -28,20 +30,52 @@ > "members": [ > { > "type": "setlike", >- "idlType": { >- "sequence": false, >- "generic": null, >- "nullable": false, >- "array": false, >- "union": false, >- "idlType": "long" >- }, >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [] >+ } >+ ], > "readonly": true, > "extAttrs": [] > } > ], > "inheritance": null, > "extAttrs": [] >+ }, >+ { >+ "type": "interface", >+ "name": "SetLikeExt", >+ "partial": false, >+ "members": [ >+ { >+ "type": "setlike", >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [ >+ { >+ "name": "XAttr", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null >+ } >+ ] >+ } >+ ], >+ "readonly": false, >+ "extAttrs": [] >+ } >+ ], >+ "inheritance": null, >+ "extAttrs": [] > } > ] >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/static.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/static.json >index faab12b2966cebe10cf7817cebc94e5f007a4065..d0ddf35ec6e4b5da6acdf203eae3daa5f0132d19 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/static.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/static.json >@@ -19,14 +19,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "cx", >+ "escapedName": "cx", > "extAttrs": [] > }, > { >@@ -36,14 +37,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "cy", >+ "escapedName": "cy", > "extAttrs": [] > }, > { >@@ -53,14 +55,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "radius", >+ "escapedName": "radius", > "extAttrs": [] > }, > { >@@ -70,76 +73,82 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, > "name": "triangulationCount", >+ "escapedName": "triangulationCount", > "extAttrs": [] > }, > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": true, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Point" >+ "idlType": "Point", >+ "extAttrs": [] > }, > "name": "triangulate", >+ "escapedName": "triangulate", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Circle" >+ "idlType": "Circle", >+ "extAttrs": [] > }, >- "name": "c1" >+ "name": "c1", >+ "escapedName": "c1" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Circle" >+ "idlType": "Circle", >+ "extAttrs": [] > }, >- "name": "c2" >+ "name": "c2", >+ "escapedName": "c2" > }, > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Circle" >+ "idlType": "Circle", >+ "extAttrs": [] > }, >- "name": "c3" >+ "name": "c3", >+ "escapedName": "c3" > } > ], > "extAttrs": [] >@@ -148,4 +157,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier-attribute.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier-attribute.json >index 196ee6f1a7c07f6d17c7132bced8b38149f1c8d6..dbca7f17902c2b317e9de74ca7a54b1e8c120783 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier-attribute.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier-attribute.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "id", >+ "escapedName": "id", > "extAttrs": [] > }, > { >@@ -28,14 +29,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "name", >+ "escapedName": "name", > "extAttrs": [] > } > ], >@@ -43,8 +45,10 @@ > "extAttrs": [ > { > "name": "Constructor", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > } > ] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier-custom.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier-custom.json >index b4ab7392e5a69b871ab9545aa66a588d0c70e527..c13df6ef10c0c505008448c055e1911def33c9da 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier-custom.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier-custom.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "id", >+ "escapedName": "id", > "extAttrs": [] > }, > { >@@ -28,14 +29,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": true, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "familyName", >+ "escapedName": "familyName", > "extAttrs": [] > }, > { >@@ -45,34 +47,34 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "givenName", >+ "escapedName": "givenName", > "extAttrs": [] > }, > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": true, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": null, >+ "escapedName": null, > "arguments": [], > "extAttrs": [] > } >@@ -81,8 +83,10 @@ > "extAttrs": [ > { > "name": "Constructor", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > } > ] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier.json >index ad3abde85f4bbc610d9d806d4bde52f0801ddc97..a4f23e03f66d4213bf55fcd43b406eb545879333 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier.json >@@ -8,20 +8,19 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": true, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": null, >+ "escapedName": null, > "arguments": [], > "extAttrs": [] > } >@@ -31,16 +30,14 @@ > }, > { > "type": "interface", >- "name": "A", >+ "name": "B", > "partial": false, > "members": [ > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": true, > "extAttrs": [] >@@ -49,4 +46,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/treatasnull.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/treatasnull.json >index 8bacb967acc1e1eff834532e0b266290117f6b27..d5156bcb4f1b5ddb4db5b2a2518f9cf0a7b41745 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/treatasnull.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/treatasnull.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "name", >+ "escapedName": "name", > "extAttrs": [] > }, > { >@@ -28,42 +29,44 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "owner", >+ "escapedName": "owner", > "extAttrs": [] > }, > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "boolean" >+ "idlType": "boolean", >+ "extAttrs": [] > }, > "name": "isMemberOfBreed", >+ "escapedName": "isMemberOfBreed", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [ > { > "name": "TreatNullAs", > "arguments": null, >+ "type": "extended-attribute", > "rhs": { > "type": "identifier", > "value": "EmptyString" >@@ -71,14 +74,15 @@ > } > ], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "breedName" >+ "name": "breedName", >+ "escapedName": "breedName" > } > ], > "extAttrs": [] >@@ -87,4 +91,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/treatasundefined.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/treatasundefined.json >index 91c4d25f5d1d2fb8f58acfe657531d3168679fba..1e98315d9f13bfb0298d8a74290ab90e69d961d4 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/treatasundefined.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/treatasundefined.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "name", >+ "escapedName": "name", > "extAttrs": [] > }, > { >@@ -28,42 +29,44 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, > "name": "owner", >+ "escapedName": "owner", > "extAttrs": [] > }, > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "boolean" >+ "idlType": "boolean", >+ "extAttrs": [] > }, > "name": "isMemberOfBreed", >+ "escapedName": "isMemberOfBreed", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [ > { > "name": "TreatUndefinedAs", > "arguments": null, >+ "type": "extended-attribute", > "rhs": { > "type": "identifier", > "value": "EmptyString" >@@ -71,14 +74,15 @@ > } > ], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "DOMString" >+ "idlType": "DOMString", >+ "extAttrs": [] > }, >- "name": "breedName" >+ "name": "breedName", >+ "escapedName": "breedName" > } > ], > "extAttrs": [] >@@ -87,4 +91,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typedef-union.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typedef-union.json >index 9c87672c8aebb1074943530d5de1edd546d3ae22..31e24198ab130f3cd7efdd3e80a4baaf6bb213e3 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typedef-union.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typedef-union.json >@@ -1,49 +1,48 @@ > [ >- { >- "type" : "typedef", >- "idlType" : { >- "nullable" : false, >- "generic" : null, >- "union" : true, >- "idlType" : [ >- { >- "union" : false, >- "generic" : null, >- "nullable" : false, >- "array" : false, >- "sequence" : false, >- "idlType" : "ImageData" >- }, >- { >- "generic" : null, >- "union" : false, >- "nullable" : false, >- "array" : false, >- "idlType" : "HTMLImageElement", >- "sequence" : false >- }, >- { >- "array" : false, >- "sequence" : false, >- "idlType" : "HTMLCanvasElement", >- "generic" : null, >- "union" : false, >- "nullable" : false >- }, >- { >- "union" : false, >- "generic" : null, >- "nullable" : false, >- "array" : false, >- "sequence" : false, >- "idlType" : "HTMLVideoElement" >- } >- ], >- "sequence" : false, >- "array" : false >- }, >- "name" : "TexImageSource", >- "extAttrs" : [], >- "typeExtAttrs" : [] >- } >+ { >+ "type": "typedef", >+ "idlType": { >+ "type": "typedef-type", >+ "generic": null, >+ "nullable": false, >+ "union": true, >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "ImageData", >+ "extAttrs": [] >+ }, >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "HTMLImageElement", >+ "extAttrs": [] >+ }, >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "HTMLCanvasElement", >+ "extAttrs": [] >+ }, >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "HTMLVideoElement", >+ "extAttrs": [] >+ } >+ ], >+ "extAttrs": [] >+ }, >+ "name": "TexImageSource", >+ "extAttrs": [] >+ } > ] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typedef.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typedef.json >index d0854fa3d2626855da2eed1419e32dba7f3d9cfc..35f988e721e75e9808a6a00a749aef3fb051b0e3 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typedef.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typedef.json >@@ -11,14 +11,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "x", >+ "escapedName": "x", > "extAttrs": [] > }, > { >@@ -28,14 +29,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "float" >+ "idlType": "float", >+ "extAttrs": [] > }, > "name": "y", >+ "escapedName": "y", > "extAttrs": [] > } > ], >@@ -45,19 +47,19 @@ > { > "type": "typedef", > "idlType": { >- "sequence": true, >+ "type": "typedef-type", > "generic": "sequence", > "nullable": false, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "typedef-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Point" >- } >+ "idlType": "Point", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, > "name": "PointSequence", > "extAttrs": [] >@@ -74,14 +76,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Point" >+ "idlType": "Point", >+ "extAttrs": [] > }, > "name": "topleft", >+ "escapedName": "topleft", > "extAttrs": [] > }, > { >@@ -91,14 +94,15 @@ > "inherit": false, > "readonly": false, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Point" >+ "idlType": "Point", >+ "extAttrs": [] > }, > "name": "bottomright", >+ "escapedName": "bottomright", > "extAttrs": [] > } > ], >@@ -117,48 +121,50 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Rect" >+ "idlType": "Rect", >+ "extAttrs": [] > }, > "name": "bounds", >+ "escapedName": "bounds", > "extAttrs": [] > }, > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "boolean" >+ "idlType": "boolean", >+ "extAttrs": [] > }, > "name": "pointWithinBounds", >+ "escapedName": "pointWithinBounds", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "Point" >+ "idlType": "Point", >+ "extAttrs": [] > }, >- "name": "p" >+ "name": "p", >+ "escapedName": "p" > } > ], > "extAttrs": [] >@@ -167,34 +173,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "boolean" >+ "idlType": "boolean", >+ "extAttrs": [] > }, > "name": "allPointsWithinBounds", >+ "escapedName": "allPointsWithinBounds", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "PointSequence" >+ "idlType": "PointSequence", >+ "extAttrs": [] > }, >- "name": "ps" >+ "name": "ps", >+ "escapedName": "ps" > } > ], > "extAttrs": [] >@@ -206,16 +213,17 @@ > { > "type": "typedef", > "idlType": { >- "sequence": false, >+ "type": "typedef-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, > "idlType": "octet", > "extAttrs": [ > { > "name": "Clamp", >- "arguments": null >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null > } > ] > }, >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typesuffixes.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typesuffixes.json >index 790c444ef461b05a8ff766228d9c1ced38635b39..52870c22f4b47616e2df15d62752f950d03e0b07 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typesuffixes.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/typesuffixes.json >@@ -8,42 +8,42 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "test", >+ "escapedName": "test", > "arguments": [ > { > "optional": false, > "variadic": false, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": true, >+ "type": "argument-type", > "generic": "sequence", > "nullable": true, >- "array": false, > "union": false, > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": true, >- "array": 1, >- "nullableArray": [false], > "union": false, >- "idlType": "DOMString" >- } >+ "idlType": "DOMString", >+ "extAttrs": [] >+ }, >+ "extAttrs": [] > }, >- "name": "foo" >+ "name": "foo", >+ "escapedName": "foo" > } > ], > "extAttrs": [] >@@ -52,4 +52,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/uniontype.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/uniontype.json >index 9da5e79f3625ef6c2b11ed204aef90742d925c61..90eb074ef3a0a719e9ecd5f67b47cd52b682f094 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/uniontype.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/uniontype.json >@@ -1,127 +1,130 @@ > [ >- { >- "partial": false, >- "members": [ >- { >- "idlType": { >- "idlType": [ >- { >- "array": false, >- "union": false, >- "sequence": false, >- "generic": null, >- "idlType": "float", >- "nullable": false >- }, >- { >- "idlType": [ >+ { >+ "type": "interface", >+ "name": "Union", >+ "partial": false, >+ "members": [ >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": false, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": true, >+ "idlType": [ > { >- "nullable": false, >- "idlType": "Date", >- "sequence": false, >- "generic": null, >- "union": false, >- "array": false >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "float", >+ "extAttrs": [] > }, > { >- "nullable": false, >- "idlType": "Event", >- "generic": null, >- "sequence": false, >- "array": false, >- "union": false >- } >- ], >- "nullable": false, >- "sequence": false, >- "generic": null, >- "array": false, >- "union": true >- }, >- { >- "generic": null, >- "sequence": false, >- "idlType": [ >- { >- "array": false, >- "union": false, >- "sequence": false, >- "generic": null, >- "nullable": false, >- "idlType": "Node" >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": true, >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "Date", >+ "extAttrs": [] >+ }, >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "Event", >+ "extAttrs": [] >+ } >+ ], >+ "extAttrs": [] > }, > { >- "nullable": false, >- "idlType": "DOMString", >- "sequence": false, >- "generic": null, >- "array": false, >- "union": false >+ "type": null, >+ "generic": null, >+ "nullable": true, >+ "union": true, >+ "idlType": [ >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "Node", >+ "extAttrs": [] >+ }, >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "DOMString", >+ "extAttrs": [] >+ } >+ ], >+ "extAttrs": [] > } >- ], >- "nullable": true, >- "union": true, >- "array": false >- } >- ], >- "nullable": false, >- "generic": null, >- "sequence": false, >- "union": true, >- "array": false >+ ], >+ "extAttrs": [] >+ }, >+ "name": "test", >+ "escapedName": "test", >+ "extAttrs": [] > }, >- "name": "test", >- "inherit": false, >- "type": "attribute", >- "extAttrs": [], >- "readonly": false, >- "stringifier": false, >- "static": false >- }, >- { >- "readonly": false, >- "extAttrs": [], >- "stringifier": false, >- "static": false, >- "name": "test2", >- "idlType": { >- "nullable": false, >- "idlType": [ >- { >- "extAttrs": [ >+ { >+ "type": "attribute", >+ "static": false, >+ "stringifier": false, >+ "inherit": false, >+ "readonly": false, >+ "idlType": { >+ "type": "attribute-type", >+ "generic": null, >+ "nullable": false, >+ "union": true, >+ "idlType": [ > { >- "name": "EnforceRange", >- "arguments": null >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "long", >+ "extAttrs": [ >+ { >+ "name": "EnforceRange", >+ "arguments": null, >+ "type": "extended-attribute", >+ "rhs": null >+ } >+ ] >+ }, >+ { >+ "type": null, >+ "generic": null, >+ "nullable": false, >+ "union": false, >+ "idlType": "Date", >+ "extAttrs": [] > } >- ], >- "nullable": false, >- "idlType": "long", >- "generic": null, >- "sequence": false, >- "array": false, >- "union": false >- }, >- { >- "array": false, >- "union": false, >- "sequence": false, >- "generic": null, >- "idlType": "Date", >- "nullable": false >- } >- ], >- "generic": null, >- "sequence": false, >- "union": true, >- "array": false >- }, >- "inherit": false, >- "type": "attribute" >- } >- ], >- "inheritance": null, >- "name": "Union", >- "extAttrs": [], >- "type": "interface" >- } >+ ], >+ "extAttrs": [] >+ }, >+ "name": "test2", >+ "escapedName": "test2", >+ "extAttrs": [] >+ } >+ ], >+ "inheritance": null, >+ "extAttrs": [] >+ } > ] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/variadic-operations.json b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/variadic-operations.json >index 431ec0cb1150e0084cd8c9ac0e5f671d024a2808..3280b7b6a78a9419e008efee46c0f7e5dc2b5bac 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/variadic-operations.json >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/variadic-operations.json >@@ -11,48 +11,50 @@ > "inherit": false, > "readonly": true, > "idlType": { >- "sequence": false, >+ "type": "attribute-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "unsigned long" >+ "idlType": "unsigned long", >+ "extAttrs": [] > }, > "name": "cardinality", >+ "escapedName": "cardinality", > "extAttrs": [] > }, > { > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "union", >+ "escapedName": "union", > "arguments": [ > { > "optional": false, > "variadic": true, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, >- "name": "ints" >+ "name": "ints", >+ "escapedName": "ints" > } > ], > "extAttrs": [] >@@ -61,34 +63,35 @@ > "type": "operation", > "getter": false, > "setter": false, >- "creator": false, > "deleter": false, >- "legacycaller": false, > "static": false, > "stringifier": false, > "idlType": { >- "sequence": false, >+ "type": "return-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "void" >+ "idlType": "void", >+ "extAttrs": [] > }, > "name": "intersection", >+ "escapedName": "intersection", > "arguments": [ > { > "optional": false, > "variadic": true, >+ "default": null, > "extAttrs": [], > "idlType": { >- "sequence": false, >+ "type": "argument-type", > "generic": null, > "nullable": false, >- "array": false, > "union": false, >- "idlType": "long" >+ "idlType": "long", >+ "extAttrs": [] > }, >- "name": "ints" >+ "name": "ints", >+ "escapedName": "ints" > } > ], > "extAttrs": [] >@@ -97,4 +100,4 @@ > "inheritance": null, > "extAttrs": [] > } >-] >\ No newline at end of file >+] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/w3c-import.log >index d79ee75337bedf279e72aedbf07cd15a1e740993..0e29fe78388e6038725f1d1802f6b5670685e058 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/w3c-import.log >@@ -1,7 +1,7 @@ > The tests in this directory were imported from the W3C repository. > Do NOT modify these tests directly in WebKit. > Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >+ https://github.com/web-platform-tests/wpt > > Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport > >@@ -15,10 +15,8 @@ None > ------------------------------------------------------------------------ > List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/allowany.json >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/array.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/attributes.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/callback.json >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/caller.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constants.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/constructor.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/dictionary-inherits.json >@@ -28,7 +26,6 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/enum.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/equivalent-decl.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/exception-inheritance.json >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/exception.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/extended-attributes.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/generic.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/getter-setter.json >@@ -41,6 +38,7 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/iterator.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/legacyiterable.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/maplike.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/mixin.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namedconstructor.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/namespace.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/nointerfaceobject.json >@@ -51,13 +49,13 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/overridebuiltins.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/partial-interface.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/primitives.json >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/promise-void.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/prototyperoot.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/putforwards.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/record.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/reg-operations.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/replaceable.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/sequence.json >-/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/serializer.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/setlike.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/static.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax/json/stringifier-attribute.json >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/acquire.js b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/acquire.js >new file mode 100644 >index 0000000000000000000000000000000000000000..6f37dd6083c3c75dfe561727e9a843465e3cfa6c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/acquire.js >@@ -0,0 +1,8 @@ >+"use strict"; >+ >+const { collect } = require("./collect"); >+const fs = require("fs"); >+ >+for (const test of collect("syntax")) { >+ fs.writeFileSync(test.jsonPath, `${JSON.stringify(test.ast, null, 4)}\n`) >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/collect.js b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/collect.js >new file mode 100644 >index 0000000000000000000000000000000000000000..7e3d9d3bf31267578c0ce2046eec3f5245c573dc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/collect.js >@@ -0,0 +1,59 @@ >+"use strict"; >+ >+const wp = require("../../lib/webidl2"); >+const pth = require("path"); >+const fs = require("fs"); >+const jdp = require("jsondiffpatch"); >+ >+/** >+ * Collects test items from the specified directory >+ * @param {string} base >+ */ >+function* collect(base, { expectError } = {}) { >+ base = pth.join(__dirname, "..", base); >+ const dir = pth.join(base, "idl"); >+ const idls = fs.readdirSync(dir) >+ .filter(it => (/\.widl$/).test(it)) >+ .map(it => pth.join(dir, it)); >+ >+ for (const path of idls) { >+ const optFile = pth.join(base, "opt", pth.basename(path)).replace(".widl", ".json"); >+ let opt; >+ if (fs.existsSync(optFile)) >+ opt = JSON.parse(fs.readFileSync(optFile, "utf8")); >+ >+ try { >+ const ast = wp.parse(fs.readFileSync(path, "utf8").replace(/\r\n/g, "\n"), opt); >+ yield new TestItem({ ast, path, opt }); >+ } >+ catch (error) { >+ if (expectError) { >+ yield new TestItem({ path, error }); >+ } >+ else { >+ throw error; >+ } >+ } >+ } >+}; >+ >+ >+class TestItem { >+ constructor({ ast, path, error, opt }) { >+ this.ast = ast; >+ this.path = path; >+ this.error = error; >+ this.opt = opt; >+ this.jsonPath = pth.join(pth.dirname(path), "../json", pth.basename(path).replace(".widl", ".json")); >+ } >+ >+ readJSON() { >+ return JSON.parse(fs.readFileSync(this.jsonPath, "utf8")); >+ } >+ >+ diff(target = this.readJSON()) { >+ return jdp.diff(target, this.ast); >+ } >+} >+ >+module.exports.collect = collect; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..8a5bd4d07a7af0bf31d2e9630d6916794a2d70ac >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/w3c-import.log >@@ -0,0 +1,18 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/acquire.js >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/util/collect.js >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/w3c-import.log >index b026795ae9999c59b96c5dda9e2c92edb6a19377..47b7cb9fe563070381711768f19836003c2942f5 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/w3c-import.log >@@ -1,7 +1,7 @@ > The tests in this directory were imported from the W3C repository. > Do NOT modify these tests directly in WebKit. > Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >+ https://github.com/web-platform-tests/wpt > > Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport > >@@ -17,3 +17,4 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/invalid.js > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/mocha.opts > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/syntax.js >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/writer.js >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/web/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/web/w3c-import.log >index b4cf99e1a5a3642f21f9b29d3bf6660dd130a3f7..44bdb9fb5454d1d0401779eed26349ed305fbd6e 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/web/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/web/w3c-import.log >@@ -1,7 +1,7 @@ > The tests in this directory were imported from the W3C repository. > Do NOT modify these tests directly in WebKit. > Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >+ https://github.com/web-platform-tests/wpt > > Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/writer.js b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/writer.js >new file mode 100644 >index 0000000000000000000000000000000000000000..e84076b4f28ce38cbb41e47681ac97843df0e427 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/test/writer.js >@@ -0,0 +1,23 @@ >+"use strict"; >+ >+const { collect } = require("./util/collect"); >+const wp = require("../lib/webidl2"); >+const writer = require("../lib/writer"); >+const expect = require("expect"); >+const debug = true; >+ >+describe("Rewrite and parses all of the IDLs to produce the same ASTs", () => { >+ for (const test of collect("syntax")) { >+ it(`should produce the same AST for ${test.path}`, () => { >+ try { >+ const diff = test.diff(wp.parse(writer.write(test.ast), test.opt)); >+ if (diff && debug) console.log(JSON.stringify(diff, null, 4)); >+ expect(diff).toBe(undefined); >+ } >+ catch (e) { >+ console.log(e.toString()); >+ throw e; >+ } >+ }); >+ } >+}); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/w3c-import.log >index 7aea1e13eb5ce5a04f457bb09716c009ba7e7ff2..82459ec25789f11afac3b4eb4264967d50198737 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/w3c-import.log >@@ -1,7 +1,7 @@ > The tests in this directory were imported from the W3C repository. > Do NOT modify these tests directly in WebKit. > Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >+ https://github.com/web-platform-tests/wpt > > Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport > >@@ -14,8 +14,10 @@ Property values requiring vendor prefixes: > None > ------------------------------------------------------------------------ > List of files: >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/CHANGELOG.md > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/LICENSE > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/README.md > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/coverage.html > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/index.js >+/LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/package-lock.json > /LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/package.json >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt >index eabace72138b229651b443f18520bfabd1791628..d410d04e5ac691ebe505a503b2e7d470c94aa0f8 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt >@@ -16,21 +16,13 @@ PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of i > PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property > PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property > PASS ServiceWorkerGlobalScope interface: attribute clients >-PASS Unscopable handled correctly for clients property on ServiceWorkerGlobalScope > PASS ServiceWorkerGlobalScope interface: attribute registration >-PASS Unscopable handled correctly for registration property on ServiceWorkerGlobalScope > PASS ServiceWorkerGlobalScope interface: operation skipWaiting() >-PASS Unscopable handled correctly for skipWaiting() on ServiceWorkerGlobalScope > PASS ServiceWorkerGlobalScope interface: attribute oninstall >-PASS Unscopable handled correctly for oninstall property on ServiceWorkerGlobalScope > PASS ServiceWorkerGlobalScope interface: attribute onactivate >-PASS Unscopable handled correctly for onactivate property on ServiceWorkerGlobalScope > PASS ServiceWorkerGlobalScope interface: attribute onfetch >-PASS Unscopable handled correctly for onfetch property on ServiceWorkerGlobalScope > PASS ServiceWorkerGlobalScope interface: attribute onmessage >-PASS Unscopable handled correctly for onmessage property on ServiceWorkerGlobalScope > PASS ServiceWorkerGlobalScope interface: attribute onmessageerror >-PASS Unscopable handled correctly for onmessageerror property on ServiceWorkerGlobalScope > PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError > PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError > PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false >@@ -54,15 +46,10 @@ PASS Client interface: existence and properties of interface prototype object > PASS Client interface: existence and properties of interface prototype object's "constructor" property > PASS Client interface: existence and properties of interface prototype object's @@unscopables property > PASS Client interface: attribute url >-PASS Unscopable handled correctly for url property on Client > PASS Client interface: attribute id >-PASS Unscopable handled correctly for id property on Client > PASS Client interface: attribute type >-PASS Unscopable handled correctly for type property on Client > FAIL Client interface: attribute reserved assert_true: The prototype object must have a property "reserved" expected true got false >-PASS Unscopable handled correctly for reserved property on Client > PASS Client interface: operation postMessage(any, [object Object]) >-PASS Unscopable handled correctly for postMessage(any, [object Object]) on Client > PASS WindowClient interface: existence and properties of interface object > PASS WindowClient interface object length > PASS WindowClient interface object name >@@ -70,15 +57,10 @@ PASS WindowClient interface: existence and properties of interface prototype obj > PASS WindowClient interface: existence and properties of interface prototype object's "constructor" property > PASS WindowClient interface: existence and properties of interface prototype object's @@unscopables property > PASS WindowClient interface: attribute visibilityState >-PASS Unscopable handled correctly for visibilityState property on WindowClient > PASS WindowClient interface: attribute focused >-PASS Unscopable handled correctly for focused property on WindowClient > FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false >-PASS Unscopable handled correctly for ancestorOrigins property on WindowClient > PASS WindowClient interface: operation focus() >-PASS Unscopable handled correctly for focus() on WindowClient > PASS WindowClient interface: operation navigate(USVString) >-PASS Unscopable handled correctly for navigate(USVString) on WindowClient > PASS Clients interface: existence and properties of interface object > PASS Clients interface object length > PASS Clients interface object name >@@ -86,13 +68,9 @@ PASS Clients interface: existence and properties of interface prototype object > PASS Clients interface: existence and properties of interface prototype object's "constructor" property > PASS Clients interface: existence and properties of interface prototype object's @@unscopables property > PASS Clients interface: operation get(DOMString) >-PASS Unscopable handled correctly for get(DOMString) on Clients > PASS Clients interface: operation matchAll(ClientQueryOptions) >-PASS Unscopable handled correctly for matchAll(ClientQueryOptions) on Clients > PASS Clients interface: operation openWindow(USVString) >-PASS Unscopable handled correctly for openWindow(USVString) on Clients > PASS Clients interface: operation claim() >-PASS Unscopable handled correctly for claim() on Clients > PASS Clients must be primary interface of self.clients > PASS Stringification of self.clients > PASS Clients interface: self.clients must inherit property "get(DOMString)" with the proper type >@@ -109,13 +87,9 @@ PASS ServiceWorker interface: existence and properties of interface prototype ob > PASS ServiceWorker interface: existence and properties of interface prototype object's "constructor" property > PASS ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property > PASS ServiceWorker interface: attribute scriptURL >-PASS Unscopable handled correctly for scriptURL property on ServiceWorker > PASS ServiceWorker interface: attribute state >-PASS Unscopable handled correctly for state property on ServiceWorker > PASS ServiceWorker interface: operation postMessage(any, [object Object]) >-PASS Unscopable handled correctly for postMessage(any, [object Object]) on ServiceWorker > PASS ServiceWorker interface: attribute onstatechange >-PASS Unscopable handled correctly for onstatechange property on ServiceWorker > PASS ServiceWorkerRegistration interface: existence and properties of interface object > PASS ServiceWorkerRegistration interface object length > PASS ServiceWorkerRegistration interface object name >@@ -123,23 +97,14 @@ PASS ServiceWorkerRegistration interface: existence and properties of interface > PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property > PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property > PASS ServiceWorkerRegistration interface: attribute installing >-PASS Unscopable handled correctly for installing property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute waiting >-PASS Unscopable handled correctly for waiting property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute active >-PASS Unscopable handled correctly for active property on ServiceWorkerRegistration > FAIL ServiceWorkerRegistration interface: attribute navigationPreload assert_true: The prototype object must have a property "navigationPreload" expected true got false >-PASS Unscopable handled correctly for navigationPreload property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute scope >-PASS Unscopable handled correctly for scope property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute updateViaCache >-PASS Unscopable handled correctly for updateViaCache property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: operation update() >-PASS Unscopable handled correctly for update() on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: operation unregister() >-PASS Unscopable handled correctly for unregister() on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute onupdatefound >-PASS Unscopable handled correctly for onupdatefound property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration must be primary interface of self.registration > PASS Stringification of self.registration > PASS ServiceWorkerRegistration interface: self.registration must inherit property "installing" with the proper type >@@ -164,11 +129,8 @@ PASS EventTarget interface: existence and properties of interface prototype obje > PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property > PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property > PASS EventTarget interface: operation addEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation dispatchEvent(Event) >-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget > FAIL NavigationPreloadManager interface: existence and properties of interface object assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing > FAIL NavigationPreloadManager interface object length assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing > FAIL NavigationPreloadManager interface object name assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >@@ -176,13 +138,9 @@ FAIL NavigationPreloadManager interface: existence and properties of interface p > FAIL NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing > FAIL NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing > FAIL NavigationPreloadManager interface: operation enable() assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >-PASS Unscopable handled correctly for enable() on NavigationPreloadManager > FAIL NavigationPreloadManager interface: operation disable() assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >-PASS Unscopable handled correctly for disable() on NavigationPreloadManager > FAIL NavigationPreloadManager interface: operation setHeaderValue(ByteString) assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >-PASS Unscopable handled correctly for setHeaderValue(ByteString) on NavigationPreloadManager > FAIL NavigationPreloadManager interface: operation getState() assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >-PASS Unscopable handled correctly for getState() on NavigationPreloadManager > PASS Cache interface: existence and properties of interface object > PASS Cache interface object length > PASS Cache interface object name >@@ -190,19 +148,12 @@ PASS Cache interface: existence and properties of interface prototype object > PASS Cache interface: existence and properties of interface prototype object's "constructor" property > PASS Cache interface: existence and properties of interface prototype object's @@unscopables property > PASS Cache interface: operation match(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on Cache > PASS Cache interface: operation matchAll(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for matchAll(RequestInfo, CacheQueryOptions) on Cache > PASS Cache interface: operation add(RequestInfo) >-PASS Unscopable handled correctly for add(RequestInfo) on Cache > PASS Cache interface: operation addAll([object Object]) >-PASS Unscopable handled correctly for addAll([object Object]) on Cache > PASS Cache interface: operation put(RequestInfo, Response) >-PASS Unscopable handled correctly for put(RequestInfo, Response) on Cache > PASS Cache interface: operation delete(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for delete(RequestInfo, CacheQueryOptions) on Cache > PASS Cache interface: operation keys(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for keys(RequestInfo, CacheQueryOptions) on Cache > PASS Cache must be primary interface of self.cacheInstance > PASS Stringification of self.cacheInstance > PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type >@@ -226,15 +177,10 @@ PASS CacheStorage interface: existence and properties of interface prototype obj > PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property > PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property > PASS CacheStorage interface: operation match(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on CacheStorage > PASS CacheStorage interface: operation has(DOMString) >-PASS Unscopable handled correctly for has(DOMString) on CacheStorage > PASS CacheStorage interface: operation open(DOMString) >-PASS Unscopable handled correctly for open(DOMString) on CacheStorage > PASS CacheStorage interface: operation delete(DOMString) >-PASS Unscopable handled correctly for delete(DOMString) on CacheStorage > PASS CacheStorage interface: operation keys() >-PASS Unscopable handled correctly for keys() on CacheStorage > PASS CacheStorage must be primary interface of self.caches > PASS Stringification of self.caches > PASS CacheStorage interface: self.caches must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt >index ddc970696deaff393f69b6768af7b736ea2828dc..44df025d279651672e75beaecbfbc0fce858d7a9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt >@@ -1,4 +1,4 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > > PASS test setup (worker registration) > PASS WorkerGlobalScope interface: existence and properties of interface object >@@ -13,13 +13,9 @@ PASS ServiceWorker interface: existence and properties of interface prototype ob > PASS ServiceWorker interface: existence and properties of interface prototype object's "constructor" property > PASS ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property > PASS ServiceWorker interface: attribute scriptURL >-PASS Unscopable handled correctly for scriptURL property on ServiceWorker > PASS ServiceWorker interface: attribute state >-PASS Unscopable handled correctly for state property on ServiceWorker > PASS ServiceWorker interface: operation postMessage(any, [object Object]) >-PASS Unscopable handled correctly for postMessage(any, [object Object]) on ServiceWorker > PASS ServiceWorker interface: attribute onstatechange >-PASS Unscopable handled correctly for onstatechange property on ServiceWorker > PASS ServiceWorker must be primary interface of window.registrationInstance.installing > PASS Stringification of window.registrationInstance.installing > PASS ServiceWorker interface: window.registrationInstance.installing must inherit property "scriptURL" with the proper type >@@ -40,23 +36,14 @@ PASS ServiceWorkerRegistration interface: existence and properties of interface > PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property > PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property > PASS ServiceWorkerRegistration interface: attribute installing >-PASS Unscopable handled correctly for installing property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute waiting >-PASS Unscopable handled correctly for waiting property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute active >-PASS Unscopable handled correctly for active property on ServiceWorkerRegistration > FAIL ServiceWorkerRegistration interface: attribute navigationPreload assert_true: The prototype object must have a property "navigationPreload" expected true got false >-PASS Unscopable handled correctly for navigationPreload property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute scope >-PASS Unscopable handled correctly for scope property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute updateViaCache >-PASS Unscopable handled correctly for updateViaCache property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: operation update() >-PASS Unscopable handled correctly for update() on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: operation unregister() >-PASS Unscopable handled correctly for unregister() on ServiceWorkerRegistration > PASS ServiceWorkerRegistration interface: attribute onupdatefound >-PASS Unscopable handled correctly for onupdatefound property on ServiceWorkerRegistration > PASS ServiceWorkerRegistration must be primary interface of window.registrationInstance > PASS Stringification of window.registrationInstance > PASS ServiceWorkerRegistration interface: window.registrationInstance must inherit property "installing" with the proper type >@@ -81,11 +68,8 @@ PASS EventTarget interface: existence and properties of interface prototype obje > PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property > PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property > PASS EventTarget interface: operation addEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation dispatchEvent(Event) >-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget > FAIL NavigationPreloadManager interface: existence and properties of interface object assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing > FAIL NavigationPreloadManager interface object length assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing > FAIL NavigationPreloadManager interface object name assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >@@ -93,13 +77,9 @@ FAIL NavigationPreloadManager interface: existence and properties of interface p > FAIL NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing > FAIL NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing > FAIL NavigationPreloadManager interface: operation enable() assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >-PASS Unscopable handled correctly for enable() on NavigationPreloadManager > FAIL NavigationPreloadManager interface: operation disable() assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >-PASS Unscopable handled correctly for disable() on NavigationPreloadManager > FAIL NavigationPreloadManager interface: operation setHeaderValue(ByteString) assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >-PASS Unscopable handled correctly for setHeaderValue(ByteString) on NavigationPreloadManager > FAIL NavigationPreloadManager interface: operation getState() assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing >-PASS Unscopable handled correctly for getState() on NavigationPreloadManager > PASS Cache interface: existence and properties of interface object > PASS Cache interface object length > PASS Cache interface object name >@@ -107,19 +87,12 @@ PASS Cache interface: existence and properties of interface prototype object > PASS Cache interface: existence and properties of interface prototype object's "constructor" property > PASS Cache interface: existence and properties of interface prototype object's @@unscopables property > PASS Cache interface: operation match(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on Cache > PASS Cache interface: operation matchAll(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for matchAll(RequestInfo, CacheQueryOptions) on Cache > PASS Cache interface: operation add(RequestInfo) >-PASS Unscopable handled correctly for add(RequestInfo) on Cache > PASS Cache interface: operation addAll([object Object]) >-PASS Unscopable handled correctly for addAll([object Object]) on Cache > PASS Cache interface: operation put(RequestInfo, Response) >-PASS Unscopable handled correctly for put(RequestInfo, Response) on Cache > PASS Cache interface: operation delete(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for delete(RequestInfo, CacheQueryOptions) on Cache > PASS Cache interface: operation keys(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for keys(RequestInfo, CacheQueryOptions) on Cache > PASS CacheStorage interface: existence and properties of interface object > PASS CacheStorage interface object length > PASS CacheStorage interface object name >@@ -127,13 +100,8 @@ PASS CacheStorage interface: existence and properties of interface prototype obj > PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property > PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property > PASS CacheStorage interface: operation match(RequestInfo, CacheQueryOptions) >-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on CacheStorage > PASS CacheStorage interface: operation has(DOMString) >-PASS Unscopable handled correctly for has(DOMString) on CacheStorage > PASS CacheStorage interface: operation open(DOMString) >-PASS Unscopable handled correctly for open(DOMString) on CacheStorage > PASS CacheStorage interface: operation delete(DOMString) >-PASS Unscopable handled correctly for delete(DOMString) on CacheStorage > PASS CacheStorage interface: operation keys() >-PASS Unscopable handled correctly for keys() on CacheStorage > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/url/interfaces.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/url/interfaces.any-expected.txt >index 7c0a1b6e153256df6c0d8cd2eeeac1389ef63b4a..0da111f8a603128f5bf49c7d25e6dc48f6ce8f51 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/url/interfaces.any-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/url/interfaces.any-expected.txt >@@ -8,32 +8,19 @@ PASS URL interface: existence and properties of interface prototype object > PASS URL interface: existence and properties of interface prototype object's "constructor" property > PASS URL interface: existence and properties of interface prototype object's @@unscopables property > PASS URL interface: attribute href >-PASS Unscopable handled correctly for href property on URL > PASS URL interface: stringifier > PASS URL interface: attribute origin >-PASS Unscopable handled correctly for origin property on URL > PASS URL interface: attribute protocol >-PASS Unscopable handled correctly for protocol property on URL > PASS URL interface: attribute username >-PASS Unscopable handled correctly for username property on URL > PASS URL interface: attribute password >-PASS Unscopable handled correctly for password property on URL > PASS URL interface: attribute host >-PASS Unscopable handled correctly for host property on URL > PASS URL interface: attribute hostname >-PASS Unscopable handled correctly for hostname property on URL > PASS URL interface: attribute port >-PASS Unscopable handled correctly for port property on URL > PASS URL interface: attribute pathname >-PASS Unscopable handled correctly for pathname property on URL > PASS URL interface: attribute search >-PASS Unscopable handled correctly for search property on URL > PASS URL interface: attribute searchParams >-PASS Unscopable handled correctly for searchParams property on URL > PASS URL interface: attribute hash >-PASS Unscopable handled correctly for hash property on URL > PASS URL interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on URL > PASS URL must be primary interface of new URL("http://foo") > PASS Stringification of new URL("http://foo") > PASS URL interface: new URL("http://foo") must inherit property "href" with the proper type >@@ -57,30 +44,19 @@ PASS URLSearchParams interface: existence and properties of interface prototype > PASS URLSearchParams interface: existence and properties of interface prototype object's "constructor" property > PASS URLSearchParams interface: existence and properties of interface prototype object's @@unscopables property > PASS URLSearchParams interface: operation append(USVString, USVString) >-PASS Unscopable handled correctly for append(USVString, USVString) on URLSearchParams > PASS URLSearchParams interface: operation delete(USVString) >-PASS Unscopable handled correctly for delete(USVString) on URLSearchParams > PASS URLSearchParams interface: operation get(USVString) >-PASS Unscopable handled correctly for get(USVString) on URLSearchParams > PASS URLSearchParams interface: operation getAll(USVString) >-PASS Unscopable handled correctly for getAll(USVString) on URLSearchParams > PASS URLSearchParams interface: operation has(USVString) >-PASS Unscopable handled correctly for has(USVString) on URLSearchParams > PASS URLSearchParams interface: operation set(USVString, USVString) >-PASS Unscopable handled correctly for set(USVString, USVString) on URLSearchParams > PASS URLSearchParams interface: operation sort() >-PASS Unscopable handled correctly for sort() on URLSearchParams > PASS Testing Symbol.iterator property of iterable interface URLSearchParams > PASS Testing pair iterable interface URLSearchParams > PASS URLSearchParams interface: stringifier > PASS URLSearchParams interface: operation entries() >-PASS Unscopable handled correctly for entries() on URLSearchParams > PASS URLSearchParams interface: operation keys() >-PASS Unscopable handled correctly for keys() on URLSearchParams > PASS URLSearchParams interface: operation values() >-PASS Unscopable handled correctly for values() on URLSearchParams > PASS URLSearchParams interface: operation forEach(function, any) >-PASS Unscopable handled correctly for forEach(function, any) on URLSearchParams > PASS URLSearchParams must be primary interface of new URLSearchParams("hi=there&thank=you") > PASS Stringification of new URLSearchParams("hi=there&thank=you") > PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "append(USVString, USVString)" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/url/interfaces.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/url/interfaces.any.worker-expected.txt >index 7c0a1b6e153256df6c0d8cd2eeeac1389ef63b4a..0da111f8a603128f5bf49c7d25e6dc48f6ce8f51 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/url/interfaces.any.worker-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/url/interfaces.any.worker-expected.txt >@@ -8,32 +8,19 @@ PASS URL interface: existence and properties of interface prototype object > PASS URL interface: existence and properties of interface prototype object's "constructor" property > PASS URL interface: existence and properties of interface prototype object's @@unscopables property > PASS URL interface: attribute href >-PASS Unscopable handled correctly for href property on URL > PASS URL interface: stringifier > PASS URL interface: attribute origin >-PASS Unscopable handled correctly for origin property on URL > PASS URL interface: attribute protocol >-PASS Unscopable handled correctly for protocol property on URL > PASS URL interface: attribute username >-PASS Unscopable handled correctly for username property on URL > PASS URL interface: attribute password >-PASS Unscopable handled correctly for password property on URL > PASS URL interface: attribute host >-PASS Unscopable handled correctly for host property on URL > PASS URL interface: attribute hostname >-PASS Unscopable handled correctly for hostname property on URL > PASS URL interface: attribute port >-PASS Unscopable handled correctly for port property on URL > PASS URL interface: attribute pathname >-PASS Unscopable handled correctly for pathname property on URL > PASS URL interface: attribute search >-PASS Unscopable handled correctly for search property on URL > PASS URL interface: attribute searchParams >-PASS Unscopable handled correctly for searchParams property on URL > PASS URL interface: attribute hash >-PASS Unscopable handled correctly for hash property on URL > PASS URL interface: operation toJSON() >-PASS Unscopable handled correctly for toJSON() on URL > PASS URL must be primary interface of new URL("http://foo") > PASS Stringification of new URL("http://foo") > PASS URL interface: new URL("http://foo") must inherit property "href" with the proper type >@@ -57,30 +44,19 @@ PASS URLSearchParams interface: existence and properties of interface prototype > PASS URLSearchParams interface: existence and properties of interface prototype object's "constructor" property > PASS URLSearchParams interface: existence and properties of interface prototype object's @@unscopables property > PASS URLSearchParams interface: operation append(USVString, USVString) >-PASS Unscopable handled correctly for append(USVString, USVString) on URLSearchParams > PASS URLSearchParams interface: operation delete(USVString) >-PASS Unscopable handled correctly for delete(USVString) on URLSearchParams > PASS URLSearchParams interface: operation get(USVString) >-PASS Unscopable handled correctly for get(USVString) on URLSearchParams > PASS URLSearchParams interface: operation getAll(USVString) >-PASS Unscopable handled correctly for getAll(USVString) on URLSearchParams > PASS URLSearchParams interface: operation has(USVString) >-PASS Unscopable handled correctly for has(USVString) on URLSearchParams > PASS URLSearchParams interface: operation set(USVString, USVString) >-PASS Unscopable handled correctly for set(USVString, USVString) on URLSearchParams > PASS URLSearchParams interface: operation sort() >-PASS Unscopable handled correctly for sort() on URLSearchParams > PASS Testing Symbol.iterator property of iterable interface URLSearchParams > PASS Testing pair iterable interface URLSearchParams > PASS URLSearchParams interface: stringifier > PASS URLSearchParams interface: operation entries() >-PASS Unscopable handled correctly for entries() on URLSearchParams > PASS URLSearchParams interface: operation keys() >-PASS Unscopable handled correctly for keys() on URLSearchParams > PASS URLSearchParams interface: operation values() >-PASS Unscopable handled correctly for values() on URLSearchParams > PASS URLSearchParams interface: operation forEach(function, any) >-PASS Unscopable handled correctly for forEach(function, any) on URLSearchParams > PASS URLSearchParams must be primary interface of new URLSearchParams("hi=there&thank=you") > PASS Stringification of new URLSearchParams("hi=there&thank=you") > PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "append(USVString, USVString)" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-expected.txt >index ce0390b8fb0447acd3b9f3b844681a61d74bd56f..d83405d07f3ef8feafc0c67231330f8b7f976e71 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-expected.txt >@@ -1,14 +1,11 @@ > User Timing IDL tests > > >+PASS Partial interface Performance: original interface defined > PASS Performance interface: operation mark(DOMString) >-PASS Unscopable handled correctly for mark(DOMString) on Performance > PASS Performance interface: operation clearMarks(DOMString) >-PASS Unscopable handled correctly for clearMarks(DOMString) on Performance > PASS Performance interface: operation measure(DOMString, DOMString, DOMString) >-PASS Unscopable handled correctly for measure(DOMString, DOMString, DOMString) on Performance > PASS Performance interface: operation clearMeasures(DOMString) >-PASS Unscopable handled correctly for clearMeasures(DOMString) on Performance > PASS Performance interface: window.performance must inherit property "mark(DOMString)" with the proper type > PASS Performance interface: calling mark(DOMString) on window.performance with too few arguments must throw TypeError > PASS Performance interface: window.performance must inherit property "clearMarks(DOMString)" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/idlharness-expected.txt >index 07acd6f56df15baec15850b5c6c1b9ee90f1635c..12c06fdaeb6d248b53efe74f00ed25da5748ad87 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/idlharness-expected.txt >@@ -6,39 +6,22 @@ PASS Animation interface: existence and properties of interface prototype object > PASS Animation interface: existence and properties of interface prototype object's "constructor" property > PASS Animation interface: existence and properties of interface prototype object's @@unscopables property > PASS Animation interface: attribute id >-PASS Unscopable handled correctly for id property on Animation > PASS Animation interface: attribute effect >-PASS Unscopable handled correctly for effect property on Animation > PASS Animation interface: attribute timeline >-PASS Unscopable handled correctly for timeline property on Animation > PASS Animation interface: attribute startTime >-PASS Unscopable handled correctly for startTime property on Animation > PASS Animation interface: attribute currentTime >-PASS Unscopable handled correctly for currentTime property on Animation > PASS Animation interface: attribute playbackRate >-PASS Unscopable handled correctly for playbackRate property on Animation > PASS Animation interface: attribute playState >-PASS Unscopable handled correctly for playState property on Animation > PASS Animation interface: attribute pending >-PASS Unscopable handled correctly for pending property on Animation > PASS Animation interface: attribute ready >-PASS Unscopable handled correctly for ready property on Animation > PASS Animation interface: attribute finished >-PASS Unscopable handled correctly for finished property on Animation > PASS Animation interface: attribute onfinish >-PASS Unscopable handled correctly for onfinish property on Animation > PASS Animation interface: attribute oncancel >-PASS Unscopable handled correctly for oncancel property on Animation > PASS Animation interface: operation cancel() >-PASS Unscopable handled correctly for cancel() on Animation > PASS Animation interface: operation finish() >-PASS Unscopable handled correctly for finish() on Animation > PASS Animation interface: operation play() >-PASS Unscopable handled correctly for play() on Animation > PASS Animation interface: operation pause() >-PASS Unscopable handled correctly for pause() on Animation > PASS Animation interface: operation reverse() >-PASS Unscopable handled correctly for reverse() on Animation > PASS Animation must be primary interface of new Animation() > PASS Stringification of new Animation() > PASS Animation interface: new Animation() must inherit property "id" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/idlharness-expected.txt >index 4b00d24ec6e5f006e1bdda616e761e77795137c8..e473c8f7933980998cbb3a3bf9c062a420f0d75a 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/idlharness-expected.txt >@@ -6,21 +6,13 @@ PASS AnimationEffectTimingReadOnly interface: existence and properties of interf > PASS AnimationEffectTimingReadOnly interface: existence and properties of interface prototype object's "constructor" property > PASS AnimationEffectTimingReadOnly interface: existence and properties of interface prototype object's @@unscopables property > PASS AnimationEffectTimingReadOnly interface: attribute delay >-PASS Unscopable handled correctly for delay property on AnimationEffectTimingReadOnly > PASS AnimationEffectTimingReadOnly interface: attribute endDelay >-PASS Unscopable handled correctly for endDelay property on AnimationEffectTimingReadOnly > PASS AnimationEffectTimingReadOnly interface: attribute fill >-PASS Unscopable handled correctly for fill property on AnimationEffectTimingReadOnly > PASS AnimationEffectTimingReadOnly interface: attribute iterationStart >-PASS Unscopable handled correctly for iterationStart property on AnimationEffectTimingReadOnly > PASS AnimationEffectTimingReadOnly interface: attribute iterations >-PASS Unscopable handled correctly for iterations property on AnimationEffectTimingReadOnly > PASS AnimationEffectTimingReadOnly interface: attribute duration >-PASS Unscopable handled correctly for duration property on AnimationEffectTimingReadOnly > PASS AnimationEffectTimingReadOnly interface: attribute direction >-PASS Unscopable handled correctly for direction property on AnimationEffectTimingReadOnly > PASS AnimationEffectTimingReadOnly interface: attribute easing >-PASS Unscopable handled correctly for easing property on AnimationEffectTimingReadOnly > PASS AnimationEffectTimingReadOnly must be primary interface of (new KeyframeEffectReadOnly(null, null)).timing > PASS Stringification of (new KeyframeEffectReadOnly(null, null)).timing > PASS AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "delay" with the proper type >@@ -38,21 +30,13 @@ PASS AnimationEffectTiming interface: existence and properties of interface prot > PASS AnimationEffectTiming interface: existence and properties of interface prototype object's "constructor" property > PASS AnimationEffectTiming interface: existence and properties of interface prototype object's @@unscopables property > PASS AnimationEffectTiming interface: attribute delay >-PASS Unscopable handled correctly for delay property on AnimationEffectTiming > PASS AnimationEffectTiming interface: attribute endDelay >-PASS Unscopable handled correctly for endDelay property on AnimationEffectTiming > PASS AnimationEffectTiming interface: attribute fill >-PASS Unscopable handled correctly for fill property on AnimationEffectTiming > PASS AnimationEffectTiming interface: attribute iterationStart >-PASS Unscopable handled correctly for iterationStart property on AnimationEffectTiming > PASS AnimationEffectTiming interface: attribute iterations >-PASS Unscopable handled correctly for iterations property on AnimationEffectTiming > PASS AnimationEffectTiming interface: attribute duration >-PASS Unscopable handled correctly for duration property on AnimationEffectTiming > PASS AnimationEffectTiming interface: attribute direction >-PASS Unscopable handled correctly for direction property on AnimationEffectTiming > PASS AnimationEffectTiming interface: attribute easing >-PASS Unscopable handled correctly for easing property on AnimationEffectTiming > PASS AnimationEffectTiming must be primary interface of (new KeyframeEffect(null, null)).timing > PASS Stringification of (new KeyframeEffect(null, null)).timing > PASS AnimationEffectTiming interface: (new KeyframeEffect(null, null)).timing must inherit property "delay" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness-expected.txt >index 5ff1407104011e7c094d6f64919c9e2409e6e014..14a0406f3f1acfc1d58cde1b684c2a4e4f88d0c6 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness-expected.txt >@@ -6,9 +6,7 @@ PASS AnimationPlaybackEvent interface: existence and properties of interface pro > PASS AnimationPlaybackEvent interface: existence and properties of interface prototype object's "constructor" property > PASS AnimationPlaybackEvent interface: existence and properties of interface prototype object's @@unscopables property > PASS AnimationPlaybackEvent interface: attribute currentTime >-PASS Unscopable handled correctly for currentTime property on AnimationPlaybackEvent > PASS AnimationPlaybackEvent interface: attribute timelineTime >-PASS Unscopable handled correctly for timelineTime property on AnimationPlaybackEvent > PASS AnimationPlaybackEvent must be primary interface of new AnimationPlaybackEvent('cancel') > PASS Stringification of new AnimationPlaybackEvent('cancel') > PASS AnimationPlaybackEvent interface: new AnimationPlaybackEvent('cancel') must inherit property "currentTime" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness-expected.txt >index 878fcef3605f1fac71dd5153432ec75045419f7a..63eacc202bfd63eb5cee4e216e0a8c5d40e8f40d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness-expected.txt >@@ -6,7 +6,6 @@ PASS AnimationTimeline interface: existence and properties of interface prototyp > PASS AnimationTimeline interface: existence and properties of interface prototype object's "constructor" property > PASS AnimationTimeline interface: existence and properties of interface prototype object's @@unscopables property > PASS AnimationTimeline interface: attribute currentTime >-PASS Unscopable handled correctly for currentTime property on AnimationTimeline > PASS DocumentTimeline interface: existence and properties of interface object > PASS DocumentTimeline interface object length > PASS DocumentTimeline interface object name >diff --git a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt >index eaded068ed38c69ebb383c83abd9d9c7219b2287..4e02d282d6cf0432fbceac5a631c9829cc6e0526 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt >@@ -6,9 +6,7 @@ PASS AnimationEffectReadOnly interface: existence and properties of interface pr > PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object's "constructor" property > PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object's @@unscopables property > PASS AnimationEffectReadOnly interface: attribute timing >-PASS Unscopable handled correctly for timing property on AnimationEffectReadOnly > PASS AnimationEffectReadOnly interface: operation getComputedTiming() >-PASS Unscopable handled correctly for getComputedTiming() on AnimationEffectReadOnly > PASS KeyframeEffectReadOnly interface: existence and properties of interface object > PASS KeyframeEffectReadOnly interface object length > PASS KeyframeEffectReadOnly interface object name >@@ -16,13 +14,9 @@ PASS KeyframeEffectReadOnly interface: existence and properties of interface pro > PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object's "constructor" property > PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object's @@unscopables property > PASS KeyframeEffectReadOnly interface: attribute target >-PASS Unscopable handled correctly for target property on KeyframeEffectReadOnly > PASS KeyframeEffectReadOnly interface: attribute iterationComposite >-PASS Unscopable handled correctly for iterationComposite property on KeyframeEffectReadOnly > PASS KeyframeEffectReadOnly interface: attribute composite >-PASS Unscopable handled correctly for composite property on KeyframeEffectReadOnly > PASS KeyframeEffectReadOnly interface: operation getKeyframes() >-PASS Unscopable handled correctly for getKeyframes() on KeyframeEffectReadOnly > PASS KeyframeEffectReadOnly must be primary interface of new KeyframeEffectReadOnly(null, null) > PASS Stringification of new KeyframeEffectReadOnly(null, null) > PASS KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "target" with the proper type >@@ -38,13 +32,9 @@ PASS KeyframeEffect interface: existence and properties of interface prototype o > PASS KeyframeEffect interface: existence and properties of interface prototype object's "constructor" property > PASS KeyframeEffect interface: existence and properties of interface prototype object's @@unscopables property > PASS KeyframeEffect interface: attribute target >-PASS Unscopable handled correctly for target property on KeyframeEffect > PASS KeyframeEffect interface: attribute iterationComposite >-PASS Unscopable handled correctly for iterationComposite property on KeyframeEffect > PASS KeyframeEffect interface: attribute composite >-PASS Unscopable handled correctly for composite property on KeyframeEffect > PASS KeyframeEffect interface: operation setKeyframes(object) >-PASS Unscopable handled correctly for setKeyframes(object) on KeyframeEffect > PASS KeyframeEffect must be primary interface of new KeyframeEffect(null, null) > PASS Stringification of new KeyframeEffect(null, null) > PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "target" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt >index b7306d4142db5f657c1657246b4f64b36f816ac4..cf52a6c8c2583ed27df13d7ee7ab8e09ed69cdb0 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt >@@ -1,7 +1,7 @@ > > PASS Test driver >+PASS Partial interface Navigator: original interface defined > FAIL Navigator interface: operation share(ShareData) assert_own_property: interface prototype object missing non-static operation expected property "share" missing >-PASS Unscopable handled correctly for share(ShareData) on Navigator > FAIL Navigator interface: navigator must inherit property "share(ShareData)" with the proper type assert_inherits: property "share" not found in prototype chain > FAIL Navigator interface: calling share(ShareData) on navigator with too few arguments must throw TypeError assert_inherits: property "share" not found in prototype chain > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test-expected.txt >index 0fc08231ef32d3e15df81244d8f72a0bbb092aee..e43a5fb4bf64229f6fc6aeb516b654ab23df2f59 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test-expected.txt >@@ -1,5 +1,5 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > dictionary AudioBufferOptions { > unsigned long numberOfChannels = 1; > required unsigned long length; >@@ -26,19 +26,12 @@ PASS AudioBuffer interface: existence and properties of interface prototype obje > PASS AudioBuffer interface: existence and properties of interface prototype object's "constructor" property > PASS AudioBuffer interface: existence and properties of interface prototype object's @@unscopables property > PASS AudioBuffer interface: attribute sampleRate >-PASS Unscopable handled correctly for sampleRate property on AudioBuffer > PASS AudioBuffer interface: attribute length >-PASS Unscopable handled correctly for length property on AudioBuffer > PASS AudioBuffer interface: attribute duration >-PASS Unscopable handled correctly for duration property on AudioBuffer > PASS AudioBuffer interface: attribute numberOfChannels >-PASS Unscopable handled correctly for numberOfChannels property on AudioBuffer > PASS AudioBuffer interface: operation getChannelData(unsigned long) >-PASS Unscopable handled correctly for getChannelData(unsigned long) on AudioBuffer > FAIL AudioBuffer interface: operation copyFromChannel(Float32Array, unsigned long, unsigned long) assert_own_property: interface prototype object missing non-static operation expected property "copyFromChannel" missing >-PASS Unscopable handled correctly for copyFromChannel(Float32Array, unsigned long, unsigned long) on AudioBuffer > FAIL AudioBuffer interface: operation copyToChannel(Float32Array, unsigned long, unsigned long) assert_own_property: interface prototype object missing non-static operation expected property "copyToChannel" missing >-PASS Unscopable handled correctly for copyToChannel(Float32Array, unsigned long, unsigned long) on AudioBuffer > PASS AudioBuffer must be primary interface of audio_buffer > PASS Stringification of audio_buffer > PASS AudioBuffer interface: audio_buffer must inherit property "sampleRate" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html >index 49f375c9e121875c856db5cf9cbfa0cf922592dc..cb88268b68e87f5db9b2171656d45b6979858ac1 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html >@@ -40,10 +40,10 @@ interface BaseAudioContext : EventTarget { > readonly attribute AudioListener listener; > readonly attribute AudioContextState state; > readonly attribute double baseLatency; >- Promise<void> resume (); >+ Promise<void> resume (); > attribute EventHandler onstatechange; > AudioBuffer createBuffer (unsigned long numberOfChannels, unsigned long length, float sampleRate); >- Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, optional DecodeSuccessCallback successCallback, optional DecodeErrorCallback errorCallback); >+ Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, optional DecodeSuccessCallback successCallback, optional DecodeErrorCallback errorCallback); > AudioBufferSourceNode createBufferSource (); > ConstantSourceNode createConstantSource (); > ScriptProcessorNode createScriptProcessor (optional unsigned long bufferSize = 0 >@@ -54,7 +54,7 @@ interface BaseAudioContext : EventTarget { > GainNode createGain (); > DelayNode createDelay (optional double maxDelayTime); > BiquadFilterNode createBiquadFilter (); >- IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback); >+ IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback); > WaveShaperNode createWaveShaper (); > PannerNode createPanner (); > StereoPannerNode createStereoPanner (); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test-expected.txt >index 54ddc222c4a88ed1d217a77b4ea8cf9275744ddf..507f1390e67b3ff6cf7185ed201b58bc8b7718b3 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test-expected.txt >@@ -1,5 +1,5 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > interface AudioDestinationNode : AudioNode { > > readonly attribute unsigned long maxChannelCount; >@@ -13,7 +13,6 @@ PASS AudioDestinationNode interface: existence and properties of interface proto > PASS AudioDestinationNode interface: existence and properties of interface prototype object's "constructor" property > PASS AudioDestinationNode interface: existence and properties of interface prototype object's @@unscopables property > PASS AudioDestinationNode interface: attribute maxChannelCount >-PASS Unscopable handled correctly for maxChannelCount property on AudioDestinationNode > PASS AudioDestinationNode must be primary interface of audio_destination_node > PASS Stringification of audio_destination_node > PASS AudioDestinationNode interface: audio_destination_node must inherit property "maxChannelCount" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html >index 9c7fca1a3f47e2a7bd77bd69e7a47fd4f5f692ae..59148baf8d529c5b03776247fe182456118fdbf6 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html >@@ -42,10 +42,10 @@ interface BaseAudioContext : EventTarget { > readonly attribute AudioListener listener; > readonly attribute AudioContextState state; > readonly attribute double baseLatency; >- Promise<void> resume (); >+ Promise<void> resume (); > attribute EventHandler onstatechange; > AudioBuffer createBuffer (unsigned long numberOfChannels, unsigned long length, float sampleRate); >- Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, optional DecodeSuccessCallback successCallback, optional DecodeErrorCallback errorCallback); >+ Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, optional DecodeSuccessCallback successCallback, optional DecodeErrorCallback errorCallback); > AudioBufferSourceNode createBufferSource (); > ConstantSourceNode createConstantSource (); > ScriptProcessorNode createScriptProcessor (optional unsigned long bufferSize = 0 >@@ -56,7 +56,7 @@ interface BaseAudioContext : EventTarget { > GainNode createGain (); > DelayNode createDelay (optional double maxDelayTime); > BiquadFilterNode createBiquadFilter (); >- IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback); >+ IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback); > WaveShaperNode createWaveShaper (); > PannerNode createPanner (); > StereoPannerNode createStereoPanner (); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/idl-test-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/idl-test-expected.txt >index fece70adbd7024c285910d9f66fb7442636d7ddb..1e596f60b992ec32d8e3e2a3bc78b551cab98bad 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/idl-test-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/idl-test-expected.txt >@@ -6,25 +6,15 @@ PASS AudioParam interface: existence and properties of interface prototype objec > PASS AudioParam interface: existence and properties of interface prototype object's "constructor" property > PASS AudioParam interface: existence and properties of interface prototype object's @@unscopables property > PASS AudioParam interface: attribute value >-PASS Unscopable handled correctly for value property on AudioParam > PASS AudioParam interface: attribute defaultValue >-PASS Unscopable handled correctly for defaultValue property on AudioParam > PASS AudioParam interface: attribute minValue >-PASS Unscopable handled correctly for minValue property on AudioParam > PASS AudioParam interface: attribute maxValue >-PASS Unscopable handled correctly for maxValue property on AudioParam > PASS AudioParam interface: operation setValueAtTime(float, double) >-PASS Unscopable handled correctly for setValueAtTime(float, double) on AudioParam > PASS AudioParam interface: operation linearRampToValueAtTime(float, double) >-PASS Unscopable handled correctly for linearRampToValueAtTime(float, double) on AudioParam > PASS AudioParam interface: operation exponentialRampToValueAtTime(float, double) >-PASS Unscopable handled correctly for exponentialRampToValueAtTime(float, double) on AudioParam > PASS AudioParam interface: operation setTargetAtTime(float, double, double) >-PASS Unscopable handled correctly for setTargetAtTime(float, double, double) on AudioParam > PASS AudioParam interface: operation setValueCurveAtTime(Float32Array, double, double) >-PASS Unscopable handled correctly for setValueCurveAtTime(Float32Array, double, double) on AudioParam > PASS AudioParam interface: operation cancelScheduledValues(double) >-PASS Unscopable handled correctly for cancelScheduledValues(double) on AudioParam > PASS AudioParam must be primary interface of delay_time > PASS Stringification of delay_time > PASS AudioParam interface: delay_time must inherit property "value" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test-expected.txt >index 7f317fe6987faf7a30628664a2527a8f18a51aa5..f0e80e5750f3c60df128007373a090ceec262edb 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test-expected.txt >@@ -1,3 +1,5 @@ >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > dictionary DelayOptions : AudioNodeOptions { > double maxDelayTime = 1; > double delayTime = 0; >@@ -10,27 +12,15 @@ interface DelayNode : AudioNode { > > }; > >-FAIL webaudio Delay interfaces promise_test: Unhandled rejection with value: object "Unrecognised tokens, line 1 (tokens: '{"error": {') >-[ >- { >- "type": "other", >- "value": "{" >- }, >- { >- "type": "string", >- "value": "\"error\"" >- }, >- { >- "type": "other", >- "value": ":" >- }, >- { >- "type": "whitespace", >- "value": " " >- }, >- { >- "type": "other", >- "value": "{" >- } >-]" >+PASS webaudio Delay interfaces >+PASS DelayNode interface: existence and properties of interface object >+FAIL DelayNode interface object length assert_equals: wrong value for DelayNode.length expected 1 but got 0 >+PASS DelayNode interface object name >+PASS DelayNode interface: existence and properties of interface prototype object >+PASS DelayNode interface: existence and properties of interface prototype object's "constructor" property >+PASS DelayNode interface: existence and properties of interface prototype object's @@unscopables property >+PASS DelayNode interface: attribute delayTime >+PASS DelayNode must be primary interface of delay_node >+PASS Stringification of delay_node >+PASS DelayNode interface: delay_node must inherit property "delayTime" with the proper type > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test.html b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test.html >index eb42a4a003c893c550f8453fda0cae041b3f121c..f79f9da78c8e41458fdd82d730d2b295c0131cd9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/idl-test.html >@@ -43,10 +43,10 @@ interface BaseAudioContext : EventTarget { > readonly attribute AudioListener listener; > readonly attribute AudioContextState state; > readonly attribute double baseLatency; >- Promise<void> resume (); >+ Promise<void> resume (); > attribute EventHandler onstatechange; > AudioBuffer createBuffer (unsigned long numberOfChannels, unsigned long length, float sampleRate); >- Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, optional DecodeSuccessCallback successCallback, optional DecodeErrorCallback errorCallback); >+ Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, optional DecodeSuccessCallback successCallback, optional DecodeErrorCallback errorCallback); > AudioBufferSourceNode createBufferSource (); > ConstantSourceNode createConstantSource (); > ScriptProcessorNode createScriptProcessor (optional unsigned long bufferSize = 0 >@@ -57,7 +57,7 @@ interface BaseAudioContext : EventTarget { > GainNode createGain (); > DelayNode createDelay (optional double maxDelayTime); > BiquadFilterNode createBiquadFilter (); >- IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback); >+ IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback); > WaveShaperNode createWaveShaper (); > PannerNode createPanner (); > StereoPannerNode createStereoPanner (); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test-expected.txt >index 8996a3b50cae4169fc606d197d4d92d344dbe110..2a61ca67c5e71a47a3ecec2b707e5219e19778ec 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test-expected.txt >@@ -1,3 +1,5 @@ >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > dictionary GainOptions : AudioNodeOptions { > float gain = 1.0; > }; >@@ -9,27 +11,15 @@ interface GainNode : AudioNode { > > }; > >-FAIL webaudio Gain interfaces promise_test: Unhandled rejection with value: object "Unrecognised tokens, line 1 (tokens: '{"error": {') >-[ >- { >- "type": "other", >- "value": "{" >- }, >- { >- "type": "string", >- "value": "\"error\"" >- }, >- { >- "type": "other", >- "value": ":" >- }, >- { >- "type": "whitespace", >- "value": " " >- }, >- { >- "type": "other", >- "value": "{" >- } >-]" >+PASS webaudio Gain interfaces >+PASS GainNode interface: existence and properties of interface object >+FAIL GainNode interface object length assert_equals: wrong value for GainNode.length expected 1 but got 0 >+PASS GainNode interface object name >+PASS GainNode interface: existence and properties of interface prototype object >+PASS GainNode interface: existence and properties of interface prototype object's "constructor" property >+PASS GainNode interface: existence and properties of interface prototype object's @@unscopables property >+PASS GainNode interface: attribute gain >+PASS GainNode must be primary interface of gain_node >+PASS Stringification of gain_node >+PASS GainNode interface: gain_node must inherit property "gain" with the proper type > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test.html b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test.html >index 69606c977eda42e851792ac3a37d1a42481cf821..856b2a5b5342ee322c2ce5777854f0af46fe3b83 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/idl-test.html >@@ -42,10 +42,10 @@ interface BaseAudioContext : EventTarget { > readonly attribute AudioListener listener; > readonly attribute AudioContextState state; > readonly attribute double baseLatency; >- Promise<void> resume (); >+ Promise<void> resume (); > attribute EventHandler onstatechange; > AudioBuffer createBuffer (unsigned long numberOfChannels, unsigned long length, float sampleRate); >- Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, optional DecodeSuccessCallback successCallback, optional DecodeErrorCallback errorCallback); >+ Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, optional DecodeSuccessCallback successCallback, optional DecodeErrorCallback errorCallback); > AudioBufferSourceNode createBufferSource (); > ConstantSourceNode createConstantSource (); > ScriptProcessorNode createScriptProcessor (optional unsigned long bufferSize = 0 >@@ -56,7 +56,7 @@ interface BaseAudioContext : EventTarget { > GainNode createGain (); > DelayNode createDelay (optional double maxDelayTime); > BiquadFilterNode createBiquadFilter (); >- IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback); >+ IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback); > WaveShaperNode createWaveShaper (); > PannerNode createPanner (); > StereoPannerNode createStereoPanner (); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker-expected.txt >index f727bc47f3f9a00ecde506d06567e9d8d2b26621..3fa503473872213a7f32b70ca1e6089beb9157be 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker-expected.txt >@@ -6,11 +6,8 @@ PASS EventTarget interface: existence and properties of interface prototype obje > PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property > PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property > PASS EventTarget interface: operation addEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object]) >-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget > PASS EventTarget interface: operation dispatchEvent(Event) >-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget > PASS EventListener interface: existence and properties of interface object > PASS WorkerGlobalScope interface: existence and properties of interface object > PASS WorkerGlobalScope interface object length >@@ -19,43 +16,24 @@ PASS WorkerGlobalScope interface: existence and properties of interface prototyp > PASS WorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property > PASS WorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property > PASS WorkerGlobalScope interface: attribute self >-PASS Unscopable handled correctly for self property on WorkerGlobalScope > PASS WorkerGlobalScope interface: attribute location >-PASS Unscopable handled correctly for location property on WorkerGlobalScope > PASS WorkerGlobalScope interface: attribute navigator >-PASS Unscopable handled correctly for navigator property on WorkerGlobalScope > PASS WorkerGlobalScope interface: operation importScripts(USVString) >-PASS Unscopable handled correctly for importScripts(USVString) on WorkerGlobalScope > PASS WorkerGlobalScope interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on WorkerGlobalScope > FAIL WorkerGlobalScope interface: attribute onlanguagechange assert_true: The prototype object must have a property "onlanguagechange" expected true got false >-PASS Unscopable handled correctly for onlanguagechange property on WorkerGlobalScope > PASS WorkerGlobalScope interface: attribute onoffline >-PASS Unscopable handled correctly for onoffline property on WorkerGlobalScope > PASS WorkerGlobalScope interface: attribute ononline >-PASS Unscopable handled correctly for ononline property on WorkerGlobalScope > PASS WorkerGlobalScope interface: attribute onrejectionhandled >-PASS Unscopable handled correctly for onrejectionhandled property on WorkerGlobalScope > PASS WorkerGlobalScope interface: attribute onunhandledrejection >-PASS Unscopable handled correctly for onunhandledrejection property on WorkerGlobalScope > PASS WorkerGlobalScope interface: attribute origin >-PASS Unscopable handled correctly for origin property on WorkerGlobalScope > PASS WorkerGlobalScope interface: operation btoa(DOMString) >-PASS Unscopable handled correctly for btoa(DOMString) on WorkerGlobalScope > PASS WorkerGlobalScope interface: operation atob(DOMString) >-PASS Unscopable handled correctly for atob(DOMString) on WorkerGlobalScope > PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler, long, any) >-PASS Unscopable handled correctly for setTimeout(TimerHandler, long, any) on WorkerGlobalScope > PASS WorkerGlobalScope interface: operation clearTimeout(long) >-PASS Unscopable handled correctly for clearTimeout(long) on WorkerGlobalScope > PASS WorkerGlobalScope interface: operation setInterval(TimerHandler, long, any) >-PASS Unscopable handled correctly for setInterval(TimerHandler, long, any) on WorkerGlobalScope > PASS WorkerGlobalScope interface: operation clearInterval(long) >-PASS Unscopable handled correctly for clearInterval(long) on WorkerGlobalScope > PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, ImageBitmapOptions) >-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on WorkerGlobalScope > PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) >-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on WorkerGlobalScope > PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object > PASS DedicatedWorkerGlobalScope interface object length > PASS DedicatedWorkerGlobalScope interface object name >@@ -69,15 +47,10 @@ PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of > PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property > PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property > PASS DedicatedWorkerGlobalScope interface: attribute name >-PASS Unscopable handled correctly for name property on DedicatedWorkerGlobalScope > PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, [object Object]) >-PASS Unscopable handled correctly for postMessage(any, [object Object]) on DedicatedWorkerGlobalScope > PASS DedicatedWorkerGlobalScope interface: operation close() >-PASS Unscopable handled correctly for close() on DedicatedWorkerGlobalScope > PASS DedicatedWorkerGlobalScope interface: attribute onmessage >-PASS Unscopable handled correctly for onmessage property on DedicatedWorkerGlobalScope > FAIL DedicatedWorkerGlobalScope interface: attribute onmessageerror assert_own_property: The global object must have a property "onmessageerror" expected property "onmessageerror" missing >-PASS Unscopable handled correctly for onmessageerror property on DedicatedWorkerGlobalScope > PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError > PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError > PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false >@@ -133,28 +106,18 @@ PASS WorkerNavigator interface: existence and properties of interface prototype > PASS WorkerNavigator interface: existence and properties of interface prototype object's "constructor" property > PASS WorkerNavigator interface: existence and properties of interface prototype object's @@unscopables property > PASS WorkerNavigator interface: attribute appCodeName >-PASS Unscopable handled correctly for appCodeName property on WorkerNavigator > PASS WorkerNavigator interface: attribute appName >-PASS Unscopable handled correctly for appName property on WorkerNavigator > PASS WorkerNavigator interface: attribute appVersion >-PASS Unscopable handled correctly for appVersion property on WorkerNavigator > PASS WorkerNavigator interface: attribute platform >-PASS Unscopable handled correctly for platform property on WorkerNavigator > PASS WorkerNavigator interface: attribute product >-PASS Unscopable handled correctly for product property on WorkerNavigator > PASS WorkerNavigator interface: member productSub > PASS WorkerNavigator interface: attribute userAgent >-PASS Unscopable handled correctly for userAgent property on WorkerNavigator > PASS WorkerNavigator interface: member vendor > PASS WorkerNavigator interface: member vendorSub > PASS WorkerNavigator interface: attribute language >-PASS Unscopable handled correctly for language property on WorkerNavigator > PASS WorkerNavigator interface: attribute languages >-PASS Unscopable handled correctly for languages property on WorkerNavigator > PASS WorkerNavigator interface: attribute onLine >-PASS Unscopable handled correctly for onLine property on WorkerNavigator > FAIL WorkerNavigator interface: attribute hardwareConcurrency assert_true: The prototype object must have a property "hardwareConcurrency" expected true got false >-PASS Unscopable handled correctly for hardwareConcurrency property on WorkerNavigator > PASS WorkerNavigator must be primary interface of self.navigator > PASS Stringification of self.navigator > PASS WorkerNavigator interface: self.navigator must inherit property "appCodeName" with the proper type >@@ -177,24 +140,15 @@ PASS WorkerLocation interface: existence and properties of interface prototype o > PASS WorkerLocation interface: existence and properties of interface prototype object's "constructor" property > PASS WorkerLocation interface: existence and properties of interface prototype object's @@unscopables property > PASS WorkerLocation interface: attribute href >-PASS Unscopable handled correctly for href property on WorkerLocation > PASS WorkerLocation interface: stringifier > PASS WorkerLocation interface: attribute origin >-PASS Unscopable handled correctly for origin property on WorkerLocation > PASS WorkerLocation interface: attribute protocol >-PASS Unscopable handled correctly for protocol property on WorkerLocation > PASS WorkerLocation interface: attribute host >-PASS Unscopable handled correctly for host property on WorkerLocation > PASS WorkerLocation interface: attribute hostname >-PASS Unscopable handled correctly for hostname property on WorkerLocation > PASS WorkerLocation interface: attribute port >-PASS Unscopable handled correctly for port property on WorkerLocation > PASS WorkerLocation interface: attribute pathname >-PASS Unscopable handled correctly for pathname property on WorkerLocation > PASS WorkerLocation interface: attribute search >-PASS Unscopable handled correctly for search property on WorkerLocation > PASS WorkerLocation interface: attribute hash >-PASS Unscopable handled correctly for hash property on WorkerLocation > PASS WorkerLocation must be primary interface of self.location > PASS Stringification of self.location > PASS WorkerLocation interface: self.location must inherit property "href" with the proper type >diff --git a/LayoutTests/imported/w3c/web-platform-tests/xhr/idlharness.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/xhr/idlharness.any-expected.txt >index 6ba2927cb7be7433f623b4e18a6a597c6fd1c619..cda7e84c4252a7b64f9a94dc32fced9cad7b83ba 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/xhr/idlharness.any-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/xhr/idlharness.any-expected.txt >@@ -1,4 +1,187 @@ >-CONSOLE MESSAGE: line 5: ReferenceError: Can't find variable: idl_test > >-FAIL Untitled ReferenceError: Can't find variable: idl_test >+PASS idl_test setup >+PASS XMLHttpRequestEventTarget interface: existence and properties of interface object >+PASS XMLHttpRequestEventTarget interface object length >+PASS XMLHttpRequestEventTarget interface object name >+PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object >+PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property >+PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property >+PASS XMLHttpRequestEventTarget interface: attribute onloadstart >+PASS XMLHttpRequestEventTarget interface: attribute onprogress >+PASS XMLHttpRequestEventTarget interface: attribute onabort >+PASS XMLHttpRequestEventTarget interface: attribute onerror >+PASS XMLHttpRequestEventTarget interface: attribute onload >+PASS XMLHttpRequestEventTarget interface: attribute ontimeout >+PASS XMLHttpRequestEventTarget interface: attribute onloadend >+PASS XMLHttpRequestUpload interface: existence and properties of interface object >+PASS XMLHttpRequestUpload interface object length >+PASS XMLHttpRequestUpload interface object name >+PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object >+PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property >+PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's @@unscopables property >+PASS XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload >+PASS Stringification of (new XMLHttpRequest()).upload >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type >+PASS XMLHttpRequest interface: existence and properties of interface object >+PASS XMLHttpRequest interface object length >+PASS XMLHttpRequest interface object name >+PASS XMLHttpRequest interface: existence and properties of interface prototype object >+PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property >+PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property >+PASS XMLHttpRequest interface: attribute onreadystatechange >+PASS XMLHttpRequest interface: constant UNSENT on interface object >+PASS XMLHttpRequest interface: constant UNSENT on interface prototype object >+PASS XMLHttpRequest interface: constant OPENED on interface object >+PASS XMLHttpRequest interface: constant OPENED on interface prototype object >+PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object >+PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object >+PASS XMLHttpRequest interface: constant LOADING on interface object >+PASS XMLHttpRequest interface: constant LOADING on interface prototype object >+PASS XMLHttpRequest interface: constant DONE on interface object >+PASS XMLHttpRequest interface: constant DONE on interface prototype object >+PASS XMLHttpRequest interface: attribute readyState >+PASS XMLHttpRequest interface: operation open(ByteString, USVString) >+PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, USVString, USVString) >+PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString) >+PASS XMLHttpRequest interface: attribute timeout >+PASS XMLHttpRequest interface: attribute withCredentials >+PASS XMLHttpRequest interface: attribute upload >+PASS XMLHttpRequest interface: operation send([object Object],[object Object]) >+PASS XMLHttpRequest interface: operation abort() >+PASS XMLHttpRequest interface: attribute responseURL >+PASS XMLHttpRequest interface: attribute status >+PASS XMLHttpRequest interface: attribute statusText >+PASS XMLHttpRequest interface: operation getResponseHeader(ByteString) >+PASS XMLHttpRequest interface: operation getAllResponseHeaders() >+PASS XMLHttpRequest interface: operation overrideMimeType(DOMString) >+PASS XMLHttpRequest interface: attribute responseType >+PASS XMLHttpRequest interface: attribute response >+PASS XMLHttpRequest interface: attribute responseText >+PASS XMLHttpRequest interface: attribute responseXML >+PASS XMLHttpRequest must be primary interface of new XMLHttpRequest() >+PASS Stringification of new XMLHttpRequest() >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString)" with the proper type >+PASS XMLHttpRequest interface: calling open(ByteString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString, boolean, USVString, USVString)" with the proper type >+PASS XMLHttpRequest interface: calling open(ByteString, USVString, boolean, USVString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader(ByteString, ByteString)" with the proper type >+PASS XMLHttpRequest interface: calling setRequestHeader(ByteString, ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send([object Object],[object Object])" with the proper type >+PASS XMLHttpRequest interface: calling send([object Object],[object Object]) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort()" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader(ByteString)" with the proper type >+PASS XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders()" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType(DOMString)" with the proper type >+PASS XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseXML" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type >+PASS FormData interface: existence and properties of interface object >+PASS FormData interface object length >+PASS FormData interface object name >+PASS FormData interface: existence and properties of interface prototype object >+PASS FormData interface: existence and properties of interface prototype object's "constructor" property >+PASS FormData interface: existence and properties of interface prototype object's @@unscopables property >+PASS FormData interface: operation append(USVString, USVString) >+PASS FormData interface: operation append(USVString, Blob, USVString) >+PASS FormData interface: operation delete(USVString) >+PASS FormData interface: operation get(USVString) >+PASS FormData interface: operation getAll(USVString) >+PASS FormData interface: operation has(USVString) >+PASS FormData interface: operation set(USVString, USVString) >+PASS FormData interface: operation set(USVString, Blob, USVString) >+PASS Testing Symbol.iterator property of iterable interface FormData >+PASS Testing pair iterable interface FormData >+PASS FormData interface: operation entries() >+PASS FormData interface: operation keys() >+PASS FormData interface: operation values() >+PASS FormData interface: operation forEach(function, any) >+PASS FormData must be primary interface of new FormData() >+PASS Stringification of new FormData() >+PASS FormData interface: new FormData() must inherit property "append(USVString, USVString)" with the proper type >+PASS FormData interface: calling append(USVString, USVString) on new FormData() with too few arguments must throw TypeError >+PASS FormData interface: new FormData() must inherit property "append(USVString, Blob, USVString)" with the proper type >+PASS FormData interface: calling append(USVString, Blob, USVString) on new FormData() with too few arguments must throw TypeError >+PASS FormData interface: new FormData() must inherit property "delete(USVString)" with the proper type >+PASS FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError >+PASS FormData interface: new FormData() must inherit property "get(USVString)" with the proper type >+PASS FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError >+PASS FormData interface: new FormData() must inherit property "getAll(USVString)" with the proper type >+PASS FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError >+PASS FormData interface: new FormData() must inherit property "has(USVString)" with the proper type >+PASS FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError >+PASS FormData interface: new FormData() must inherit property "set(USVString, USVString)" with the proper type >+PASS FormData interface: calling set(USVString, USVString) on new FormData() with too few arguments must throw TypeError >+PASS FormData interface: new FormData() must inherit property "set(USVString, Blob, USVString)" with the proper type >+PASS FormData interface: calling set(USVString, Blob, USVString) on new FormData() with too few arguments must throw TypeError >+PASS FormData interface: new FormData() must inherit property "entries()" with the proper type >+PASS FormData interface: new FormData() must inherit property "keys()" with the proper type >+PASS FormData interface: new FormData() must inherit property "values()" with the proper type >+PASS FormData interface: new FormData() must inherit property "forEach(function, any)" with the proper type >+PASS FormData interface: calling forEach(function, any) on new FormData() with too few arguments must throw TypeError >+PASS FormData must be primary interface of new FormData(form) >+PASS Stringification of new FormData(form) >+PASS FormData interface: new FormData(form) must inherit property "append(USVString, USVString)" with the proper type >+PASS FormData interface: calling append(USVString, USVString) on new FormData(form) with too few arguments must throw TypeError >+PASS FormData interface: new FormData(form) must inherit property "append(USVString, Blob, USVString)" with the proper type >+PASS FormData interface: calling append(USVString, Blob, USVString) on new FormData(form) with too few arguments must throw TypeError >+PASS FormData interface: new FormData(form) must inherit property "delete(USVString)" with the proper type >+PASS FormData interface: calling delete(USVString) on new FormData(form) with too few arguments must throw TypeError >+PASS FormData interface: new FormData(form) must inherit property "get(USVString)" with the proper type >+PASS FormData interface: calling get(USVString) on new FormData(form) with too few arguments must throw TypeError >+PASS FormData interface: new FormData(form) must inherit property "getAll(USVString)" with the proper type >+PASS FormData interface: calling getAll(USVString) on new FormData(form) with too few arguments must throw TypeError >+PASS FormData interface: new FormData(form) must inherit property "has(USVString)" with the proper type >+PASS FormData interface: calling has(USVString) on new FormData(form) with too few arguments must throw TypeError >+PASS FormData interface: new FormData(form) must inherit property "set(USVString, USVString)" with the proper type >+PASS FormData interface: calling set(USVString, USVString) on new FormData(form) with too few arguments must throw TypeError >+PASS FormData interface: new FormData(form) must inherit property "set(USVString, Blob, USVString)" with the proper type >+PASS FormData interface: calling set(USVString, Blob, USVString) on new FormData(form) with too few arguments must throw TypeError >+PASS FormData interface: new FormData(form) must inherit property "entries()" with the proper type >+PASS FormData interface: new FormData(form) must inherit property "keys()" with the proper type >+PASS FormData interface: new FormData(form) must inherit property "values()" with the proper type >+PASS FormData interface: new FormData(form) must inherit property "forEach(function, any)" with the proper type >+PASS FormData interface: calling forEach(function, any) on new FormData(form) with too few arguments must throw TypeError >+PASS ProgressEvent interface: existence and properties of interface object >+PASS ProgressEvent interface object length >+PASS ProgressEvent interface object name >+PASS ProgressEvent interface: existence and properties of interface prototype object >+PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property >+PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property >+PASS ProgressEvent interface: attribute lengthComputable >+PASS ProgressEvent interface: attribute loaded >+PASS ProgressEvent interface: attribute total >+PASS ProgressEvent must be primary interface of new ProgressEvent("type") >+PASS Stringification of new ProgressEvent("type") >+PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type >+PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type >+PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/xhr/idlharness.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/xhr/idlharness.any.worker-expected.txt >index e0e16cc7057ad305bfc41391487da6f6474e65e4..7c8270ca02a3b0be4706239c7f9e91d6a00fca5b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/xhr/idlharness.any.worker-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/xhr/idlharness.any.worker-expected.txt >@@ -1,5 +1,172 @@ >-CONSOLE MESSAGE: line 1774: TypeError: null is not an object (evaluating 'this.message_target.removeEventListener') >-CONSOLE MESSAGE: line 5: ReferenceError: Can't find variable: idl_test > >-FAIL Untitled ReferenceError: Can't find variable: idl_test >+PASS idl_test setup >+PASS XMLHttpRequestEventTarget interface: existence and properties of interface object >+PASS XMLHttpRequestEventTarget interface object length >+PASS XMLHttpRequestEventTarget interface object name >+PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object >+PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property >+PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property >+PASS XMLHttpRequestEventTarget interface: attribute onloadstart >+PASS XMLHttpRequestEventTarget interface: attribute onprogress >+PASS XMLHttpRequestEventTarget interface: attribute onabort >+PASS XMLHttpRequestEventTarget interface: attribute onerror >+PASS XMLHttpRequestEventTarget interface: attribute onload >+PASS XMLHttpRequestEventTarget interface: attribute ontimeout >+PASS XMLHttpRequestEventTarget interface: attribute onloadend >+FAIL XMLHttpRequestUpload interface: existence and properties of interface object assert_own_property: self does not have own property "XMLHttpRequestUpload" expected property "XMLHttpRequestUpload" missing >+FAIL XMLHttpRequestUpload interface object length assert_own_property: self does not have own property "XMLHttpRequestUpload" expected property "XMLHttpRequestUpload" missing >+FAIL XMLHttpRequestUpload interface object name assert_own_property: self does not have own property "XMLHttpRequestUpload" expected property "XMLHttpRequestUpload" missing >+FAIL XMLHttpRequestUpload interface: existence and properties of interface prototype object assert_own_property: self does not have own property "XMLHttpRequestUpload" expected property "XMLHttpRequestUpload" missing >+FAIL XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "XMLHttpRequestUpload" expected property "XMLHttpRequestUpload" missing >+FAIL XMLHttpRequestUpload interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "XMLHttpRequestUpload" expected property "XMLHttpRequestUpload" missing >+FAIL XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload assert_own_property: self does not have own property "XMLHttpRequestUpload" expected property "XMLHttpRequestUpload" missing >+PASS Stringification of (new XMLHttpRequest()).upload >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type >+PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type >+PASS XMLHttpRequest interface: existence and properties of interface object >+PASS XMLHttpRequest interface object length >+PASS XMLHttpRequest interface object name >+PASS XMLHttpRequest interface: existence and properties of interface prototype object >+PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property >+PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property >+PASS XMLHttpRequest interface: attribute onreadystatechange >+PASS XMLHttpRequest interface: constant UNSENT on interface object >+PASS XMLHttpRequest interface: constant UNSENT on interface prototype object >+PASS XMLHttpRequest interface: constant OPENED on interface object >+PASS XMLHttpRequest interface: constant OPENED on interface prototype object >+PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object >+PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object >+PASS XMLHttpRequest interface: constant LOADING on interface object >+PASS XMLHttpRequest interface: constant LOADING on interface prototype object >+PASS XMLHttpRequest interface: constant DONE on interface object >+PASS XMLHttpRequest interface: constant DONE on interface prototype object >+PASS XMLHttpRequest interface: attribute readyState >+PASS XMLHttpRequest interface: operation open(ByteString, USVString) >+PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, USVString, USVString) >+PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString) >+PASS XMLHttpRequest interface: attribute timeout >+PASS XMLHttpRequest interface: attribute withCredentials >+PASS XMLHttpRequest interface: attribute upload >+PASS XMLHttpRequest interface: operation send([object Object],[object Object]) >+PASS XMLHttpRequest interface: operation abort() >+PASS XMLHttpRequest interface: attribute responseURL >+PASS XMLHttpRequest interface: attribute status >+PASS XMLHttpRequest interface: attribute statusText >+PASS XMLHttpRequest interface: operation getResponseHeader(ByteString) >+PASS XMLHttpRequest interface: operation getAllResponseHeaders() >+PASS XMLHttpRequest interface: operation overrideMimeType(DOMString) >+PASS XMLHttpRequest interface: attribute responseType >+PASS XMLHttpRequest interface: attribute response >+PASS XMLHttpRequest interface: attribute responseText >+PASS XMLHttpRequest interface: member responseXML >+PASS XMLHttpRequest must be primary interface of new XMLHttpRequest() >+PASS Stringification of new XMLHttpRequest() >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString)" with the proper type >+PASS XMLHttpRequest interface: calling open(ByteString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString, boolean, USVString, USVString)" with the proper type >+PASS XMLHttpRequest interface: calling open(ByteString, USVString, boolean, USVString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader(ByteString, ByteString)" with the proper type >+PASS XMLHttpRequest interface: calling setRequestHeader(ByteString, ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send([object Object],[object Object])" with the proper type >+PASS XMLHttpRequest interface: calling send([object Object],[object Object]) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort()" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader(ByteString)" with the proper type >+PASS XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders()" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType(DOMString)" with the proper type >+PASS XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type >+PASS XMLHttpRequest interface: new XMLHttpRequest() must not have property "responseXML" >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type >+PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type >+FAIL FormData interface: existence and properties of interface object assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface object length assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface object name assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation append(USVString, USVString) assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation append(USVString, Blob, USVString) assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation delete(USVString) assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation get(USVString) assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation getAll(USVString) assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation has(USVString) assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation set(USVString, USVString) assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation set(USVString, Blob, USVString) assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL Testing Symbol.iterator property of iterable interface FormData undefined is not an object (evaluating 'self[interfaceName].prototype') >+FAIL Testing pair iterable interface FormData undefined is not an object (evaluating 'self[interfaceName].prototype') >+FAIL FormData interface: operation entries() assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation keys() assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation values() assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData interface: operation forEach(function, any) assert_own_property: self does not have own property "FormData" expected property "FormData" missing >+FAIL FormData must be primary interface of new FormData() assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL Stringification of new FormData() assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "append(USVString, USVString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: calling append(USVString, USVString) on new FormData() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "append(USVString, Blob, USVString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: calling append(USVString, Blob, USVString) on new FormData() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "delete(USVString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "get(USVString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "getAll(USVString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "has(USVString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "set(USVString, USVString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: calling set(USVString, USVString) on new FormData() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "set(USVString, Blob, USVString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: calling set(USVString, Blob, USVString) on new FormData() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "entries()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "keys()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "values()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: new FormData() must inherit property "forEach(function, any)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+FAIL FormData interface: calling forEach(function, any) on new FormData() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormData" >+PASS ProgressEvent interface: existence and properties of interface object >+PASS ProgressEvent interface object length >+PASS ProgressEvent interface object name >+PASS ProgressEvent interface: existence and properties of interface prototype object >+PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property >+PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property >+PASS ProgressEvent interface: attribute lengthComputable >+PASS ProgressEvent interface: attribute loaded >+PASS ProgressEvent interface: attribute total >+PASS ProgressEvent must be primary interface of new ProgressEvent("type") >+PASS Stringification of new ProgressEvent("type") >+PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type >+PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type >+PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type >+PASS Node interface: existence and properties of interface object >+PASS Document interface: existence and properties of interface object >+PASS DocumentType interface: existence and properties of interface object >+PASS DocumentFragment interface: existence and properties of interface object >+PASS ShadowRoot interface: existence and properties of interface object >+PASS Element interface: existence and properties of interface object >+PASS CharacterData interface: existence and properties of interface object >+PASS Text interface: existence and properties of interface object > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/xhr/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/xhr/interfaces-expected.txt >index ce1d969b95d44c4ed5e8aebce3432d1d59dc8970..eec11b308da6623f7b259fb2c8c61017a289d75f 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/xhr/interfaces-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/xhr/interfaces-expected.txt >@@ -1,5 +1,5 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported >+CONSOLE MESSAGE: line 482: callback not yet supported > XMLHttpRequest IDL tests > > >@@ -11,19 +11,12 @@ PASS XMLHttpRequestEventTarget interface: existence and properties of interface > PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property > PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property > PASS XMLHttpRequestEventTarget interface: attribute onloadstart >-PASS Unscopable handled correctly for onloadstart property on XMLHttpRequestEventTarget > PASS XMLHttpRequestEventTarget interface: attribute onprogress >-PASS Unscopable handled correctly for onprogress property on XMLHttpRequestEventTarget > PASS XMLHttpRequestEventTarget interface: attribute onabort >-PASS Unscopable handled correctly for onabort property on XMLHttpRequestEventTarget > PASS XMLHttpRequestEventTarget interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on XMLHttpRequestEventTarget > PASS XMLHttpRequestEventTarget interface: attribute onload >-PASS Unscopable handled correctly for onload property on XMLHttpRequestEventTarget > PASS XMLHttpRequestEventTarget interface: attribute ontimeout >-PASS Unscopable handled correctly for ontimeout property on XMLHttpRequestEventTarget > PASS XMLHttpRequestEventTarget interface: attribute onloadend >-PASS Unscopable handled correctly for onloadend property on XMLHttpRequestEventTarget > PASS XMLHttpRequestUpload interface: existence and properties of interface object > PASS XMLHttpRequestUpload interface object length > PASS XMLHttpRequestUpload interface object name >@@ -46,7 +39,6 @@ PASS XMLHttpRequest interface: existence and properties of interface prototype o > PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property > PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property > PASS XMLHttpRequest interface: attribute onreadystatechange >-PASS Unscopable handled correctly for onreadystatechange property on XMLHttpRequest > PASS XMLHttpRequest interface: constant UNSENT on interface object > PASS XMLHttpRequest interface: constant UNSENT on interface prototype object > PASS XMLHttpRequest interface: constant OPENED on interface object >@@ -58,43 +50,24 @@ PASS XMLHttpRequest interface: constant LOADING on interface prototype object > PASS XMLHttpRequest interface: constant DONE on interface object > PASS XMLHttpRequest interface: constant DONE on interface prototype object > PASS XMLHttpRequest interface: attribute readyState >-PASS Unscopable handled correctly for readyState property on XMLHttpRequest > PASS XMLHttpRequest interface: operation open(ByteString, USVString) >-PASS Unscopable handled correctly for open(ByteString, USVString) on XMLHttpRequest > PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, USVString, USVString) >-PASS Unscopable handled correctly for open(ByteString, USVString, boolean, USVString, USVString) on XMLHttpRequest > PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString) >-PASS Unscopable handled correctly for setRequestHeader(ByteString, ByteString) on XMLHttpRequest > PASS XMLHttpRequest interface: attribute timeout >-PASS Unscopable handled correctly for timeout property on XMLHttpRequest > PASS XMLHttpRequest interface: attribute withCredentials >-PASS Unscopable handled correctly for withCredentials property on XMLHttpRequest > PASS XMLHttpRequest interface: attribute upload >-PASS Unscopable handled correctly for upload property on XMLHttpRequest > PASS XMLHttpRequest interface: operation send([object Object],[object Object]) >-PASS Unscopable handled correctly for send([object Object],[object Object]) on XMLHttpRequest > PASS XMLHttpRequest interface: operation abort() >-PASS Unscopable handled correctly for abort() on XMLHttpRequest > PASS XMLHttpRequest interface: attribute responseURL >-PASS Unscopable handled correctly for responseURL property on XMLHttpRequest > PASS XMLHttpRequest interface: attribute status >-PASS Unscopable handled correctly for status property on XMLHttpRequest > PASS XMLHttpRequest interface: attribute statusText >-PASS Unscopable handled correctly for statusText property on XMLHttpRequest > PASS XMLHttpRequest interface: operation getResponseHeader(ByteString) >-PASS Unscopable handled correctly for getResponseHeader(ByteString) on XMLHttpRequest > PASS XMLHttpRequest interface: operation getAllResponseHeaders() >-PASS Unscopable handled correctly for getAllResponseHeaders() on XMLHttpRequest > PASS XMLHttpRequest interface: operation overrideMimeType(DOMString) >-PASS Unscopable handled correctly for overrideMimeType(DOMString) on XMLHttpRequest > PASS XMLHttpRequest interface: attribute responseType >-PASS Unscopable handled correctly for responseType property on XMLHttpRequest > PASS XMLHttpRequest interface: attribute response >-PASS Unscopable handled correctly for response property on XMLHttpRequest > PASS XMLHttpRequest interface: attribute responseText >-PASS Unscopable handled correctly for responseText property on XMLHttpRequest > PASS XMLHttpRequest interface: attribute responseXML >-PASS Unscopable handled correctly for responseXML property on XMLHttpRequest > PASS XMLHttpRequest must be primary interface of new XMLHttpRequest() > PASS Stringification of new XMLHttpRequest() > PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type >@@ -142,21 +115,13 @@ PASS FormData interface: existence and properties of interface prototype object > PASS FormData interface: existence and properties of interface prototype object's "constructor" property > PASS FormData interface: existence and properties of interface prototype object's @@unscopables property > PASS FormData interface: operation append(USVString, Blob, USVString) >-PASS Unscopable handled correctly for append(USVString, Blob, USVString) on FormData > PASS FormData interface: operation append(USVString, USVString) >-PASS Unscopable handled correctly for append(USVString, USVString) on FormData > PASS FormData interface: operation delete(USVString) >-PASS Unscopable handled correctly for delete(USVString) on FormData > PASS FormData interface: operation get(USVString) >-PASS Unscopable handled correctly for get(USVString) on FormData > PASS FormData interface: operation getAll(USVString) >-PASS Unscopable handled correctly for getAll(USVString) on FormData > PASS FormData interface: operation has(USVString) >-PASS Unscopable handled correctly for has(USVString) on FormData > PASS FormData interface: operation set(USVString, Blob, USVString) >-PASS Unscopable handled correctly for set(USVString, Blob, USVString) on FormData > PASS FormData interface: operation set(USVString, USVString) >-PASS Unscopable handled correctly for set(USVString, USVString) on FormData > PASS FormData must be primary interface of new FormData() > PASS Stringification of new FormData() > PASS FormData interface: new FormData() must inherit property "append(USVString, Blob, USVString)" with the proper type >@@ -200,9 +165,6 @@ PASS ProgressEvent interface: existence and properties of interface prototype ob > PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property > PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property > PASS ProgressEvent interface: attribute lengthComputable >-PASS Unscopable handled correctly for lengthComputable property on ProgressEvent > PASS ProgressEvent interface: attribute loaded >-PASS Unscopable handled correctly for loaded property on ProgressEvent > PASS ProgressEvent interface: attribute total >-PASS Unscopable handled correctly for total property on ProgressEvent > >diff --git a/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt b/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt >index 2fff230c26c2cbf852cd6635f77aa16a382b637f..f8d540444f046fca411cee0e03aecbae76d271a9 100644 >--- a/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt >+++ b/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt >@@ -1,7 +1,7 @@ > > PASS Test driver >+PASS Partial interface Navigator: original interface defined > PASS Navigator interface: operation share(ShareData) >-PASS Unscopable handled correctly for share(ShareData) on Navigator > PASS Navigator interface: navigator must inherit property "share(ShareData)" with the proper type > PASS Navigator interface: calling share(ShareData) on navigator with too few arguments must throw TypeError > >diff --git a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt >deleted file mode 100644 >index 448c83b50b3b6f2a084e77778186380d0e35d04e..0000000000000000000000000000000000000000 >--- a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt >+++ /dev/null >@@ -1,140 +0,0 @@ >- >-PASS URL interface: operation createObjectURL(MediaSource) >-PASS Unscopable handled correctly for createObjectURL(MediaSource) on URL >-PASS AudioTrack interface: attribute sourceBuffer >-PASS Unscopable handled correctly for sourceBuffer property on AudioTrack >-PASS VideoTrack interface: attribute sourceBuffer >-PASS Unscopable handled correctly for sourceBuffer property on VideoTrack >-PASS TextTrack interface: attribute sourceBuffer >-PASS Unscopable handled correctly for sourceBuffer property on TextTrack >-PASS MediaSource interface: existence and properties of interface object >-PASS MediaSource interface object length >-PASS MediaSource interface object name >-PASS MediaSource interface: existence and properties of interface prototype object >-PASS MediaSource interface: existence and properties of interface prototype object's "constructor" property >-PASS MediaSource interface: existence and properties of interface prototype object's @@unscopables property >-PASS MediaSource interface: attribute sourceBuffers >-PASS Unscopable handled correctly for sourceBuffers property on MediaSource >-PASS MediaSource interface: attribute activeSourceBuffers >-PASS Unscopable handled correctly for activeSourceBuffers property on MediaSource >-PASS MediaSource interface: attribute readyState >-PASS Unscopable handled correctly for readyState property on MediaSource >-PASS MediaSource interface: attribute duration >-PASS Unscopable handled correctly for duration property on MediaSource >-PASS MediaSource interface: attribute onsourceopen >-PASS Unscopable handled correctly for onsourceopen property on MediaSource >-PASS MediaSource interface: attribute onsourceended >-PASS Unscopable handled correctly for onsourceended property on MediaSource >-PASS MediaSource interface: attribute onsourceclose >-PASS Unscopable handled correctly for onsourceclose property on MediaSource >-PASS MediaSource interface: operation addSourceBuffer(DOMString) >-PASS Unscopable handled correctly for addSourceBuffer(DOMString) on MediaSource >-PASS MediaSource interface: operation removeSourceBuffer(SourceBuffer) >-PASS Unscopable handled correctly for removeSourceBuffer(SourceBuffer) on MediaSource >-PASS MediaSource interface: operation endOfStream(EndOfStreamError) >-PASS Unscopable handled correctly for endOfStream(EndOfStreamError) on MediaSource >-PASS MediaSource interface: operation setLiveSeekableRange(double, double) >-PASS Unscopable handled correctly for setLiveSeekableRange(double, double) on MediaSource >-PASS MediaSource interface: operation clearLiveSeekableRange() >-PASS Unscopable handled correctly for clearLiveSeekableRange() on MediaSource >-PASS MediaSource interface: operation isTypeSupported(DOMString) >-PASS Unscopable handled correctly for isTypeSupported(DOMString) on MediaSource >-PASS MediaSource must be primary interface of mediaSource >-PASS Stringification of mediaSource >-PASS MediaSource interface: mediaSource must inherit property "sourceBuffers" with the proper type >-PASS MediaSource interface: mediaSource must inherit property "activeSourceBuffers" with the proper type >-PASS MediaSource interface: mediaSource must inherit property "readyState" with the proper type >-PASS MediaSource interface: mediaSource must inherit property "duration" with the proper type >-PASS MediaSource interface: mediaSource must inherit property "onsourceopen" with the proper type >-PASS MediaSource interface: mediaSource must inherit property "onsourceended" with the proper type >-PASS MediaSource interface: mediaSource must inherit property "onsourceclose" with the proper type >-PASS MediaSource interface: mediaSource must inherit property "addSourceBuffer(DOMString)" with the proper type >-PASS MediaSource interface: calling addSourceBuffer(DOMString) on mediaSource with too few arguments must throw TypeError >-PASS MediaSource interface: mediaSource must inherit property "removeSourceBuffer(SourceBuffer)" with the proper type >-PASS MediaSource interface: calling removeSourceBuffer(SourceBuffer) on mediaSource with too few arguments must throw TypeError >-PASS MediaSource interface: mediaSource must inherit property "endOfStream(EndOfStreamError)" with the proper type >-PASS MediaSource interface: calling endOfStream(EndOfStreamError) on mediaSource with too few arguments must throw TypeError >-PASS MediaSource interface: mediaSource must inherit property "setLiveSeekableRange(double, double)" with the proper type >-PASS MediaSource interface: calling setLiveSeekableRange(double, double) on mediaSource with too few arguments must throw TypeError >-PASS MediaSource interface: mediaSource must inherit property "clearLiveSeekableRange()" with the proper type >-PASS MediaSource interface: mediaSource must inherit property "isTypeSupported(DOMString)" with the proper type >-PASS MediaSource interface: calling isTypeSupported(DOMString) on mediaSource with too few arguments must throw TypeError >-PASS SourceBuffer interface: existence and properties of interface object >-PASS SourceBuffer interface object length >-PASS SourceBuffer interface object name >-PASS SourceBuffer interface: existence and properties of interface prototype object >-PASS SourceBuffer interface: existence and properties of interface prototype object's "constructor" property >-PASS SourceBuffer interface: existence and properties of interface prototype object's @@unscopables property >-PASS SourceBuffer interface: attribute mode >-PASS Unscopable handled correctly for mode property on SourceBuffer >-PASS SourceBuffer interface: attribute updating >-PASS Unscopable handled correctly for updating property on SourceBuffer >-PASS SourceBuffer interface: attribute buffered >-PASS Unscopable handled correctly for buffered property on SourceBuffer >-PASS SourceBuffer interface: attribute timestampOffset >-PASS Unscopable handled correctly for timestampOffset property on SourceBuffer >-PASS SourceBuffer interface: attribute audioTracks >-PASS Unscopable handled correctly for audioTracks property on SourceBuffer >-PASS SourceBuffer interface: attribute videoTracks >-PASS Unscopable handled correctly for videoTracks property on SourceBuffer >-PASS SourceBuffer interface: attribute textTracks >-PASS Unscopable handled correctly for textTracks property on SourceBuffer >-PASS SourceBuffer interface: attribute appendWindowStart >-PASS Unscopable handled correctly for appendWindowStart property on SourceBuffer >-PASS SourceBuffer interface: attribute appendWindowEnd >-PASS Unscopable handled correctly for appendWindowEnd property on SourceBuffer >-PASS SourceBuffer interface: attribute onupdatestart >-PASS Unscopable handled correctly for onupdatestart property on SourceBuffer >-PASS SourceBuffer interface: attribute onupdate >-PASS Unscopable handled correctly for onupdate property on SourceBuffer >-PASS SourceBuffer interface: attribute onupdateend >-PASS Unscopable handled correctly for onupdateend property on SourceBuffer >-PASS SourceBuffer interface: attribute onerror >-PASS Unscopable handled correctly for onerror property on SourceBuffer >-PASS SourceBuffer interface: attribute onabort >-PASS Unscopable handled correctly for onabort property on SourceBuffer >-PASS SourceBuffer interface: operation appendBuffer(BufferSource) >-PASS Unscopable handled correctly for appendBuffer(BufferSource) on SourceBuffer >-PASS SourceBuffer interface: operation abort() >-PASS Unscopable handled correctly for abort() on SourceBuffer >-PASS SourceBuffer interface: operation remove(double, unrestricted double) >-PASS Unscopable handled correctly for remove(double, unrestricted double) on SourceBuffer >-PASS SourceBuffer must be primary interface of sourceBuffer >-PASS Stringification of sourceBuffer >-PASS SourceBuffer interface: sourceBuffer must inherit property "mode" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "updating" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "buffered" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "timestampOffset" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "audioTracks" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "videoTracks" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "textTracks" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowStart" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowEnd" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdatestart" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdate" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdateend" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "onerror" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "onabort" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "appendBuffer(BufferSource)" with the proper type >-PASS SourceBuffer interface: calling appendBuffer(BufferSource) on sourceBuffer with too few arguments must throw TypeError >-PASS SourceBuffer interface: sourceBuffer must inherit property "abort()" with the proper type >-PASS SourceBuffer interface: sourceBuffer must inherit property "remove(double, unrestricted double)" with the proper type >-PASS SourceBuffer interface: calling remove(double, unrestricted double) on sourceBuffer with too few arguments must throw TypeError >-PASS SourceBufferList interface: existence and properties of interface object >-PASS SourceBufferList interface object length >-PASS SourceBufferList interface object name >-PASS SourceBufferList interface: existence and properties of interface prototype object >-PASS SourceBufferList interface: existence and properties of interface prototype object's "constructor" property >-PASS SourceBufferList interface: existence and properties of interface prototype object's @@unscopables property >-PASS SourceBufferList interface: attribute length >-PASS Unscopable handled correctly for length property on SourceBufferList >-PASS SourceBufferList interface: attribute onaddsourcebuffer >-PASS Unscopable handled correctly for onaddsourcebuffer property on SourceBufferList >-PASS SourceBufferList interface: attribute onremovesourcebuffer >-PASS Unscopable handled correctly for onremovesourcebuffer property on SourceBufferList >-PASS SourceBufferList must be primary interface of mediaSource.sourceBuffers >-PASS Stringification of mediaSource.sourceBuffers >-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "length" with the proper type >-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onaddsourcebuffer" with the proper type >-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onremovesourcebuffer" with the proper type >-
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 189303
:
348908
|
348918
|
348920
|
348922
|
348924
|
348928
|
348939
|
348940
|
348941
|
348944
|
349009
|
349011
|
349013
|
349014
|
349015
|
349017
|
349018
|
349019
|
349025
|
349031
|
349036
|
349037
|
349062
|
349126
|
349129
|
349130
| 349133