Changeset 36694 in webkit for trunk/JavaScriptCore/VM/JSPropertyNameIterator.h
- Timestamp:
- Sep 19, 2008, 7:23:42 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/JSPropertyNameIterator.h
r36316 r36694 58 58 59 59 private: 60 JSPropertyNameIterator(JSObject*, Identifier* propertyNames, size_t numProperties); 60 JSPropertyNameIterator(); 61 JSPropertyNameIterator(JSObject*, PassRefPtr<PropertyNameArrayData> propertyNameArrayData); 61 62 62 63 JSObject* m_object; 63 Identifier* m_propertyNames;64 Identifier*m_position;65 Identifier*m_end;64 RefPtr<PropertyNameArrayData> m_data; 65 PropertyNameArrayData::const_iterator m_position; 66 PropertyNameArrayData::const_iterator m_end; 66 67 }; 67 68 68 inline JSPropertyNameIterator::JSPropertyNameIterator(JSObject* object, Identifier* propertyNames, size_t numProperties) 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) 69 78 : JSCell(0) 70 79 , m_object(object) 71 , m_ propertyNames(propertyNames)72 , m_position( propertyNames)73 , m_end( propertyNames + numProperties)80 , m_data(propertyNameArrayData) 81 , m_position(m_data->begin()) 82 , m_end(m_data->end()) 74 83 { 75 84 } … … 78 87 { 79 88 if (v->isUndefinedOrNull()) 80 return new (exec) JSPropertyNameIterator (0, 0, 0);89 return new (exec) JSPropertyNameIterator; 81 90 82 91 JSObject* o = v->toObject(exec); 83 92 PropertyNameArray propertyNames(exec); 84 93 o->getPropertyNames(exec, propertyNames); 85 size_t numProperties = propertyNames.size(); 86 return new (exec) JSPropertyNameIterator(o, propertyNames.releaseIdentifiers(), numProperties); 94 return new (exec) JSPropertyNameIterator(o, propertyNames.releaseData()); 87 95 } 88 96
Note:
See TracChangeset
for help on using the changeset viewer.