Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 099f93fe499309ffdfdc1a7ad7db439973837a82
https://github.com/WebKit/WebKit/commit/099f93fe499309ffdfdc1a7ad7db439973837a82
Author: Yusuke Suzuki <[email protected]>
Date: 2026-08-05 (Wed, 05 Aug 2026)
Changed paths:
A JSTests/wasm/js-api/memory64-disabled.js
A JSTests/wasm/js-api/memory64-js-api-errors.js
M JSTests/wasm/js-api/memory64-js-api.js
M JSTests/wasm/js-api/type-reflection-exports.js
M JSTests/wasm/js-api/type-reflection-imports.js
M JSTests/wasm/stress/memory64-grow-and-size.js
M JSTests/wasm/stress/memory64-write-to-address-over-4-gigs.js
M Source/JavaScriptCore/wasm/js/JSWebAssemblyHelpers.h
M Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp
M Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp
M Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp
M Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp
M Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp
M Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp
M Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
Log Message:
-----------
[JSC] Fix the memory64 JS APIs
https://bugs.webkit.org/show_bug.cgi?id=321045
rdar://184073455
Reviewed by Yijia Huang.
Add addressValueFromUint64 and bulk-fixing memory64 JS APIs which need
to use BigInt for 64bit case. Also handling max-bytes correctly:
currently ArrayBuffer can only handle up to 4GB, so regardless of what
bytes are specified in memory64, we cannot exceed this number.
Currently we have an issue that memory64's max size is larger than
ArrayBuffer's max size. We need to fix this issue, which will be a
follow-up fix.
Tests: JSTests/wasm/js-api/memory64-disabled.js
JSTests/wasm/js-api/memory64-js-api-errors.js
* JSTests/wasm/js-api/memory64-disabled.js: Added.
(declaresI64Memory):
* JSTests/wasm/js-api/memory64-js-api-errors.js: Added.
(assert.throws.new.WebAssembly.Table):
(assert.throws.new.WebAssembly.Memory):
(assert.eq):
(assert.throws):
* JSTests/wasm/js-api/memory64-js-api.js:
(assert.throws):
* JSTests/wasm/js-api/type-reflection-exports.js:
(async test):
* JSTests/wasm/js-api/type-reflection-imports.js:
(const.wat.module.import.string_appeared_here.string_appeared_here.func.log1.param.i64.param.i32.result.i32.import.string_appeared_here.string_appeared_here.func.log2.param.i32.import.string_appeared_here.string_appeared_here.func.log3.param.i32.param.i64.result.i64.import.string_appeared_here.string_appeared_here.func.log4.param.f32.param.f64.result.f64.import.string_appeared_here.string_appeared_here.func.log5.param.i32.param.i32.param.i32.result.i32.import.string_appeared_here.string_appeared_here.func.log6.param.f32.param.f32.result.f32.import.string_appeared_here.string_appeared_here.func.log7.param.i32.result.i32.import.string_appeared_here.string_appeared_here.func.log8.param.f64.result.f64.import.string_appeared_here.string_appeared_here.memory.1.8.import.string_appeared_here.string_appeared_here.table.1.2.funcref.import.string_appeared_here.string_appeared_here.table.1.2.externref.import.string_appeared_here.string_appeared_here.global.global_i32_mut.mut.i32.import.string_appeared_here.string_appeared_here.global.global_i32_imut.i32.import.string_appeared_here.string_appeared_here.global.global_f32_mut.mut.f32.import.string_appeared_here.string_appeared_here.global.global_f64_imut.f64.import.string_appeared_here.string_appeared_here.global.global_i64_mut.mut.i64.import.string_appeared_here.string_appeared_here.global.global_i64_imut.i64.import.string_appeared_here.string_appeared_here.global.global_f64_mut.mut.f64.import.string_appeared_here.string_appeared_here.global.global_f32_imut.f32.async
test):
* JSTests/wasm/stress/memory64-grow-and-size.js:
(async testGrowByZero):
(async testNoMaximum):
(async testLargeGrowValue):
* JSTests/wasm/stress/memory64-write-to-address-over-4-gigs.js:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyHelpers.h:
(JSC::addressValueFromUint64):
(JSC::addressTypeString):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::associateArrayBuffer):
(JSC::JSWebAssemblyMemory::type):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::type):
* Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::WebAssemblyMemoryConstructor::createMemoryFromDescriptor):
* Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::createTypeReflectionObject):
* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::initializeImports):
* Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp:
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
Canonical link: https://commits.webkit.org/318665@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications