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/BooleanObject.h

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