diff options
author | 2022-06-22 23:21:48 -0700 | |
---|---|---|
committer | 2022-06-22 23:21:48 -0700 | |
commit | 729d445b6885f69dd2c6355f38707bd42851c791 (patch) | |
tree | f87a7c408929ea3f57bbb7ace380cf869da83c0e /src/javascript/jsc/bindings/webcore/ReadableStreamDefaultController.cpp | |
parent | 25f820c6bf1d8ec6d444ef579cc036b8c0607b75 (diff) | |
download | bun-jarred/rename.tar.gz bun-jarred/rename.tar.zst bun-jarred/rename.zip |
change the directory structurejarred/rename
Diffstat (limited to 'src/javascript/jsc/bindings/webcore/ReadableStreamDefaultController.cpp')
-rw-r--r-- | src/javascript/jsc/bindings/webcore/ReadableStreamDefaultController.cpp | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/src/javascript/jsc/bindings/webcore/ReadableStreamDefaultController.cpp b/src/javascript/jsc/bindings/webcore/ReadableStreamDefaultController.cpp deleted file mode 100644 index 229a02d38..000000000 --- a/src/javascript/jsc/bindings/webcore/ReadableStreamDefaultController.cpp +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) 2016 Canon Inc. - * Copyright (C) 2016-2021 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted, provided that the following conditions - * are required to be met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Canon Inc. nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY CANON INC. AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL CANON INC. AND ITS CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" -#include "ReadableStreamDefaultController.h" - -#include "WebCoreJSClientData.h" -#include <JavaScriptCore/CatchScope.h> -#include <JavaScriptCore/HeapInlines.h> -#include <JavaScriptCore/IdentifierInlines.h> -#include <JavaScriptCore/JSObjectInlines.h> -#include <JavaScriptCore/JSCInlines.h> - -namespace WebCore { - -static bool invokeReadableStreamDefaultControllerFunction(JSC::JSGlobalObject& lexicalGlobalObject, const JSC::Identifier& identifier, const JSC::MarkedArgumentBuffer& arguments) -{ - JSC::VM& vm = lexicalGlobalObject.vm(); - JSC::JSLockHolder lock(vm); - - auto scope = DECLARE_CATCH_SCOPE(vm); - auto function = lexicalGlobalObject.get(&lexicalGlobalObject, identifier); - - EXCEPTION_ASSERT(!scope.exception() || vm.hasPendingTerminationException()); - RETURN_IF_EXCEPTION(scope, false); - - ASSERT(function.isCallable()); - - auto callData = JSC::getCallData(function); - call(&lexicalGlobalObject, function, callData, JSC::jsUndefined(), arguments); - EXCEPTION_ASSERT(!scope.exception() || vm.hasPendingTerminationException()); - return !scope.exception(); -} - -void ReadableStreamDefaultController::close() -{ - JSC::MarkedArgumentBuffer arguments; - arguments.append(&jsController()); - - auto* clientData = static_cast<JSVMClientData*>(globalObject().vm().clientData); - auto& privateName = clientData->builtinFunctions().readableStreamInternalsBuiltins().readableStreamDefaultControllerClosePrivateName(); - - invokeReadableStreamDefaultControllerFunction(globalObject(), privateName, arguments); -} - -void ReadableStreamDefaultController::error(const Exception& exception) -{ - JSC::JSGlobalObject& lexicalGlobalObject = this->globalObject(); - auto& vm = lexicalGlobalObject.vm(); - JSC::JSLockHolder lock(vm); - auto scope = DECLARE_CATCH_SCOPE(vm); - auto value = createDOMException(&lexicalGlobalObject, exception.code(), exception.message()); - - if (UNLIKELY(scope.exception())) { - ASSERT(vm.hasPendingTerminationException()); - return; - } - - JSC::MarkedArgumentBuffer arguments; - arguments.append(&jsController()); - arguments.append(value); - - auto* clientData = static_cast<JSVMClientData*>(vm.clientData); - auto& privateName = clientData->builtinFunctions().readableStreamInternalsBuiltins().readableStreamDefaultControllerErrorPrivateName(); - - invokeReadableStreamDefaultControllerFunction(globalObject(), privateName, arguments); -} - -void ReadableStreamDefaultController::error(JSC::JSValue error) -{ - JSC::JSGlobalObject& lexicalGlobalObject = this->globalObject(); - auto& vm = lexicalGlobalObject.vm(); - JSC::JSLockHolder lock(vm); - auto scope = DECLARE_THROW_SCOPE(vm); - auto value = JSC::Exception::create(vm, error); - - if (UNLIKELY(scope.exception())) { - ASSERT(vm.hasPendingTerminationException()); - return; - } - - JSC::MarkedArgumentBuffer arguments; - arguments.append(&jsController()); - arguments.append(value); - - auto* clientData = static_cast<JSVMClientData*>(vm.clientData); - auto& privateName = clientData->builtinFunctions().readableStreamInternalsBuiltins().readableStreamDefaultControllerErrorPrivateName(); - - invokeReadableStreamDefaultControllerFunction(globalObject(), privateName, arguments); -} - -bool ReadableStreamDefaultController::enqueue(JSC::JSValue value) -{ - JSC::JSGlobalObject& lexicalGlobalObject = this->globalObject(); - auto& vm = lexicalGlobalObject.vm(); - JSC::JSLockHolder lock(vm); - - JSC::MarkedArgumentBuffer arguments; - arguments.append(&jsController()); - arguments.append(value); - - auto* clientData = static_cast<JSVMClientData*>(lexicalGlobalObject.vm().clientData); - auto& privateName = clientData->builtinFunctions().readableStreamInternalsBuiltins().readableStreamDefaultControllerEnqueuePrivateName(); - - return invokeReadableStreamDefaultControllerFunction(globalObject(), privateName, arguments); -} - -bool ReadableStreamDefaultController::enqueue(RefPtr<JSC::ArrayBuffer>&& buffer) -{ - if (!buffer) { - error(Exception { OutOfMemoryError }); - return false; - } - - JSC::JSGlobalObject& lexicalGlobalObject = this->globalObject(); - auto& vm = lexicalGlobalObject.vm(); - JSC::JSLockHolder lock(vm); - auto scope = DECLARE_CATCH_SCOPE(vm); - auto length = buffer->byteLength(); - auto value = JSC::JSUint8Array::create(&lexicalGlobalObject, lexicalGlobalObject.typedArrayStructure(JSC::TypeUint8), WTFMove(buffer), 0, length); - - EXCEPTION_ASSERT(!scope.exception() || vm.hasPendingTerminationException()); - RETURN_IF_EXCEPTION(scope, false); - - return enqueue(value); -} - -} // namespace WebCore |