<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Web Inspector: Debugger option to &quot;Pause on Promise reject&quot;"
   href="https://bugs.webkit.org/show_bug.cgi?id=145930">145930</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Web Inspector: Debugger option to &quot;Pause on Promise reject&quot;
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>528+ (Nightly build)
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Web Inspector
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>jrburke&#64;gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>graouts&#64;webkit.org, joepeck&#64;webkit.org, jonowells&#64;apple.com, mattbaker&#64;apple.com, nvasilyev&#64;apple.com, timothy&#64;apple.com, webkit-bug-importer&#64;group.apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Debugging with promises and finding original sources of errors can be tricky if the reject pathway is followed.

Since promises are a control flow mechanism with the resolve() used to go to the next step, and reject() like throwing an exception, it seems useful if the debugger had the ability to pause if the reject() for a promise was called.

This is different than pausing on an unhandled promise rejection. The scenario I was debugging was one where there were proper error handling listeners on the promise chain, but since there were a few places in the chain where reject() was called, it was not immediately obvious where I could manually place a breakpoint to inspect the local state to see why the reject was called.

This bug may have some dependency with <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Web Inspector: add toggles for debugger pauses at console.assert and debugger statements"
   href="show_bug.cgi?id=139542">bug 139542</a>, which is about showing more options on what to break on.

Similar issue filed for Gecko: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1174026">https://bugzilla.mozilla.org/show_bug.cgi?id=1174026</a></pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>