Changeset 286904 in webkit
- Timestamp:
- Dec 10, 2021 11:00:12 PM (7 months ago)
- Location:
- trunk
- Files:
-
- 8 edited
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/dom/abort/event.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/dom/abort/event.any.js (modified) (2 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/dom/abort/event.any.worker-expected.txt (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/dom/AbortSignal.cpp (modified) (2 diffs)
-
Source/WebCore/dom/AbortSignal.h (modified) (1 diff)
-
Source/WebCore/dom/AbortSignal.idl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r286898 r286904 1 2021-12-10 Chris Dumez <cdumez@apple.com> 2 3 Implement AbortSignal.throwIfAborted 4 https://bugs.webkit.org/show_bug.cgi?id=234127 5 6 Reviewed by Darin Adler. 7 8 Resync WPT test from upstream to gain test coverage and rebaseline it. 9 10 * web-platform-tests/dom/abort/event.any-expected.txt: 11 * web-platform-tests/dom/abort/event.any.js: 12 * web-platform-tests/dom/abort/event.any.worker-expected.txt: 13 1 14 2021-12-10 Alexey Shvayka <ashvayka@apple.com> 2 15 -
trunk/LayoutTests/imported/w3c/web-platform-tests/dom/abort/event.any-expected.txt
r285428 r286904 8 8 PASS aborting AbortController without reason creates an "AbortError" DOMException 9 9 PASS AbortController abort(undefined) creates an "AbortError" DOMException 10 PASS AbortController abort(null) should set signal.reason 10 11 PASS static aborting signal should have right properties 11 12 PASS static aborting signal with reason should set signal.reason 13 PASS throwIfAborted() should throw abort.reason if signal aborted 14 PASS throwIfAborted() should throw primitive abort.reason if signal aborted 15 PASS throwIfAborted() should not throw if signal not aborted 12 16 -
trunk/LayoutTests/imported/w3c/web-platform-tests/dom/abort/event.any.js
r285428 r286904 112 112 113 113 test(t => { 114 const controller = new AbortController(); 115 const signal = controller.signal; 116 117 assert_true("reason" in signal, "signal has reason property"); 118 assert_equals(signal.reason, undefined, "signal.reason is initially undefined"); 119 120 controller.abort(null); 121 122 assert_true(signal.aborted, "signal.aborted"); 123 assert_equals(signal.reason, null, "signal.reason"); 124 }, "AbortController abort(null) should set signal.reason"); 125 126 test(t => { 114 127 const signal = AbortSignal.abort(); 115 128 … … 127 140 }, "static aborting signal with reason should set signal.reason"); 128 141 142 test(t => { 143 const reason = new Error('boom'); 144 const signal = AbortSignal.abort(reason); 145 assert_true(signal.aborted); 146 assert_throws_exactly(reason, () => signal.throwIfAborted()); 147 }, "throwIfAborted() should throw abort.reason if signal aborted"); 148 149 test(t => { 150 const signal = AbortSignal.abort('hello'); 151 assert_true(signal.aborted); 152 assert_throws_exactly('hello', () => signal.throwIfAborted()); 153 }, "throwIfAborted() should throw primitive abort.reason if signal aborted"); 154 155 test(t => { 156 const controller = new AbortController(); 157 assert_false(controller.signal.aborted); 158 controller.signal.throwIfAborted(); 159 }, "throwIfAborted() should not throw if signal not aborted"); 160 129 161 done(); -
trunk/LayoutTests/imported/w3c/web-platform-tests/dom/abort/event.any.worker-expected.txt
r285428 r286904 8 8 PASS aborting AbortController without reason creates an "AbortError" DOMException 9 9 PASS AbortController abort(undefined) creates an "AbortError" DOMException 10 PASS AbortController abort(null) should set signal.reason 10 11 PASS static aborting signal should have right properties 11 12 PASS static aborting signal with reason should set signal.reason 13 PASS throwIfAborted() should throw abort.reason if signal aborted 14 PASS throwIfAborted() should throw primitive abort.reason if signal aborted 15 PASS throwIfAborted() should not throw if signal not aborted 12 16 -
trunk/Source/WebCore/ChangeLog
r286898 r286904 1 2021-12-10 Chris Dumez <cdumez@apple.com> 2 3 Implement AbortSignal.throwIfAborted 4 https://bugs.webkit.org/show_bug.cgi?id=234127 5 6 Reviewed by Darin Adler. 7 8 Implement AbortSignal.throwIfAborted as per: 9 - https://dom.spec.whatwg.org/#dom-abortsignal-throwifaborted 10 11 No new tests, updated / rebaselined existing test. 12 13 * dom/AbortSignal.cpp: 14 (WebCore::AbortSignal::throwIfAborted): 15 * dom/AbortSignal.h: 16 * dom/AbortSignal.idl: 17 1 18 2021-12-10 Alexey Shvayka <ashvayka@apple.com> 2 19 -
trunk/Source/WebCore/dom/AbortSignal.cpp
r285747 r286904 33 33 #include "JSDOMException.h" 34 34 #include "ScriptExecutionContext.h" 35 #include <JavaScriptCore/Exception.h> 35 36 #include <wtf/IsoMallocInlines.h> 36 37 … … 114 115 } 115 116 117 void AbortSignal::throwIfAborted(JSC::JSGlobalObject& lexicalGlobalObject) 118 { 119 if (!aborted()) 120 return; 121 122 auto& vm = lexicalGlobalObject.vm(); 123 auto scope = DECLARE_THROW_SCOPE(vm); 124 throwException(&lexicalGlobalObject, scope, m_reason); 116 125 } 126 127 } // namespace WebCore -
trunk/Source/WebCore/dom/AbortSignal.h
r285747 r286904 63 63 bool isFollowingSignal() const { return !!m_followingSignal; } 64 64 65 void throwIfAborted(JSC::JSGlobalObject&); 66 65 67 private: 66 68 enum class Aborted : bool { No, Yes }; -
trunk/Source/WebCore/dom/AbortSignal.idl
r285428 r286904 36 36 readonly attribute boolean aborted; 37 37 readonly attribute any reason; 38 [CallWith=GlobalObject] undefined throwIfAborted(); 38 39 39 40 attribute EventHandler onabort;
Note: See TracChangeset
for help on using the changeset viewer.