diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md
index 6413bf4..2cdef0e 100644
--- a/dwds/CHANGELOG.md
+++ b/dwds/CHANGELOG.md
@@ -1,4 +1,4 @@
-## 16.0.0-dev
+## 16.0.0
 
 - Fix a hang and report errors on hot reload exceptions from the injected
   client.
diff --git a/dwds/lib/src/injected/client.js b/dwds/lib/src/injected/client.js
index 8bd1f2b..44f5333 100644
--- a/dwds/lib/src/injected/client.js
+++ b/dwds/lib/src/injected/client.js
@@ -1,4 +1,4 @@
-// Generated by dart2js (NullSafetyMode.sound, csp), the Dart to JavaScript compiler version: 2.18.0-238.0.dev.
+// Generated by dart2js (NullSafetyMode.sound, deferred-serialization, csp), the Dart to JavaScript compiler version: 2.18.0.
 // The code supports the following hooks:
 // dartPrint(message):
 //    if this function is defined it is called instead of the Dart [print]
@@ -6371,7 +6371,7 @@
       return new A.UriData(text, indices, sourceUri);
     },
     _createTables() {
-      var _i, t2, t3, t4, t5,
+      var _i, t2, t3, t4, b,
         _s77_ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=",
         _s1_ = ".", _s1_0 = ":", _s1_1 = "/", _s1_2 = "?", _s1_3 = "#",
         t1 = type$.Uint8List,
@@ -6381,126 +6381,126 @@
       t2 = new A._createTables_build(tables);
       t3 = new A._createTables_setChars();
       t4 = new A._createTables_setRange();
-      t5 = t1._as(t2.call$2(0, 225));
-      t3.call$3(t5, _s77_, 1);
-      t3.call$3(t5, _s1_, 14);
-      t3.call$3(t5, _s1_0, 34);
-      t3.call$3(t5, _s1_1, 3);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(14, 225));
-      t3.call$3(t5, _s77_, 1);
-      t3.call$3(t5, _s1_, 15);
-      t3.call$3(t5, _s1_0, 34);
-      t3.call$3(t5, _s1_1, 234);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(15, 225));
-      t3.call$3(t5, _s77_, 1);
-      t3.call$3(t5, "%", 225);
-      t3.call$3(t5, _s1_0, 34);
-      t3.call$3(t5, _s1_1, 9);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(1, 225));
-      t3.call$3(t5, _s77_, 1);
-      t3.call$3(t5, _s1_0, 34);
-      t3.call$3(t5, _s1_1, 10);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(2, 235));
-      t3.call$3(t5, _s77_, 139);
-      t3.call$3(t5, _s1_1, 131);
-      t3.call$3(t5, _s1_, 146);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(3, 235));
-      t3.call$3(t5, _s77_, 11);
-      t3.call$3(t5, _s1_1, 68);
-      t3.call$3(t5, _s1_, 18);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(4, 229));
-      t3.call$3(t5, _s77_, 5);
-      t4.call$3(t5, "AZ", 229);
-      t3.call$3(t5, _s1_0, 102);
-      t3.call$3(t5, "@", 68);
-      t3.call$3(t5, "[", 232);
-      t3.call$3(t5, _s1_1, 138);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(5, 229));
-      t3.call$3(t5, _s77_, 5);
-      t4.call$3(t5, "AZ", 229);
-      t3.call$3(t5, _s1_0, 102);
-      t3.call$3(t5, "@", 68);
-      t3.call$3(t5, _s1_1, 138);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(6, 231));
-      t4.call$3(t5, "19", 7);
-      t3.call$3(t5, "@", 68);
-      t3.call$3(t5, _s1_1, 138);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(7, 231));
-      t4.call$3(t5, "09", 7);
-      t3.call$3(t5, "@", 68);
-      t3.call$3(t5, _s1_1, 138);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t3.call$3(t1._as(t2.call$2(8, 8)), "]", 5);
-      t5 = t1._as(t2.call$2(9, 235));
-      t3.call$3(t5, _s77_, 11);
-      t3.call$3(t5, _s1_, 16);
-      t3.call$3(t5, _s1_1, 234);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(16, 235));
-      t3.call$3(t5, _s77_, 11);
-      t3.call$3(t5, _s1_, 17);
-      t3.call$3(t5, _s1_1, 234);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(17, 235));
-      t3.call$3(t5, _s77_, 11);
-      t3.call$3(t5, _s1_1, 9);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(10, 235));
-      t3.call$3(t5, _s77_, 11);
-      t3.call$3(t5, _s1_, 18);
-      t3.call$3(t5, _s1_1, 234);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(18, 235));
-      t3.call$3(t5, _s77_, 11);
-      t3.call$3(t5, _s1_, 19);
-      t3.call$3(t5, _s1_1, 234);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(19, 235));
-      t3.call$3(t5, _s77_, 11);
-      t3.call$3(t5, _s1_1, 234);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(11, 235));
-      t3.call$3(t5, _s77_, 11);
-      t3.call$3(t5, _s1_1, 10);
-      t3.call$3(t5, _s1_2, 172);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(12, 236));
-      t3.call$3(t5, _s77_, 12);
-      t3.call$3(t5, _s1_2, 12);
-      t3.call$3(t5, _s1_3, 205);
-      t5 = t1._as(t2.call$2(13, 237));
-      t3.call$3(t5, _s77_, 13);
-      t3.call$3(t5, _s1_2, 13);
-      t4.call$3(t1._as(t2.call$2(20, 245)), "az", 21);
-      t2 = t1._as(t2.call$2(21, 245));
-      t4.call$3(t2, "az", 21);
-      t4.call$3(t2, "09", 21);
-      t3.call$3(t2, "+-.", 21);
+      t1 = t1._as(t2.call$2(0, 225));
+      t3.call$3(t1, _s77_, 1);
+      t3.call$3(t1, _s1_, 14);
+      t3.call$3(t1, _s1_0, 34);
+      t3.call$3(t1, _s1_1, 3);
+      t3.call$3(t1, _s1_2, 172);
+      t3.call$3(t1, _s1_3, 205);
+      b = t2.call$2(14, 225);
+      t3.call$3(b, _s77_, 1);
+      t3.call$3(b, _s1_, 15);
+      t3.call$3(b, _s1_0, 34);
+      t3.call$3(b, _s1_1, 234);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(15, 225);
+      t3.call$3(b, _s77_, 1);
+      t3.call$3(b, "%", 225);
+      t3.call$3(b, _s1_0, 34);
+      t3.call$3(b, _s1_1, 9);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(1, 225);
+      t3.call$3(b, _s77_, 1);
+      t3.call$3(b, _s1_0, 34);
+      t3.call$3(b, _s1_1, 10);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(2, 235);
+      t3.call$3(b, _s77_, 139);
+      t3.call$3(b, _s1_1, 131);
+      t3.call$3(b, _s1_, 146);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(3, 235);
+      t3.call$3(b, _s77_, 11);
+      t3.call$3(b, _s1_1, 68);
+      t3.call$3(b, _s1_, 18);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(4, 229);
+      t3.call$3(b, _s77_, 5);
+      t4.call$3(b, "AZ", 229);
+      t3.call$3(b, _s1_0, 102);
+      t3.call$3(b, "@", 68);
+      t3.call$3(b, "[", 232);
+      t3.call$3(b, _s1_1, 138);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(5, 229);
+      t3.call$3(b, _s77_, 5);
+      t4.call$3(b, "AZ", 229);
+      t3.call$3(b, _s1_0, 102);
+      t3.call$3(b, "@", 68);
+      t3.call$3(b, _s1_1, 138);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(6, 231);
+      t4.call$3(b, "19", 7);
+      t3.call$3(b, "@", 68);
+      t3.call$3(b, _s1_1, 138);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(7, 231);
+      t4.call$3(b, "09", 7);
+      t3.call$3(b, "@", 68);
+      t3.call$3(b, _s1_1, 138);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      t3.call$3(t2.call$2(8, 8), "]", 5);
+      b = t2.call$2(9, 235);
+      t3.call$3(b, _s77_, 11);
+      t3.call$3(b, _s1_, 16);
+      t3.call$3(b, _s1_1, 234);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(16, 235);
+      t3.call$3(b, _s77_, 11);
+      t3.call$3(b, _s1_, 17);
+      t3.call$3(b, _s1_1, 234);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(17, 235);
+      t3.call$3(b, _s77_, 11);
+      t3.call$3(b, _s1_1, 9);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(10, 235);
+      t3.call$3(b, _s77_, 11);
+      t3.call$3(b, _s1_, 18);
+      t3.call$3(b, _s1_1, 234);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(18, 235);
+      t3.call$3(b, _s77_, 11);
+      t3.call$3(b, _s1_, 19);
+      t3.call$3(b, _s1_1, 234);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(19, 235);
+      t3.call$3(b, _s77_, 11);
+      t3.call$3(b, _s1_1, 234);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(11, 235);
+      t3.call$3(b, _s77_, 11);
+      t3.call$3(b, _s1_1, 10);
+      t3.call$3(b, _s1_2, 172);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(12, 236);
+      t3.call$3(b, _s77_, 12);
+      t3.call$3(b, _s1_2, 12);
+      t3.call$3(b, _s1_3, 205);
+      b = t2.call$2(13, 237);
+      t3.call$3(b, _s77_, 13);
+      t3.call$3(b, _s1_2, 13);
+      t4.call$3(t2.call$2(20, 245), "az", 21);
+      b = t2.call$2(21, 245);
+      t4.call$3(b, "az", 21);
+      t4.call$3(b, "09", 21);
+      t3.call$3(b, "+-.", 21);
       return tables;
     },
     _scan(uri, start, end, state, indices) {
@@ -18341,7 +18341,7 @@
       }
       try {
         elementTagName = A.Element__safeTagName(element);
-        this._sanitizeElement$7(type$.Element._as(element), $parent, corrupted, elementText, elementTagName, type$.Map_dynamic_dynamic._as(attrs), A._asStringQ(isAttr));
+        this._sanitizeElement$7(element, $parent, corrupted, elementText, elementTagName, type$.Map_dynamic_dynamic._as(attrs), A._asStringQ(isAttr));
       } catch (exception) {
         if (A.unwrapException(exception) instanceof A.ArgumentError)
           throw exception;
diff --git a/dwds/lib/src/version.dart b/dwds/lib/src/version.dart
index 95e76c5..6daf26f 100644
--- a/dwds/lib/src/version.dart
+++ b/dwds/lib/src/version.dart
@@ -1,2 +1,2 @@
 // Generated code. Do not modify.
-const packageVersion = '16.0.0-dev';
+const packageVersion = '16.0.0';
diff --git a/dwds/pubspec.yaml b/dwds/pubspec.yaml
index dd3ae86..403b231 100644
--- a/dwds/pubspec.yaml
+++ b/dwds/pubspec.yaml
@@ -1,6 +1,6 @@
 name: dwds
 # Every time this changes you need to run `dart run build_runner build`.
-version: 16.0.0-dev
+version: 16.0.0
 description: >-
   A service that proxies between the Chrome debug protocol and the Dart VM
   service protocol.
