<?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>297532</bug_id>
          
          <creation_ts>2025-08-18 07:30:19 -0700</creation_ts>
          <short_desc>[JSC] Fix `Iterator#flatMap` to handle iterators without `return` method</short_desc>
          <delta_ts>2025-08-20 10:42:13 -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>JavaScriptCore</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="Sosuke Suzuki">sosuke</reporter>
          <assigned_to name="Sosuke Suzuki">sosuke</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2137148</commentid>
    <comment_count>0</comment_count>
    <who name="Sosuke Suzuki">sosuke</who>
    <bug_when>2025-08-18 07:30:19 -0700</bug_when>
    <thetext>According to the spec, IteratorClose should check if the　return method
exists before calling it, returning the completion value unchanged　when
the method is undefined.

However, the current implementation of Iterator.prototype.flatMap unconditionally
calls iterated.return(), causing a TypeError when used with iterators that don&apos;t
have a return method (e.g., Map.prototype.entries(), Set.prototype.values()).

This patch fixes the issue by checking if the return method exists before calling
it.

original report https://github.com/oven-sh/bun/issues/17518</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2137149</commentid>
    <comment_count>1</comment_count>
    <who name="Sosuke Suzuki">sosuke</who>
    <bug_when>2025-08-18 07:31:08 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/49530</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2137755</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-08-20 10:41:37 -0700</bug_when>
    <thetext>Committed 298966@main (c4fa114ca0b7): &lt;https://commits.webkit.org/298966@main&gt;

Reviewed commits have been landed. Closing PR #49530 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2137756</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-08-20 10:42:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/158783404&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>