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