Bug 70968 - De-virtualize isGlobalObject, isVariableObject, isActivationObject, and isErrorInstance in JSObject
Summary: De-virtualize isGlobalObject, isVariableObject, isActivationObject, and isErr...
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Mark Hahnenberg
Depends on:
Blocks: 70960
  Show dependency treegraph
Reported: 2011-10-26 14:24 PDT by Mark Hahnenberg
Modified: 2011-10-28 12:15 PDT (History)
4 users (show)

See Also:

Patch (19.76 KB, patch)
2011-10-27 12:43 PDT, Mark Hahnenberg
ggaren: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Hahnenberg 2011-10-26 14:24:05 PDT
These can all be de-virtualized by augmenting JSType with additional types.
Comment 1 Mark Hahnenberg 2011-10-27 12:43:04 PDT
Created attachment 112732 [details]
Comment 2 Geoffrey Garen 2011-10-28 10:52:53 PDT
Comment on attachment 112732 [details]

View in context: https://bugs.webkit.org/attachment.cgi?id=112732&action=review

Seems like TypeInfo should eventually move to being specified in ClassInfo, even if a copy is cached in Structure. More elegant to specify TypeInfo declaratively, instead of through a bunch of function call arguments.

> Source/JavaScriptCore/runtime/JSType.h:47
> +    // VariableObjectType must be greater than all of the types of its subclasses.

Less than!
Comment 3 Mark Hahnenberg 2011-10-28 12:15:03 PDT
Committed r98747: <http://trac.webkit.org/changeset/98747>