- Support collecting and formatting web (V8 / Chrome) coverage reports in
test_with_coveragevia the new-p/--platformflag. Web runs delegate
todart test --coverage; VM runs continue to use the existing VM-service
collection flow. Platforms other thanvmandchromeare rejected, as are
--function-coverageand--branch-coveragecombined with a web platform,
and platform flags passed through to the test script.
Note that web coverage is measured on compiled JavaScript: code the compiler
drops cannot be reported as uncovered, so line counts and percentages are not
comparable to VM runs and--fail-underthresholds must be re-tuned per
platform. - Support
scopeOutputfiltering inHitMap.parseJsonSync,HitMap.parseJson,
andHitMap.parseFiles, normalizingfile:URIs inside known package library
roots topackage:URIs viaResolver.toPackageUri. test_with_coveragenow fails immediately when the test process exits before
the VM service is ready or before coverage collection finishes (for example,
when the test path does not exist or fails to load) instead of waiting
forever, and exits with the test process's exit code.HitMap.parseFilesnow throws aFormatExceptionwhen a file is not a valid
{"coverage": [...]}report, instead of silently ignoring it, and
parseChromeCoveragethrows aFormatExceptionwhen an entry is missing a
string"scriptId".- Migrate Dart subprocess spawning to
package:cli_util(dartExecutable) to
support AOT-compiled executables (dart compile exe/dart install). Resolver.resolvenow rejectsfile:URIs that fall outside the known
package/SDK roots or the current directory, instead of resolving them
unconditionally.- Fix a race condition in isolate teardown: ignore the benign errors
produced when an isolate exits between its pause-on-exit callback
completing and the resume request reaching the VM service. - Also ignore
SentinelExceptionwhen resuming the main isolate after
collection, matching the existingRPCErrorhandling there. - Require Dart 3.9.