[webkit-changes] [WebKit/WebKit] 6bf8f0: [JSC] Add WebAssembly.JSTag
Yusuke Suzuki
noreply at github.com
Fri Jan 17 17:39:35 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6bf8f0f20ef1ee92e5ba53c865c339a1253a080f
https://github.com/WebKit/WebKit/commit/6bf8f0f20ef1ee92e5ba53c865c339a1253a080f
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2025-01-17 (Fri, 17 Jan 2025)
Changed paths:
M JSTests/wasm/assert.js
A JSTests/wasm/stress/jstag.js
M Source/JavaScriptCore/SaferCPPExpectations/NoUncountedMemberCheckerExpectations
M Source/JavaScriptCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations
M Source/JavaScriptCore/interpreter/Interpreter.cpp
M Source/JavaScriptCore/runtime/Exception.cpp
M Source/JavaScriptCore/runtime/Exception.h
M Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp
M Source/JavaScriptCore/wasm/WasmOperations.cpp
M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp
M Source/JavaScriptCore/wasm/WasmTag.cpp
M Source/JavaScriptCore/wasm/WasmTag.h
M Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp
M Source/JavaScriptCore/wasm/WasmTypeDefinition.h
M Source/JavaScriptCore/wasm/js/JSWebAssembly.cpp
M Source/JavaScriptCore/wasm/js/JSWebAssemblyException.cpp
M Source/JavaScriptCore/wasm/js/JSWebAssemblyException.h
M Source/JavaScriptCore/wasm/js/WebAssemblyExceptionConstructor.cpp
M Source/JavaScriptCore/wasm/js/WebAssemblyTagConstructor.cpp
Log Message:
-----------
[JSC] Add WebAssembly.JSTag
https://bugs.webkit.org/show_bug.cgi?id=286103
rdar://136036182
Reviewed by Keith Miller.
This patch adds WebAssembly.JSTag for modern wasm exception handling.
This is a special tag which can catch random JS-thrown values in wasm
catch clauses. When catching non JSWebAssemblyException via JSTag,
we wrap the value with JSWebAssemblyException and pass it to wasm catch
clause. Also when rethrowing an exception, we unwrap JSWebAssemblyException
for JSTag.
* JSTests/wasm/assert.js:
* JSTests/wasm/stress/jstag.js: Added.
(import.as.assert.from.string_appeared_here.throw_ref):
* Source/JavaScriptCore/interpreter/Interpreter.cpp:
(JSC::UnwindFunctor::UnwindFunctor):
(JSC::UnwindFunctor::operator() const):
(JSC::UnwindFunctor::notifyDebuggerOfUnwinding):
(JSC::Interpreter::unwind):
* Source/JavaScriptCore/runtime/Exception.cpp:
(JSC::Exception::wrapValueForJSTag):
* Source/JavaScriptCore/runtime/Exception.h:
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:
(JSC::IPInt::WASM_IPINT_EXTERN_CPP_DECL):
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::WASM_SLOW_PATH_DECL):
* Source/JavaScriptCore/wasm/WasmTag.cpp:
(JSC::Wasm::Tag::jsExceptionTag):
* Source/JavaScriptCore/wasm/WasmTag.h:
* Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp:
(JSC::Wasm::TypeInformation::signatureForJSException):
(JSC::Wasm::TypeInformation::TypeInformation):
* Source/JavaScriptCore/wasm/WasmTypeDefinition.h:
* Source/JavaScriptCore/wasm/js/JSWebAssembly.cpp:
(JSC::JSWebAssembly::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/wasm/js/WebAssemblyExceptionConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
Canonical link: https://commits.webkit.org/289094@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list