Ignore:
Timestamp:
Aug 13, 2009, 10:35:33 PM (16 years ago)
Author:
[email protected]
Message:

Devirtualise marking
https://bugs.webkit.org/show_bug.cgi?id=28294

Reviewed by Maciej Stachowiak.

Add a bit to TypeInfo to indicate that an object uses the standard
JSObject::markChildren method. This allows us to devirtualise marking
of most objects (though a branch is still needed). We also add a branch
to identify arrays thus devirtualising marking in that case as well.

In order to make the best use of this devirtualisation I've also reworked
the MarkStack::drain() logic to make the iteration more efficient.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/NumberObject.h

    r43122 r47267  
    3131
    3232        static const ClassInfo info;
     33       
     34        static PassRefPtr<Structure> createStructure(JSValue prototype)
     35        {
     36            return Structure::create(prototype, TypeInfo(ObjectType, HasStandardGetOwnPropertySlot | HasDefaultMark));
     37        }
    3338
    3439    private:
Note: See TracChangeset for help on using the changeset viewer.