anchor.diff:      if (exports.isNotEmpty) {
         var exportedProps = <Property>[];
         for (var export in exports) {
  -        var names = export.exportedNames;
  -        // export * is not emitted by the compiler, so we don't handle it here.
  -        assert(names != null);
  +        // export * (exportedNames is null) is not emitted by the compiler, so
  +        // we don't handle it here.
  +        var names = export.exportedNames!;
           for (var name in names) {
  -          var alias = name.asName ?? name.name;
  -          exportedProps.add(Property(js.string(alias.name), name.name));
  +          var alias = name.asName ?? name.name!;
  +          exportedProps.add(Property(js.string(alias.name), name.name!));
           }
         }
         items.add(js.comment('Exports:'));
  
positive.code:           .add(js.statement('const # = require(#);', [moduleVar, import.from]));
  
        // TODO(jmesserly): optimize for the common case of a single import.
        for (var importName in import.namedImports) {
          // import * is not emitted by the compiler, so we don't support it here.
          assert(!importName.isStar);
          var asName = importName.asName ?? importName.name;
          importStatements.add(js.statement(
              'const # = #.#', [asName, moduleVar, importName.name.name]));
        }
      }
      statements.insertAll(0, importStatements);
  
negative.code:       Identifier moduleVar, ImportDeclaration import, bool deferModules) {
      var items = <Statement>[];
  
      for (var importName in import.namedImports!) {
        // import * is not emitted by the compiler, so we don't handle it here.
        assert(!importName.isStar);
        var asName = importName.asName ?? importName.name;
        var fromName = importName.name!.name;
        // Load non-SDK modules on demand (i.e., deferred).
        if (deferModules && import.from.valueWithoutQuotes != dartSdkModule) {
          items.add(js.statement(
  