mirror of
https://github.com/servo/servo.git
synced 2025-06-28 11:03:39 +01:00
Update web-platform-tests to revision 4f397167b4ed552a02201c92d363cfaecfe2c7f0
This commit is contained in:
parent
73b5bf201f
commit
84b40513c3
182 changed files with 4779 additions and 1937 deletions
|
@ -127531,6 +127531,30 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-028.html": [
|
||||
[
|
||||
"/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-028.html",
|
||||
[
|
||||
[
|
||||
"/css/css-shapes/shape-outside/supported-shapes/inset/reference/shape-outside-inset-010-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-029.html": [
|
||||
[
|
||||
"/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-029.html",
|
||||
[
|
||||
[
|
||||
"/css/css-shapes/shape-outside/supported-shapes/inset/reference/shape-outside-inset-010-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-007.html": [
|
||||
[
|
||||
"/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-007.html",
|
||||
|
@ -273736,31 +273760,6 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/integrity.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/mode-no-cors.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/response-url.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/scheme-blob.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/scheme-others.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/cors/cors-expose-star.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -287516,6 +287515,31 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-darkblue-bg.svg": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-darkblue.svg": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-lightblue-bg.svg": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-orange-bg.svg": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-white.svg": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"images/yellow.png": [
|
||||
[
|
||||
{}
|
||||
|
@ -297191,6 +297215,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/resources/audionodeoptions.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/resources/audioparam-testing.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -326584,14 +326613,6 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-ascii.html": [
|
||||
[
|
||||
"/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-ascii.html",
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html": [
|
||||
[
|
||||
"/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html",
|
||||
|
@ -326928,14 +326949,6 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html": [
|
||||
[
|
||||
"/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html",
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html": [
|
||||
[
|
||||
"/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html",
|
||||
|
@ -328634,21 +328647,17 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/integrity-sharedworker.html": [
|
||||
"fetch/api/basic/integrity.sub.any.js": [
|
||||
[
|
||||
"/fetch/api/basic/integrity-sharedworker.html",
|
||||
"/fetch/api/basic/integrity.sub.any.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/integrity-worker.html": [
|
||||
],
|
||||
[
|
||||
"/fetch/api/basic/integrity-worker.html",
|
||||
"/fetch/api/basic/integrity.sub.any.sharedworker.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/integrity.html": [
|
||||
],
|
||||
[
|
||||
"/fetch/api/basic/integrity.html",
|
||||
"/fetch/api/basic/integrity.sub.any.worker.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
|
@ -328664,15 +328673,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/mode-no-cors-worker.html": [
|
||||
"fetch/api/basic/mode-no-cors.sub.any.js": [
|
||||
[
|
||||
"/fetch/api/basic/mode-no-cors-worker.html",
|
||||
"/fetch/api/basic/mode-no-cors.sub.any.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/mode-no-cors.html": [
|
||||
],
|
||||
[
|
||||
"/fetch/api/basic/mode-no-cors.html",
|
||||
"/fetch/api/basic/mode-no-cors.sub.any.worker.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
|
@ -328762,15 +328769,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/response-url-worker.html": [
|
||||
"fetch/api/basic/response-url.sub.any.js": [
|
||||
[
|
||||
"/fetch/api/basic/response-url-worker.html",
|
||||
"/fetch/api/basic/response-url.sub.any.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/response-url.html": [
|
||||
],
|
||||
[
|
||||
"/fetch/api/basic/response-url.html",
|
||||
"/fetch/api/basic/response-url.sub.any.worker.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
|
@ -328784,15 +328789,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/scheme-blob-worker.html": [
|
||||
"fetch/api/basic/scheme-blob.sub.any.js": [
|
||||
[
|
||||
"/fetch/api/basic/scheme-blob-worker.html",
|
||||
"/fetch/api/basic/scheme-blob.sub.any.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/scheme-blob.html": [
|
||||
],
|
||||
[
|
||||
"/fetch/api/basic/scheme-blob.html",
|
||||
"/fetch/api/basic/scheme-blob.sub.any.worker.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
|
@ -328806,15 +328809,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/scheme-others-worker.html": [
|
||||
"fetch/api/basic/scheme-others.sub.any.js": [
|
||||
[
|
||||
"/fetch/api/basic/scheme-others-worker.html",
|
||||
"/fetch/api/basic/scheme-others.sub.any.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fetch/api/basic/scheme-others.html": [
|
||||
],
|
||||
[
|
||||
"/fetch/api/basic/scheme-others.html",
|
||||
"/fetch/api/basic/scheme-others.sub.any.worker.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
|
@ -369114,6 +369115,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-analysernode-interface/ctor-analyser.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-analysernode-interface/ctor-analyser.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain.html",
|
||||
|
@ -369150,6 +369157,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-audiobuffersourcenode-interface/ctor-audiobuffersource.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-audiobuffersourcenode-interface/ctor-audiobuffersource.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html",
|
||||
|
@ -369462,6 +369475,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-biquadfilternode-interface/ctor-biquadfilter.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-biquadfilternode-interface/ctor-biquadfilter.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html",
|
||||
|
@ -369492,12 +369511,24 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic.html",
|
||||
|
@ -369516,6 +369547,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-constantsourcenode-interface/ctor-constantsource.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-constantsourcenode-interface/ctor-constantsource.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html",
|
||||
|
@ -369564,6 +369601,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-delaynode-interface/ctor-delay.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-delaynode-interface/ctor-delay.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html",
|
||||
|
@ -369606,12 +369655,24 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-dynamicscompressornode-interface/dynamicscompressor-basic.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-dynamicscompressornode-interface/dynamicscompressor-basic.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-gainnode-interface/ctor-gain.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-gainnode-interface/ctor-gain.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-gainnode-interface/gain-basic.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-gainnode-interface/gain-basic.html",
|
||||
|
@ -369636,6 +369697,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-iirfilternode-interface/ctor-iirfilter.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-iirfilternode-interface/ctor-iirfilter.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-basic.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-basic.html",
|
||||
|
@ -369666,12 +369733,30 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-oscillatornode-interface/ctor-oscillator.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-oscillatornode-interface/ctor-oscillator.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-pannernode-interface/ctor-panner.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-pannernode-interface/ctor-panner.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-pannernode-interface/distance-exponential.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-pannernode-interface/distance-exponential.html",
|
||||
|
@ -369744,6 +369829,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-stereopanner-interface/ctor-stereopanner.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-stereopanner-interface/ctor-stereopanner.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html",
|
||||
|
@ -369762,6 +369853,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html": [
|
||||
[
|
||||
"/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html",
|
||||
|
@ -375554,6 +375651,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"xhr/close-worker-with-xhr-in-progress.html": [
|
||||
[
|
||||
"/xhr/close-worker-with-xhr-in-progress.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"xhr/data-uri.htm": [
|
||||
[
|
||||
"/xhr/data-uri.htm",
|
||||
|
@ -400600,7 +400703,7 @@
|
|||
"support"
|
||||
],
|
||||
"FileAPI/historical.https.html": [
|
||||
"93903b4f58bc215ea2a67fc6d281593ec5ce79e9",
|
||||
"e1cf63d05a0e401cc38a11d2b42efb9e8d315610",
|
||||
"testharness"
|
||||
],
|
||||
"FileAPI/idlharness-manual.html": [
|
||||
|
@ -400840,7 +400943,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"IndexedDB/historical.html": [
|
||||
"0c4584e1b021a286445a2a9d3388ff011a1b933e",
|
||||
"2a5eaca2bbe1d0c9495ab7c48560d611f60a007c",
|
||||
"testharness"
|
||||
],
|
||||
"IndexedDB/idb-binary-key-detached.htm": [
|
||||
|
@ -425476,7 +425579,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"content-security-policy/frame-ancestors/frame-ancestors-overrides-xfo.html": [
|
||||
"988cf59388b862631a33dfab0565c937e9515763",
|
||||
"a1f179dec77eec4b0172613c56b2ba9608e24b12",
|
||||
"testharness"
|
||||
],
|
||||
"content-security-policy/frame-ancestors/frame-ancestors-self-allow.html": [
|
||||
|
@ -514356,7 +514459,7 @@
|
|||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/shape-image/shape-image-010.html": [
|
||||
"69b7cd75faad315f1c87214d7f74cbebeba0f37d",
|
||||
"6dcfc209b1e08c1a3f41036a301fa3e0a434b4af",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/shape-image/shape-image-011.html": [
|
||||
|
@ -514556,7 +514659,7 @@
|
|||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-027.html": [
|
||||
"97237d7bc6fb98fc1cc0b27d493b2610d91b483b",
|
||||
"87477b60302ae3f7e20c488b5a944d7b9169ba0d",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-028.html": [
|
||||
|
@ -514596,7 +514699,7 @@
|
|||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-015.html": [
|
||||
"e6001d6ecc8565842fa1fe68ce280c06a17ee62a",
|
||||
"121434db8bfc63877d10383c167ee3f2f8d65d7a",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-016.html": [
|
||||
|
@ -514604,7 +514707,7 @@
|
|||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-017.html": [
|
||||
"ff109f0d61bd487df7834e8c56330a5c6f4bc52d",
|
||||
"c16469402616b77d502ed4a65b623022a883c902",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-018.html": [
|
||||
|
@ -514652,27 +514755,35 @@
|
|||
"support"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-010.html": [
|
||||
"7878c4b4b0cd5b36e153d4fad565b37a1aeb746d",
|
||||
"0a1a7449964d3dc18dbabb4da8777f7e1aedbf7e",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-011.html": [
|
||||
"bda8e62930c2f084005998d1e1679c5ff85f25a0",
|
||||
"e98e70e094d84a2434d5d634caa482df9e6aeb07",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-012.html": [
|
||||
"5ef1e674163f358a2dbac6fd6175ff424e2a46ba",
|
||||
"39ba9b59b93ada88d6655529a8af3d3d6d7c00be",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-013.html": [
|
||||
"2347978786094f1a6bb4a5a9a030c7a11cc85781",
|
||||
"d53115c05401ffd274b55c6a95c9e4fd05011da1",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-014.html": [
|
||||
"124c822825bb26bec99543892f75ea0b11b0e74c",
|
||||
"2ef7ecd7321bb6639490110e45118ec58ee2aa9c",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-015.html": [
|
||||
"23eab9e83a350804230169f4edc5e50a55716fe7",
|
||||
"04a6a67837127ba47e757e5cc3a9ff91c1e01d9a",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-028.html": [
|
||||
"cafd680e210a6d677bde00ae4c5f9263c1e7b48e",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-029.html": [
|
||||
"67161f08b8aec3fe9bd94e14cbe865dd4c9d3664",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-shapes/shape-outside/supported-shapes/polygon/reference/shape-outside-polygon-007-ref.html": [
|
||||
|
@ -539864,7 +539975,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"css/cssom/overflow-serialization.html": [
|
||||
"48ca70f4c20da103276e1b053ca0e4613fcc2819",
|
||||
"85952fbd040de03f5082f28ba8116fd4827a1fc3",
|
||||
"testharness"
|
||||
],
|
||||
"css/cssom/selectorSerialize.html": [
|
||||
|
@ -539908,7 +540019,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"css/cssom/shorthand-values.html": [
|
||||
"8bfc0dff5da1859e17df31ceeca710d17a982109",
|
||||
"9211674fd69ddfa32d3bafcf2bc967977eb3ec31",
|
||||
"testharness"
|
||||
],
|
||||
"css/cssom/style-sheet-interfaces-001.html": [
|
||||
|
@ -540676,7 +540787,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"css/geometry/DOMQuad-001.html": [
|
||||
"1fe1fb785f99b90bae48f0f2d8eb46765c6f6fbb",
|
||||
"cd82e18b88904531ffbfa88f11d90dfef571a30a",
|
||||
"testharness"
|
||||
],
|
||||
"css/geometry/DOMQuad-002.html": [
|
||||
|
@ -540692,7 +540803,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"css/geometry/DOMRectList.html": [
|
||||
"382b6c7ea9bc4c75d1b007b59ccdcb9c642f51ce",
|
||||
"3b63015ab3dbe4b7ea4ac7ede67f6db603c0f65c",
|
||||
"testharness"
|
||||
],
|
||||
"css/geometry/OWNERS": [
|
||||
|
@ -552756,7 +552867,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"dom/historical.html": [
|
||||
"ccf3d9d2d8eb3e7353ecedd8a4d8ba232f9374ec",
|
||||
"291d078c4424d0491aeab7524d350eab7304f989",
|
||||
"testharness"
|
||||
],
|
||||
"dom/interface-objects.html": [
|
||||
|
@ -555031,10 +555142,6 @@
|
|||
"cb27b3ae6b3fb2d85f462cb5a1d0e703a3379e5c",
|
||||
"support"
|
||||
],
|
||||
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-ascii.html": [
|
||||
"08ce23f14166644363f128d80330804706fdfd3f",
|
||||
"testharness"
|
||||
],
|
||||
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html": [
|
||||
"c250dd2597bf3e6b66d4bed1484363ee186197e3",
|
||||
"testharness"
|
||||
|
@ -555411,10 +555518,6 @@
|
|||
"c79f9150befa2f7ce67d17069da7fb66f7f22ca0",
|
||||
"support"
|
||||
],
|
||||
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html": [
|
||||
"3a2d013060c95824579de848af715c1c8135c206",
|
||||
"testharness"
|
||||
],
|
||||
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers": [
|
||||
"c79f9150befa2f7ce67d17069da7fb66f7f22ca0",
|
||||
"support"
|
||||
|
@ -557371,22 +557474,10 @@
|
|||
"54181cd222c7a5428f9468f4777c273ecc553f4f",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/integrity-sharedworker.html": [
|
||||
"00d7eae5a324653caae19ab83bef76dd3503fb3b",
|
||||
"fetch/api/basic/integrity.sub.any.js": [
|
||||
"7f25bf12a25919d07f2fd04fabaf8cd90f4cf77a",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/integrity-worker.html": [
|
||||
"1a0a6abd1c6bf8c4665a242d64f50bbbff4982f8",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/integrity.html": [
|
||||
"aa6d9159321e410d1e96c045f8f4d8700494beeb",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/integrity.js": [
|
||||
"59e8c5ebf0dfd2ab2432f28dcee5db82e9505cff",
|
||||
"support"
|
||||
],
|
||||
"fetch/api/basic/keepalive.html": [
|
||||
"1ecdcb478b65b258e79242ae17af79ba903db412",
|
||||
"testharness"
|
||||
|
@ -557395,18 +557486,10 @@
|
|||
"5e2e35f820982002b967d7444507a2bfc0d3aa34",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/mode-no-cors-worker.html": [
|
||||
"39992b8abf3ab30182dfbaa5816cc154a22ae0ad",
|
||||
"fetch/api/basic/mode-no-cors.sub.any.js": [
|
||||
"5ccf57aa2feb7d11e4372ba71f81d6726875ae03",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/mode-no-cors.html": [
|
||||
"ff174cb1a76a63473028b72b3319602685689cb5",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/mode-no-cors.js": [
|
||||
"311ecadfe0c44430846b2f11facf53c1fafc6df0",
|
||||
"support"
|
||||
],
|
||||
"fetch/api/basic/mode-same-origin.any.js": [
|
||||
"1027de012d62a36a0df53bfadbfb8341a22558c0",
|
||||
"testharness"
|
||||
|
@ -557443,50 +557526,26 @@
|
|||
"8c85a2549ca2108b07f8065699a8dd182acc6268",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/response-url-worker.html": [
|
||||
"3d615668cb0122600af10d80cac4a7ebfe051528",
|
||||
"fetch/api/basic/response-url.sub.any.js": [
|
||||
"f43c11ef52661046824b328112f6ab8826bed027",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/response-url.html": [
|
||||
"9e7c61ac685654e355174c960ba2084d17ff7f2e",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/response-url.js": [
|
||||
"444ef1e53b422f74a4bb322099d8b1147ed8f52b",
|
||||
"support"
|
||||
],
|
||||
"fetch/api/basic/scheme-about.any.js": [
|
||||
"68b11deaa95a691a8e0c76bdc9b7a07b5dea9868",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/scheme-blob-worker.html": [
|
||||
"adfea540164a4113484ea29007ac3738bb7456c4",
|
||||
"fetch/api/basic/scheme-blob.sub.any.js": [
|
||||
"ec722257d9e93842751547b5a2a8cfff9da6d9de",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/scheme-blob.html": [
|
||||
"5835c0c3b108f05b61ef0db945f272264b377d6c",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/scheme-blob.js": [
|
||||
"ab29ee7bde800b3ffaade990d86816ea9b6cb2c7",
|
||||
"support"
|
||||
],
|
||||
"fetch/api/basic/scheme-data.any.js": [
|
||||
"d312396ed3c5a90004d46c3d630525cb3e8228e1",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/scheme-others-worker.html": [
|
||||
"4ea145afbbe3b349c227c19ac5612db94b10c61c",
|
||||
"fetch/api/basic/scheme-others.sub.any.js": [
|
||||
"9b82765bb46386db2408260c14a511afb0ba662e",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/scheme-others.html": [
|
||||
"e7594d1119e1c937663b4bb0385b69c442f1c78f",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/api/basic/scheme-others.js": [
|
||||
"e9f99ee8112a0e0983322aece2034461125a46b5",
|
||||
"support"
|
||||
],
|
||||
"fetch/api/basic/stream-response.any.js": [
|
||||
"b989131e8cf68e37c6d27397d801bfcc9c97b7ed",
|
||||
"testharness"
|
||||
|
@ -558256,7 +558315,7 @@
|
|||
"support"
|
||||
],
|
||||
"fetch/corb/README.md": [
|
||||
"7f3ebd888c16f457c7f137362cff620ae2cc82b3",
|
||||
"d532c359cdb1359f88ef79afff88052b3387dbf6",
|
||||
"support"
|
||||
],
|
||||
"fetch/corb/img-html-correctly-labeled.sub-expected.html": [
|
||||
|
@ -558268,7 +558327,7 @@
|
|||
"reftest"
|
||||
],
|
||||
"fetch/corb/img-mime-types-coverage.tentative.sub.html": [
|
||||
"ccceb2eab638a0e7c88c6e3eed45c51148e0f406",
|
||||
"58422f923455c1f62e0c4e743b1c900061657146",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub-expected.html": [
|
||||
|
@ -579191,6 +579250,26 @@
|
|||
"6a8595f419a6ec6bc13222f348ed42ad4c7b9783",
|
||||
"support"
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-darkblue-bg.svg": [
|
||||
"d2f8fe86fa19cfeada7285eb9fdd1c7d8aeae500",
|
||||
"support"
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-darkblue.svg": [
|
||||
"2cdd9e0004bfb27185f1d306b84b39e7b260bc06",
|
||||
"support"
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-lightblue-bg.svg": [
|
||||
"79ba6641c99eacdedc2c9279ece8622944a37830",
|
||||
"support"
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-orange-bg.svg": [
|
||||
"af4e23f30394794d87eb96dfa1b4e940c6b743f1",
|
||||
"support"
|
||||
],
|
||||
"images/wpt-logo/wpt-logo-white.svg": [
|
||||
"9c6494169ea074ede142c00b0e34f27df43007bd",
|
||||
"support"
|
||||
],
|
||||
"images/yellow.png": [
|
||||
"50eab1cff1bf2b1e68403ac724aa8043205901be",
|
||||
"support"
|
||||
|
@ -590580,7 +590659,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/common.js": [
|
||||
"00233e7d4513c8e3c4b7f7fa60f313ef1b6dbddd",
|
||||
"583f61d9d6f30742f8144ded8ea31035a07034a3",
|
||||
"support"
|
||||
],
|
||||
"referrer-policy/generic/iframe-inheritance.html": [
|
||||
|
@ -590592,7 +590671,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"referrer-policy/generic/referrer-policy-test-case.js": [
|
||||
"20c8273fd2a2cad07d3a607717d69d6ae94cf27e",
|
||||
"62d77f2911b075bfa2de6138faffd8f5997ac7d5",
|
||||
"support"
|
||||
],
|
||||
"referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html": [
|
||||
|
@ -608935,6 +609014,10 @@
|
|||
"9ef52c13448d19b241b40a5c81f4a0480c05c5de",
|
||||
"support"
|
||||
],
|
||||
"webaudio/resources/audionodeoptions.js": [
|
||||
"d7712311bddd23e171e7e1f024aec0a565b08a13",
|
||||
"support"
|
||||
],
|
||||
"webaudio/resources/audioparam-testing.js": [
|
||||
"2855fbee30e629ea397166911b9bcdec74bd4fdf",
|
||||
"support"
|
||||
|
@ -608999,6 +609082,10 @@
|
|||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-analysernode-interface/ctor-analyser.html": [
|
||||
"7e35ac29f00d39c84230535212c0b9ea081951d3",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain.html": [
|
||||
"e2320e33ef1df0155d5fcf536550e0e398b15407",
|
||||
"testharness"
|
||||
|
@ -609031,6 +609118,10 @@
|
|||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-audiobuffersourcenode-interface/ctor-audiobuffersource.html": [
|
||||
"ce84d25460435564021a13dc9e26384bc30e9d96",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-audiocontext-interface/.gitkeep": [
|
||||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
|
@ -609311,6 +609402,10 @@
|
|||
"f24a473f695c2d10788ba7d50728259a08ed53c8",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-biquadfilternode-interface/ctor-biquadfilter.html": [
|
||||
"475916d4aba810c017c385d98d51d353ad0fc561",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html": [
|
||||
"348376a643b765700342e9620e1346d432a28131",
|
||||
"testharness"
|
||||
|
@ -609335,6 +609430,10 @@
|
|||
"250c35e36dda600c30554024cbd500a37180292a",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger.html": [
|
||||
"72bfba4cbca1b4d3e7692ef236afb905f852fadd",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-channelsplitternode-interface/.gitkeep": [
|
||||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
|
@ -609343,6 +609442,10 @@
|
|||
"80cfd321970b37df7995d6e0d262a2c008e6e10c",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter.html": [
|
||||
"743fd6af6f67958f67f4a63cef432515518edf41",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic.html": [
|
||||
"d60c7c7c6d9236f773199a213bef6b1103e02e2e",
|
||||
"testharness"
|
||||
|
@ -609355,6 +609458,10 @@
|
|||
"ce90b4d7ca5840abdc830d734df26028958fadd7",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-constantsourcenode-interface/ctor-constantsource.html": [
|
||||
"1fa8892c98ce5f979a08294a838b3b91ce11a3a3",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html": [
|
||||
"711b3f183d847e437a4c332f33054cc5a648fd22",
|
||||
"testharness"
|
||||
|
@ -609391,10 +609498,18 @@
|
|||
"f32f5acdf031b1a2b32bc37324b105d1df7c5fdb",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html": [
|
||||
"70f49ae8525bd998d3b51bada7a296ba4cef03e5",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-delaynode-interface/.gitkeep": [
|
||||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-delaynode-interface/ctor-delay.html": [
|
||||
"473c5e05ab6ee4930de9e3a3ec47075af7e9650d",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html": [
|
||||
"c732635549f5eab61f8bdce05b27f0f3e8a3f6c2",
|
||||
"testharness"
|
||||
|
@ -609427,6 +609542,10 @@
|
|||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html": [
|
||||
"6338104e8199673ff7de6f41d310b79a2ee51f04",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-dynamicscompressornode-interface/dynamicscompressor-basic.html": [
|
||||
"6ceaf50b8cacdfa246bc997f2c8e46aefd789659",
|
||||
"testharness"
|
||||
|
@ -609435,6 +609554,10 @@
|
|||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-gainnode-interface/ctor-gain.html": [
|
||||
"3c77f0ac735a224fa6d905f62585beba39643393",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-gainnode-interface/gain-basic.html": [
|
||||
"70165c60c482d6507670af965756f639e7b3ba78",
|
||||
"testharness"
|
||||
|
@ -609455,6 +609578,10 @@
|
|||
"bf2de43e568c79b96fd5b0602e26346c483162a5",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-iirfilternode-interface/ctor-iirfilter.html": [
|
||||
"3627d5b4a447a62de6c6a6f10556fa9f9dec1700",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-basic.html": [
|
||||
"176168861bc667b2b05312dbae48f76f7f90d791",
|
||||
"testharness"
|
||||
|
@ -609491,6 +609618,10 @@
|
|||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html": [
|
||||
"4264798e9e64d30c72f9f0577a9648efa2d0a50a",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.html": [
|
||||
"d0b1fefa6c0f75c0666cd5b7e8305099e9925d62",
|
||||
"testharness"
|
||||
|
@ -609499,10 +609630,18 @@
|
|||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-oscillatornode-interface/ctor-oscillator.html": [
|
||||
"53df9d36a96c61a6ce9215cbc2830783e26c91be",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-pannernode-interface/.gitkeep": [
|
||||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-pannernode-interface/ctor-panner.html": [
|
||||
"2b59d21a54b2216c1171a6ba2c7809291955a8af",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-pannernode-interface/distance-exponential.html": [
|
||||
"c1c94753ebcd1930e326d73c085e6c3197967cd5",
|
||||
"testharness"
|
||||
|
@ -609559,6 +609698,10 @@
|
|||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-stereopanner-interface/ctor-stereopanner.html": [
|
||||
"1908ffc477d8c16b81ab371f5b9dbca46cc16a83",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html": [
|
||||
"b3525a2c459125281196201216417c39030e79a8",
|
||||
"testharness"
|
||||
|
@ -609575,6 +609718,10 @@
|
|||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper.html": [
|
||||
"80b585554acf22f357264e3a024d2159fd184f13",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html": [
|
||||
"f88431616d6a8084a3434c1606e3543178d019fb",
|
||||
"testharness"
|
||||
|
@ -609768,7 +609915,7 @@
|
|||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/cookies/add_cookie.py": [
|
||||
"c87dc51111c10bbc29339ba0d1be85fb35ee6d6f",
|
||||
"29891e121def1917c47c70efd19b40ed5f2ea61d",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/cookies/delete_cookie.py": [
|
||||
|
@ -616703,6 +616850,10 @@
|
|||
"54a03fefabfad02e09baa4e9d37e19b6403dad9b",
|
||||
"testharness"
|
||||
],
|
||||
"xhr/close-worker-with-xhr-in-progress.html": [
|
||||
"c1907caa8cbe6b30cd70e174163e7c4cd510934d",
|
||||
"testharness"
|
||||
],
|
||||
"xhr/data-uri.htm": [
|
||||
"d42eb014a32cf82d7eba31ad9b80f51bff43eeea",
|
||||
"testharness"
|
||||
|
|
|
@ -8,9 +8,6 @@
|
|||
[Test @font-face matching for weight 400]
|
||||
expected: FAIL
|
||||
|
||||
[Test @font-face matching for weight 420]
|
||||
expected: FAIL
|
||||
|
||||
[Test @font-face matching for weight 470]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -32,3 +29,12 @@
|
|||
[Test @font-face matching for weight 1000]
|
||||
expected: FAIL
|
||||
|
||||
[Test @font-face matching for weight 99]
|
||||
expected: FAIL
|
||||
|
||||
[Test @font-face matching for weight 100]
|
||||
expected: FAIL
|
||||
|
||||
[Test @font-face matching for weight 249]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[vh_not_refreshing_on_chrome.html]
|
||||
expected: FAIL
|
|
@ -26,9 +26,6 @@
|
|||
[The serialization of border: solid; border-style: dotted should be canonical.]
|
||||
expected: FAIL
|
||||
|
||||
[The serialization of overflow-x: scroll; overflow-y: hidden; should be canonical.]
|
||||
expected: FAIL
|
||||
|
||||
[The serialization of outline-width: 2px; outline-style: dotted; outline-color: blue; should be canonical.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@
|
|||
[boundsAttribute1: points]
|
||||
expected: FAIL
|
||||
|
||||
[p1Top4Attributes1: bounds]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,3 +2,9 @@
|
|||
[DOMRectList item()]
|
||||
expected: FAIL
|
||||
|
||||
[DOMRectList is not [NoInterfaceObject\]]
|
||||
expected: FAIL
|
||||
|
||||
[DOMRectList is not [LegacyArrayClass\]]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[integrity-sharedworker.html]
|
||||
type: testharness
|
||||
[Fetch in sharedworker: integrity handling]
|
||||
expected: FAIL
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
[integrity-worker.html]
|
||||
type: testharness
|
||||
[Invalid integrity]
|
||||
expected: FAIL
|
||||
|
||||
[Multiple integrities: invalid stronger than valid]
|
||||
expected: FAIL
|
||||
|
||||
[Multiple integrities: both are invalid]
|
||||
expected: FAIL
|
||||
|
||||
[CORS invalid integrity]
|
||||
expected: FAIL
|
||||
|
||||
[Empty string integrity for opaque response]
|
||||
expected: FAIL
|
||||
|
||||
[SHA-* integrity for opaque response]
|
||||
expected: FAIL
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
[integrity.html]
|
||||
type: testharness
|
||||
[Invalid integrity]
|
||||
expected: FAIL
|
||||
|
||||
[Multiple integrities: invalid stronger than valid]
|
||||
expected: FAIL
|
||||
|
||||
[Multiple integrities: both are invalid]
|
||||
expected: FAIL
|
||||
|
||||
[CORS invalid integrity]
|
||||
expected: FAIL
|
||||
|
||||
[Empty string integrity for opaque response]
|
||||
expected: FAIL
|
||||
|
||||
[SHA-* integrity for opaque response]
|
||||
expected: FAIL
|
||||
|
44
tests/wpt/metadata/fetch/api/basic/integrity.sub.any.js.ini
Normal file
44
tests/wpt/metadata/fetch/api/basic/integrity.sub.any.js.ini
Normal file
|
@ -0,0 +1,44 @@
|
|||
[integrity.sub.any.sharedworker.html]
|
||||
[Untitled]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[integrity.sub.any.worker.html]
|
||||
[Invalid integrity]
|
||||
expected: FAIL
|
||||
|
||||
[Multiple integrities: invalid stronger than valid]
|
||||
expected: FAIL
|
||||
|
||||
[Multiple integrities: both are invalid]
|
||||
expected: FAIL
|
||||
|
||||
[CORS invalid integrity]
|
||||
expected: FAIL
|
||||
|
||||
[Empty string integrity for opaque response]
|
||||
expected: FAIL
|
||||
|
||||
[SHA-* integrity for opaque response]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[integrity.sub.any.html]
|
||||
[Invalid integrity]
|
||||
expected: FAIL
|
||||
|
||||
[Multiple integrities: invalid stronger than valid]
|
||||
expected: FAIL
|
||||
|
||||
[Multiple integrities: both are invalid]
|
||||
expected: FAIL
|
||||
|
||||
[CORS invalid integrity]
|
||||
expected: FAIL
|
||||
|
||||
[Empty string integrity for opaque response]
|
||||
expected: FAIL
|
||||
|
||||
[SHA-* integrity for opaque response]
|
||||
expected: FAIL
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[mode-no-cors-worker.html]
|
||||
type: testharness
|
||||
[Fetch https://web-platform.test:8443/fetch/api/resources/top.txt with no-cors mode]
|
||||
expected: FAIL
|
||||
|
||||
[Fetch http://web-platform.test:8001/fetch/api/resources/top.txt with no-cors mode]
|
||||
expected: FAIL
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[mode-no-cors.html]
|
||||
type: testharness
|
||||
[Fetch https://web-platform.test:8443/fetch/api/resources/top.txt with no-cors mode]
|
||||
expected: FAIL
|
||||
|
||||
[Fetch http://web-platform.test:8001/fetch/api/resources/top.txt with no-cors mode]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
[mode-no-cors.sub.any.worker.html]
|
||||
[Fetch https://web-platform.test:8443/fetch/api/resources/top.txt with no-cors mode]
|
||||
expected: FAIL
|
||||
|
||||
[Fetch http://web-platform.test:8001/fetch/api/resources/top.txt with no-cors mode]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[mode-no-cors.sub.any.html]
|
||||
[Fetch https://web-platform.test:8443/fetch/api/resources/top.txt with no-cors mode]
|
||||
expected: FAIL
|
||||
|
||||
[Fetch http://web-platform.test:8001/fetch/api/resources/top.txt with no-cors mode]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,45 @@
|
|||
[Untitled]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should allow the response if Content-Type is: 'image/svg+xml'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'text/html'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'text/json'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'application/json'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'text/xml'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'application/xml'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'application/blah+json'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'text/blah+json'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'application/blah+xml'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'text/blah+xml'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'TEXT/HTML'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'TEXT/JSON'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'TEXT/BLAH+JSON'. ]
|
||||
expected: FAIL
|
||||
|
||||
[CORB should block the response if Content-Type is: 'APPLICATION/BLAH+XML'. ]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[javascript-url-abort-return-value-undefined.tentative.html]
|
||||
expected: TIMEOUT
|
||||
[Not aborting fetch for javascript:undefined navigation]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -10,17 +10,20 @@
|
|||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
test(function() {
|
||||
assert_false('toNativeLineEndings' in window);
|
||||
}, '"toNativeLineEndings" should not be supported');
|
||||
var removedFromWindow = [
|
||||
'toNativeLineEndings',
|
||||
'FileError',
|
||||
'FileException',
|
||||
'FileHandle',
|
||||
'FileRequest',
|
||||
'MutableFile',
|
||||
];
|
||||
|
||||
test(function() {
|
||||
assert_false('FileError' in window);
|
||||
}, '"FileError" should not be supported');
|
||||
|
||||
test(function() {
|
||||
assert_false('FileException' in window);
|
||||
}, '"FileException" should not be supported');
|
||||
removedFromWindow.forEach(function(name) {
|
||||
test(function() {
|
||||
assert_false(name in window);
|
||||
}, '"' + name + '" should not be supported');
|
||||
});
|
||||
|
||||
test(function() {
|
||||
var b = new Blob();
|
||||
|
|
|
@ -63,4 +63,18 @@ test(function() {
|
|||
// Replaced circa May 2012 by a DOMString (later, IDBTransactionMode enum).
|
||||
assert_false('VERSION_CHANGE' in IDBTransaction);
|
||||
}, '"VERSION_CHANGE" should not be supported on IDBTransaction.');
|
||||
|
||||
// Gecko-proprietary interfaces.
|
||||
var removedFromWindow = [
|
||||
'IDBFileHandle',
|
||||
'IDBFileRequest',
|
||||
'IDBMutableFile',
|
||||
];
|
||||
|
||||
removedFromWindow.forEach(function(name) {
|
||||
test(function() {
|
||||
assert_false(name in window);
|
||||
}, '"' + name + '" should not be supported');
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
var i = document.createElement('iframe');
|
||||
i.src = "support/frame-ancestors-and-x-frame-options.sub.html?policy='self'&xfo=DENY";
|
||||
i.onload = t.step_func_done(function () {
|
||||
assert_equals(i.contentDocument.origin, document.origin, "The same-origin page loaded.");
|
||||
assert_equals(i.contentWindow.origin, window.origin, "The same-origin page loaded.");
|
||||
});
|
||||
document.body.appendChild(i);
|
||||
}, "A 'frame-ancestors' CSP directive overrides an 'x-frame-options' header which would block the page.");
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
height: 100px;
|
||||
shape-outside: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAALpJREFUeNrs0UEVABAURcHP5pcRSxpR9FHGhhycuQ3emxI9TnxQ7pxttfH6jhoCIiBABASIgAARECACIiBABASIgAARECACIiBABASIgAARECACIiBABASIgAARECACIiBABASIgAARECACIiBABASIgAARECACIiBABASIgAARECACIiBABASIgAARECACIiBABASIgAARECACAsQFQAQEiIAAERAgAgJEQAQEiIAAEZDPuwAAAP//AwCf+AWUylJrCQAAAABJRU5ErkJggg==);
|
||||
shape-margin: 5%;
|
||||
shape-image-threshold: 0.25;
|
||||
shape-image-threshold: 0.7;
|
||||
}
|
||||
.blue {
|
||||
width: 2px;
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
padding: 10px;
|
||||
border: 10px solid transparent;
|
||||
shape-margin: 15px;
|
||||
shape-outside: margin-box circle(35% at 85px 75px);
|
||||
shape-outside: margin-box circle(60px);
|
||||
}
|
||||
#line {
|
||||
position: absolute;
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
margin: 10px;
|
||||
padding: 10px;
|
||||
border: 10px solid transparent;
|
||||
shape-outside: padding-box ellipse(closest-side at 75px 80px);
|
||||
shape-outside: padding-box ellipse(closest-side closest-side at 75px 80px);
|
||||
}
|
||||
#line {
|
||||
position: absolute;
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
padding: 10px;
|
||||
border: 10px solid transparent;
|
||||
shape-margin: 10px;
|
||||
shape-outside: content-box ellipse(farthest-side);
|
||||
shape-outside: content-box ellipse(farthest-side closest-side);
|
||||
}
|
||||
#line {
|
||||
position: absolute;
|
||||
|
|
|
@ -19,8 +19,7 @@
|
|||
#test-container {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
font-family: Ahem;
|
||||
font-size: 25px;
|
||||
font: 25px/1 Ahem;
|
||||
background-color: red;
|
||||
color: green;
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
height: 200px;
|
||||
font-family: Ahem;
|
||||
font-size: 25px;
|
||||
line-height: 1;
|
||||
background-color: red;
|
||||
color: green;
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
height: 200px;
|
||||
font-family: Ahem;
|
||||
font-size: 25px;
|
||||
line-height: 1;
|
||||
background-color: red;
|
||||
color: green;
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
height: 200px;
|
||||
font-family: Ahem;
|
||||
font-size: 25px;
|
||||
line-height: 1;
|
||||
background-color: red;
|
||||
color: green;
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
height: 200px;
|
||||
font-family: Ahem;
|
||||
font-size: 25px;
|
||||
line-height: 1;
|
||||
background-color: red;
|
||||
color: green;
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
height: 200px;
|
||||
font-family: Ahem;
|
||||
font-size: 25px;
|
||||
line-height: 1;
|
||||
background-color: red;
|
||||
color: green;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CSS Test: left float, inset, px units</title>
|
||||
<link rel="author" title="Brad Werth" href="mailto:bwerth@mozilla.com">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-inset">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property">
|
||||
<link rel="match" href="reference/shape-outside-inset-010-ref.html"/>
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="The test verfies that text flows around a
|
||||
right float with a shape-outside defined as
|
||||
an inset rounded rectangle in px units with
|
||||
a shape-margin.">
|
||||
</head>
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
margin-left: 25px;
|
||||
}
|
||||
#test-container {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
font: 25px/1 Ahem;
|
||||
background-color: red;
|
||||
color: green;
|
||||
text-align: right;
|
||||
}
|
||||
#test-shape {
|
||||
float: right;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
background-color: green;
|
||||
shape-margin: 10px;
|
||||
shape-outside: inset(60px 10px 60px 110px round 20px);
|
||||
}
|
||||
#static-shape {
|
||||
position: absolute;
|
||||
left: 100px;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
top: 50px;
|
||||
background-color: green;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<p>The test passes if there is a green square and no red.</p>
|
||||
<div id="container">
|
||||
<div id="test-container">
|
||||
<div id="test-shape"></div>
|
||||
XXXXXXXX XXXXXXXX XXXX XXXX XXXX XXXX XXXXXXXX XXXXXXXX
|
||||
</div>
|
||||
<div id="static-shape"></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CSS Test: left float, inset, px units</title>
|
||||
<link rel="author" title="Brad Werth" href="mailto:bwerth@mozilla.com">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-inset">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property">
|
||||
<link rel="match" href="reference/shape-outside-inset-010-ref.html"/>
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="The test verfies that text flows around a
|
||||
right float with a shape-outside defined as
|
||||
an inset irregular elliptically rounded
|
||||
rectangle in px units with a shape-margin.">
|
||||
</head>
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
margin-left: 25px;
|
||||
}
|
||||
#test-container {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
font: 25px/1 Ahem;
|
||||
background-color: red;
|
||||
color: green;
|
||||
text-align: right;
|
||||
}
|
||||
#test-shape {
|
||||
float: right;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
background-color: green;
|
||||
shape-margin: 10px;
|
||||
shape-outside: inset(60px 10px 60px 110px round 70px 0px 0px 10px / 10px 0px 0px 20px);
|
||||
}
|
||||
#static-shape {
|
||||
position: absolute;
|
||||
left: 100px;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
top: 50px;
|
||||
background-color: green;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<p>The test passes if there is a green square and no red.</p>
|
||||
<div id="container">
|
||||
<div id="test-container">
|
||||
<div id="test-shape"></div>
|
||||
XXXXXXXX XXXXXXXX XXXX XXXX XXXX XXXX XXXXXXXX XXXXXXXX
|
||||
</div>
|
||||
<div id="static-shape"></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -2,7 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSSOM - Overlow property has different serialization than other shorthands.</title>
|
||||
<title>CSSOM - Overflow shorthand serialization</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-value">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
@ -11,7 +11,7 @@
|
|||
div { overflow: hidden; }
|
||||
div { overflow-x: initial; overflow-y: initial; }
|
||||
div { overflow-x: scroll; overflow-y: scroll; }
|
||||
div { overflow-x: inherit; overflow-y: unset; }
|
||||
div { overflow-x: scroll; overflow-y: hidden; }
|
||||
</style>
|
||||
|
||||
<script>
|
||||
|
@ -22,7 +22,7 @@
|
|||
assert_equals(styleSheet.cssRules[1].style.cssText, "overflow: hidden;", "Single value overflow with non-CSS-wide keyword should serialize correctly.");
|
||||
assert_equals(styleSheet.cssRules[2].style.cssText, "overflow: initial;", "Overflow-x/y longhands with same CSS-wide keyword should serialize correctly.");
|
||||
assert_equals(styleSheet.cssRules[3].style.cssText, "overflow: scroll;", "Overflow-x/y longhands with same non-CSS-wide keyword should serialize correctly.");
|
||||
assert_equals(styleSheet.cssRules[4].style.cssText, "overflow-x: inherit; overflow-y: unset;", "Overflow-x/y longhands with different keywords should serialize correctly.");
|
||||
assert_equals(styleSheet.cssRules[4].style.cssText, "overflow: scroll hidden;", "Overflow-x/y longhands with different keywords should serialize correctly.");
|
||||
|
||||
var div = document.createElement('div');
|
||||
div.style.overflow = "inherit";
|
||||
|
@ -40,9 +40,9 @@
|
|||
div.style.overflowY = "scroll";
|
||||
assert_equals(div.style.overflow, "scroll", "Overflow-x/y longhands with same non-CSS-wide keyword should serialize correctly.");
|
||||
|
||||
div.style.overflowX = "inherit";
|
||||
div.style.overflowY = "unset";
|
||||
assert_equals(div.style.overflow, "", "Overflow-x/y longhands with different keywords shouldn't serialize.");
|
||||
div.style.overflowX = "scroll";
|
||||
div.style.overflowY = "hidden";
|
||||
assert_equals(div.style.overflow, "scroll hidden", "Overflow-x/y longhands with different keywords should serialize correctly.");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
'border: 1px; border-top-color: red;': 'border-width: 1px; border-top-color: red;',
|
||||
'border: solid; border-style: dotted': 'border: dotted;',
|
||||
'border-width: 1px;': 'border-width: 1px;',
|
||||
'overflow-x: scroll; overflow-y: hidden;': 'overflow-x: scroll; overflow-y: hidden;',
|
||||
'overflow-x: scroll; overflow-y: hidden;': 'overflow: scroll hidden;',
|
||||
'overflow-x: scroll; overflow-y: scroll;': 'overflow: scroll;',
|
||||
'outline-width: 2px; outline-style: dotted; outline-color: blue;': 'outline: blue dotted 2px;',
|
||||
'margin-top: 1px; margin-right: 2px; margin-bottom: 3px; margin-left: 4px;': 'margin: 1px 2px 3px 4px;',
|
||||
|
|
|
@ -44,31 +44,31 @@
|
|||
},'testConstructor4');
|
||||
|
||||
checkDOMQuad(
|
||||
function() { return new DOMQuad(new DOMRect(10, 20, 100, 200)); },
|
||||
function() { return DOMQuad.fromRect(new DOMRect(10, 20, 100, 200)); },
|
||||
{ p1: { x: 10, y: 20, z: 0, w: 1 },
|
||||
p2: { x: 110, y: 20, z: 0, w: 1 },
|
||||
p3: { x: 110, y: 220, z: 0, w: 1 },
|
||||
p4: { x: 10, y: 220, z: 0, w: 1 },
|
||||
bounds: { x: 10, y: 20, width: 100, height: 200 } },
|
||||
'testConstructor5');
|
||||
'fromRect() method on DOMQuad');
|
||||
|
||||
checkDOMQuad(
|
||||
function() { return new DOMQuad(new DOMRect(10, 20, -100, -200)) },
|
||||
function() { return DOMQuad.fromRect(new DOMRect(10, 20, -100, -200)) },
|
||||
{ p1: { x: 10, y: 20, z: 0, w: 1 },
|
||||
p2: { x: -90, y: 20, z: 0, w: 1 },
|
||||
p3: { x: -90, y: -180, z: 0, w: 1 },
|
||||
p4: { x: 10, y: -180, z: 0, w: 1 },
|
||||
bounds: { x: -90, y: -180, width: 100, height: 200 } },
|
||||
'testConstructor6');
|
||||
'fromRect() method on DOMQuad with negatives');
|
||||
|
||||
checkDOMQuad(
|
||||
function() { return new DOMQuad(new DOMRect(-Infinity, -Infinity, Infinity, Infinity)) },
|
||||
function() { return DOMQuad.fromRect(new DOMRect(-Infinity, -Infinity, Infinity, Infinity)) },
|
||||
{ p1: { x: -Infinity, y: -Infinity, z: 0, w: 1 },
|
||||
p2: { x: NaN, y: -Infinity, z: 0, w: 1 },
|
||||
p3: { x: NaN, y: NaN, z: 0, w: 1 },
|
||||
p4: { x: -Infinity, y: NaN, z: 0, w: 1 },
|
||||
bounds: { x: -Infinity, y: -Infinity, width: NaN, height: NaN } },
|
||||
'testConstructor7');
|
||||
'fromRect() method on DOMQuad with Infinity');
|
||||
|
||||
checkDOMQuad(function() { return new DOMQuad(new DOMRect()); }, initial, 'testConstructor8');
|
||||
|
||||
|
@ -120,15 +120,9 @@
|
|||
p2: { x: 2, y: 0, z: 0, w: 1 },
|
||||
p3: { x: 2, y: 0, z: 0, w: 1 },
|
||||
p4: { x: 2, y: 0, z: 0, w: 1 },
|
||||
bounds: { x: 2, y: 0, width: 0, height: 0 } },
|
||||
bounds: { x: 0, y: 0, width: 0, height: 0 } },
|
||||
'p1Top4Attributes1');
|
||||
|
||||
checkDOMQuad(function() {
|
||||
var q = new DOMQuad({}, {}, {}, {});
|
||||
q.bounds = new DOMRect(10, 10, 100, 100);
|
||||
return q;
|
||||
}, initial, 'boundsAttribute0');
|
||||
|
||||
function checkDOMQuad(createQuad, exp, name) {
|
||||
test(function() {
|
||||
var q = createQuad();
|
||||
|
|
|
@ -10,12 +10,12 @@ setup(() => {
|
|||
});
|
||||
|
||||
test(() => {
|
||||
assert_false('DOMRectList' in window);
|
||||
}, 'DOMRectList [NoInterfaceObject]');
|
||||
assert_true('DOMRectList' in window);
|
||||
}, 'DOMRectList is not [NoInterfaceObject]');
|
||||
|
||||
test(() => {
|
||||
assert_true(domRectList instanceof Array);
|
||||
}, 'DOMRectList [LegacyArrayClass]');
|
||||
assert_false(domRectList instanceof Array);
|
||||
}, 'DOMRectList is not [LegacyArrayClass]');
|
||||
|
||||
test(() => {
|
||||
assert_equals(domRectList.length, 1);
|
||||
|
|
|
@ -12,12 +12,14 @@ function isInterfaceNuked(name) {
|
|||
}
|
||||
var nukedInterfaces = [
|
||||
"DOMConfiguration",
|
||||
"DOMCursor",
|
||||
"DOMError",
|
||||
"DOMErrorHandler",
|
||||
"DOMImplementationList",
|
||||
"DOMImplementationSource",
|
||||
"DOMLocator",
|
||||
"DOMObject",
|
||||
"DOMRequest",
|
||||
"DOMSettableTokenList",
|
||||
"DOMUserData",
|
||||
"Entity",
|
||||
|
|
|
@ -1,72 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this -->
|
||||
<title>ISO 2022-JP encoding (href)</title>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="jis0208_index.js"></script>
|
||||
<script src="iso2022jp-encoder.js"></script>
|
||||
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
|
||||
<link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp">
|
||||
<meta name="assert" content="The browser produces the expected byte sequences for all characters in the iso-2022-jp encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification.">
|
||||
<script>
|
||||
function XnormalizeStr(str) {
|
||||
str = encodeURIComponent(str);
|
||||
var ptr = 0;
|
||||
var out = "";
|
||||
for (c = 0; c < str.length; c++) {
|
||||
if (str.charAt(ptr) == "%") {
|
||||
out += String.fromCodePoint(
|
||||
parseInt(str.charAt(ptr + 1) + str.charAt(ptr + 2), 16)
|
||||
);
|
||||
ptr += 2;
|
||||
} else out += str.charAt(ptr);
|
||||
ptr++;
|
||||
}
|
||||
}
|
||||
|
||||
function encode(input, expected, desc) {
|
||||
// tests whether a Unicode character is converted to an equivalent byte sequence by href
|
||||
// input: a Unicode character
|
||||
// expected: expected byte sequence
|
||||
// desc: what's being tested
|
||||
test(function() {
|
||||
var a = document.createElement("a"); // <a> uses document encoding for URL's query
|
||||
a.href = "https://example.com/?" + input;
|
||||
var result = a.search.substr(1); // remove leading "?"
|
||||
assert_equals(normalizeStr(result), normalizeStr(expected));
|
||||
}, desc);
|
||||
}
|
||||
|
||||
// create a simple list of just those code points for which there is an encoding possible
|
||||
codepoints = [];
|
||||
for (var i = 0x00; i < 0xfe; i++) {
|
||||
result = iso2022jpEncoder(String.fromCodePoint(i));
|
||||
if (result) {
|
||||
var item = {};
|
||||
codepoints.push(item);
|
||||
item.cp = i;
|
||||
item.expected = "%" + result.replace(/ /g, "%");
|
||||
item.expected = item.expected.replace(/%1B%28%42$/, "");
|
||||
}
|
||||
}
|
||||
|
||||
// run the tests
|
||||
encode(String.fromCodePoint(0x65), "e;", "%65");
|
||||
encode(String.fromCodePoint(0x1b), "d;", "%1B");
|
||||
|
||||
//for (var x=0;x<codepoints.length;x++) {
|
||||
// encode(String.fromCodePoint(codepoints[x].cp), codepoints[x].expected, "U+"+codepoints[x].cp.toString(16).toUpperCase()+' '+String.fromCodePoint(codepoints[x].cp)+" "+codepoints[x].expected)
|
||||
// }
|
||||
|
||||
// NOTES
|
||||
// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
|
||||
// the test excludes ASCII characters
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,181 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html> <!-- DOESN'T WORK, NOT SURE WHY - THERE ARE 11 CHARACTERS PRODUCED, BUT ALL ARE UNASSIGNED CODE POINTS, SO SAFE TO IGNORE FOR NOW -->
|
||||
<head>
|
||||
<title>EUC-KR encoding errors (form, hangul)</title>
|
||||
<meta charset="euc-kr"> <!-- test breaks if the server overrides this -->
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="euckr_index.js"></script>
|
||||
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
|
||||
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-kr">
|
||||
<meta name="assert" content="The browser produces percent-escaped character references when encoding bytes for a URL produced by a form when encoding hangul characters that are not in the euc-kr encoding.">
|
||||
<style>
|
||||
iframe { display:none }
|
||||
form { display:none }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var tests = [];
|
||||
var cplist = [];
|
||||
var numTests = null;
|
||||
var numFrames = 2;
|
||||
var chunkSize = 400;
|
||||
var numChunks = null;
|
||||
var frames = null;
|
||||
var frames = null;
|
||||
var forms = null;
|
||||
var seperator = ",";
|
||||
var encodedSeperator = encodeURIComponent(",");
|
||||
var currentChunkIndex = 0;
|
||||
|
||||
function getByteSequence(cp) {
|
||||
// uses the Encoding spec algorithm to derive a sequence of bytes for a character that can be encoded
|
||||
// the result is either a percent-encoded value or null (if the character can't be encoded)
|
||||
// cp: integer, a code point number
|
||||
var cps = [cp];
|
||||
var out = "";
|
||||
|
||||
while (cps.length > 0) {
|
||||
cp = cps.shift();
|
||||
if (cp >= 0x00 && cp <= 0x7f) {
|
||||
// ASCII
|
||||
out += "%" + cp.toString(16);
|
||||
continue;
|
||||
}
|
||||
var ptr = indexcodepoints[cp];
|
||||
if (ptr == null) {
|
||||
return null;
|
||||
}
|
||||
var lead = Math.floor(ptr / 190) + 0x81;
|
||||
var trail = ptr % 190 + 0x41;
|
||||
out +=
|
||||
"%" +
|
||||
lead.toString(16).toUpperCase() +
|
||||
"%" +
|
||||
trail.toString(16).toUpperCase();
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
// set up a sparse array of all unicode codepoints listed in the index
|
||||
// this will be used for lookup in getByteSequence
|
||||
var indexcodepoints = []; // index is unicode cp, value is pointer
|
||||
for (p = 0; p < euckr.length; p++) {
|
||||
if (euckr[p] != null && indexcodepoints[euckr[p]] == null) {
|
||||
indexcodepoints[euckr[p]] = p;
|
||||
}
|
||||
}
|
||||
|
||||
setup(function() {
|
||||
// set up a simple array of all unicode codepoints that are not encoded
|
||||
var codepoints = [];
|
||||
|
||||
for (i = 0xac00; i < 0xd7af; i++) {
|
||||
result = getByteSequence(i);
|
||||
if (!result) {
|
||||
var item = {};
|
||||
codepoints.push(item);
|
||||
item.cp = i;
|
||||
item.expected = "%26%23" + item.cp + "%3B";
|
||||
item.desc = "hangul ";
|
||||
}
|
||||
}
|
||||
|
||||
// convert the information into a simple array of objects that can be easily traversed
|
||||
var currentChunk = [];
|
||||
var currentTests = [];
|
||||
cplist = [currentChunk];
|
||||
tests = [currentTests];
|
||||
for (i = 161; i < codepoints.length; i++) {
|
||||
if (currentChunk.length == chunkSize) {
|
||||
currentChunk = [];
|
||||
cplist.push(currentChunk);
|
||||
currentTests = [];
|
||||
tests.push(currentTests);
|
||||
}
|
||||
var item = {};
|
||||
currentChunk.push(item);
|
||||
item.cp = codepoints[i].cp;
|
||||
item.expected = codepoints[i].expected;
|
||||
item.desc = codepoints[i].desc;
|
||||
currentTests.push(
|
||||
async_test(
|
||||
item.desc +
|
||||
" U+" +
|
||||
item.cp.toString(16).toUpperCase() +
|
||||
" " +
|
||||
String.fromCodePoint(item.cp) +
|
||||
item.expected
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
numChunks = cplist.length;
|
||||
|
||||
for (var i = 0; i < numFrames; i++) {
|
||||
var frame = document.createElement("iframe");
|
||||
frame.id = frame.name = "frame-" + i;
|
||||
document.body.appendChild(frame);
|
||||
var form = document.createElement("form");
|
||||
form.id = "form-" + i;
|
||||
form.method = "GET";
|
||||
form.action = "/common/blank.html";
|
||||
form.acceptCharset = "euc-kr";
|
||||
form.target = frame.id;
|
||||
var input = document.createElement("input");
|
||||
input.id = input.name = "input-" + i;
|
||||
form.appendChild(input);
|
||||
document.body.appendChild(form);
|
||||
}
|
||||
|
||||
addEventListener("load", function() {
|
||||
frames = Array.prototype.slice.call(
|
||||
document.getElementsByTagName("iframe")
|
||||
);
|
||||
forms = Array.prototype.slice.call(document.getElementsByTagName("form"));
|
||||
inputs = Array.prototype.slice.call(document.getElementsByTagName("input"));
|
||||
for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
|
||||
runNext(i);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function runNext(id) {
|
||||
var i = currentChunkIndex;
|
||||
currentChunkIndex += 1;
|
||||
|
||||
var iframe = frames[id];
|
||||
var form = forms[id];
|
||||
var input = inputs[id];
|
||||
|
||||
input.value = cplist[i]
|
||||
.map(function(x) {
|
||||
return String.fromCodePoint(x.cp);
|
||||
})
|
||||
.join(seperator);
|
||||
form.submit();
|
||||
|
||||
iframe.onload = function() {
|
||||
var url = iframe.contentWindow.location;
|
||||
var query = url.search;
|
||||
var result_string = query.substr(query.indexOf("=") + 1);
|
||||
var results = result_string.split(encodedSeperator);
|
||||
|
||||
for (var j = 0; j < cplist[i].length; j++) {
|
||||
var t = tests[i][j];
|
||||
t.step(function() {
|
||||
assert_equals(results[j], cplist[i][j].expected); // HERE'S THE TEST
|
||||
});
|
||||
t.done();
|
||||
}
|
||||
if (currentChunkIndex < numChunks) {
|
||||
runNext(id);
|
||||
}
|
||||
};
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,15 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch in sharedworker: integrity handling</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
fetch_tests_from_worker(new SharedWorker("integrity.js?pipe=sub"));
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,16 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch in worker: integrity handling</title>
|
||||
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
fetch_tests_from_worker(new Worker("integrity.js?pipe=sub"));
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,15 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch: integrity handling</title>
|
||||
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script src="../resources/utils.js"></script>
|
||||
<script src="integrity.js?pipe=sub"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +1,5 @@
|
|||
if (this.document === undefined) {
|
||||
importScripts("/resources/testharness.js");
|
||||
importScripts("../resources/utils.js");
|
||||
}
|
||||
// META: global=sharedworker
|
||||
// META: script=../resources/utils.js
|
||||
|
||||
function integrity(desc, url, integrity, initRequestMode, shouldPass) {
|
||||
var fetchRequestInit = {'integrity': integrity}
|
|
@ -1,17 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch in worker: no-cors mode and opaque filtering</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch">
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#concept-filtered-response-opaque">
|
||||
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
fetch_tests_from_worker(new Worker("mode-no-cors.js?pipe=sub"));
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,16 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch: no-cors mode and opaque filtering</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch">
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#concept-filtered-response-opaque">
|
||||
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script src="../resources/utils.js"></script>
|
||||
<script src="mode-no-cors.js?pipe=sub"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +1,4 @@
|
|||
if (this.document === undefined) {
|
||||
importScripts("/resources/testharness.js");
|
||||
importScripts("../resources/utils.js");
|
||||
}
|
||||
// META: script=../resources/utils.js
|
||||
|
||||
function fetchNoCors(url, isOpaqueFiltered) {
|
||||
var urlQuery = "?pipe=header(x-is-filtered,value)"
|
|
@ -1,15 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch in worker: response url getter</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#response-class">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
fetch_tests_from_worker(new Worker("response-url.js?pipe=sub"));
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,13 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch: response url getter</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#response-class">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script src="response-url.js?pipe=sub"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +1,3 @@
|
|||
if (this.document === undefined) {
|
||||
importScripts("/resources/testharness.js");
|
||||
}
|
||||
|
||||
function checkResponseURL(fetchedURL, expectedURL)
|
||||
{
|
||||
promise_test(function() {
|
||||
|
@ -18,4 +14,3 @@ checkResponseURL(baseURL + "/#ada", baseURL + "/");
|
|||
checkResponseURL(baseURL + "#ada", baseURL + "/");
|
||||
|
||||
done();
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch in worker: blob scheme</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch">
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#basic-fetch">
|
||||
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
fetch_tests_from_worker(new Worker("scheme-blob.js?pipe=sub"));
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,16 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch: blob scheme</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch">
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#basic-fetch">
|
||||
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script src="../resources/utils.js"></script>
|
||||
<script src="scheme-blob.js?pipe=sub"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +1,4 @@
|
|||
if (this.document === undefined) {
|
||||
importScripts("/resources/testharness.js");
|
||||
importScripts("../resources/utils.js");
|
||||
}
|
||||
// META: script=../resources/utils.js
|
||||
|
||||
function checkFetchResponse(url, data, mime, size, desc) {
|
||||
promise_test(function(test) {
|
|
@ -1,17 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch in worker: urls with unsupported schemes</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch">
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#basic-fetch">
|
||||
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
fetch_tests_from_worker(new Worker("scheme-others.js?pipe=sub"));
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,16 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fetch: urls with unsupported schemes</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#main-fetch">
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#basic-fetch">
|
||||
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script src="../resources/utils.js"></script>
|
||||
<script src="scheme-others.js?pipe=sub"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +1,4 @@
|
|||
if (this.document === undefined) {
|
||||
importScripts("/resources/testharness.js");
|
||||
importScripts("../resources/utils.js");
|
||||
}
|
||||
// META: script=../resources/utils.js
|
||||
|
||||
function checkKoUrl(url, desc) {
|
||||
if (!desc)
|
|
@ -26,18 +26,8 @@ Tests that cover behavior that is changed by CORB have to be marked as
|
|||
is included in the official
|
||||
[Fetch spec](https://fetch.spec.whatwg.org/). Such tests may fail unless
|
||||
CORB is enabled. In practice this means that:
|
||||
* Such tests will fail in default Chromium and have to be listed
|
||||
in `third_party/WebKit/LayoutTests/TestExpectations` and associated
|
||||
with https://crbug.com/802835.
|
||||
* Such tests will pass in Chromium when either
|
||||
1) CORB is explicitly, manually enabled by passing extra cmdline flags to
|
||||
`run-webkit-tests`:
|
||||
`--additional-driver-flag=--enable-features=CrossSiteDocumentBlockingAlways` and
|
||||
`--additional-expectations=third_party/WebKit/LayoutTests/FlagExpectations/site-per-process`.
|
||||
2) CORB is implicitly enabled via Site Isolation (e.g. in
|
||||
`site_per_process_webkit_layout_tests` step on the test bots). The
|
||||
expectations that the tests pass in this mode is controlled by the
|
||||
`third_party/WebKit/LayoutTests/FlagExpectations/site-per-process` file.
|
||||
* Such tests will pass in Chromium
|
||||
(where CORB is enabled by default [since M68](https://crrev.com/553830)).
|
||||
* Such tests may fail in other browsers.
|
||||
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
// - https://tools.ietf.org/html/rfc7303
|
||||
"text/x-json", "text/json+blah", "application/json+blah",
|
||||
"text/xml+blah", "application/xml+blah",
|
||||
"application/blahjson", "text/blahxml",
|
||||
"application/blahjson", "text/blahxml"]
|
||||
|
||||
var fails = [
|
||||
// CORB-protected MIME-types - i.e. ones covered by:
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 762 762">
|
||||
<rect x="0" y="0" fill="#003C56" width="762" height="762"/>
|
||||
<rect x="183.9" y="511.4" fill="#FFFFFF" width="201.5" height="38"/>
|
||||
<path fill="#FFFFFF" d="M504.9,549.4c37.3,0,67.6-30.3,67.6-67.6v-19h-38v19c0,16.3-13.3,29.6-29.6,29.6c-16.3,0-29.6-13.3-29.6-29.6
|
||||
V287.4h-38v56.5h-51.9v-92.6h112.4c25.5,0,46.3,20.8,46.3,46.3c0,20-13,37.8-31.8,44v39.1c40-6.9,69.8-42.1,69.8-83
|
||||
c0-46.5-37.8-84.3-84.3-84.3H366.4c-10.5,0-19,8.5-19,19V386l-46.4-79.4c-3.4-5.8-9.7-9.4-16.4-9.4c-6.7,0-13,3.6-16.4,9.4
|
||||
l-46.2,79.2V213.4h-38v242.7c0,8.6,5.8,16.1,14,18.3c8.3,2.2,17.1-1.4,21.4-8.8l65.2-111.8L350,465.7c3.4,5.8,9.7,9.4,16.4,9.4
|
||||
c1.7,0,3.3-0.2,5-0.7c8.3-2.2,14-9.8,14-18.3v-74.2h51.9v99.8C437.3,519.1,467.6,549.4,504.9,549.4z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 783 B |
|
@ -0,0 +1,8 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 398 340">
|
||||
<rect x="0" y="300" fill="#003C56" width="201.5" height="38"/>
|
||||
<path fill="#003C56" d="M320.9,338c37.3,0,67.6-30.3,67.6-67.6v-19h-38v19c0,16.3-13.3,29.6-29.6,29.6c-16.3,0-29.6-13.3-29.6-29.6V76
|
||||
h-38v56.5h-51.9V40h112.4c25.5,0,46.3,20.8,46.3,46.3c0,20-13,37.8-31.8,44v39.1c40-6.9,69.8-42.1,69.8-83
|
||||
C398,39.8,360.2,2,313.8,2H182.4c-10.5,0-19,8.5-19,19v153.6l-46.4-79.4c-3.4-5.8-9.7-9.4-16.4-9.4c-6.7,0-13,3.6-16.4,9.4
|
||||
l-46.2,79.2V2h-38v242.7c0,8.6,5.8,16.1,14,18.3c8.3,2.2,17.1-1.4,21.4-8.8l65.2-111.8L166,254.3c3.4,5.8,9.7,9.4,16.4,9.4
|
||||
c1.7,0,3.3-0.2,5-0.7c8.3-2.2,14-9.8,14-18.3v-74.2h51.9v99.8C253.3,307.7,283.6,338,320.9,338z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 701 B |
|
@ -0,0 +1,9 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 762 762">
|
||||
<rect x="0" y="0" fill="#78D9F4" width="762" height="762"/>
|
||||
<rect x="183.9" y="511.4" fill="#003C56" width="201.5" height="38"/>
|
||||
<path fill="#003C56" d="M504.9,549.4c37.3,0,67.6-30.3,67.6-67.6v-19h-38v19c0,16.3-13.3,29.6-29.6,29.6c-16.3,0-29.6-13.3-29.6-29.6
|
||||
V287.4h-38v56.5h-51.9v-92.6h112.4c25.5,0,46.3,20.8,46.3,46.3c0,20-13,37.8-31.8,44v39.1c40-6.9,69.8-42.1,69.8-83
|
||||
c0-46.5-37.8-84.3-84.3-84.3H366.4c-10.5,0-19,8.5-19,19V386l-46.4-79.4c-3.4-5.8-9.7-9.4-16.4-9.4c-6.7,0-13,3.6-16.4,9.4
|
||||
l-46.2,79.2V213.4h-38v242.7c0,8.6,5.8,16.1,14,18.3c8.3,2.2,17.1-1.4,21.4-8.8l65.2-111.8L350,465.7c3.4,5.8,9.7,9.4,16.4,9.4
|
||||
c1.7,0,3.3-0.2,5-0.7c8.3-2.2,14-9.8,14-18.3v-74.2h51.9v99.8C437.3,519.1,467.6,549.4,504.9,549.4z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 783 B |
|
@ -0,0 +1,9 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 762 762">
|
||||
<rect x="0" y="0" fill="#E86E43" width="762" height="762"/>
|
||||
<rect x="183.9" y="511.4" fill="#FFFFFF" width="201.5" height="38"/>
|
||||
<path fill="#FFFFFF" d="M504.9,549.4c37.3,0,67.6-30.3,67.6-67.6v-19h-38v19c0,16.3-13.3,29.6-29.6,29.6c-16.3,0-29.6-13.3-29.6-29.6
|
||||
V287.4h-38v56.5h-51.9v-92.6h112.4c25.5,0,46.3,20.8,46.3,46.3c0,20-13,37.8-31.8,44v39.1c40-6.9,69.8-42.1,69.8-83
|
||||
c0-46.5-37.8-84.3-84.3-84.3H366.4c-10.5,0-19,8.5-19,19V386l-46.4-79.4c-3.4-5.8-9.7-9.4-16.4-9.4c-6.7,0-13,3.6-16.4,9.4
|
||||
l-46.2,79.2V213.4h-38v242.7c0,8.6,5.8,16.1,14,18.3c8.3,2.2,17.1-1.4,21.4-8.8l65.2-111.8L350,465.7c3.4,5.8,9.7,9.4,16.4,9.4
|
||||
c1.7,0,3.3-0.2,5-0.7c8.3-2.2,14-9.8,14-18.3v-74.2h51.9v99.8C437.3,519.1,467.6,549.4,504.9,549.4z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 783 B |
|
@ -0,0 +1,8 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 398 340">
|
||||
<rect x="0" y="300" fill="#FFFFFF" width="201.5" height="38"/>
|
||||
<path fill="#FFFFFF" d="M320.9,338c37.3,0,67.6-30.3,67.6-67.6v-19h-38v19c0,16.3-13.3,29.6-29.6,29.6c-16.3,0-29.6-13.3-29.6-29.6V76
|
||||
h-38v56.5h-51.9V40h112.4c25.5,0,46.3,20.8,46.3,46.3c0,20-13,37.8-31.8,44v39.1c40-6.9,69.8-42.1,69.8-83
|
||||
C398,39.8,360.2,2,313.8,2H182.4c-10.5,0-19,8.5-19,19v153.6l-46.4-79.4c-3.4-5.8-9.7-9.4-16.4-9.4c-6.7,0-13,3.6-16.4,9.4
|
||||
l-46.2,79.2V2h-38v242.7c0,8.6,5.8,16.1,14,18.3c8.3,2.2,17.1-1.4,21.4-8.8l65.2-111.8L166,254.3c3.4,5.8,9.7,9.4,16.4,9.4
|
||||
c1.7,0,3.3-0.2,5-0.7c8.3-2.2,14-9.8,14-18.3v-74.2h51.9v99.8C253.3,307.7,283.6,338,320.9,338z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 701 B |
|
@ -248,7 +248,3 @@ function queryScript(url, callback) {
|
|||
function SanityChecker() {}
|
||||
SanityChecker.prototype.checkScenario = function() {};
|
||||
SanityChecker.prototype.checkSubresourceResult = function() {};
|
||||
|
||||
// TODO(kristijanburnik): document.origin is supported since Chrome 41,
|
||||
// other browsers still don't support it. Remove once they do.
|
||||
document.origin = document.origin || (location.protocol + "//" + location.host);
|
||||
|
|
|
@ -29,7 +29,7 @@ function ReferrerPolicyTestCase(scenario, testDescription, sanityChecker) {
|
|||
return undefined;
|
||||
},
|
||||
"origin": function() {
|
||||
return document.origin + "/";
|
||||
return self.origin + "/";
|
||||
},
|
||||
"stripped-referrer": function() {
|
||||
return stripUrlForUseAsReferrer(location.toString());
|
||||
|
|
|
@ -2166,7 +2166,7 @@ IdlInterface.prototype.test_member_iterable = function(member)
|
|||
//@{
|
||||
{
|
||||
var interfaceName = this.name;
|
||||
var isPairIterator = member.idlType instanceof Array;
|
||||
var isPairIterator = member.idlType.length === 2;
|
||||
test(function()
|
||||
{
|
||||
var descriptor = Object.getOwnPropertyDescriptor(self[interfaceName].prototype, Symbol.iterator);
|
||||
|
|
|
@ -176,7 +176,7 @@
|
|||
"status_string": "FAIL"
|
||||
},
|
||||
{
|
||||
"message": "assert_true: {\"sequence\":false,\"generic\":null,\"nullable\":false,\"union\":false,\"idlType\":\"DOMException\"} is not an appropriate return value for the toJSON operation of N expected true got false",
|
||||
"message": "assert_true: {\"type\":\"return-type\",\"sequence\":false,\"generic\":null,\"nullable\":false,\"union\":false,\"idlType\":\"DOMException\"} is not an appropriate return value for the toJSON operation of N expected true got false",
|
||||
"name": "Test toJSON operation of N",
|
||||
"properties": {},
|
||||
"stack": "(implementation-defined)",
|
||||
|
|
|
@ -13,7 +13,7 @@ policies and contribution forms [3].
|
|||
/* Documentation: http://web-platform-tests.org/writing-tests/testharness-api.html
|
||||
* (../docs/_writing-tests/testharness-api.md) */
|
||||
|
||||
(function ()
|
||||
(function (global_scope)
|
||||
{
|
||||
var debug = false;
|
||||
// default timeout is 10 seconds, test can override if needed
|
||||
|
@ -48,9 +48,6 @@ policies and contribution forms [3].
|
|||
*
|
||||
* // Should return the test harness timeout duration in milliseconds.
|
||||
* float test_timeout();
|
||||
*
|
||||
* // Should return the global scope object.
|
||||
* object global_scope();
|
||||
* };
|
||||
*/
|
||||
|
||||
|
@ -248,10 +245,6 @@ policies and contribution forms [3].
|
|||
return settings.harness_timeout.normal;
|
||||
};
|
||||
|
||||
WindowTestEnvironment.prototype.global_scope = function() {
|
||||
return window;
|
||||
};
|
||||
|
||||
/*
|
||||
* Base TestEnvironment implementation for a generic web worker.
|
||||
*
|
||||
|
@ -344,10 +337,6 @@ policies and contribution forms [3].
|
|||
return null;
|
||||
};
|
||||
|
||||
WorkerTestEnvironment.prototype.global_scope = function() {
|
||||
return self;
|
||||
};
|
||||
|
||||
/*
|
||||
* Dedicated web workers.
|
||||
* https://html.spec.whatwg.org/multipage/workers.html#dedicatedworkerglobalscope
|
||||
|
@ -463,23 +452,23 @@ policies and contribution forms [3].
|
|||
};
|
||||
|
||||
function create_test_environment() {
|
||||
if ('document' in self) {
|
||||
if ('document' in global_scope) {
|
||||
return new WindowTestEnvironment();
|
||||
}
|
||||
if ('DedicatedWorkerGlobalScope' in self &&
|
||||
self instanceof DedicatedWorkerGlobalScope) {
|
||||
if ('DedicatedWorkerGlobalScope' in global_scope &&
|
||||
global_scope instanceof DedicatedWorkerGlobalScope) {
|
||||
return new DedicatedWorkerTestEnvironment();
|
||||
}
|
||||
if ('SharedWorkerGlobalScope' in self &&
|
||||
self instanceof SharedWorkerGlobalScope) {
|
||||
if ('SharedWorkerGlobalScope' in global_scope &&
|
||||
global_scope instanceof SharedWorkerGlobalScope) {
|
||||
return new SharedWorkerTestEnvironment();
|
||||
}
|
||||
if ('ServiceWorkerGlobalScope' in self &&
|
||||
self instanceof ServiceWorkerGlobalScope) {
|
||||
if ('ServiceWorkerGlobalScope' in global_scope &&
|
||||
global_scope instanceof ServiceWorkerGlobalScope) {
|
||||
return new ServiceWorkerTestEnvironment();
|
||||
}
|
||||
if ('WorkerGlobalScope' in self &&
|
||||
self instanceof WorkerGlobalScope) {
|
||||
if ('WorkerGlobalScope' in global_scope &&
|
||||
global_scope instanceof WorkerGlobalScope) {
|
||||
return new DedicatedWorkerTestEnvironment();
|
||||
}
|
||||
|
||||
|
@ -489,13 +478,13 @@ policies and contribution forms [3].
|
|||
var test_environment = create_test_environment();
|
||||
|
||||
function is_shared_worker(worker) {
|
||||
return 'SharedWorker' in self && worker instanceof SharedWorker;
|
||||
return 'SharedWorker' in global_scope && worker instanceof SharedWorker;
|
||||
}
|
||||
|
||||
function is_service_worker(worker) {
|
||||
// The worker object may be from another execution context,
|
||||
// so do not use instanceof here.
|
||||
return 'ServiceWorker' in self &&
|
||||
return 'ServiceWorker' in global_scope &&
|
||||
Object.prototype.toString.call(worker) == '[object ServiceWorker]';
|
||||
}
|
||||
|
||||
|
@ -2824,7 +2813,7 @@ policies and contribution forms [3].
|
|||
function expose(object, name)
|
||||
{
|
||||
var components = name.split(".");
|
||||
var target = test_environment.global_scope();
|
||||
var target = global_scope;
|
||||
for (var i = 0; i < components.length - 1; i++) {
|
||||
if (!(components[i] in target)) {
|
||||
target[components[i]] = {};
|
||||
|
@ -2846,7 +2835,7 @@ policies and contribution forms [3].
|
|||
/** Returns the 'src' URL of the first <script> tag in the page to include the file 'testharness.js'. */
|
||||
function get_script_url()
|
||||
{
|
||||
if (!('document' in self)) {
|
||||
if (!('document' in global_scope)) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
|
@ -2954,5 +2943,5 @@ policies and contribution forms [3].
|
|||
|
||||
test_environment.on_tests_ready();
|
||||
|
||||
})();
|
||||
})(this);
|
||||
// vim: set expandtab shiftwidth=4 tabstop=4:
|
||||
|
|
|
@ -2,3 +2,4 @@ language: node_js
|
|||
node_js:
|
||||
- node
|
||||
- lts/*
|
||||
- 6
|
||||
|
|
|
@ -1,5 +1,73 @@
|
|||
# Change Log
|
||||
|
||||
## [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)
|
||||
|
||||
|
@ -9,7 +77,7 @@
|
|||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Remove m postfix from all\_ws\(\) [\#108](https://github.com/w3c/webidl2.js/pull/108) ([SaschaNaz](https://github.com/SaschaNaz))
|
||||
- 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)
|
||||
|
@ -21,9 +89,9 @@
|
|||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Support mixins + includes statements [\#105](https://github.com/w3c/webidl2.js/pull/105) ([SaschaNaz](https://github.com/SaschaNaz))
|
||||
- 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))
|
||||
- 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)
|
||||
|
@ -54,7 +122,7 @@
|
|||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Use ES2015 syntax for tests [\#88](https://github.com/w3c/webidl2.js/pull/88) ([SaschaNaz](https://github.com/SaschaNaz))
|
||||
- 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)
|
||||
|
@ -73,7 +141,7 @@
|
|||
|
||||
**Merged pull requests:**
|
||||
|
||||
- BREAKING CHANGE: Use ES2015 syntax [\#84](https://github.com/w3c/webidl2.js/pull/84) ([SaschaNaz](https://github.com/SaschaNaz))
|
||||
- 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)
|
||||
|
@ -85,8 +153,8 @@
|
|||
|
||||
**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))
|
||||
- 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)
|
||||
|
@ -98,7 +166,7 @@
|
|||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Support TypeWithExtendedAttributes on generics [\#75](https://github.com/w3c/webidl2.js/pull/75) ([SaschaNaz](https://github.com/SaschaNaz))
|
||||
- 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)
|
||||
|
@ -112,7 +180,7 @@
|
|||
**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))
|
||||
- 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)
|
||||
|
@ -123,7 +191,7 @@
|
|||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Test for latest LTS/stable node versions [\#69](https://github.com/w3c/webidl2.js/pull/69) ([SaschaNaz](https://github.com/SaschaNaz))
|
||||
- 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)
|
||||
|
@ -135,8 +203,8 @@
|
|||
|
||||
**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))
|
||||
- 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)
|
||||
|
@ -157,7 +225,7 @@
|
|||
- 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))
|
||||
- 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))
|
||||
|
|
|
@ -310,7 +310,6 @@ A typedef looks like this:
|
|||
```JS
|
||||
{
|
||||
"type": "typedef",
|
||||
"typeExtAttrs": [],
|
||||
"idlType": {
|
||||
"sequence": true,
|
||||
"generic": "sequence",
|
||||
|
@ -336,8 +335,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
|
||||
|
||||
|
@ -489,34 +486,6 @@ The fields are as follows:
|
|||
* `value`: The constant value as described by [Const Values](#default-and-const-values)
|
||||
* `extAttrs`: A list of [extended attributes](#extended-attributes).
|
||||
|
||||
### Iterator Member
|
||||
|
||||
Iterator members look like this
|
||||
|
||||
```JS
|
||||
{
|
||||
"type": "iterator",
|
||||
"getter": false,
|
||||
"setter": false,
|
||||
"deleter": false,
|
||||
"static": false,
|
||||
"stringifier": false,
|
||||
"idlType": {
|
||||
"sequence": false,
|
||||
"generic": null,
|
||||
"nullable": 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:
|
||||
|
@ -611,7 +580,7 @@ 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).
|
||||
|
||||
|
|
|
@ -1,33 +1,82 @@
|
|||
"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-Z_a-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-Z_a-z]/y
|
||||
};
|
||||
|
||||
function attemptTokenMatch(str, type, re, lastIndex, tokens) {
|
||||
re.lastIndex = lastIndex;
|
||||
const result = re.exec(str);
|
||||
if (result) {
|
||||
tokens.push({ type, value: result[0] });
|
||||
return re.lastIndex;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
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;
|
||||
while (lastIndex < str.length) {
|
||||
const nextChar = str.charAt(lastIndex);
|
||||
let result = -1;
|
||||
if (/[-0-9.]/.test(nextChar)) {
|
||||
result = attemptTokenMatch(str, "float", tokenRe.float, lastIndex,
|
||||
tokens);
|
||||
if (result === -1) {
|
||||
result = attemptTokenMatch(str, "integer", tokenRe.integer, lastIndex,
|
||||
tokens);
|
||||
}
|
||||
if (result === -1) {
|
||||
// '-' and '.' can also match "other".
|
||||
result = attemptTokenMatch(str, "other", tokenRe.other,
|
||||
lastIndex, tokens);
|
||||
}
|
||||
} else if (/[A-Z_a-z]/.test(nextChar)) {
|
||||
result = attemptTokenMatch(str, "identifier", tokenRe.identifier,
|
||||
lastIndex, tokens);
|
||||
} else if (nextChar === '"') {
|
||||
result = attemptTokenMatch(str, "string", tokenRe.string,
|
||||
lastIndex, tokens);
|
||||
if (result === -1) {
|
||||
// '"' can also match "other".
|
||||
result = attemptTokenMatch(str, "other", tokenRe.other,
|
||||
lastIndex, tokens);
|
||||
}
|
||||
} else if (/[\t\n\r ]/.test(nextChar)) {
|
||||
result = attemptTokenMatch(str, "whitespace", tokenRe.whitespace,
|
||||
lastIndex, tokens);
|
||||
} else if (nextChar === '/') {
|
||||
// The parser expects comments to be labelled as "whitespace".
|
||||
result = attemptTokenMatch(str, "whitespace", tokenRe.comment,
|
||||
lastIndex, tokens);
|
||||
if (result === -1) {
|
||||
// '/' can also match "other".
|
||||
result = attemptTokenMatch(str, "other", tokenRe.other,
|
||||
lastIndex, tokens);
|
||||
}
|
||||
} else {
|
||||
result = attemptTokenMatch(str, "other", tokenRe.other,
|
||||
lastIndex, tokens);
|
||||
}
|
||||
if (matched) continue;
|
||||
throw new Error("Token stream not progressing");
|
||||
if (result === -1) {
|
||||
throw new Error("Token stream not progressing");
|
||||
}
|
||||
lastIndex = result;
|
||||
}
|
||||
return tokens;
|
||||
};
|
||||
}
|
||||
|
||||
class WebIDLParseError {
|
||||
constructor(str, line, input, tokens) {
|
||||
|
@ -46,6 +95,7 @@
|
|||
let line = 1;
|
||||
tokens = tokens.slice();
|
||||
const names = new Map();
|
||||
let current = null;
|
||||
|
||||
const FLOAT = "float";
|
||||
const INT = "integer";
|
||||
|
@ -58,7 +108,7 @@
|
|||
getter: false,
|
||||
setter: false,
|
||||
deleter: false,
|
||||
"static": false,
|
||||
static: false,
|
||||
stringifier: false
|
||||
});
|
||||
|
||||
|
@ -70,8 +120,18 @@
|
|||
tok += tokens[numTokens].value;
|
||||
numTokens++;
|
||||
}
|
||||
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)) {
|
||||
|
@ -87,23 +147,34 @@
|
|||
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(/^_/, "");
|
||||
if (type === ID && last_token.value.startsWith('_'))
|
||||
last_token.value = last_token.value.substring(1);
|
||||
return last_token;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
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 ws() {
|
||||
if (!tokens.length) return;
|
||||
if (tokens[0].type === "whitespace") {
|
||||
const t = tokens.shift();
|
||||
t.value.replace(/\n/g, m => {
|
||||
line++;
|
||||
return m;
|
||||
});
|
||||
line += count(t.value, '\n');
|
||||
return t;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const all_ws_re = {
|
||||
"ws": /([\t\n\r ]+)/y,
|
||||
"line-comment": /\/\/(.*)\r?\n?/y,
|
||||
"multiline-comment": /\/\*((?:[^*]|\*[^/])*)\*\//y
|
||||
};
|
||||
function all_ws(store, pea) { // pea == post extended attribute, tpea = same for types
|
||||
const t = { type: "whitespace", value: "" };
|
||||
while (true) {
|
||||
|
@ -114,31 +185,30 @@
|
|||
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 lastIndex = 0;
|
||||
while (lastIndex < 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 });
|
||||
// Servo doesn't support using "const" in this construction yet.
|
||||
// See https://github.com/servo/servo/issues/20231.
|
||||
// |type| can be made const once Servo supports it.
|
||||
for (let type in all_ws_re) {
|
||||
const re = all_ws_re[type];
|
||||
re.lastIndex = lastIndex;
|
||||
const result = re.exec(w);
|
||||
if (result) {
|
||||
store.push({ type: type + (pea ? ("-" + pea) : ""), value: result[1] });
|
||||
matched = true;
|
||||
return "";
|
||||
});
|
||||
if (matched) break;
|
||||
lastIndex = re.lastIndex;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (matched) continue;
|
||||
throw new Error("Surprising white space construct."); // this shouldn't happen
|
||||
if (!matched)
|
||||
throw new Error("Surprising white space construct."); // this shouldn't happen
|
||||
}
|
||||
}
|
||||
return t;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function integer_type() {
|
||||
let ret = "";
|
||||
|
@ -153,7 +223,7 @@
|
|||
return ret;
|
||||
}
|
||||
if (ret) error("Failed to parse integer type");
|
||||
};
|
||||
}
|
||||
|
||||
function float_type() {
|
||||
let ret = "";
|
||||
|
@ -163,7 +233,7 @@
|
|||
if (consume(ID, "float")) return ret + "float";
|
||||
if (consume(ID, "double")) return ret + "double";
|
||||
if (ret) error("Failed to parse float type");
|
||||
};
|
||||
}
|
||||
|
||||
function primitive_type() {
|
||||
const num_type = integer_type() || float_type();
|
||||
|
@ -172,7 +242,7 @@
|
|||
if (consume(ID, "boolean")) return "boolean";
|
||||
if (consume(ID, "byte")) return "byte";
|
||||
if (consume(ID, "octet")) return "octet";
|
||||
};
|
||||
}
|
||||
|
||||
function const_value() {
|
||||
if (consume(ID, "true")) return { type: "boolean", value: true };
|
||||
|
@ -187,7 +257,7 @@
|
|||
if (consume(ID, "Infinity")) return { type: "Infinity", negative: true };
|
||||
else tokens.unshift(tok);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function type_suffix(obj) {
|
||||
while (true) {
|
||||
|
@ -197,11 +267,11 @@
|
|||
obj.nullable = true;
|
||||
} else return;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function single_type() {
|
||||
function single_type(typeName) {
|
||||
const prim = primitive_type();
|
||||
const ret = { sequence: false, generic: null, nullable: false, union: false };
|
||||
const ret = { type: typeName || null, sequence: false, generic: null, nullable: false, union: false };
|
||||
let name;
|
||||
let value;
|
||||
if (prim) {
|
||||
|
@ -219,7 +289,7 @@
|
|||
const types = [];
|
||||
do {
|
||||
all_ws();
|
||||
types.push(type_with_extended_attributes() || error("Error parsing generic type " + value));
|
||||
types.push(type_with_extended_attributes(typeName) || error("Error parsing generic type " + value));
|
||||
all_ws();
|
||||
}
|
||||
while (consume(OTHER, ","));
|
||||
|
@ -248,12 +318,12 @@
|
|||
type_suffix(ret);
|
||||
if (ret.nullable && ret.idlType === "any") error("Type any cannot be made nullable");
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
function union_type() {
|
||||
function union_type(typeName) {
|
||||
all_ws();
|
||||
if (!consume(OTHER, "(")) return;
|
||||
const ret = { sequence: false, generic: null, nullable: false, union: true, idlType: [] };
|
||||
const ret = { type: typeName || null, 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) {
|
||||
|
@ -265,18 +335,18 @@
|
|||
if (!consume(OTHER, ")")) 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 };
|
||||
|
@ -287,7 +357,7 @@
|
|||
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);
|
||||
return;
|
||||
|
@ -322,7 +392,7 @@
|
|||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
function argument_list(store) {
|
||||
const ret = [];
|
||||
|
@ -335,7 +405,7 @@
|
|||
const nxt = argument(store ? ret : null) || error("Trailing comma in arguments list");
|
||||
ret.push(nxt);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function simple_extended_attr(store) {
|
||||
all_ws();
|
||||
|
@ -386,7 +456,7 @@
|
|||
consume(OTHER, ")") || error("Unexpected token in extended attribute argument list");
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
// Note: we parse something simpler than the official syntax. It's all that ever
|
||||
// seems to be used
|
||||
|
@ -406,7 +476,7 @@
|
|||
all_ws();
|
||||
consume(OTHER, "]") || error("No end of extended attribute");
|
||||
return eas;
|
||||
};
|
||||
}
|
||||
|
||||
function default_() {
|
||||
all_ws();
|
||||
|
@ -420,11 +490,11 @@
|
|||
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);
|
||||
return str;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function const_(store) {
|
||||
all_ws(store, "pea");
|
||||
|
@ -436,7 +506,7 @@
|
|||
typ = consume(ID) || error("No type for const");
|
||||
typ = typ.value;
|
||||
}
|
||||
ret.idlType = typ;
|
||||
ret.idlType = { type: "const-type", idlType: typ };
|
||||
all_ws();
|
||||
if (consume(OTHER, "?")) {
|
||||
ret.nullable = true;
|
||||
|
@ -453,7 +523,7 @@
|
|||
all_ws();
|
||||
consume(OTHER, ";") || error("Unterminated const");
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
function inheritance() {
|
||||
all_ws();
|
||||
|
@ -462,7 +532,7 @@
|
|||
const inh = consume(ID) || error("No type in inheritance");
|
||||
return inh.value;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function operation_rest(ret, store) {
|
||||
all_ws();
|
||||
|
@ -477,7 +547,7 @@
|
|||
all_ws();
|
||||
consume(OTHER, ";") || error("Unterminated operation");
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
function callback(store) {
|
||||
all_ws(store, "pea");
|
||||
|
@ -486,12 +556,11 @@
|
|||
all_ws();
|
||||
const tok = consume(ID, "interface");
|
||||
if (tok) {
|
||||
ret = interface_rest();
|
||||
ret.type = "callback interface";
|
||||
ret = interface_rest(false, store, "callback interface");
|
||||
return ret;
|
||||
}
|
||||
const name = consume(ID) || error("No name for callback");
|
||||
ret = { type: "callback", name: sanitize_name(name.value, "callback") };
|
||||
ret = current = { type: "callback", name: sanitize_name(name.value, "callback") };
|
||||
all_ws();
|
||||
consume(OTHER, "=") || error("No assignment in callback");
|
||||
all_ws();
|
||||
|
@ -504,14 +573,14 @@
|
|||
all_ws();
|
||||
consume(OTHER, ";") || error("Unterminated callback");
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
function attribute(store) {
|
||||
all_ws(store, "pea");
|
||||
const grabbed = [];
|
||||
const ret = {
|
||||
type: "attribute",
|
||||
"static": false,
|
||||
static: false,
|
||||
stringifier: false,
|
||||
inherit: false,
|
||||
readonly: false
|
||||
|
@ -519,7 +588,7 @@
|
|||
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 (ret.static || ret.stringifier) error("Cannot have a static or stringifier inherit");
|
||||
ret.inherit = true;
|
||||
grabbed.push(last_token);
|
||||
const w = all_ws();
|
||||
|
@ -536,14 +605,14 @@
|
|||
tokens = grabbed.concat(tokens);
|
||||
}
|
||||
return rest;
|
||||
};
|
||||
}
|
||||
|
||||
function attribute_rest(ret) {
|
||||
if (!consume(ID, "attribute")) {
|
||||
return;
|
||||
}
|
||||
all_ws();
|
||||
ret.idlType = type_with_extended_attributes() || error("No type in attribute");
|
||||
ret.idlType = type_with_extended_attributes("attribute-type") || error("No type in attribute");
|
||||
if (ret.idlType.sequence) error("Attributes cannot accept sequence types");
|
||||
if (ret.idlType.generic === "record") error("Attributes cannot accept record types");
|
||||
all_ws();
|
||||
|
@ -552,17 +621,17 @@
|
|||
all_ws();
|
||||
consume(OTHER, ";") || error("Unterminated attribute");
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
function return_type() {
|
||||
const typ = type();
|
||||
const typ = type("return-type");
|
||||
if (!typ) {
|
||||
if (consume(ID, "void")) {
|
||||
return "void";
|
||||
} else error("No return type");
|
||||
}
|
||||
return typ;
|
||||
};
|
||||
}
|
||||
|
||||
function operation(store) {
|
||||
all_ws(store, "pea");
|
||||
|
@ -582,24 +651,9 @@
|
|||
}
|
||||
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;
|
||||
}
|
||||
};
|
||||
operation_rest(ret, store);
|
||||
return ret;
|
||||
}
|
||||
|
||||
function static_member(store) {
|
||||
all_ws(store, "pea");
|
||||
|
@ -631,7 +685,7 @@
|
|||
arr.push(name.value);
|
||||
} else break;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function iterable_type() {
|
||||
if (consume(ID, "iterable")) return "iterable";
|
||||
|
@ -639,13 +693,13 @@
|
|||
else if (consume(ID, "maplike")) return "maplike";
|
||||
else if (consume(ID, "setlike")) return "setlike";
|
||||
else return;
|
||||
};
|
||||
}
|
||||
|
||||
function readonly_iterable_type() {
|
||||
if (consume(ID, "maplike")) return "maplike";
|
||||
else if (consume(ID, "setlike")) return "setlike";
|
||||
else return;
|
||||
};
|
||||
}
|
||||
|
||||
function iterable(store) {
|
||||
all_ws(store, "pea");
|
||||
|
@ -672,17 +726,14 @@
|
|||
delete ret.readonly;
|
||||
all_ws();
|
||||
if (consume(OTHER, "<")) {
|
||||
ret.idlType = type_with_extended_attributes() || error(`Error parsing ${ittype} declaration`);
|
||||
ret.idlType = [type_with_extended_attributes()] || error(`Error parsing ${ittype} declaration`);
|
||||
all_ws();
|
||||
if (secondTypeAllowed) {
|
||||
let type2 = null;
|
||||
if (consume(OTHER, ",")) {
|
||||
all_ws();
|
||||
type2 = type_with_extended_attributes();
|
||||
ret.idlType.push(type_with_extended_attributes());
|
||||
all_ws();
|
||||
}
|
||||
if (type2)
|
||||
ret.idlType = [ret.idlType, type2];
|
||||
else if (secondTypeRequired)
|
||||
error(`Missing second type argument in ${ittype} declaration`);
|
||||
}
|
||||
|
@ -693,16 +744,16 @@
|
|||
error(`Error parsing ${ittype} declaration`);
|
||||
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
function interface_rest(isPartial, store) {
|
||||
function interface_rest(isPartial, store, typeName = "interface") {
|
||||
all_ws();
|
||||
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;
|
||||
|
@ -733,7 +784,7 @@
|
|||
mem.extAttrs = ea;
|
||||
ret.members.push(mem);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function mixin_rest(isPartial, store) {
|
||||
all_ws();
|
||||
|
@ -741,10 +792,10 @@
|
|||
all_ws();
|
||||
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();
|
||||
|
@ -787,7 +838,7 @@
|
|||
all_ws();
|
||||
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,
|
||||
|
@ -817,7 +868,7 @@
|
|||
const grabbed = [];
|
||||
const ret = {
|
||||
type: "attribute",
|
||||
"static": false,
|
||||
static: false,
|
||||
stringifier: false,
|
||||
inherit: false,
|
||||
readonly: false
|
||||
|
@ -856,9 +907,8 @@
|
|||
interface_(true, store) ||
|
||||
namespace(true, store) ||
|
||||
error("Partial doesn't apply to anything");
|
||||
thing.partial = true;
|
||||
return thing;
|
||||
};
|
||||
}
|
||||
|
||||
function dictionary(isPartial, store) {
|
||||
all_ws(isPartial ? null : store, "pea");
|
||||
|
@ -866,10 +916,10 @@
|
|||
all_ws();
|
||||
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;
|
||||
|
@ -885,7 +935,7 @@
|
|||
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");
|
||||
const typ = type_with_extended_attributes("dictionary-type") || error("No type for dictionary member");
|
||||
all_ws();
|
||||
const name = consume(ID) || error("No name for dictionary member");
|
||||
const dflt = default_();
|
||||
|
@ -904,7 +954,7 @@
|
|||
all_ws();
|
||||
consume(OTHER, ";") || error("Unterminated dictionary member");
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function enum_(store) {
|
||||
all_ws(store, "pea");
|
||||
|
@ -912,7 +962,7 @@
|
|||
all_ws();
|
||||
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
|
||||
|
@ -928,7 +978,7 @@
|
|||
return ret;
|
||||
}
|
||||
const val = consume(STR) || error("Unexpected value in enum");
|
||||
val.value = val.value.replace(/"/g, "");
|
||||
val.value = val.value.slice(1, -1);
|
||||
ret.values.push(val);
|
||||
all_ws(store ? vals : null);
|
||||
if (consume(OTHER, ",")) {
|
||||
|
@ -939,7 +989,7 @@
|
|||
saw_comma = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function typedef(store) {
|
||||
all_ws(store, "pea");
|
||||
|
@ -948,14 +998,15 @@
|
|||
type: "typedef"
|
||||
};
|
||||
all_ws();
|
||||
ret.idlType = type_with_extended_attributes() || error("No type in typedef");
|
||||
ret.idlType = type_with_extended_attributes("typedef-type") || error("No type in typedef");
|
||||
all_ws();
|
||||
const name = consume(ID) || error("No name in typedef");
|
||||
ret.name = sanitize_name(name.value, "typedef");
|
||||
current = ret;
|
||||
all_ws();
|
||||
consume(OTHER, ";") || error("Unterminated typedef");
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
function implements_(store) {
|
||||
all_ws(store, "pea");
|
||||
|
@ -978,7 +1029,7 @@
|
|||
tokens.unshift(w);
|
||||
tokens.unshift(target);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function includes(store) {
|
||||
all_ws(store, "pea");
|
||||
|
@ -1001,7 +1052,7 @@
|
|||
tokens.unshift(w);
|
||||
tokens.unshift(target);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function definition(store) {
|
||||
return callback(store) ||
|
||||
|
@ -1013,7 +1064,7 @@
|
|||
implements_(store) ||
|
||||
includes(store) ||
|
||||
namespace(false, store);
|
||||
};
|
||||
}
|
||||
|
||||
function definitions(store) {
|
||||
if (!tokens.length) return [];
|
||||
|
@ -1029,11 +1080,11 @@
|
|||
defs.push(def);
|
||||
}
|
||||
return defs;
|
||||
};
|
||||
}
|
||||
const res = definitions(opt.ws);
|
||||
if (tokens.length) error("Unrecognised tokens");
|
||||
return res;
|
||||
};
|
||||
}
|
||||
|
||||
const obj = {
|
||||
parse(str, opt) {
|
||||
|
|
|
@ -1,78 +1,71 @@
|
|||
(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 = {}) {
|
||||
let curPea = "";
|
||||
let curTPea = "";
|
||||
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) {
|
||||
function wsPea(it) {
|
||||
curPea += it.value;
|
||||
return "";
|
||||
};
|
||||
var wsTPea = function(it) {
|
||||
function wsTPea(it) {
|
||||
curTPea += it.value;
|
||||
return "";
|
||||
};
|
||||
var lineComment = function(it) {
|
||||
return "//" + it.value + "\n";
|
||||
function lineComment(it) {
|
||||
return `//${it.value}\n`;
|
||||
};
|
||||
var multilineComment = function(it) {
|
||||
return "/*" + it.value + "*/";
|
||||
function multilineComment(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, curPea);
|
||||
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, pea) {
|
||||
let ret = extended_attributes(arg.extAttrs, pea);
|
||||
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.name}`;
|
||||
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];
|
||||
function args(its) {
|
||||
let res = "";
|
||||
let pea = "";
|
||||
for (let i = 0, n = its.length; i < n; i++) {
|
||||
const arg = its[i];
|
||||
if (arg.type === "ws") res += arg.value;
|
||||
else if (arg.type === "ws-pea") pea += arg.value;
|
||||
else {
|
||||
|
@ -83,182 +76,198 @@
|
|||
}
|
||||
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 ? args(it["arguments"]) : ""})`;
|
||||
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, pea) {
|
||||
if (!eats || !eats.length) return "";
|
||||
return "[" + eats.map(make_ext_at).join(", ") + "]" + pea;
|
||||
return `[${eats.map(make_ext_at).join(", ")}]${pea}`;
|
||||
};
|
||||
|
||||
var modifiers = "getter setter creator deleter legacycaller stringifier static".split(" ");
|
||||
var operation = function(it) {
|
||||
var ret = extended_attributes(it.extAttrs, curPea);
|
||||
const modifiers = "getter setter creator deleter legacycaller stringifier static".split(" ");
|
||||
function operation(it) {
|
||||
let ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
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"]) + ");";
|
||||
ret += `(${args(it["arguments"])});`;
|
||||
return ret;
|
||||
};
|
||||
|
||||
var attribute = function(it) {
|
||||
var ret = extended_attributes(it.extAttrs, curPea);
|
||||
function attribute(it) {
|
||||
let ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
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 + ";";
|
||||
ret += `attribute ${type(it.idlType)} ${it.name};`;
|
||||
return ret;
|
||||
};
|
||||
|
||||
var interface_ = function(it) {
|
||||
var ret = extended_attributes(it.extAttrs, curPea);
|
||||
function interface_(it) {
|
||||
let ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
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);
|
||||
function interface_mixin(it) {
|
||||
let ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
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, curPea);
|
||||
curPea = "";
|
||||
if (it.partial) ret += "partial ";
|
||||
ret += `namespace ${it.name} `;
|
||||
ret += `{${iterate(it.members)}};`;
|
||||
return ret;
|
||||
}
|
||||
|
||||
function dictionary(it) {
|
||||
let ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
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);
|
||||
function field(it) {
|
||||
let ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
if (it.required) ret += "required ";
|
||||
ret += type(it.idlType) + " " + it.name;
|
||||
if (it["default"]) ret += " = " + const_value(it["default"]);
|
||||
ret += `${type(it.idlType)} ${it.name}`;
|
||||
if (it["default"]) ret += ` = ${const_value(it["default"])}`;
|
||||
ret += ";";
|
||||
return ret;
|
||||
};
|
||||
var exception = function(it) {
|
||||
var ret = extended_attributes(it.extAttrs, curPea);
|
||||
function const_(it) {
|
||||
const ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
ret += "exception " + it.name + " ";
|
||||
if (it.inheritance) ret += ": " + it.inheritance + " ";
|
||||
ret += "{" + iterate(it.members) + "};";
|
||||
return ret;
|
||||
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);
|
||||
function typedef(it) {
|
||||
let ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
return ret + "const " + type(it.idlType) + " " + it.name + " = " + const_value(it.value) + ";";
|
||||
};
|
||||
var typedef = function(it) {
|
||||
var ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
ret += "typedef " + extended_attributes(it.typeExtAttrs, curTPea);
|
||||
ret += `typedef ${extended_attributes(it.typeExtAttrs, curTPea)}`;
|
||||
curTPea = "";
|
||||
return ret + type(it.idlType) + " " + it.name + ";";
|
||||
return `${ret}${type(it.idlType)} ${it.name};`;
|
||||
};
|
||||
var implements_ = function(it) {
|
||||
var ret = extended_attributes(it.extAttrs, curPea);
|
||||
function implements_(it) {
|
||||
const ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
return ret + it.target + " implements " + it["implements"] + ";";
|
||||
return `${ret}${it.target} implements ${it["implements"]};`;
|
||||
};
|
||||
var callback = function(it) {
|
||||
var ret = extended_attributes(it.extAttrs, curPea);
|
||||
function includes(it) {
|
||||
const ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
return ret + "callback " + it.name + " = " + type(it.idlType) +
|
||||
"(" + args(it["arguments"]) + ");";
|
||||
return `${ret}${it.target} includes ${it.includes};`;
|
||||
};
|
||||
var enum_ = function(it) {
|
||||
var ret = extended_attributes(it.extAttrs, curPea);
|
||||
function callback(it) {
|
||||
const 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 + '"';
|
||||
return `${ret}callback ${it.name} = ${type(it.idlType)}(${args(it["arguments"])});`;
|
||||
};
|
||||
function enum_(it) {
|
||||
let ret = extended_attributes(it.extAttrs, curPea);
|
||||
curPea = "";
|
||||
ret += `enum ${it.name} {`;
|
||||
for (const v of it.values) {
|
||||
if (v.type === "string") ret += `"${v.value}"`;
|
||||
else if (v.type === "ws") ret += v.value;
|
||||
else if (v.type === ",") 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 = {
|
||||
const 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_,
|
||||
iterable: iterable,
|
||||
legacyiterable: legacyiterable,
|
||||
maplike: maplike,
|
||||
setlike: setlike,
|
||||
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;
|
||||
}
|
||||
}());
|
||||
})();
|
||||
|
|
|
@ -1,25 +1,52 @@
|
|||
{
|
||||
"name": "webidl2",
|
||||
"version": "4.2.0",
|
||||
"version": "10.2.1",
|
||||
"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.3.2",
|
||||
"esutils": "2.0.2",
|
||||
"js-tokens": "3.0.2"
|
||||
}
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
|
||||
"integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
|
||||
"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": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
|
||||
"integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
|
||||
"dev": true
|
||||
"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.1"
|
||||
}
|
||||
},
|
||||
"arr-diff": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
|
||||
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arr-flatten": "1.1.0"
|
||||
}
|
||||
},
|
||||
"arr-flatten": {
|
||||
"version": "1.1.0",
|
||||
|
@ -40,34 +67,51 @@
|
|||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
|
||||
"integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
|
||||
"dev": true
|
||||
"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
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"expand-range": "1.8.2",
|
||||
"preserve": "0.2.0",
|
||||
"repeat-element": "1.1.2"
|
||||
}
|
||||
},
|
||||
"browser-stdout": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
|
||||
"integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
|
||||
"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": "0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
|
||||
"integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
|
||||
"dev": true
|
||||
"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.0",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
|
||||
"integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
|
||||
"dev": true
|
||||
"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.3"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.3",
|
||||
|
@ -76,9 +120,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
|
||||
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
|
||||
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
|
@ -88,15 +132,24 @@
|
|||
"dev": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
|
||||
"integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=",
|
||||
"dev": true
|
||||
"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.2.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz",
|
||||
"integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=",
|
||||
"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": {
|
||||
|
@ -105,37 +158,52 @@
|
|||
"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
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-posix-bracket": "0.1.1"
|
||||
}
|
||||
},
|
||||
"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
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fill-range": "2.2.3"
|
||||
}
|
||||
},
|
||||
"expect": {
|
||||
"version": "21.2.1",
|
||||
"resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz",
|
||||
"integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==",
|
||||
"version": "22.4.0",
|
||||
"resolved": "https://registry.npmjs.org/expect/-/expect-22.4.0.tgz",
|
||||
"integrity": "sha512-Fiy862jT3qc70hwIHwwCBNISmaqBrfWKKrtqyMJ6iwZr+6KXtcnHojZFtd63TPRvRl8EQTJ+YXYy2lK6/6u+Hw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
||||
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
||||
"dev": true
|
||||
}
|
||||
"requires": {
|
||||
"ansi-styles": "3.2.1",
|
||||
"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
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-extglob": "1.0.0"
|
||||
}
|
||||
},
|
||||
"filename-regex": {
|
||||
"version": "2.0.1",
|
||||
|
@ -147,7 +215,14 @@
|
|||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
|
||||
"integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-number": "2.1.0",
|
||||
"isobject": "2.1.0",
|
||||
"randomatic": "1.1.7",
|
||||
"repeat-element": "1.1.2",
|
||||
"repeat-string": "1.6.1"
|
||||
}
|
||||
},
|
||||
"for-in": {
|
||||
"version": "1.0.2",
|
||||
|
@ -159,7 +234,10 @@
|
|||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
|
||||
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"for-in": "1.0.2"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
|
@ -168,52 +246,65 @@
|
|||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
|
||||
"integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
|
||||
"dev": true
|
||||
"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.6",
|
||||
"inherits": "2.0.3",
|
||||
"minimatch": "3.0.4",
|
||||
"once": "1.4.0",
|
||||
"path-is-absolute": "1.0.1"
|
||||
}
|
||||
},
|
||||
"glob-base": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
|
||||
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob-parent": "2.0.0",
|
||||
"is-glob": "2.0.1"
|
||||
}
|
||||
},
|
||||
"glob-parent": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
|
||||
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
|
||||
"dev": true
|
||||
},
|
||||
"graceful-readlink": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
|
||||
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-glob": "2.0.1"
|
||||
}
|
||||
},
|
||||
"growl": {
|
||||
"version": "1.9.2",
|
||||
"resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
|
||||
"integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
|
||||
"dev": true
|
||||
},
|
||||
"has-ansi": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
|
||||
"integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
|
||||
"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": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
|
||||
"integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
|
||||
"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
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "1.4.0",
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
|
@ -222,9 +313,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"is-buffer": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
|
||||
"integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
|
||||
"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": {
|
||||
|
@ -237,7 +328,10 @@
|
|||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
|
||||
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-primitive": "2.0.0"
|
||||
}
|
||||
},
|
||||
"is-extendable": {
|
||||
"version": "0.1.1",
|
||||
|
@ -255,13 +349,19 @@
|
|||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
|
||||
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
|
||||
"dev": true
|
||||
"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
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"kind-of": "3.2.2"
|
||||
}
|
||||
},
|
||||
"is-posix-bracket": {
|
||||
"version": "0.1.1",
|
||||
|
@ -285,199 +385,113 @@
|
|||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
|
||||
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"isarray": "1.0.0"
|
||||
}
|
||||
},
|
||||
"jest-diff": {
|
||||
"version": "21.2.1",
|
||||
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz",
|
||||
"integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==",
|
||||
"version": "22.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.0.tgz",
|
||||
"integrity": "sha512-+/t20WmnkOkB8MOaGaPziI8zWKxquMvYw4Ub+wOzi7AUhmpFXz43buWSxVoZo4J5RnCozpGbX3/FssjJ5KV9Nw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
||||
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
|
||||
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"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": {
|
||||
"chalk": "2.3.2",
|
||||
"diff": "3.5.0",
|
||||
"jest-get-type": "22.1.0",
|
||||
"pretty-format": "22.4.0"
|
||||
}
|
||||
},
|
||||
"jest-get-type": {
|
||||
"version": "21.2.0",
|
||||
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz",
|
||||
"integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==",
|
||||
"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": "21.2.1",
|
||||
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz",
|
||||
"integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==",
|
||||
"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,
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
||||
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
|
||||
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"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": {
|
||||
"chalk": "2.3.2",
|
||||
"jest-get-type": "22.1.0",
|
||||
"pretty-format": "22.4.0"
|
||||
}
|
||||
},
|
||||
"jest-message-util": {
|
||||
"version": "21.2.1",
|
||||
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz",
|
||||
"integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==",
|
||||
"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,
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
||||
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
|
||||
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"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": {
|
||||
"@babel/code-frame": "7.0.0-beta.40",
|
||||
"chalk": "2.3.2",
|
||||
"micromatch": "2.3.11",
|
||||
"slash": "1.0.0",
|
||||
"stack-utils": "1.0.1"
|
||||
}
|
||||
},
|
||||
"jest-regex-util": {
|
||||
"version": "21.2.0",
|
||||
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz",
|
||||
"integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==",
|
||||
"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
|
||||
},
|
||||
"json3": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
|
||||
"integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
|
||||
"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.2.4",
|
||||
"resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.2.4.tgz",
|
||||
"integrity": "sha1-1LbFOz/H2htLkcHCrsi5MrdRHVw=",
|
||||
"dev": true
|
||||
"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.2",
|
||||
"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
|
||||
},
|
||||
"lodash._baseassign": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
|
||||
"integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._basecopy": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
|
||||
"integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._basecreate": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
|
||||
"integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._getnative": {
|
||||
"version": "3.9.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
|
||||
"integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._isiterateecall": {
|
||||
"version": "3.0.9",
|
||||
"resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
|
||||
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.create": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
|
||||
"integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.isarguments": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
|
||||
"integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.isarray": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
|
||||
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.keys": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
|
||||
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-buffer": "1.1.6"
|
||||
}
|
||||
},
|
||||
"micromatch": {
|
||||
"version": "2.3.11",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
|
||||
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arr-diff": "2.0.0",
|
||||
"array-unique": "0.2.1",
|
||||
"braces": "1.8.5",
|
||||
"expand-brackets": "0.1.5",
|
||||
"extglob": "0.3.2",
|
||||
"filename-regex": "2.0.1",
|
||||
"is-extglob": "1.0.0",
|
||||
"is-glob": "2.0.1",
|
||||
"kind-of": "3.2.2",
|
||||
"normalize-path": "2.1.1",
|
||||
"object.omit": "2.0.1",
|
||||
"parse-glob": "3.0.4",
|
||||
"regex-cache": "0.4.4"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "1.1.11"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
|
@ -489,51 +503,91 @@
|
|||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
},
|
||||
"mocha": {
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-3.4.1.tgz",
|
||||
"integrity": "sha1-o4ArSqOBk0yss43nDPdxYh2o+a8=",
|
||||
"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": {
|
||||
"supports-color": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
|
||||
"integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
|
||||
"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": "0.7.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
|
||||
"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
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"remove-trailing-separator": "1.1.0"
|
||||
}
|
||||
},
|
||||
"object.omit": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
|
||||
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"for-own": "0.1.5",
|
||||
"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
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
},
|
||||
"parse-glob": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
|
||||
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob-base": "0.3.0",
|
||||
"is-dotfile": "1.0.3",
|
||||
"is-extglob": "1.0.0",
|
||||
"is-glob": "2.0.1"
|
||||
}
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
|
@ -548,23 +602,13 @@
|
|||
"dev": true
|
||||
},
|
||||
"pretty-format": {
|
||||
"version": "21.2.1",
|
||||
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz",
|
||||
"integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==",
|
||||
"version": "22.4.0",
|
||||
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz",
|
||||
"integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"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.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
||||
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
||||
"dev": true
|
||||
}
|
||||
"requires": {
|
||||
"ansi-regex": "3.0.0",
|
||||
"ansi-styles": "3.2.1"
|
||||
}
|
||||
},
|
||||
"randomatic": {
|
||||
|
@ -572,18 +616,28 @@
|
|||
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
|
||||
"integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-number": "3.0.0",
|
||||
"kind-of": "4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"is-number": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
|
||||
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"kind-of": "3.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"kind-of": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-buffer": "1.1.6"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -591,7 +645,10 @@
|
|||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
|
||||
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-buffer": "1.1.6"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -599,7 +656,10 @@
|
|||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
|
||||
"integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-equal-shallow": "0.1.3"
|
||||
}
|
||||
},
|
||||
"remove-trailing-separator": {
|
||||
"version": "1.1.0",
|
||||
|
@ -625,17 +685,20 @@
|
|||
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
|
||||
"integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
|
||||
"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": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
|
||||
"integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
|
||||
"dev": true
|
||||
"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",
|
||||
|
|
|
@ -1,22 +1,24 @@
|
|||
{
|
||||
"name": "webidl2",
|
||||
"description": "A WebIDL Parser",
|
||||
"version": "8.1.0",
|
||||
"version": "10.2.1",
|
||||
"contributors": [
|
||||
"Robin Berjon <robin@berjon.com> (https://berjon.com)",
|
||||
"Marcos Caceres <marcos@marcosc.com> (https://marcosc.com)",
|
||||
"Kagami Sascha Rosylight <saschaplas@outlook.com>"
|
||||
"Kagami Sascha Rosylight <saschaplas@outlook.com>",
|
||||
"Timothy Gu <timothygu99@gmail.com>"
|
||||
],
|
||||
"license": "W3C",
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"expect": "21.2.1",
|
||||
"jsondiffpatch": "0.2.5",
|
||||
"mocha": "4.0.1"
|
||||
"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",
|
||||
"repository": "git://github.com/w3c/webidl2.js",
|
||||
"main": "index"
|
||||
}
|
||||
|
|
|
@ -4,37 +4,17 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
const wp = require("../lib/webidl2");
|
||||
const expect = require("expect");
|
||||
const pth = require("path");
|
||||
const { collect } = require("./util/collect");
|
||||
const fs = require("fs");
|
||||
const expect = require("expect");
|
||||
|
||||
describe("Parses all of the invalid IDLs to check that they blow up correctly", () => {
|
||||
const dir = pth.join(__dirname, "invalid/idl");
|
||||
const skip = {};
|
||||
const idls = fs.readdirSync(dir)
|
||||
.filter(it => (/\.w?idl$/).test(it) && !skip[it])
|
||||
.map(it => pth.join(dir, it));
|
||||
const errors = idls.map(it => pth.join(__dirname, "invalid", "json", pth.basename(it).replace(/\.w?idl/, ".json")));
|
||||
|
||||
for (let i = 0, n = idls.length; i < n; i++) {
|
||||
const idl = idls[i];
|
||||
const err = JSON.parse(fs.readFileSync(errors[i], "utf8"));
|
||||
|
||||
it(`should produce the right error for ${idl}`, () => {
|
||||
let error;
|
||||
try {
|
||||
var ast = wp.parse(fs.readFileSync(idl, "utf8"));
|
||||
console.log(JSON.stringify(ast, null, 4));
|
||||
}
|
||||
catch (e) {
|
||||
error = e;
|
||||
}
|
||||
finally {
|
||||
expect(error).toBeTruthy();
|
||||
expect(error.message).toEqual(err.message);
|
||||
expect(error.line).toEqual(err.line);
|
||||
}
|
||||
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);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
callback interface NoSemicolon {
|
||||
attribute boolean noSemiColon;
|
||||
}
|
||||
|
||||
enum YouNeedOne {
|
||||
"really"
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
partial interface NoSemicolon {
|
||||
attribute boolean noSemiColon;
|
||||
}
|
||||
|
||||
enum YouNeedOne {
|
||||
"really"
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
// This is a comment.
|
||||
/ This is not.
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "No name in attribute",
|
||||
"message": "Got an error during or right after parsing `interface LotteryResults`: No name in attribute",
|
||||
"line": 5
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Invalid operation",
|
||||
"message": "Got an error during or right after parsing `interface NumberQuadrupler`: Invalid operation",
|
||||
"line": 6
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "The name \"Test\" of type \"typedef\" is already seen",
|
||||
"message": "Got an error during or right after parsing `typedef Test`: The name \"Test\" of type \"typedef\" is already seen",
|
||||
"line": 3
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Unrecognised tokens",
|
||||
"message": "Got an error before parsing any named definition: Unrecognised tokens",
|
||||
"line": 4
|
||||
}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"message": "Got an error during or right after parsing `interface SessionManager`: Invalid operation",
|
||||
"line": 5
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Unrecognised tokens"
|
||||
"message": "Got an error before parsing any named definition: Unrecognised tokens"
|
||||
, "line": 2
|
||||
}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"message": "Got an error during or right after parsing `callback interface NoSemicolon`: Missing semicolon after interface",
|
||||
"line": 5
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"message": "Got an error during or right after parsing `partial interface NoSemicolon`: Missing semicolon after interface",
|
||||
"line": 5
|
||||
}
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Can't nullable more than once"
|
||||
"message": "Got an error during or right after parsing `interface NonNullable`: Can't nullable more than once"
|
||||
, "line": 4
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Promise type cannot have extended attribute",
|
||||
"message": "Got an error during or right after parsing `interface Foo`: Promise type cannot have extended attribute",
|
||||
"line": 2
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Unterminated attribute"
|
||||
"message": "Got an error during or right after parsing `interface Person`: Unterminated attribute"
|
||||
, "line": 5
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Invalid operation",
|
||||
"message": "Got an error during or right after parsing `interface ReadonlyIterable`: Invalid operation",
|
||||
"line": 2
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Record key cannot have extended attribute",
|
||||
"message": "Got an error during or right after parsing `interface Foo`: Record key cannot have extended attribute",
|
||||
"line": 2
|
||||
}
|
||||
|
|
|
@ -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 DOMString, USVString, or ByteString",
|
||||
"line": 2
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "No name in typedef"
|
||||
"message": "Got an error before parsing any named definition: No name in typedef"
|
||||
, "line": 2
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Unterminated setlike declaration",
|
||||
"message": "Got an error during or right after parsing `interface SetLikeTwoTypes`: Unterminated setlike declaration",
|
||||
"line": 2
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"message": "Invalid operation",
|
||||
"message": "Got an error during or right after parsing `interface OrderedMap`: Invalid operation",
|
||||
"line": 3
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue