Changeset 253240 in webkit for trunk/Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp
- Timestamp:
- Dec 6, 2019, 9:48:08 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp
r251425 r253240 60 60 61 61 m_moduleRecord.set(vm, this, moduleRecord); 62 m_names.reserveCapacity(resolutions.size()); 62 63 { 63 unsigned moduleRecordOffset = 0; 64 m_names.reserveCapacity(resolutions.size()); 64 auto locker = holdLock(cellLock()); 65 65 for (const auto& pair : resolutions) { 66 moduleRecordAt(moduleRecordOffset).set(vm, this, pair.second.moduleRecord);67 66 m_names.append(pair.first); 68 m_exports.add(pair.first.impl(), ExportEntry { 69 pair.second.localName, 70 moduleRecordOffset 71 }); 72 ++moduleRecordOffset; 67 auto addResult = m_exports.add(pair.first.impl(), ExportEntry()); 68 addResult.iterator->value.localName = pair.second.localName; 69 addResult.iterator->value.moduleRecord.set(vm, this, pair.second.moduleRecord); 73 70 } 74 71 } … … 96 93 Base::visitChildren(thisObject, visitor); 97 94 visitor.append(thisObject->m_moduleRecord); 98 for (unsigned i = 0; i < thisObject->m_names.size(); ++i) 99 visitor.appendHidden(thisObject->moduleRecordAt(i)); 95 { 96 auto locker = holdLock(thisObject->cellLock()); 97 for (auto& pair : thisObject->m_exports) 98 visitor.appendHidden(pair.value.moduleRecord); 99 } 100 100 } 101 101 … … 137 137 case PropertySlot::InternalMethodType::GetOwnProperty: 138 138 case PropertySlot::InternalMethodType::Get: { 139 JSModuleEnvironment* environment = moduleRecordAt(exportEntry.moduleRecordOffset)->moduleEnvironment();139 JSModuleEnvironment* environment = exportEntry.moduleRecord->moduleEnvironment(); 140 140 ScopeOffset scopeOffset; 141 141 JSValue value = getValue(environment, exportEntry.localName, scopeOffset);
Note:
See TracChangeset
for help on using the changeset viewer.