Changeset 284861 in webkit
- Timestamp:
- Oct 26, 2021, 2:46:30 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
bindings/js/ReadableStream.cpp (modified) (2 diffs)
-
bindings/js/ReadableStreamDefaultController.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r284860 r284861 1 2021-10-26 Youenn Fablet <youenn@apple.com> 2 3 Beef up worker termination handling in ReadableStream routines 4 https://bugs.webkit.org/show_bug.cgi?id=231500 5 <rdar://83687915> 6 7 Reviewed by Darin Adler. 8 9 Add some termination/exception checks after getting values from global objects. 10 Covered by existing tests. 11 12 * bindings/js/ReadableStream.cpp: 13 (WebCore::ReadableStream::create): 14 (WebCore::ReadableStream::lock): 15 * bindings/js/ReadableStreamDefaultController.cpp: 16 (WebCore::invokeReadableStreamDefaultControllerFunction): 17 (WebCore::ReadableStreamDefaultController::enqueue): 18 1 19 2021-10-26 Youenn Fablet <youenn@apple.com> 2 20 -
trunk/Source/WebCore/bindings/js/ReadableStream.cpp
r278253 r284861 47 47 48 48 auto* constructor = JSC::asObject(globalObject.get(&lexicalGlobalObject, clientData.builtinNames().ReadableStreamPrivateName())); 49 RETURN_IF_EXCEPTION(scope, Exception { ExistingExceptionError }); 49 50 50 51 auto constructData = getConstructData(vm, constructor); … … 116 117 auto& lexicalGlobalObject = *m_globalObject; 117 118 auto& vm = lexicalGlobalObject.vm(); 118 #if ENABLE(EXCEPTION_SCOPE_VERIFICATION)119 119 auto scope = DECLARE_CATCH_SCOPE(vm); 120 #endif121 120 122 121 auto& clientData = *static_cast<JSVMClientData*>(vm.clientData); 123 122 124 123 auto* constructor = JSC::asObject(m_globalObject->get(&lexicalGlobalObject, clientData.builtinNames().ReadableStreamDefaultReaderPrivateName())); 124 EXCEPTION_ASSERT(!scope.exception() || vm.hasPendingTerminationException()); 125 if (scope.exception()) 126 return; 125 127 126 128 auto constructData = getConstructData(vm, constructor); -
trunk/Source/WebCore/bindings/js/ReadableStreamDefaultController.cpp
r277068 r284861 45 45 JSC::JSLockHolder lock(vm); 46 46 47 auto scope = DECLARE_CATCH_SCOPE(vm); 47 48 auto function = lexicalGlobalObject.get(&lexicalGlobalObject, identifier); 49 50 EXCEPTION_ASSERT(!scope.exception() || vm.hasPendingTerminationException()); 51 RETURN_IF_EXCEPTION(scope, false); 52 48 53 ASSERT(function.isCallable(lexicalGlobalObject.vm())); 49 54 50 auto scope = DECLARE_CATCH_SCOPE(vm);51 55 auto callData = JSC::getCallData(vm, function); 52 56 call(&lexicalGlobalObject, function, callData, JSC::jsUndefined(), arguments); … … 121 125 auto value = toJS(&lexicalGlobalObject, &lexicalGlobalObject, chunk.get()); 122 126 123 if (UNLIKELY(scope.exception())) { 124 ASSERT(vm.hasPendingTerminationException()); 125 return false; 126 } 127 EXCEPTION_ASSERT(!scope.exception() || vm.hasPendingTerminationException()); 128 RETURN_IF_EXCEPTION(scope, false); 127 129 128 130 return enqueue(value);
Note:
See TracChangeset
for help on using the changeset viewer.