<?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>265118</bug_id>
          
          <creation_ts>2023-11-19 19:03:56 -0800</creation_ts>
          <short_desc>NativePromise should allow void as reject type.</short_desc>
          <delta_ts>2023-11-20 18:04:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jean-Yves Avenard [:jya]">jean-yves.avenard</reporter>
          <assigned_to name="Jean-Yves Avenard [:jya]">jean-yves.avenard</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1993806</commentid>
    <comment_count>0</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2023-11-19 19:03:56 -0800</bug_when>
    <thetext>NativePromise::Result is using `Expected&lt;T, U&gt;` as storage type ; which doesn&apos;t allow to have U==void

And as such, NativePromise must set a non-void type a RejectValueType.

In bug 264028, you can now chain promises of different types together, and if you chain a void promise, that promise gets resolve whenever the original promise gets resolved, regardless of the resolve value.

It would be nice to do the same for rejection. And as such, we need for NativePromise to handle RejectValueType == void.

This can be achieved by using Expected&lt;T, NativePromise::VoidPlaceholder&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1993844</commentid>
    <comment_count>1</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2023-11-20 03:06:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/117782213&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1993845</commentid>
    <comment_count>2</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2023-11-20 03:07:09 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/20738</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1993848</commentid>
    <comment_count>3</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2023-11-20 03:20:16 -0800</bug_when>
    <thetext>rdar://118645560</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1994037</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-11-20 18:04:47 -0800</bug_when>
    <thetext>Committed 270995@main (bb71e93437b5): &lt;https://commits.webkit.org/270995@main&gt;

Reviewed commits have been landed. Closing PR #20738 and removing active labels.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>