<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 - Allow large arguments arrays by falling back to passing some or all arguments on the heap"
   href="https://bugs.webkit.org/show_bug.cgi?id=144391">144391</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Allow large arguments arrays by falling back to passing some or all arguments on the heap
          </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>JavaScriptCore
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>fpizlo&#64;apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Consider code like:

Math.max.apply(Math, new Array(100000))

If the array size is large enough, this will fail.  Maybe it would be cool if it didn't.  We could make this work by having large arguments arrays passed in the heap - for example as an arguments object allocated by the caller - instead of on the stack.

We'd probably have to only pass overflow arguments in this manner, for example arguments beyond some stack argument limit, in order to have a consistent calling convention. We'd also have to make sure that ExecState's methods for looping over arguments are appropriately clued in - so that they aren't too slow for the common case of few arguments, while allowing existing variadic native functions to work for large arguments lists.</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>