25  if (
int specifier_comparison =
 
   27    return specifier_comparison < 0;
 
   35    if (
int assertion_key_comparison =
 
   37      return assertion_key_comparison < 0;
 
   40    if (
int assertion_value_comparison =
 
   42      return assertion_value_comparison < 0;
 
 
   67      specifier, import_phase, import_attributes, specifier_loc, zone);
 
 
   79                       import_attributes, specifier_loc, zone);
 
 
  111                       import_attributes, specifier_loc, zone);
 
 
  122                       import_attributes, specifier_loc, zone);
 
 
  127template <
typename IsolateT>
 
  130  if (s == 
nullptr) 
return isolate->factory()->undefined_value();
 
  135template <
typename IsolateT>
 
  136DirectHandle<ModuleRequest>
 
  138    IsolateT* isolate)
 const {
 
  142      isolate->factory()->NewFixedArray(
 
  143          static_cast<int>(import_attributes()->
size() *
 
  150    for (
auto iter = import_attributes()->cbegin();
 
  151         iter != import_attributes()->cend();
 
  153      raw_import_attributes->set(
i, *iter->
first->string());
 
  154      raw_import_attributes->set(
i + 1, *iter->second.
first->string());
 
  155      raw_import_attributes->set(
i + 2,
 
  160                                          phase_, import_attributes_array,
 
 
  169template <
typename IsolateT>
 
  174      isolate, ToStringOrUndefined(isolate, export_name),
 
  175      ToStringOrUndefined(isolate, local_name),
 
  176      ToStringOrUndefined(isolate, import_name), module_request, cell_index,
 
  177      location.beg_pos, location.end_pos);
 
 
  184template <
typename IsolateT>
 
  186    IsolateT* isolate, 
Zone* zone)
 const {
 
  201      DCHECK_EQ(it->second->local_name, next->second->local_name);
 
  202      DCHECK_EQ(it->second->cell_index, next->second->cell_index);
 
  210        it->second->local_name->string();
 
  219    for (; it != next; ++it) {
 
  220      export_names->set(
i++, *it->second->export_name->
string());
 
  227  DCHECK_LE(index, 
static_cast<int>(data.size()));
 
 
  248    Entry* entry = it->second;
 
  250    auto import = regular_imports_.find(entry->local_name);
 
  257      DCHECK_LE(0, import->second->module_request);
 
  258      DCHECK_LT(import->second->module_request,
 
  268      entry->
location = 
import->second->location;
 
 
  280  if (cell_index > 0) 
return kExport;
 
  281  if (cell_index < 0) 
return kImport;
 
 
  286  int export_index = 1;
 
  288    auto current_key = it->first;
 
  292      Entry* entry = it->second;
 
  303  int import_index = -1;
 
  305    Entry* entry = elem.second;
 
 
  325      export_names.insert(std::make_pair(candidate->
export_name, candidate));
 
  326  if (insert_result.second) 
return current_duplicate;
 
  327  if (current_duplicate == 
nullptr) {
 
  328    current_duplicate = insert_result.first->second;
 
  337const SourceTextModuleDescriptor::Entry*
 
  343    duplicate = BetterDuplicate(elem.second, export_names, duplicate);
 
  346    if (entry->export_name == 
nullptr) 
continue;  
 
  347    duplicate = BetterDuplicate(entry, export_names, duplicate);
 
 
  361    if (entry != 
nullptr) {
 
  364          MessageTemplate::kDuplicateExport, entry->
export_name);
 
  371    const Entry* entry = elem.second;
 
  376          MessageTemplate::kModuleExportUndefined, entry->
local_name);
 
 
union v8::internal::@341::BuiltinMetadata::KindSpecificData data
static int Compare(const AstRawString *lhs, const AstRawString *rhs)
static NEVER_READ_ONLY_SPACE Handle< ModuleRequest > New(IsolateT *isolate, DirectHandle< String > specifier, ModuleImportPhase phase, DirectHandle< FixedArray > import_attributes, int position)
static const size_t kAttributeEntrySize
SourceTextModuleDescriptor * module() const
void ReportMessageAt(int start_position, int end_position, MessageTemplate message, const char *arg=nullptr)
Variable * LookupLocal(const AstRawString *name)
static constexpr Tagged< Smi > FromInt(int value)
static bool constexpr IsValid(T value)
const AstRawString * specifier() const
ModuleImportPhase phase() const
DirectHandle< v8::internal::ModuleRequest > Serialize(IsolateT *isolate) const
const ImportAttributes * import_attributes() const
void AddStarExport(const AstRawString *specifier, const ImportAttributes *import_attributes, const Scanner::Location loc, const Scanner::Location specifier_loc, Zone *zone)
ModuleRequestMap module_requests_
bool Validate(ModuleScope *module_scope, PendingCompilationErrorHandler *error_handler, Zone *zone)
RegularImportMap regular_imports_
void AddNamespaceImport(const Entry *entry, Zone *zone)
const Entry * FindDuplicateExport(Zone *zone) const
void AddRegularImport(Entry *entry)
void AddStarImport(const AstRawString *local_name, const AstRawString *specifier, const ImportAttributes *import_attributes, const Scanner::Location loc, const Scanner::Location specifier_loc, Zone *zone)
static CellIndexKind GetCellIndexKind(int cell_index)
int AddModuleRequest(const AstRawString *specifier, const ModuleImportPhase import_phase, const ImportAttributes *import_attributes, Scanner::Location specifier_loc, Zone *zone)
DirectHandle< FixedArray > SerializeRegularExports(IsolateT *isolate, Zone *zone) const
void AddEmptyImport(const AstRawString *specifier, const ImportAttributes *import_attributes, const Scanner::Location specifier_loc, Zone *zone)
void MakeIndirectExportsExplicit(Zone *zone)
RegularExportMap regular_exports_
ZoneVector< const Entry * > special_exports_
void AddImport(const AstRawString *import_name, const AstRawString *local_name, const AstRawString *specifier, const ModuleImportPhase import_phase, const ImportAttributes *import_attributes, const Scanner::Location loc, const Scanner::Location specifier_loc, Zone *zone)
void AddExport(const AstRawString *local_name, const AstRawString *export_name, const Scanner::Location loc, Zone *zone)
void AddRegularExport(Entry *entry)
void AddSpecialExport(const Entry *entry, Zone *zone)
static Handle< SourceTextModuleInfoEntry > New(IsolateT *isolate, DirectHandle< UnionOf< String, Undefined > > export_name, DirectHandle< UnionOf< String, Undefined > > local_name, DirectHandle< UnionOf< String, Undefined > > import_name, int module_request, int cell_index, int beg_pos, int end_pos)
@ kRegularExportLocalNameOffset
@ kRegularExportCellIndexOffset
@ kRegularExportExportNamesOffset
ZoneVector< RpoNumber > & result
V8_INLINE IndirectHandle< T > handle(Tagged< T > object, Isolate *isolate)
#define DCHECK_LE(v1, v2)
#define DCHECK_NOT_NULL(val)
#define DCHECK(condition)
#define DCHECK_LT(v1, v2)
#define DCHECK_EQ(v1, v2)
bool operator()(const AstRawString *lhs, const AstRawString *rhs) const
DirectHandle< SourceTextModuleInfoEntry > Serialize(IsolateT *isolate) const
const AstRawString * export_name
const AstRawString * local_name
Scanner::Location location
const AstRawString * import_name
bool operator()(const AstModuleRequest *lhs, const AstModuleRequest *rhs) const