Version 2.11.0-246.0.dev

Merge commit 'feeb7ad461766c02e0282e919516ab486ce621ba' into 'dev'
diff --git a/DEPS b/DEPS
index ef5cb12..727abd3 100644
--- a/DEPS
+++ b/DEPS
@@ -66,7 +66,7 @@
 
   # Revisions of /third_party/* dependencies.
   "args_tag": "1.6.0",
-  "async_rev": "38ace5fa83697928d5f29911e346e6311dd00857",
+  "async_rev": "6d2de25f208b011d79d056115256d3840229723b",
   "bazel_worker_rev": "26680d5e249b249c7216ab2fed0ac8ed4ee285c5",
   "benchmark_harness_rev": "ec6b646f5443faa871e126ac1ba248c94ca06257",
   "boolean_selector_rev": "665e6921ab246569420376f827bff4585dff0b14",
@@ -76,7 +76,7 @@
   "charcode_rev": "4a685faba42d86ebd9d661eadd1e79d0a1c34c43",
   "chrome_rev" : "19997",
   "cli_util_rev" : "335ed165887d0ec97c2a09173ebf22dcf56a6c4e",
-  "collection_rev": "7d44763d62f97698b15c08ee360d838dccb63c88",
+  "collection_rev": "60e6ee2228586980826b07ec1df633bd879f42ea",
   "convert_rev": "c1b01f832835d3d8a06b0b246a361c0eaab35d3c",
   "crypto_rev": "f7c48b334b1386bc5ab0f706fbcd6df8496a87fc",
   "csslib_rev": "6f77b3dcee957d3e2d5083f666221a220e9ed1f1",
@@ -97,7 +97,7 @@
   "dart_style_tag": "1.3.8",  # Please see the note above before updating.
 
   "chromedriver_tag": "83.0.4103.39",
-  "dartdoc_rev" : "39cec16700839847876849fef4f0769f8689b6c8",
+  "dartdoc_rev" : "72c69f8659ce8823ce2dde9a4f758b0fa617ab5e",
   "ffi_rev": "a90bd424116fb6f416337db67425171f2dc4c98f",
   "fixnum_rev": "16d3890c6dc82ca629659da1934e412292508bba",
   "glob_rev": "e9f4e6b7ae8abe5071461cf8f47191bb19cf7ef6",
diff --git a/pkg/analysis_server/test/edit/bulk_fixes_test.dart b/pkg/analysis_server/test/edit/bulk_fixes_test.dart
index 18f2356..5ad4e47 100644
--- a/pkg/analysis_server/test/edit/bulk_fixes_test.dart
+++ b/pkg/analysis_server/test/edit/bulk_fixes_test.dart
@@ -42,6 +42,28 @@
     createProject();
   }
 
