<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:mark.lam&#64;apple.com" title="Mark Lam &lt;mark.lam&#64;apple.com&gt;"> <span class="fn">Mark Lam</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Implement JSC watchdog support for tail calls"
   href="https://bugs.webkit.org/show_bug.cgi?id=147998">bug 147998</a>
        <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
               &nbsp;
           </td>
           <td>benjamin&#64;webkit.org, fpizlo&#64;apple.com, ggaren&#64;apple.com, keith_miller&#64;apple.com, mmirman&#64;apple.com, msaboff&#64;apple.com, saambarati1&#64;gmail.com
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>ASSIGNED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Assignee</td>
           <td>webkit-unassigned&#64;lists.webkit.org
           </td>
           <td>mark.lam&#64;apple.com
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Implement JSC watchdog support for tail calls"
   href="https://bugs.webkit.org/show_bug.cgi?id=147998#c1">Comment # 1</a>
              on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Implement JSC watchdog support for tail calls"
   href="https://bugs.webkit.org/show_bug.cgi?id=147998">bug 147998</a>
              from <span class="vcard"><a class="email" href="mailto:mark.lam&#64;apple.com" title="Mark Lam &lt;mark.lam&#64;apple.com&gt;"> <span class="fn">Mark Lam</span></a>
</span></b>
        <pre>I plan to implement this by having the watchdog timer simulate a stack overflow, and teaching the existing stack check slow path code in function prologues to discern between a stack overflow and a watchdog timer check request.

Unlike with stack overflows, the stack check slow path can return without throwing an exception.  This is because the watchdog timer firing only means that we need to check the watchdog's deadlines.  It doesn't necessarily mean that the watchdog fired.  We will only throw the TerminatedExecutionException if the watchdog deadlines have been reached.  Hence, I'll also have to teach the function prologues to not expect that the stack check slow path will throw unconditionally.</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>