Ignore:
Timestamp:
Sep 19, 2008, 8:19:17 PM (17 years ago)
Author:
[email protected]
Message:

2008-09-19 Sam Weinig <[email protected]>

Roll out r36694.

  • JavaScriptCore.exp:
  • VM/JSPropertyNameIterator.cpp: (JSC::JSPropertyNameIterator::~JSPropertyNameIterator): (JSC::JSPropertyNameIterator::invalidate):
  • VM/JSPropertyNameIterator.h: (JSC::JSPropertyNameIterator::JSPropertyNameIterator): (JSC::JSPropertyNameIterator::create):
  • kjs/JSObject.cpp: (JSC::JSObject::getPropertyNames):
  • kjs/PropertyMap.cpp: (JSC::PropertyMap::getEnumerablePropertyNames):
  • kjs/PropertyMap.h:
  • kjs/PropertyNameArray.cpp: (JSC::PropertyNameArray::add):
  • kjs/PropertyNameArray.h: (JSC::PropertyNameArray::PropertyNameArray): (JSC::PropertyNameArray::addKnownUnique): (JSC::PropertyNameArray::begin): (JSC::PropertyNameArray::end): (JSC::PropertyNameArray::size): (JSC::PropertyNameArray::operator[]): (JSC::PropertyNameArray::releaseIdentifiers):
  • kjs/StructureID.cpp: (JSC::StructureID::getEnumerablePropertyNames):
  • kjs/StructureID.h: (JSC::StructureID::clearEnumerationCache):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/JSPropertyNameIterator.h

    r36694 r36696  
    5858
    5959    private:
    60         JSPropertyNameIterator();
    61         JSPropertyNameIterator(JSObject*, PassRefPtr<PropertyNameArrayData> propertyNameArrayData);
     60        JSPropertyNameIterator(JSObject*, Identifier* propertyNames, size_t numProperties);
    6261
    6362        JSObject* m_object;
    64         RefPtr<PropertyNameArrayData> m_data;
    65         PropertyNameArrayData::const_iterator m_position;
    66         PropertyNameArrayData::const_iterator m_end;
     63        Identifier* m_propertyNames;
     64        Identifier* m_position;
     65        Identifier* m_end;
    6766    };
    6867
    69 inline JSPropertyNameIterator::JSPropertyNameIterator()
    70     : JSCell(0)
    71     , m_object(0)
    72     , m_position(0)
    73     , m_end(0)
    74 {
    75 }
    76 
    77 inline JSPropertyNameIterator::JSPropertyNameIterator(JSObject* object, PassRefPtr<PropertyNameArrayData> propertyNameArrayData)
     68inline JSPropertyNameIterator::JSPropertyNameIterator(JSObject* object, Identifier* propertyNames, size_t numProperties)
    7869    : JSCell(0)
    7970    , m_object(object)
    80     , m_data(propertyNameArrayData)
    81     , m_position(m_data->begin())
    82     , m_end(m_data->end())
     71    , m_propertyNames(propertyNames)
     72    , m_position(propertyNames)
     73    , m_end(propertyNames + numProperties)
    8374{
    8475}
     
    8778{
    8879    if (v->isUndefinedOrNull())
    89         return new (exec) JSPropertyNameIterator;
     80        return new (exec) JSPropertyNameIterator(0, 0, 0);
    9081
    9182    JSObject* o = v->toObject(exec);
    9283    PropertyNameArray propertyNames(exec);
    9384    o->getPropertyNames(exec, propertyNames);
    94     return new (exec) JSPropertyNameIterator(o, propertyNames.releaseData());
     85    size_t numProperties = propertyNames.size();
     86    return new (exec) JSPropertyNameIterator(o, propertyNames.releaseIdentifiers(), numProperties);
    9587}
    9688
Note: See TracChangeset for help on using the changeset viewer.