<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>258219</bug_id>
          
          <creation_ts>2023-06-16 12:48:24 -0700</creation_ts>
          <short_desc>[Wasm-GC] Add support for bottom heap types</short_desc>
          <delta_ts>2024-07-30 16:26:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebAssembly</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>254695</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=254695</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>247394</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>bashorov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>asumu</cc>
    
    <cc>d_degazio</cc>
    
    <cc>justin_michaud</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1962154</commentid>
    <comment_count>0</comment_count>
      <attachid>466719</attachid>
    <who name="">bashorov</who>
    <bug_when>2023-06-16 12:48:24 -0700</bug_when>
    <thetext>Created attachment 466719
test

Steps to reproduce:

1. Unpack the attached file.
2. Run `jsc --useWebAssemblyTypedFunctionReferences=true --useWebAssemblyGC=true --module-file=test.mjs`

Actual results:

Exception: CompileError: WebAssembly.Module doesn&apos;t parse at byte 3: ref.null heaptype must be funcref, externref or type_idx, in function at index 0 (evaluating &apos;new WebAssembly.Module(wasmBuffer)&apos;)
Module@[native code]

Expected results:

No errors

--

Related tests in the GC proposal repo:
https://github.com/WebAssembly/gc/blob/main/test/core/gc/ref_cast.wast
https://github.com/WebAssembly/gc/blob/main/test/core/gc/ref_test.wast</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1962276</commentid>
    <comment_count>1</comment_count>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2023-06-17 11:00:42 -0700</bug_when>
    <thetext>Thanks for this bug report, I think it might be a duplicate of this existing one though: https://bugs.webkit.org/show_bug.cgi?id=254695</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1963390</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-06-23 12:49:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/111230425&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2049673</commentid>
    <comment_count>3</comment_count>
    <who name="David Degazio">d_degazio</who>
    <bug_when>2024-07-30 16:26:16 -0700</bug_when>
    <thetext>As far as I can tell, the encoding here has actually changed since this bug was opened, and the attached WASM binary is no longer valid. Specifically, it has the following sequence:

    d065 ;; ref.null none
    1a
    d069 ;; ref.null nofunc
    1a
    d068 ;; ref.null noextern
    1a

Specifically using 0x65, 0x69, and 0x68 to represent heap types none, nofunc, and noextern respectively. Per the current GC proposal spec though (https://webassembly.github.io/gc/core/binary/types.html#binary-heaptype), these should actually be encoded as 0x71, 0x73, and 0x72. Recompiling the attached test.wat with wasm-as version 118 produces a different binary with these new heaptypes, which JSC seems to handle without issue.

So, support for none, nofunc, and noextern is working as expected, and I&apos;ll resolve this as a dupe of Asumu&apos;s other bug.

*** This bug has been marked as a duplicate of bug 254695 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>466719</attachid>
            <date>2023-06-16 12:48:24 -0700</date>
            <delta_ts>2023-06-16 12:48:24 -0700</delta_ts>
            <desc>test</desc>
            <filename>test_ref.null.zip</filename>
            <type>application/zip</type>
            <size>2401</size>
            <attacher>bashorov</attacher>
            
              <data encoding="base64">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
AA4GAAAAAA==
</data>

          </attachment>
      

    </bug>

</bugzilla>