Title: [295091] trunk
- Revision
- 295091
- Author
- commit-qu...@webkit.org
- Date
- 2022-06-01 09:55:02 -0700 (Wed, 01 Jun 2022)
Log Message
Fix Wasm referenced function calculation for globals
https://bugs.webkit.org/show_bug.cgi?id=239588
Patch by Asumu Takikawa <as...@igalia.com> on 2022-06-01
Reviewed by Keith Miller.
JSTests:
* wasm/regress/239588.js: Added.
(module):
Source/_javascript_Core:
* wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseInitExpr):
Canonical link: https://commits.webkit.org/251186@main
Modified Paths
Added Paths
Diff
Added: trunk/JSTests/wasm/regress/239588.js (0 => 295091)
--- trunk/JSTests/wasm/regress/239588.js (rev 0)
+++ trunk/JSTests/wasm/regress/239588.js 2022-06-01 16:55:02 UTC (rev 295091)
@@ -0,0 +1,16 @@
+function module(bytes, valid = true) {
+ let buffer = new ArrayBuffer(bytes.length);
+ let view = new Uint8Array(buffer);
+ for (let i = 0; i < bytes.length; ++i) {
+ view[i] = bytes.charCodeAt(i);
+ }
+ return new WebAssembly.Module(buffer);
+}
+
+/*
+ * (module
+ * (type (func))
+ * (global funcref (ref.func 0))
+ * (func (type 0)))
+ */
+new WebAssembly.Instance(module("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x06\x06\x01\x70\x00\xd2\x00\x0b\x0a\x04\x01\x02\x00\x0b"));
Modified: trunk/Source/_javascript_Core/wasm/WasmSectionParser.cpp (295090 => 295091)
--- trunk/Source/_javascript_Core/wasm/WasmSectionParser.cpp 2022-06-01 16:20:48 UTC (rev 295090)
+++ trunk/Source/_javascript_Core/wasm/WasmSectionParser.cpp 2022-06-01 16:55:02 UTC (rev 295091)
@@ -628,6 +628,7 @@
uint32_t index;
WASM_PARSER_FAIL_IF(!parseVarUInt32(index), "can't get ref.func index");
WASM_PARSER_FAIL_IF(index >= m_info->functions.size(), "ref.func index", index, " exceeds the number of functions ", m_info->functions.size());
+ m_info->addReferencedFunction(index);
if (Options::useWebAssemblyTypedFunctionReferences()) {
TypeIndex typeIndex = m_info->typeIndexFromFunctionIndexSpace(index);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes