<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 - We should be smarter about inlineCapacities with classes"
   href="https://bugs.webkit.org/show_bug.cgi?id=152842">152842</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>We should be smarter about inlineCapacities with classes
          </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>keith_miller&#64;apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The inlineCapacity used in our ObjectAllocationProfiles should be on the JSFunction Object rather than in the byte code. This enables us to take the sum of them when computing the inlineCapacity when creating derived classes. An example of where this might benefit us is the following:

class Point2D {
    constructor(x,y) { this.x = x; this.y = y; }
}

class Point3D extends Point2D {
    constructor(x,y,z) { super(x,y); this.z = z; }
}

Currently, the inlineCapacity will be 2 but if we take the sum of the static analyzers results we would get 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>