<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 - Parser&lt;LexerType&gt;::parseFunctionInfo() has the wrong info about captured vars when a function is not cached."
   href="https://bugs.webkit.org/show_bug.cgi?id=160671">160671</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Parser&lt;LexerType&gt;::parseFunctionInfo() has the wrong info about captured vars when a function is not cached.
          </td>
        </tr>

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

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

        <tr>
          <th>Version</th>
          <td>WebKit Nightly Build
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Unspecified
          </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>JavaScriptCore
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>mark.lam&#64;apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=285595" name="attach_285595" title="Repro test case.">attachment 285595</a> <a href="attachment.cgi?id=285595&amp;action=edit" title="Repro test case.">[details]</a></span>
Repro test case.

Steps to repro:

1. Apply the following patch to disable the function cache.

Index: Source/JavaScriptCore/parser/Parser.cpp
===================================================================
--- Source/JavaScriptCore/parser/Parser.cpp     (revision 204127)
+++ Source/JavaScriptCore/parser/Parser.cpp     (working copy)
&#64;&#64; -1954,6 +1954,7 &#64;&#64; template &lt;class TreeBuilder&gt; bool Parser
     FunctionBodyType functionBodyType;

     auto loadCachedFunction = [&amp;] () -&gt; bool {
+        if (true) return false;
         ASSERT(parametersStart != -1);
         ASSERT(startColumn != -1);

2. Run jsc on the attached test case.

It ends up throwing the following invalid error:

Exception: ReferenceError: Can't find variable: inner
/Volumes/Data/objcjsc/tests/test.js:9:52
foo2&#64;/Volumes/Data/objcjsc/tests/test.js:12:17
goo2&#64;/Volumes/Data/objcjsc/tests/test.js:14:9
global code&#64;/Volumes/Data/objcjsc/tests/test.js:15:3</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>