+  Future<void> test_annotateOverrides_excludedFile() async {
+    addAnalysisOptionsFile('''
+analyzer:
+  exclude:
+    - test/**
+linter:
+  rules:
+    - annotate_overrides
+''');
+
+    newFile('$projectPath/test/test.dart', content: '''
+class A {
+  void f() {}
+}
+class B extends A {
+  void f() {}
+}
+''');
+
+    await assertNoEdits();
+  }
+
   Future<void> test_annotateOverrides_excludedSubProject() async {
     // Root project.
     addAnalysisOptionsFile('''
diff --git a/pkg/analysis_server/test/src/cider/cider_service.dart b/pkg/analysis_server/test/src/cider/cider_service.dart
index 2fe6e3a..ccc8b91 100644
--- a/pkg/analysis_server/test/src/cider/cider_service.dart
+++ b/pkg/analysis_server/test/src/cider/cider_service.dart
@@ -43,7 +43,6 @@
       (String path) => _getDigest(path),
       null,
       workspace: workspace,
-      libraryContextResetTimeout: null,
     );
     fileResolver.testView = FileResolverTestView();
   }
diff --git a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
index ab523a5..b77c5aa 100644
--- a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
+++ b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
@@ -2,7 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'dart:async';
 import 'dart:typed_data';
 
 import 'package:analyzer/dart/analysis/results.dart';
@@ -70,8 +69,6 @@
 
   final Workspace workspace;
 
-  _LibraryContextReset _libraryContextReset;
-
   /// This field gets value only during testing.
   FileResolverTestView testView;
 
@@ -96,7 +93,7 @@
     String Function(String path) getFileDigest,
     void Function(List<String> paths) prefetchFiles, {
     @required Workspace workspace,
-    Duration libraryContextResetTimeout = const Duration(seconds: 60),
+    @deprecated Duration libraryContextResetTimeout,
   }) : this.from(
           logger: logger,
           resourceProvider: resourceProvider,
@@ -104,6 +101,7 @@
           getFileDigest: getFileDigest,
           prefetchFiles: prefetchFiles,
           workspace: workspace,
+          // ignore: deprecated_member_use_from_same_package
           libraryContextResetTimeout: libraryContextResetTimeout,
         );
 
@@ -115,7 +113,7 @@
     @required void Function(List<String> paths) prefetchFiles,
     @required Workspace workspace,
     CiderByteStore byteStore,
-    Duration libraryContextResetTimeout = const Duration(seconds: 60),
+    @deprecated Duration libraryContextResetTimeout,
   })  : logger = logger,
         sourceFactory = sourceFactory,
         resourceProvider = resourceProvider,
@@ -124,10 +122,6 @@
         workspace = workspace {
     byteStore ??= CiderCachedByteStore(memoryCacheSize);
     this.byteStore = byteStore;
-    _libraryContextReset = _LibraryContextReset(
-      fileResolver: this,
-      resetTimeout: libraryContextResetTimeout,
-    );
   }
 
   List<LibrariesLogEntry> get librariesLogEntries {
@@ -165,9 +159,8 @@
     }
   }
 
-  void dispose() {
-    _libraryContextReset.dispose();
-  }
+  @deprecated
+  void dispose() {}
 
   ErrorsResult getErrors({
     @required String path,
@@ -177,52 +170,50 @@
 
     performance ??= OperationPerformanceImpl('<default>');
 
-    return _withLibraryContextReset(() {
-      return logger.run('Get errors for $path', () {
-        var fileContext = getFileContext(
+    return logger.run('Get errors for $path', () {
+      var fileContext = getFileContext(
+        path: path,
+        performance: performance,
+      );
+      var file = fileContext.file;
+
+      var errorsSignatureBuilder = ApiSignature();
+      errorsSignatureBuilder.addBytes(file.libraryCycle.signature);
+      errorsSignatureBuilder.addBytes(file.digest);
+      var errorsSignature = errorsSignatureBuilder.toByteList();
+
+      var errorsKey = file.path + '.errors';
+      var bytes = byteStore.get(errorsKey, errorsSignature)?.bytes;
+      List<AnalysisError> errors;
+      if (bytes != null) {
+        var data = CiderUnitErrors.fromBuffer(bytes);
+        errors = data.errors.map((error) {
+          return ErrorEncoding.decode(file.source, error);
+        }).toList();
+      }
+
+      if (errors == null) {
+        var unitResult = resolve(
           path: path,
           performance: performance,
         );
-        var file = fileContext.file;
+        errors = unitResult.errors;
 
-        var errorsSignatureBuilder = ApiSignature();
-        errorsSignatureBuilder.addBytes(file.libraryCycle.signature);
-        errorsSignatureBuilder.addBytes(file.digest);
-        var errorsSignature = errorsSignatureBuilder.toByteList();
+        bytes = CiderUnitErrorsBuilder(
+          signature: errorsSignature,
+          errors: errors.map(ErrorEncoding.encode).toList(),
+        ).toBuffer();
+        bytes = byteStore.putGet(errorsKey, errorsSignature, bytes).bytes;
+      }
 
-        var errorsKey = file.path + '.errors';
-        var bytes = byteStore.get(errorsKey, errorsSignature)?.bytes;
-        List<AnalysisError> errors;
-        if (bytes != null) {
-          var data = CiderUnitErrors.fromBuffer(bytes);
-          errors = data.errors.map((error) {
-            return ErrorEncoding.decode(file.source, error);
-          }).toList();
-        }
-
-        if (errors == null) {
-          var unitResult = resolve(
-            path: path,
-            performance: performance,
-          );
-          errors = unitResult.errors;
-
-          bytes = CiderUnitErrorsBuilder(
-            signature: errorsSignature,
-            errors: errors.map(ErrorEncoding.encode).toList(),
-          ).toBuffer();
-          bytes = byteStore.putGet(errorsKey, errorsSignature, bytes).bytes;
-        }
-
-        return ErrorsResultImpl(
-          contextObjects.analysisSession,
-          path,
-          file.uri,
-          file.lineInfo,
-          false, // isPart
-          errors,
-        );
-      });
+      return ErrorsResultImpl(
+        contextObjects.analysisSession,
+        path,
+        file.uri,
+        file.lineInfo,
+        false, // isPart
+        errors,
+      );
     });
   }
 
@@ -304,19 +295,17 @@
 
     var performance = OperationPerformanceImpl('<unused>');
 
-    _withLibraryContextReset(() {
-      var fileContext = getFileContext(
-        path: path,
-        performance: performance,
-      );
-      var file = fileContext.file;
-      var libraryFile = file.partOfLibrary ?? file;
+    var fileContext = getFileContext(
+      path: path,
+      performance: performance,
+    );
+    var file = fileContext.file;
+    var libraryFile = file.partOfLibrary ?? file;
 
-      libraryContext.load2(
-        targetLibrary: libraryFile,
-        performance: performance,
-      );
-    });
+    libraryContext.load2(
+      targetLibrary: libraryFile,
+      performance: performance,
+    );
 
     _resetContextObjects();
   }
@@ -338,87 +327,85 @@
 
     performance ??= OperationPerformanceImpl('<default>');
 
-    return _withLibraryContextReset(() {
-      return logger.run('Resolve $path', () {
-        var fileContext = getFileContext(
-          path: path,
+    return logger.run('Resolve $path', () {
+      var fileContext = getFileContext(
+        path: path,
+        performance: performance,
+      );
+      var file = fileContext.file;
+      var libraryFile = file.partOfLibrary ?? file;
+
+      int completionOffset;
+      if (completionLine != null && completionColumn != null) {
+        var lineOffset = file.lineInfo.getOffsetOfLine(completionLine);
+        completionOffset = lineOffset + completionColumn;
+      }
+
+      performance.run('libraryContext', (performance) {
+        libraryContext.load2(
+          targetLibrary: libraryFile,
           performance: performance,
         );
-        var file = fileContext.file;
-        var libraryFile = file.partOfLibrary ?? file;
-
-        int completionOffset;
-        if (completionLine != null && completionColumn != null) {
-          var lineOffset = file.lineInfo.getOffsetOfLine(completionLine);
-          completionOffset = lineOffset + completionColumn;
-        }
-
-        performance.run('libraryContext', (performance) {
-          libraryContext.load2(
-            targetLibrary: libraryFile,
-            performance: performance,
-          );
-        });
-
-        testView?.addResolvedFile(path);
-
-        var content = _getFileContent(path);
-        var errorListener = RecordingErrorListener();
-        var unit = file.parse(errorListener, content);
-
-        Map<FileState, UnitAnalysisResult> results;
-
-        logger.run('Compute analysis results', () {
-          var libraryAnalyzer = LibraryAnalyzer(
-            fileContext.analysisOptions,
-            contextObjects.declaredVariables,
-            sourceFactory,
-            (_) => true, // _isLibraryUri
-            contextObjects.analysisContext,
-            libraryContext.elementFactory,
-            contextObjects.inheritanceManager,
-            libraryFile,
-            resourceProvider,
-            (file) => file.getContentWithSameDigest(),
-          );
-
-          try {
-            results = performance.run('analyze', (performance) {
-              return NullSafetyUnderstandingFlag.enableNullSafetyTypes(() {
-                return libraryAnalyzer.analyzeSync(
-                  completionPath: completionOffset != null ? path : null,
-                  completionOffset: completionOffset,
-                  performance: performance,
-                );
-              });
-            });
-          } catch (exception, stackTrace) {
-            var fileContentMap = <String, String>{};
-            for (var file in libraryFile.libraryFiles) {
-              var path = file.path;
-              fileContentMap[path] = _getFileContent(path);
-            }
-            throw CaughtExceptionWithFiles(
-              exception,
-              stackTrace,
-              fileContentMap,
-            );
-          }
-        });
-        UnitAnalysisResult fileResult = results[file];
-
-        return ResolvedUnitResultImpl(
-          contextObjects.analysisSession,
-          path,
-          file.uri,
-          file.exists,
-          content,
-          unit.lineInfo,
-          false, // isPart
-          fileResult.unit,
-          fileResult.errors,
-        );
       });
+
+      testView?.addResolvedFile(path);
+
+      var content = _getFileContent(path);
+      var errorListener = RecordingErrorListener();
+      var unit = file.parse(errorListener, content);
+
+      Map<FileState, UnitAnalysisResult> results;
+
+      logger.run('Compute analysis results', () {
+        var libraryAnalyzer = LibraryAnalyzer(
+          fileContext.analysisOptions,
+          contextObjects.declaredVariables,
+          sourceFactory,
+          (_) => true, // _isLibraryUri
+          contextObjects.analysisContext,
+          libraryContext.elementFactory,
+          contextObjects.inheritanceManager,
+          libraryFile,
+          resourceProvider,
+          (file) => file.getContentWithSameDigest(),
+        );
+
+        try {
+          results = performance.run('analyze', (performance) {
+            return NullSafetyUnderstandingFlag.enableNullSafetyTypes(() {
+              return libraryAnalyzer.analyzeSync(
+                completionPath: completionOffset != null ? path : null,
+                completionOffset: completionOffset,
+                performance: performance,
+              );
+            });
+          });
+        } catch (exception, stackTrace) {
+          var fileContentMap = <String, String>{};
+          for (var file in libraryFile.libraryFiles) {
+            var path = file.path;
+            fileContentMap[path] = _getFileContent(path);
+          }
+          throw CaughtExceptionWithFiles(
+            exception,
+            stackTrace,
+            fileContentMap,
+          );
+        }
+      });
+      UnitAnalysisResult fileResult = results[file];
+
+      return ResolvedUnitResultImpl(
+        contextObjects.analysisSession,
+        path,
+        file.uri,
+        file.exists,
+        content,
+        unit.lineInfo,
+        false, // isPart
+        fileResult.unit,
+        fileResult.errors,
+      );
     });
   }
 
@@ -603,19 +590,6 @@
     }
   }
 
-  /// Run the [operation] that uses the library context, by locking it first,
-  /// so that it is not reset while the operating is still running, and
-  /// unlocking after the operation is done, so that the library context
-  /// will be reset after some timeout.
-  T _withLibraryContextReset<T>(T Function() operation) {
-    _libraryContextReset.lock();
-    try {
-      return operation();
-    } finally {
-      _libraryContextReset.unlock();
-    }
-  }
-
   static File _getFile(Folder directory, String name) {
     Resource resource = directory.getChild(name);
     if (resource is File && resource.exists) {
@@ -824,58 +798,3 @@
     );
   }
 }
-
-/// The helper to reset the library context will be reset after the specified
-/// interval of inactivity. Keeping library context with loaded elements
-/// significantly improves performance of resolution, because we don't have
-/// to resynthesize elements, build export scopes for libraries, etc.
-/// However keeping elements that we don't need anymore, or when the user
-/// does not work with files, is wasteful.
-class _LibraryContextReset {
-  final FileResolver fileResolver;
-  final Duration resetTimeout;
-
-  /// The lock level, incremented by [lock], and decremented by [unlock].
-  /// The timeout timer is started when the level reaches zero.
-  int _lockLevel = 0;
-  Timer _timer;
-
-  _LibraryContextReset({
-    @required this.fileResolver,
-    @required this.resetTimeout,
-  });
-
-  void dispose() {
-    _stop();
-  }
-
-  /// Stop the timeout timer, and increment the lock level. The library context
-  /// will be not reset until [unlock] will bring the lock level back to zero.
-  void lock() {
-    _stop();
-    _lockLevel++;
-  }
-
-  /// Unlock the timer, the library context will be reset after the timeout.
-  void unlock() {
-    assert(_lockLevel > 0);
-    _lockLevel--;
-
-    if (_lockLevel == 0) {
-      _stop();
-      if (resetTimeout != null) {
-        _timer = Timer(resetTimeout, () {
-          _timer = null;
-          fileResolver._resetContextObjects();
-        });
-      }
-    }
-  }
-
-  void _stop() {
-    if (_timer != null) {
-      _timer.cancel();
-      _timer = null;
-    }
-  }
-}
diff --git a/pkg/analyzer/test/src/dart/micro/file_resolution.dart b/pkg/analyzer/test/src/dart/micro/file_resolution.dart
index bc7b664..b03a488 100644
--- a/pkg/analyzer/test/src/dart/micro/file_resolution.dart
+++ b/pkg/analyzer/test/src/dart/micro/file_resolution.dart
@@ -53,7 +53,6 @@
       getFileDigest: (String path) => _getDigest(path),
       workspace: workspace,
       prefetchFiles: null,
-      libraryContextResetTimeout: null,
     );
     fileResolver.testView = FileResolverTestView();
   }
diff --git a/pkg/dartdev/test/commands/fix_test.dart b/pkg/dartdev/test/commands/fix_test.dart
index 8881e4d..8371019 100644
--- a/pkg/dartdev/test/commands/fix_test.dart
+++ b/pkg/dartdev/test/commands/fix_test.dart
@@ -59,5 +59,41 @@
     expect(result.stdout, contains('Fixed 1 file.'));
   });
 
-  // todo (pq): add tests for analyzer excludes, ignores, etc.
+  test('excludes', () {
+    p = project(
+      mainSrc: '''
+var x = "";
+''',
+      analysisOptions: '''
+analyzer:
+  exclude:
+    - lib/**
+linter:
+  rules:
+    - prefer_single_quotes
+''',
+    );
+    var result = p.runSync('fix', ['.'], workingDir: p.dirPath);
+    expect(result.exitCode, 0);
+    expect(result.stderr, isEmpty);
+    expect(result.stdout, contains('Nothing to fix!'));
+  });
+
+  test('ignores', () {
+    p = project(
+      mainSrc: '''
+// ignore: prefer_single_quotes
+var x = "";
+''',
+      analysisOptions: '''
+linter:
+  rules:
+    - prefer_single_quotes
+''',
+    );
+    var result = p.runSync('fix', ['.'], workingDir: p.dirPath);
+    expect(result.exitCode, 0);
+    expect(result.stderr, isEmpty);
+    expect(result.stdout, contains('Nothing to fix!'));
+  });
 }
diff --git a/pkg/front_end/lib/src/api_prototype/compiler_options.dart b/pkg/front_end/lib/src/api_prototype/compiler_options.dart
index 28f961e..866ea26 100644
--- a/pkg/front_end/lib/src/api_prototype/compiler_options.dart
+++ b/pkg/front_end/lib/src/api_prototype/compiler_options.dart
@@ -433,10 +433,5 @@
       }
     }
   }
-  for (ExperimentalFlag flag in ExperimentalFlag.values) {
-    assert(defaultExperimentalFlags.containsKey(flag),
-        "No default value for $flag.");
-    flags[flag] ??= defaultExperimentalFlags[flag];
-  }
   return flags;
 }
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc
index 41933d8..9b963b6 100644
--- a/runtime/vm/compiler/aot/precompiler.cc
+++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -1807,6 +1807,7 @@
   AbstractType& type = AbstractType::Handle(Z);
   Function& initializer_function = Function::Handle(Z);
 
+  SafepointWriteRwLocker ml(T, T->isolate_group()->program_lock());
   for (intptr_t i = 0; i < libraries_.Length(); i++) {
     lib ^= libraries_.At(i);
     ClassDictionaryIterator it(lib, ClassDictionaryIterator::kIteratePrivate);
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index ba6f92c..ab6f5b5 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -1115,10 +1115,10 @@
   // in the vm isolate. See special handling in Class::SuperClass().
   cls = type_arguments_class_;
   cls.set_interfaces(Object::empty_array());
-  cls.SetFields(Object::empty_array());
   {
     Thread* thread = Thread::Current();
     SafepointWriteRwLocker ml(thread, thread->isolate_group()->program_lock());
+    cls.SetFields(Object::empty_array());
     cls.SetFunctions(Object::empty_array());
   }
 
@@ -4354,6 +4354,9 @@
 void Class::SetFields(const Array& value) const {
   ASSERT(!value.IsNull());
 #if defined(DEBUG)
+  Thread* thread = Thread::Current();
+  ASSERT(thread->IsMutatorThread());
+  ASSERT(thread->isolate_group()->program_lock()->IsCurrentThreadWriter());
   // Verify that all the fields in the array have this class as owner.
   Field& field = Field::Handle();
   intptr_t len = value.Length();
@@ -4368,6 +4371,11 @@
 }
 
 void Class::AddField(const Field& field) const {
+#if defined(DEBUG)
+  Thread* thread = Thread::Current();
+  ASSERT(thread->IsMutatorThread());
+  ASSERT(thread->isolate_group()->program_lock()->IsCurrentThreadWriter());
+#endif
   const Array& arr = Array::Handle(fields());
   const Array& new_arr = Array::Handle(Array::Grow(arr, arr.Length() + 1));
   new_arr.SetAt(arr.Length(), field);
@@ -4375,6 +4383,11 @@
 }
 
 void Class::AddFields(const GrowableArray<const Field*>& new_fields) const {
+#if defined(DEBUG)
+  Thread* thread = Thread::Current();
+  ASSERT(thread->IsMutatorThread());
+  ASSERT(thread->isolate_group()->program_lock()->IsCurrentThreadWriter());
+#endif
   const intptr_t num_new_fields = new_fields.length();
   if (num_new_fields == 0) return;
   const Array& arr = Array::Handle(fields());
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc
index a9c2fcb..5cab797 100644
--- a/runtime/vm/object_test.cc
+++ b/runtime/vm/object_test.cc
@@ -207,8 +207,8 @@
       SafepointWriteRwLocker ml(thread,
                                 thread->isolate_group()->program_lock());
       cls.SetFunctions(Array::empty_array());
+      cls.SetFields(fields);
     }
-    cls.SetFields(fields);
     cls.Finalize();
 
     instance = Instance::New(cls);
@@ -332,7 +332,10 @@
                  Object::dynamic_type(), TokenPosition::kMinSource,
                  TokenPosition::kMinSource));
   one_fields.SetAt(0, field);
-  one_field_class.SetFields(one_fields);
+  {
+    SafepointWriteRwLocker ml(thread, thread->isolate_group()->program_lock());
+    one_field_class.SetFields(one_fields);
+  }
   one_field_class.Finalize();
   intptr_t header_size = sizeof(ObjectLayout);
   EXPECT_EQ(Utils::RoundUp((header_size + (1 * kWordSize)), kObjectAlignment),
diff --git a/tests/co19/co19-runtime.status b/tests/co19/co19-runtime.status
index 0a91266..2fdfc3e 100644
--- a/tests/co19/co19-runtime.status
+++ b/tests/co19/co19-runtime.status
@@ -12,8 +12,29 @@
 [ $compiler != dart2js && $runtime != none && $runtime != vm && !$checked ]
 LibTest/async/Future/catchError_A03_t05: RuntimeError
 
-[ $mode == debug && $nnbd != legacy && $runtime == dart_precompiled ]
-LibTest/collection/ListMixin/ListMixin_class_A01_t05: SkipSlow # Issue 43614
+[ $mode == debug && $runtime == dart_precompiled ]
+LibTest/collection/ListBase/ListBase_class_A01_t03: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListBase/ListBase_class_A01_t04: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListBase/ListBase_class_A01_t05: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListBase/ListBase_class_A01_t06: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListMixin/ListMixin_class_A01_t03: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListMixin/ListMixin_class_A01_t04: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListMixin/ListMixin_class_A01_t05: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListMixin/ListMixin_class_A01_t06: SkipSlow # Very slow compilation in debug mode.
+LibTest/core/List/List_all_t03: SkipSlow # Very slow compilation in debug mode.
+LibTest/core/List/List_all_t04: SkipSlow # Very slow compilation in debug mode.
+LibTest/core/List/List_all_t05: SkipSlow # Very slow compilation in debug mode.
+LibTest/core/List/List_all_t06: SkipSlow # Very slow compilation in debug mode.
+
+[ $arch == simarm || $arch == simarm64 ]
+LibTest/collection/ListBase/ListBase_class_A01_t01: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListBase/ListBase_class_A01_t04: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListBase/ListBase_class_A01_t05: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListBase/ListBase_class_A01_t06: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListMixin/ListMixin_class_A01_t01: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListMixin/ListMixin_class_A01_t04: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListMixin/ListMixin_class_A01_t05: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListMixin/ListMixin_class_A01_t06: SkipSlow # Very slow on sim* architectures.
 
 [ $compiler == fasta || $runtime == dart_precompiled || $runtime == vm ]
 LibTest/html/*: SkipByDesign # dart:html not supported on VM.
diff --git a/tests/co19_2/co19_2-runtime.status b/tests/co19_2/co19_2-runtime.status
index c3ddffa..26ee4d3 100644
--- a/tests/co19_2/co19_2-runtime.status
+++ b/tests/co19_2/co19_2-runtime.status
@@ -9,5 +9,25 @@
 [ $compiler != dart2js && $runtime != none && $runtime != vm && !$checked ]
 LibTest/async/Future/catchError_A03_t05: RuntimeError
 
+[ $mode == debug && $runtime == dart_precompiled ]
+LibTest/collection/ListBase/ListBase_class_A01_t03: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListBase/ListBase_class_A01_t04: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListBase/ListBase_class_A01_t05: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListBase/ListBase_class_A01_t06: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListMixin/ListMixin_class_A01_t03: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListMixin/ListMixin_class_A01_t04: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListMixin/ListMixin_class_A01_t05: SkipSlow # Very slow compilation in debug mode.
+LibTest/collection/ListMixin/ListMixin_class_A01_t06: SkipSlow # Very slow compilation in debug mode.
+
+[ $arch == simarm || $arch == simarm64 ]
+LibTest/collection/ListBase/ListBase_class_A01_t01: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListBase/ListBase_class_A01_t04: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListBase/ListBase_class_A01_t05: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListBase/ListBase_class_A01_t06: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListMixin/ListMixin_class_A01_t01: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListMixin/ListMixin_class_A01_t04: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListMixin/ListMixin_class_A01_t05: SkipSlow # Very slow on sim* architectures.
+LibTest/collection/ListMixin/ListMixin_class_A01_t06: SkipSlow # Very slow on sim* architectures.
+
 [ $compiler == fasta || $runtime == dart_precompiled || $runtime == vm ]
 LibTest/html/*: SkipByDesign # dart:html not supported on VM.
diff --git a/tools/VERSION b/tools/VERSION
index 6dfe295..f71a9a1 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 11
 PATCH 0
-PRERELEASE 245
+PRERELEASE 246
 PRERELEASE_PATCH 0
\ No newline at end of file