Version 2.1.0-dev.9.3

Cherry-pick 65951ef5080bcfa7d8862685e96f75c2c5d17841 to dev

Cherry-pick 6004c8a1876731e65104cf88f46af01bfe8c24c4 to dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 05ae78c..54bc2bc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+# 2.1.0-dev.9.3
+
+Cherry-pick 65951ef5080bcfa7d8862685e96f75c2c5d17841 to dev
+
+Cherry-pick 6004c8a1876731e65104cf88f46af01bfe8c24c4 to dev
+
 ## 2.1.0-dev.9.2
 
 Cherry-pick 2cf0ca381ce33d1e6597c778eb1a915eecdac109 to dev
diff --git a/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
index e653943..f6be1c1 100644
--- a/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
@@ -174,6 +174,9 @@
 
   @override
   int generatedSize(OutputUnit unit) {
+    if (_emitter.omittedFragments.any((f) => f.outputUnit == unit)) {
+      return 0;
+    }
     Fragment key = _emitter.outputBuffers.keys
         .firstWhere((Fragment fragment) => fragment.outputUnit == unit);
     return _emitter.outputBuffers[key].length;
diff --git a/pkg/dev_compiler/lib/src/compiler/shared_command.dart b/pkg/dev_compiler/lib/src/compiler/shared_command.dart
index a136652..ddb903c 100644
--- a/pkg/dev_compiler/lib/src/compiler/shared_command.dart
+++ b/pkg/dev_compiler/lib/src/compiler/shared_command.dart
@@ -149,9 +149,12 @@
           : (outPaths as List<String>)
               .firstWhere((_) => true, orElse: () => null);
 
+      // TODO(jmesserly): fix the debugger console so it's not passing invalid
+      // options.
+      if (outPath == null) return null;
       if (moduleRoot != null) {
-        // TODO(jmesserly): remove this legacy support after a deprecation period.
-        // (Mainly this is to give time for migrating build rules.)
+        // TODO(jmesserly): remove this legacy support after a deprecation
+        // period. (Mainly this is to give time for migrating build rules.)
         moduleName =
             path.withoutExtension(path.relative(outPath, from: moduleRoot));
       } else {
diff --git a/pkg/dev_compiler/web/web_command.dart b/pkg/dev_compiler/web/web_command.dart
index ac2b54f..2904b5a 100644
--- a/pkg/dev_compiler/web/web_command.dart
+++ b/pkg/dev_compiler/web/web_command.dart
@@ -285,13 +285,13 @@
       }
       resources.newFile(fileName, sourceCode);
 
-      compilerOptions.moduleName = path.toUri(libraryName).toString();
+      var name = path.toUri(libraryName).toString();
+      compilerOptions.moduleName = name;
       JSModuleFile module =
           compileWithAnalyzer(driver, [fileName], options, compilerOptions);
 
       var moduleCode = '';
       if (module.isValid) {
-        var name = compilerOptions.moduleName;
         moduleCode =
             module.getCode(ModuleFormat.legacyConcat, name, name + '.map').code;
       }
diff --git a/tools/VERSION b/tools/VERSION
index f6d7bfb..fe36fde 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 1
 PATCH 0
 PRERELEASE 9
-PRERELEASE_PATCH 2
+PRERELEASE_PATCH 3