Mojom frontend: Correctly handle empty structs in computeVersionInfo()

When a struct has no fields, it's version_info should still have a version zero with num_bytes=8. There was a bug where instead we had num_bytes=0 in this case. This patch fixes that bug and adds a test case.

BUG=#173
R=azani@chromium.org

Review URL: https://codereview.chromium.org/1825653002 .
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
index 3a38a55..4be0dee 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
@@ -1331,7 +1331,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/9yaz2/bNhTHLcVObMdOnMTNvK3rPKDFuh+N+wuFsVOGLkOHFYOxFsV6ctSItTVYkifJQ3frn+BjjjvuuOOO+xN23NG79dhLgd06cn5yWJqUZAI03RB4oGUTFt9HXz4+kmrkpqUG9XWo2e/jusjUbLu/ob6KLY+tCdeHUB9D/Rzqy9guYnv4uHPU/fbo8Re2FUTdyO+eDIcHd4fDB46NSLsr2D4QtfsKf4aGie2OTvr+l0EvxL9/gu2jtHb3nTCCft4Df4ifa9jalN/k+vnm2bWB7eX+m9eTz6bXTYZbXF5S92HLa1zi59KmvhO1J2Ub2wa2GOH7+PMeNgHeuedIOJaxPcL2HbZW33dRKxjZvut4KGi5/o9+KwxOph/Iv7ZGnhNFKIzCFnKfINtGQZdc4sb0TUl7d/5+NBfCuf3ofuH15FUh98+rgoGN1VPbnNad/LTur5/pjv6/FwwX8r8ibuS36xz29Lhgyw62ErYHEfbxIZrphfXvY2ymQp6srl4wdZquWH/bAn/fBZ9n/l4L0E8jsd9xUeV3MffmOCsKxlcul00f/2tOxAv/tqg+6tgqJM5gD752PCfsI5vH6dNzoo+L4DPtLy2Rt10fJB7J8ErTR8fxet+jcOh7IeJxunbO9EH7e570YSjSB0lJkvRxoEkfx6YafdD+6tQHq4tDJg8jvxeo/C2tZOXE6o0tFciHBg6fywGwVK2HnCCPo3VLp9KL5t1J49IQ5I8q8+oa9CVecsR6FSxH5p7LDU15dR3WKTE3k/p9jernKTT6tZBxPpScH1LzaRTdHTjIE+WVNzXFu46pKJ+O/dWcT69qvIvXsyewZuXpoa4h3jUE6+2s+xpZ4xs7Dids3iE5DtPmF5Kn8XR4a8njb8LUKvLvtzkPZfVgKtIDmaJ5fG5r0sPxmho9ED916qEBPGdxxhDH4xzEZBXxWPT9BWxVbN7I/Qa7YEUOztQFuqgq5LTo/FSU5GGkzE+bkEdZQS8nGh9XNM5Pcd4ap9hZ98mT4pFJXbPj81+o/6yryb/jLvLyb6r7c8+hBPO0qudwiv9zF9sY7jcG4YwhII8hXo1h33oMA3cM+9fjDagB+GkJ8vHytP4Nzhl+r0zrP6rAeWta/7UNOt+B57KbHDfWNa1bQ+fObd7zKcPzXWa8SIqfquLFGYdbN3kcNjVxyCf0V4aDmZnDjTs8DhVNHNYE/d2S5LCWcf4InTZ3/qhq4lBOiMMyHPIZ9TASxIctiOHL5lAS9LchyaGQmQM/Pmxr4lBM2LeV4bCemQM/PtQ0cdhI2KeQ4bCRMT6MBPFhRxMHU9DfpiSHYsq6I/bz6cC3ou7P1kCwT7arKV6KeFyW5FFaiIfjPRXw2FsxHlcleZQX4uFZnoBHXRMPI+M6OyuPzRQeu8DM9kdPBuhswLA8LmiKHyIebUkelcV4zAYMy2N/xXgcSvKoLsZjNmBYHu9o4GEk7OPck+SxlTHf8CyXe37XUHx+x+qAx8Wk9lfY0pHksp2ik3hfNIwCx+t1rSCwfuHxic+zVO9zGeAHuz9VE4wbml8+gd/nkvxqKfz2QXsuCkOrh7p9y7MHaJ7fe8B0GfoyJPj8IMlnJ4XPHsxlthVZMzgcfZH3WC8tiY+Zsv9JYmdf9P4BDOBJxvOJQ2b/s5PhfIJ+VaIJ9xa9TsFyvKR4H5Q9v3hmrOb7Mx56xj3f+RA+LyOOqXx/ZlXOR2LeToRcHu8mtFk272Wdj/wXAAD//+HD4J5oMQAA";
+  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/9yaz2/bNhTHLcVObMdOnMTNvK3rPKDFuh+N+wuFsVOGLkOHFYOxFsV6ctSItTVYkifJQ3frn+BjjjvuuOOO+xN23NG79dhLgd06cn5yWJqUZAI03RB4oGUTFt9HXz4+kmrkpqUG9XWo2e/jusjUbLu/ob6KLY+tCdeHUB9D/Rzqy9guYnv4uHPU/fbo8Re2FUTdyO+eDIcHd4fDB46NSLsr2D4QtfsKf4aGie2OTvr+l0EvxL9/gu2jtHb3nTCCft4Df4ifa9jalN/k+vnm2bWB7eX+m9eTz6bXTYZbXF5S92HLa1zi59KmvhO1J2Ub2wa2GOH7+PMeNgHeuedIOJaxPcL2HbZW33dRKxjZvut4KGi5/o9+KwxOph/Iv7ZGnhNFKIzCFnKfINtGQZdc4sb0TUl7d/5+NBfCuf3ofuH15FUh98+rgoGN1VPbnNad/LTur5/pjv6/FwwX8r8ibuS36xz29Lhgyw62ErYHEfbxIZrphfXvY2ymQp6srl4wdZquWH/bAn/fBZ9n/l4L0E8jsd9xUeV3MffmOCsKxlcxl00f/2tOxAv/tqg+6tgqJM5gD752PCfsI5vH6dNzoo+L4DPtLy2Rt10fJB7J8ErTR8fxet+jcOh7IeJxunbO9EH7e570YSjSB0lJkvRxoEkfx6YafdD+6tQHq4tDJg8jvxeo/C2tZOWUY/TGlgrkQwOHz+UAWKrWQ06Qx9G6pVPpRfPupHFpCPJHlXl1DfoSLzlivQqWI3PP5YamvLoO65SYm0n9vkb18xQa/VrIOB9Kzg+p+TSK7g4c5Inyypua4l3HVJRPx/5qzqdXNd7F69kTWLPy9FDXEO8agvV21n2NrPGNHYcTNu+QHIdp8wvJ03g6vLXk8TdhahX599uch7J6MBXpgUzRPD63NenheE2NHoifOvXQAJ6zOGOI43EOYrKKeCz6/gK2KjZv5H6DXbAiB2fqAl1UFXJadH4qSvIwUuanTcijrKCXE42PKxrnpzhvjVPsrPvkSfHIpK7Z8fkv1H/W1eTfcRd5+TfV/bnnUIJ5WtVzOMX/uYttDPcbg3DGEJDHEK/GsG89hoE7hv3r8QbUAPy0BPl4eVr/BucMv1em9R9V4Lw1rf/aBp3vwHPZTY4b65rWraFz5zbv+ZTh+S4zXiTFT1Xx4ozDrZs8DpuaOOQT+ivDwczM4cYdHoeKJg5rgv5uSXJYyzh/hE6bO39UNXEoJ8RhGQ75jHoYCeLDFsTwZXMoCfrbkORQyMyBHx+2NXEoJuzbynBYz8yBHx9qmjhsJOxTyHDYyBgfRoL4sKOJgynob1OSQzFl3RH7+XTgW1H3Z2sg2Cfb1RQvRTwuS/IoLcTD8Z4KeOytGI+rkjzKC/HwLE/Ao66Jh5FxnZ2Vx2YKj11gZvujJwN0NmBYHhc0xQ8Rj7Ykj8piPGYDhuWxv2I8DiV5VBfjMRswLI93NPAwEvZx7kny2MqYb3iWyz2/ayg+v2N1wONiUvsrbOlIctlO0Um8LxpGgeP1ulYQWL/w+MTnWar3uQzwg92fqgnGDc0vn8Dvc0l+tRR++6A9F4Wh1UPdvuXZAzTP7z1gugx9GRJ8fpDks5PCZw/mMtuKrBkcjr7Ie6yXlsTHTNn/JLGzL3r/AAbwJOP5xCGz/9nJcD5BvyrRhHuLXqdgOV5SvA/Knl88M1bz/RkPPeOe73wIn5cRx1S+P7Mq5yMxbydCLo93E9osm/eyzkf+CwAA//+zg3pHaDEAAA==";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import.mojom.dart
index c682f00..225d4df 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import.mojom.dart
@@ -542,7 +542,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/8yYzW7TQBCA1wmF/qQl9I+0BRpoBQFE3GPEqVWJSESFqjaHlkt/DTFqYmO7UnmDPgZHHoPH6JFH6JEbrOvZ2B7vpmsrMV5ptP5Ze3e+nZ3dmRLxShHqNajxc1aPohq3I4r/nxEqFXjcgNqE+hLqH1A/p/KESmt/u37wob7/Vu+YhuVop9WNruG0NWu3fWRqhLymbVa47Zpw0ew6mvX56ES7+e8ylYfc9tuG3nX6vPc6fEnfPeW+39ec8NBuyh7oXUR6u/d5V/8R/95FdT0a5tcohO+vpvtzZv8Plr+0sHlcDzxz623CL7NU3K6xSo+pzFERTEdkXNOg/ycqO1TUttHRVOv81OjoXc1SO8ZXQ7WtE+/CPD8+009UnU2ZrR7r3VO9+8VWHc12bNU+6phn2oHXe9X9puP1UwaerP8L4PErF7ZjZn9lJTzOGtyPk2Qc9wQcH1AZc3Wvb7Y2Pr7fqsPzF2CLXI5VvzXmOUMllwJP2fXH7Hic8DmXFD6XCUnONUl7naJyl8pmc2fThbxKrx8J+bJWUXudzRhfWZ6FAfMsgk9v7TRvDJGNl8+TtYrynMsYzzLap3r6SvrPBuJ3KOC3AGufvwsR8ozKYpCnoCHmuQJrbdg8cb+lgJ0pyE6UwP7f869QXwv43MaZIM5rgv/MgC95Z+xSEE6b6sYd/2pKdojt6xrVcfWuCfReAt0Der+xtG/ndHT88wGUYes/KrCLkkAPzOsPs6N8Mn+2LuhnEs4h3imPkHnYM9DxL8LN9Sn3UlpvueB6U8LnjBoa1wiRK7L2RtD6xWUM5vNCcM5fhrkeNqe4PO4k5KFI8vgu4FFOiUe/dZbj+O9iTH8Ud32xOCCyvuAFHsd4SvFBBWyB+RsTJvgnxAe/8/3Pr2y8FSVsH4OKt0RxQhnmLszRDxAwz4mU9rnb4mQWFyiCuKAoOMfmEtplQzIuiMSvKCDAPAsZ4SnLLz9gfjgOYONE/HoBAOY3mXF+zH+yfMCg+RXA72xt7LaC5zbEj72O8JvKCD98rq9I2ksFvhH8t2c4w85nubrdp4KzdBH/ihrw4qD/kc+6BB5XgnxWBe1TDcXPZyTheBhzn3oFMa2IYxV9gLkupGTncfO3bB+bjZnfmhtyfiuSP8S8oSHmvJhRzqL8LC7zCbnuSforNm4hVz/VxbXjpYzy/RcAAP//xbchW9gZAAA=";
+  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/8yYzW7TQBCA1wmFtE1L6B/9ARpoBQFE3GPEqVWJSESFqjaHlkt/DTFqYmO7UnmDPgZHHoPH6JFH6JEbrOvZ2B7vpmsrMV5ptP5Ze3e+nZ3dmXnilRLUa1Dj56wuoBq3I4r/nxEqFXjcgNqE+hLqH1A/p/KESmt/u37wob7/Vu+YhuVop9WNruG0NWu3fWRqhLymbVa47Zpw0ew6mvX56ES7+e8ylYfc9tuG3nX6vPc6fEnfPeW+39ec8NBuyh7oXUJ6u/d5V/8R/95FdV0I82sUw/dXU/05s/8Hy19a2DyuB5659TbhlxkqbtdYpcdUZqkIpiMyrinQ/xOVHSpq2+hoqnV+anT0rmapHeOrodrWiXdhnh+f6SeqzqbMVo/17qne/WKrjmY7tmofdcwz7cDrvep+0/H6KQNP1v8F8PiVC9sxs7+yEh5nDe7HSDKOewKOD6iMurrXN1sbH99v1eH5C7BFLseq3xrznKaSS4Gn7PpjdjxG+JznFT6XcUnONUl7naRyl8pmc2fThbxKrx8J+bJWUXudyRhfWZ7FAfMsgU9v7TRvDJGNl8+TtYrynM0YzzLap3r6SvrPBuJ3KOC3AGufvwsR8ozKYpCnoCHmuQJrbdg8cb/zATtTkJ0ogf2/51+hvhbwuY0zQZzXBP+ZBl/yztilIJw21Y07/tWU7BDb1zWq4+pdE+i9BLoH9H5jad/O6ej45wMow9a/ILALvN4KhM/rD7OjfDJ/ti7gNQHnEO+UR8gc7Bno+Bfh5vqUeymtt1xwvSnhc0YNjWuEyBVZeyNo/eIyCvN5ITjnL8OcDptTXB53EvJQJHl8F/Aop8Sj3zrLcfx3KaY/iru+WBwQWV/wAo9jLKX4oAK2wPyNCRP8E+KD3/n+51c23ooSto9BxVuiOKEMcxfm6AcImOd4SvvcbXEyiwsUQVxQEpxjcwntsiEZF0TiVxQQYJ7FjPCU5ZcfMD8cB7BxIn69AADzm8g4P+Y/WT5g0PyK4He2NnZbwXMb4sdeR/hNZoQfPtdXJO2lAt8I/tsznGHns1zd7lPBWbqIf0UNeHHQ/8hnXQKPK0E+q4L2qYbi5zOScDyMuU+9gphWxLGKPsBcF1Ky87j5W7aPzcTMb80OOb8VyR9i3tAQc17MKGdRfhaXuYRc9yT9FRu3kKuf6uLa8VJG+f4LAAD//5SRSqTYGQAA";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/math/math_calculator.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/math/math_calculator.mojom.dart
index 63ed499..b2d603f 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/math/math_calculator.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/math/math_calculator.mojom.dart
@@ -790,7 +790,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xXS0/CQBCGohHwhU/qjcQLF1mOxBPGkJgYEw9eSExIaVep6cs+TPy3Hjl69KZbOwvL0hVoQNB0kslA2e3O9/HNV5AzUZSg1qHy12nNc5Vf12DeZ5l1FVh7175tda5b7XNT8Xu1S8VQA0PxbVeG9eG+HLePPYfGB9SrzHh8kqA4msw10fow9kkWSQ47iq6XSe6S5Nodw70B++9DjCRRzzYxcgPNNnULu8i0n2zkuWr0wgm6hq4i3fKx+6Co2ENd3dJ069FDPvZ8D4XHddTBcbVwlxnHN+XnEHjLAI8S83mO2eesRfWtENUqd58+/X6lUX5EvNVjuGfvy8c2yfWQZwMrbgyePPS+aB55XfW5OklXPN66AO8RYP7Ge+bi54D0FYObxqJx5wXzKQv6F/FEBTYvno5J7jA8eY5teXh5PPH8NGP8jc7aNDHt/NCYND8vihFgwfyUl8APq58s04/IXyq5Uf7i+Mkm8JdN8LsLTYt9PhWW7C/znpsDwEzwMu6Szs2sc1OA5/yqzM1v6Sf83bA10A913VQ/SfRz+od8V/qBHymB75agp5vA8HXHeOX5Kf4z35UBG8VLzTedm9nmpggetKq++879H5pVPw0BLyck90b1MzTf1H8T6ai6Qjr6CgAA//8eGVbTWBEAAA==";
+  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xXS0/qQBSGcm8ucH3gE9yRuGEjw5K4whgSE2Piwg2JCSntKDV92YeJ/9YlS5fudGrPwDDMCDQgaHqSkwNlpnO+j/N9hUomjhLUBlT+Oq15rvLrmsz7LLOuCmtvOtft7mW7c2qpQb9+rppaaKqB41VgfbQvx+1jz6HxBvUiMxnvJCiOFnNNtj6KXZJFkqOO4utlktskuXYncP+D/bcRRpKo71gYeaHuWIaNPWQ5Dw7yPS1+4YY909CQYQfYu1M17KOeYeuGfe+jAPuBj6LjutrwuHq0yxLxTfnZB94ywKPCfJ5j9rl/4vpSiGuNu8+Afr/KOD8y3hoC7tn78rFJ8m/Es4lVT4AnD70vm0d+rgZcnTZXPN6GBO8BYP7Ee+Lhx5D0JcBNY9m48xJ98vqS6Y/yQwdsUTwdktxiePJdx/bx6nji+WkJ/I1qbZaYVT80punnSTVDLNFPeQX8sPOTZfqR+Us1N86fiJ9sAn/5D353puvC51Nhxf6yaN3sAWaCl3GXVDfz6qYAz/l10c13zU/0u2FjOD/UddP5STI/xz/Id5Uv+FES+G4JeroKzcBwzWeen+Iv890KYKN4qfmmuplPN0XwoHX13Vfu/9C889OU8HJEcmd8fkbmm/pvojmqrdEcfQQAAP//A2SLr1gRAAA=";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_structs.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_structs.mojom.dart
index f3208bf..853721c 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_structs.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_structs.mojom.dart
@@ -6234,7 +6234,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "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";
+  var serializedRuntimeTypeInfo = "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";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_unions.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_unions.mojom.dart
index 782c7fd..d729230 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_unions.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_unions.mojom.dart
@@ -3441,7 +3441,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "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";
+  var serializedRuntimeTypeInfo = "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";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/validation_test_interfaces.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/validation_test_interfaces.mojom.dart
index cea781a..1636779 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/validation_test_interfaces.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/validation_test_interfaces.mojom.dart
@@ -4498,7 +4498,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "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";
+  var serializedRuntimeTypeInfo = "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";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
index 951b229..ddf535e 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
@@ -1200,7 +1200,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xaT4/bRBS3vYFNt1Rd+m8NhV2zCIgKjVcgpCi97EobtIiCAosqKg6R15kSo7UdbGe1vfXIkY/BsR+Dj8CxR44c9wYzzZt6Mp6xHcexs1JHeprGmXrm/ea93/vNbHRl2jah/xt6/nmf+axia8LnL7Hdx+b6v/rdboTCqNs9Q0Ho+J7j/dLtHk1cy/sBhf4ksNGhFVknVogE7+HnO4L+AbYvsP34uN8bfNN73CUTtck87XiatmwW+fv/gt7AtsZ8vw/9CPo9bK3M+Q/R2AoiF3lRG4/9OHN8zx2f+k8RWty/Dqyf+tXi9sloxJ/JuKMrYjw21Vnc2fYfbnscPuQZ6X9SxO0Gtg1sMTLT559g24F4SYExsb6r2N7AZmP7GZs58l1kBpOh7zoeCkzyPjMM7Ok/xpOTU8c2HS9CwRPLRqF54nhDPEVokjlDM550QB4M7FOHbB75z+4rfDRm/rEaxwOLc0tVUlsWnp2ceF4D/48PHvaOIec+ysaxTcfzeL4F/lWF57x5lBdntWScr0KeHPYevfz8KbYPc+BMx/M4X1txnA2eHwHQi0YxXPsSXDeBiynzkdh9X4ZrTI9JnsK2XiGefH3YA3z62iwfdrh1bij5Wha+fJM9vwmxiwC6gTMUxuPb2K5UiJ8IH5VNXK41C+KjcnzBN8J3JKQ9y0UiXG5UjMsmtz4RToTvm6o8n4rgpGXEEa3bQ65u83jdBG6rMg9F/hsZemNePpTpUgV4wODmpd8/h316wemofW4/nnP6k/Lmvym8ya7HEOjZdeY55YFjFJw5NvoOwr2wTiccfZv4I/n+c2z3ZDwul62JeNqC/asqnorioUviTwd+oVykQby04Dkdt/fmtP/9OsTLnVneouMuoP9zrVie07jKqhcHwyFTbZP+6RXrFz6+KQ7nWjH/OxL/7wIGjP/3A/TbBC9KiANtVdYHNu9l9UFRl6MzWhk6juoMUbxsrUBd0CW6c97zeVo9UCU8wMatXnLcvoftViJuw7HvheiyxO08ray4vQ51MpzY2K1QyHP3asRJFleyuvCiMd/5N29duA267vsJCp6mnMPeXZG68MdauflF9c6M/0xlqDu/+HspQ63nHCrLsw1YHxw/hXGzVfP5M601JfdKvI4/l5w/ny2g49eY99DzzLeO92jq42x8BigKHHSGBk+w7ygYjAPHiyR4m3XGZwa/6Zxm1jPqabNRbr5vY7sjyHdaUVct35+pl0sP3gW9UnWdUJekB0W4k/3pq8vhk/Ml88ktuBvjaEQR7eODmvaR4EPXsc6dSxflGV5fHQFg/zRm78vy7hvlm2XXgXfgLvcgiix79NXL3evTzRPs33bNeo06NCqo1/YleH4AWCRwmDnNv9Zti+q2beCAOnWblnIfvujfDWR45eVHgs9nNd17iPgx7XyZprMoIIZWbp7ughYV5Wl8e/H6/qLo/cUOjFn1+4t9iK+xFv9NpUh9XVQXaRn1dQvwfOiEEVV/Xw+TuO+uyD3IhVLuuWgHMOD8f1VV687TZg6eY5sMt07J97MGzJHEbcpyl4HftBrOkfR3Nw7OMVEd2IXfjtV9/tjIEXcs//0fAAD//2MgYMVgKQAA";
+  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xaT4/bRBS3vYFNt1Rd+i+Gwq5ZBESFxhEIKUovWWmDgigosKii4hB5nSkxWtvBdlbbW48c+Rgc+zH4CBx75MhxbzDTvKmd8YztOI6dlTrS0zTO1DPvN+/93m9mo0rztgv939Czz4eRzzK2Onz+Ett9bLb7q9vtBsgPut0z5PmW61jOL93uYGYbzg/Id2eeiY6MwDgxfMR5DzvfAPoH2L7A9uPjYX/0Tf9xl0zUIvO0wmlaolnE7/8Leg3bVuT7HvQT6NvYmqnzH6Gp4QU2coIWHvtx6vi+PT11nyK0un8dWD/1q8nsk1YLP5Nxgyt8PHblRdyj7T/c2gw+5Bnpf5L47Qa2HWwhMvPnn2Dbh3hJgDG2vqvY3sBmYvsZmz5xbaR7s7FrWw7ydPI+3ffM+T+ms5NTy9QtJ0DeE8NEvn5iOWM8ha+TOX09nHREHozMU4tsHvnP9it8lMj8UzmMhyjOTVlKbGl4djLieQ38Pz582D+GnPsoHccWHc/i+Rb4Vxaey+ZRVpzlgnG+Cnly1H/08vOn2D7MgDMdz+J8bcNx1lh+BEAvavlwHQpw3QUupsxHYvd9Ea4hPcZ5Ctt2iXiy9aEN+AyVRT7sMOvckbK1NHzZJnp+E2IXAXQja8yNx7exXSkRPx4+cjRxmVbPiY/M8AXbCN+RkHYMG/FwuVEyLrvM+ng4Eb6vy+J8yoOTkhJHtG6PmbrN4nUTuK3MPOT5r6XojWX5UKRLJeABjZmXfv8c9ukFo6N6zH48Z/Qn5c1/E3gzuh6No2e3I88pDxwj78wy0XcQ7rl1OuHo28QfwfefY7sn4nGxbI3FUwP2r6x4youHKog/FfiFcpEC8dKE53Rc+815//t1iJc7i7xFx11A/+dWvjyncZVWLw7H40i1jfunlqxf2PimOJwr+fzvCPy/CxhE/L/vod9meFFcHGgrsz5E815UHyR5PTqjmaLjqM7gxUtjA+qCKtCdy57Pk+qBLOCBaNyqBcfte9huxeLWn7qOjy5L3C7Tiorb61An/ZmJ3fK5PHevQpxEcSWqCy9qy51/s9aF26Drvp8h72nCOezdDakLf2wVm19U7yz4H6kMVecXey+lydWcQ0V5tgPrg+MnN24aFZ8/k1pdcK/E6vhzwfnz2Qo6fivyHnqe+dZyHs19XIxPDwWehc7Q6An2HXmjqWc5gQBvvcr4TOE3ldHMako9rdeKzfc9bHc4+U4r6qbl+zP5cunBu6BXyq4T8pr0IA93sj9DeT18cr5mPrkFd2MMjUi8fXxQ0T4SfOg6tplz6ao8w+qrAQD2T23xvizrvlG+WXcdeAfucg+DwDAnX73cvSHdPM7+7VWs16hDk5x6rSfA8wPAIobDwmn+tW5bVbftAQdUqduUhPvwVf9uIMIrKz8SfD6r6N6Dx49J58sknUUB0ZRi8/QAtCgvT8Pbi9f3F3nvL/ZhzKbfX/QgvqZK+DeVPPV1VV2kpNTXBuD50PIDqv6+HsdxP9iQe5ALqdhz0T5gwPj/qqpWnaf1DDwnJcQBxatT8P2sBnPEcZuz3GXgN6WCcyT93Y2Fc4xXBw7gt2NVnz92MsRdlP/+DwAA//+3uPZ2YCkAAA==";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/regression_tests/regression_tests.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/regression_tests/regression_tests.mojom.dart
index 2e46cb5..4d91c34 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/regression_tests/regression_tests.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/regression_tests/regression_tests.mojom.dart
@@ -3292,7 +3292,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "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";
+  var serializedRuntimeTypeInfo = "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";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_factory.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_factory.mojom.dart
index 08a0486..0c035cd 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_factory.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_factory.mojom.dart
@@ -1764,7 +1764,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xaT3PbRBRfyS41UIITpo1oG+q0tBgYItMLmZwyAyHpMAMdwoEOh+A4G6JQWUJSmHDjmGOP/Qh8hHwMPkaPHLnBbvTWkZ52LVm1/jjjndlZ/5X2/fb32/fe6hkkbG0Y/4IRf74eea+x3oL3d1h/j3W/b7vP6cbGt32bHny3f0wHgfT3+Lo9GB/AtX549nRr75utZxvhBdfw9VTXOYexy3qT9Q6a948wujDeY31Zcr+v+4PA8f7IPB/Vdb6nv51QP7iYhyH93nedoU93YL7cjgbCmb9/0YnjbnwSf/8zANhBuIj2D4w7JNn+Y62HcOKf8XGTyNu7rF9nXeB0i71eGK3/CL7E+vD5vcX6T6zvsm4eOTY1vZMDx7aG1DNt59gxfW8QvnBP9p9bA9MaBtQ77A+ob+5bwwNr+ItvBgxV3wxvt3cY3m6N/8mW8qIL413Wr8FrjpsO+DYjPLwW+f0ZEK2zEI5/L4bjkRG/rsD9FYwvm3G80nAnCPduCu5fObvByeFhws5VsKlofDHPhN2njXz29hT2LoPNYO9nHugJ2y1aGbzSI/c90sJxU7I/ch79S7K1rHgRxGcVP1Q4cX4slcgPgu5voHmK/TFt/5Th2xyDbysnvloKvjfgvq7lUtk+w/H9vAR825H5amP8KwG+GoSUqlsD5nSp29DPzXUrb21YOxVO9+F11boV8xRxS1pcs6mIG6vSbUBPA5lu74N2y9ItUcTRKt2q4oxeI27/tOIMsc6g38cYrwcVxxltvdD96rEINKrarzAvJvV/Re1Taf6P8+JRyTrSU3Skofwj+r3Ii4ycfFpX4PQ+64txPoUboiJvrROvtAp5pdqfOa++qNn+rEnyS8EvjJ9OiuHXlx7tBxSfRiTx+7Ci/Vrg4ObUl+r8YRUwSNg/yhDrr7Mq4sy34bzD2T9W8mS1RJ7okvMhAmeJfK6Y2VnP415Xt+cQVzWmrFsRL0Ne+8R2HS+gB08Egng9Hlas27Mp67YL91LZPwtxVx11+whymKp024vkUbdZt2Bh1xIrHP7uU9DySMcpf8gb34nE6EVOHu8o1uNj2CfH8Hhm4r268nl7zudU/9Scsn9aYf0mt6P/K5XNHK/TR1fMPz0EDKT2R2LLuZ4n03O35LiSzIh/KorHfP/8YAyPhXOa83hyHm/NeZzgsQtx1pkWX49NtB4vUX2J4PH5mHPo6Hw6knjquiRv3KXe79bg4mAgU32KKt+8Dc9LFWlmgh93SqpvSLPHGPP8Ro+sJ34u9rQx/nlDXt1lrWvYpcHFmuH5371izxtEXQPYW3ldQ93PhYcgZBkvFmfoXFjwqaUX89xO6GhboaOVinX0ihSjo+2a6KiVgR/4PLDM55uXOFVbjzGr+80KcK6u+40qvzDeyIbTpPWfoj4L1X+KjxP43YD/FY0frv/tinof0NWfDTXvCLmsES2Ld2/COp4qzgvfgbUvGrdJ6wyaBdfrqOoMFuCzsuvsZPjoUYOmVM+ko3wPtyXIM2zHo3scJF/OG67TeyX6ew3sEbxpSfyLliPfb+fEsfGa+f4SnKOUiV9d8v3o/qnyK+uN6foVXF8o4jtUVphYp5sl+RWcLxvabPmRW3M/EsNjuSI/klb3KX7/fwAAAP//2S6kXZg1AAA=";
+  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xaT3PbRBRfyS41UIITpo1oG+q0tBgYYtMLmZwyAyHpMAMdwoEOh+A4G6JQWUJSmHDjmGOP/Qh8hHwMPkaPHLnBbvTWkZ52JVm1/jjjndlZ/5X2/fb32/fe6hkkaG0Y/4IRf74eeq+x3oL3d1h/j3VvYDnP6cbGtwOLHny3f0yHvvT3+Lp9GB/AtX549nRr75utZxvBBdfw9VTXOYexy3qT9Q6a948wOjDeY31Zcr+vB0Pfdv/IPB/Vdb6nv51Qz7+YhyH93nPskUd3YL7cjgbCmb9/0YnibnwSff8zANhBuIj2D4w7JN7+Y62PcOKf8XGTyNu7rF9nXeB0i71eGK//GL7Y+vD5vcX6T6zvst47si3ac08ObMscUbdn2cd2z3OHwQvnZP+5OeyZI5+6h4Mh9Xr75ujAHP3i9XyGqtcLbrd3GNxujf/JkvKiC+Nd1q/Ba46bDvg2Qzy8Fvr9GRCtsxCMfy8G45ERva7A/RWML5tRvNJwJwj3bgruX9m7/snhYczOVbCpaHwxz4Tdp4189vYV9i6DzWDvZy7oCdstWhm80kP3PdKCcVOyP3Ie/Uuytax4EcRnFT9UOHF+LJXID4Lub6B5iv0xbf+U4dtMwLeVE18tBd8bcF/HdKhsn+H4fl4Cvu3QfLUE/0qArwYhperWgDld6jbwc3Pdylsb1k6F0314XbVuxTxF3JIW12wq4saqdOvTU1+m2/ug3bJ0SxRxtEq3qjij34jaP604Q6wz6PcxxutBxXFGWy90v3osAo2q9ivMi0n9X1H7VJr/47x4VLKO9BQdaSj/CH8v8iIjJ5/WFTi9z/pilE/BhqjIW+vEK61CXqn2Z86rL2q2P2uS/FLwC+Onk2L49aVLBz7FpxFx/D6saL8WODg59aU6f1gFDGL2jzPE+uusijjzbTjvsPePlTxZLZEnuuR8iMBZIp8rZnbW87jX1e05xFWNKetWxMuQ1z6xHNv16cETgSBej4cV6/Zsyrrtwr1U9s9C3FVH3T6CHKYq3fZDedRt1k1Y2LXYCge/+xS0PNZxyh/yxnciMXqRk8c7ivX4GPbJBB7PTLxXVz5vz/mc6p+aU/ZPK6zf5HYMfqWymeN1+uiK+aeHgIHU/lBsOdfzZHrulhxXkhnxT0XxmO+fHyTwWDinOY8n5/HWnMcxHjsQZ51p0fXYROvxEtWXCB6fJ5xDh+fTkcRT1yV54y51fzeHFwcDmepTVPnmbXheqkgzY/y4U1J9Q5o9RsLzGz20nvi52NNG8vOGvLrLWtewS/2LNcPzv3vFnjeIugawt/K6hrqfC49AyDJeLM7QubDgU0sv5rmd0NG2QkcrFevoFSlGR9s10VErAz9Igj8r+vnmJU7V1mPM6n6zApyr636jyi+MN7LhNGn9p6jPQvWf4uMYfjfgf0Xjh+t/u6LeB3T1Z0PNO0Iua0TL4t2bsI6nivPCd2Dti8Zt0jqDZsH1Oqo6gwX4rOw6Oxk+etigKdUz6Sjfw20J8gzLdukeB8mT84br9F6J/l4DewRvWhL/ouXI99s5cWy8Zr6/BOcoZeJXl3w/vH+q/Mp6Y7p+BdcXivgOlRXG1ulmSX4F58uGNlt+5Nbcj0TwWK7Ij6TVfYrf/x8AAP//euMnypg1AAA=";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_interfaces.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_interfaces.mojom.dart
index 79b5f91..d1dd010 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_interfaces.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_interfaces.mojom.dart
@@ -2332,7 +2332,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xbTXPjNBj2R7qUXTp0ty2k7Fd2mYVeWqdlBjqc0kOGdqAzmSl0uhd20kQ0Zho72A5Tbhz5GfwMjhw5cuQncNwjN1ZqpEZ+Izl2Y1tKt5rRqLYcS3r8vM8rvVKrxigt07JOS3iflYughM/9ScsNnCs41+j1Li1PaDmg5SOcV3H+9mWr+err5ssvw3Z/cI62mt6wT+o/xfmpoP7Ai9AZCvY6HRSGfnDZTlXwXCvwf3a7KJC95+iyIG8Lfmh3kLFP+70M+k2ubZwvrPh17/349T+OGJfXtNw3JtP/ONVBe+QeKRuGOL1H+8lwWsH5Hs4Avol+kN8t4Pw9zsc4Oz2/j5xg2PX7rocCp+//6Dth0Bn9MRienrsdx2XwhM6p63Vd7yx0IhRGoTNq7tX4gS3yu/6oPZPjSZ3jxWV/TCMxZcVpX/KeJTre471vvmvich3n+3GctlidCC/ye6sEvKbZQQ307yqZ6fBqALxaErw+xJlQGtrXE3zvgzFusHoCN3J9twTcRO2ya4uDqEqv2XOtO3E+1oCdVq1sfDQAvnUJvg8oLl+hiGIo5t16SbyDvHqdUa/guHcl4/6Ijn087s0A/TTEnROPn6Wix7/ItWsK/BpMMrz+sPPF6yHV9Bhe4cD3QqQUL2hHVTOuL7ugX3eMdCktbgbwIzK/2G1HbZldrZeAkwgP4ocaEr/HeGcBPBoAjwux/F/Np2CCvK4JdNLm2mX6dOh6xygIXd+L4xr9MkAyXD8rUa8Mie7DedE0vwr5LPKzpqAdi+aqIfYju6b4O6X9rkwfLmb8ruaU78ruH03xRw8V+6O89ZX5oyPN/NG86yvzW7rqq61IX+0Z9ZXguvkW6asN9FW2/sl7Xb1MvyWLG7D1EAgnCOMjKtY7G1wcZYHD06IYVrj19wL3/N/04b+WRuVvK6Py9/XkdVHDLnZd1Oz0/KMowFCIdfi+Yj/E1oV5+6HxuPXwQ1DXRHpL6v8r2f+8S9ttG3J+rJaET5IfkOlbWbxifjjGKw3Wj/PMq+ca80qm172KeP0xq16zePOYX6EQtweK9bphF21XYUywdVk3bJjzZV+EJ2sK7CsrPovXxMdMic9pAj5PNdOfpPl5UfbH1htx+xs7tlv7u779bd7aX6L9faGx/UH/z/Br2eK48qx2+JjqNbHDQxSG7TPUcgdov+11z5EAvxVF8wCGQ+2a82tZnOAFxUA4fm5GoPM8u6KhDq0o0CFzhvVbUfz6BOcnCfxiHu+WX9n5daAxv6CO/8viz7Y4fp2WZxtT4p2EZyRmC/FaVaTbbNwtK991a5WOjY2XSbXOdrSgoR2t0r/nbT9i1jjdSc5xOnYejeMjF6XTW9915eWjG8xLmX+oUcdQydk/kL2vdyg/D7xoAu81xf7ByNk/sP0+Ot6rmbzOdmhwe3+62OFaSf7hunpeFH/4+cWIPyM5v+VPdv481pg/MLCU9/lr+H8J4Pw1rJ7Ar6boPEKN88M2OI/A6m0Oxwat6N1N3sdKw0ORXU6zV8KzpSu8D1HU87t1AR+fGzfrPDaL38XGrUHcKut5bBlfTlLse5o58WVbgNczxXyp28XzZVsDvmQ9L1m2n7tH9c71toV+7hm9p+K8pIp9ljEeO1I8XpQYnzNz2uf8NWd7Y/4e2pvquK/u+5xs3e0Po20Zvz5XwK+s8ZOi7I/DZ0eGz94Ni58k7ZPC+WXSPqmV03xhR4D7x2/B/HJnDueXbwIAAP//qcr3EiA/AAA=";
+  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xbTXPjNBj2R7qUXTp0ty2k7Fd2mYVeWqdlBjqc0kOGdqAzmSl0uhd20kQ0Zho72A5Tbhz5GfwMjhw5cuQncNwjN1ZqpEZ+Izl2Y1tKt57RqI6dyHr8vM8jvVKrxuhYpnWd1vBzVi+CGt73J603cKngUqPnu7Q+ofWA1o9wWcXl25et5quvmy+/DNv9wTnaanrDPrn+KS5PBdcPvAidoWCv00Fh6AeX7VQF97UC/2e3iwLZ7xxdVuTXgh/aHWTs0+deBs9Nzm1cLqz4ee/9+Pk/jhiX17TeNyaP//FRB+2Rz0jdMMTHe/Q5GU4ruNzDBcA38Rzkewu4fI/LMS5Oz+8jJxh2/b7rocDp+z/6Thh0Rn8MhqfnbsdxGTyhc+p6Xdc7C50IhVHojJp7Nb5hi3yvP2rP5HhS53hx+TymkXhkxWlf8jtLtL/He99818T1Oi734zhtsWsivMj3rRLwmhYHNfB8V4eZDq8GwKslwetDXAilYXw9wZ99MMYNXp7AjZzfLQE3Ubvs3OIgqtJzdl/rTpyPNRCnVSsbHw2Ab12C7wOKy1coohiKebdeEu8gr15n1CvY711Jvz+ifR/3ezNAPw3xw4n7z46i+7/ItWsKfM0AfifD6w87X7weUk2P4RUOfC9ESvGCcVQ14/qyC57rjpHuSIubAXxE5ovddtSWxdV6CTiJ8CA+1JD4HuOXBfBoADwuxPJ/NZ6CB+R1TaCTNtcu06dD1ztGQej6XhzX6JcBkuH6WYl6ZUh0H46Lpvkq5LPIZ01BOxYtVUPsI7um+D2lfa9MHy5mfK/mlPfKPj+a4kcPFftR3vrK/OhIMz+ad31lvqWrvtqK9NWeUV8Jrptvkb7aQF9l85+859XL9F2yvAGbD4F0gjA/omK+s8HlURY4PC2KYYWbfy9w9/9Nb/5raVT/tjKqf19Pnhc17GLnRc1Ozz+KAgyFWIfvK/YhNi/M24fG/dbDh6CuifSWXP+vZP95l7bbNuT8WC0JnyQfkOlbWbxiPhzjlQbzx3nm1XONeSXT615FPP+YVa9ZvnnMr1CI2wPFet2wi46rMCbYuswbNsz5ii/CkzUF8ZUVn8Vr4mOmxOc0AZ+nmulP0vi8qPhj8414/I2N7Tb+rh9/m7fxlxh/X2gcf9D/GX4tW5xXnjUOH1O9JnF4iMKwfYZa7gDtt73uORLgt6JoHMBwqF1zfC3LE7ygGAj7z40IdB5nVzTUoRUFOmTOMH8ril+f4PIkgV/M8W75lZ1fBxrzC+r4vyz/bIvz12l5tjEl30l4RnK2EK9VRbrN+t2y8p23VmnfWH+ZVOscRwsaxtEq/Xve1iNmzdOd5JynY/vROD5yWTq99V1XXj66wbyU+UONGkMlZ38ga1/vUH4eeNEE3muK/cHI2R/Yeh/t79VIXuc4NLi1P13icK0kf7iunhfFH358MeLPSM5v+ZOdP4815g9MLOW9/xr+XwLYfw0vT+BXU7Qfocb5sA32I7DrNodjg17o3U1ex0rDQ1FcTotXwrOlK7wPUdTzu3UBH58bN2s/NsvfxfqtQd4q635sGV9OUqx7mjnxZVuA1zPFfKnbxfNlWwO+ZN0vWbbP3aN653rbQp97Rj9TsV9SxTrLGI8dKR4vSszPmTmtc/6ac7wxv4fxpjrvq/s6J5t3+8NoW8avzxXwK2v+pKj44/DZkeGzd8PyJ0nrpHB8mbROauU0XtgR4P7xWzC+3JnD8eWbAAAA//8RY20kID8AAA==";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
index bc9955a..743a39a 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
@@ -694,7 +694,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xXS2/TQBB2HB6hBcSjSOZxCJzCgW6PUSSkHIhUCQmB4FJxiKxkIUZ+hF27Ejd+Rn8CR34CP6dHjtxgB8/CerILlpXWrZSRptNdZ2f3+3YeduCVcgPtF7R0fmiMO0p7OL6r9KbSnMt8NJrMFtlrLg6jGXf8nvrdQ/sQfb05eDmZPp8cjMDh7qo/l5+xY7+6fgNcB+u7xvo+2W/RKe1ntPtkf5CfSo4InzAH9qtnF3ruvgXnZWP+ttJtpYjiRZjwWveh19EnAe5B6aE8w/m2lL6FvZWyRZZwJop5lkQpFyzJPmRMiln5zzwUOQuXS/AqGfydqpFkUZpz8S6cccm42msqy812YVFSCwc9l+ZlB+/PQz5943nXWPftYmmPrpZ2QPx81/fard7TvuXu4G73LHNmfFO5hTz+RpaLKH1vx3UFMZw03zTeNP7Ab4Z76MB9D7H/xf1E8I+FOqkdv5aTxk/zb+yoez+8elKXLy0Dx/w1pRCqh2FccEd83DklfnRO/auue0YdPc24uo+1rRJXcpmlkm/iqmFcDc5wXNF6rflbXKj6W1d86X70jMfhJz6nZXuFv62W6rbmYdhthn/swK/fo1bwV8t3a3kWIN9/4qNzvvIN4uVBC/lm48fDs9qk15Cfzn/4ua70ktIkiuNI2vl53EK9NuuPb4xdedf315t3j/CdyZZ3Rnvb9LcG+fb0HPW3Y4LPb9jfXHzBZxC0zldFlNviabulfnZM7Lq+v3YQM+A1W1hbedSrER+m/AoAAP//M1uCWbgRAAA=";
+  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xXS2/TQBB2HB6hBcSjSOZxCJzCgW6PUSSkHIhUCQmB4FJxiKxkIUZ+hF27Ejd+Rn8CR34CP6dHjtxgB8/CerILlpXWrZSRptPdeGf3+3YeduCVcgPtF7R0fmiMO0p7OL6r9KbSnMt8NJrMFtlrLg6jGXc8T/3uoX2Ivt4cvJxMn08ORuBwd9Wfy8/YsV9dvwGug/VdY32f7LfolPYz2n2yP8hPJUeET5gD+9WzCz1334LzsjF/W+m2UkTxIkx4rfvQ6+gvAe5B6aE8w/m2lL6FvZWyRZZwJop5lkQpFyzJPmRMiln5zzwUOQuXS/AqGfydqpFkUZpz8S6cccm42msqy812YVFSCwc9l+ZlB+/PQz594/euse7bxdIeXS3tgPj5ru+1W72nfcvdwd3uWebM+KZyC3n8jSwXUfrejusKYjhpvmm8afyB3wz30IH7HmL/i/uJ4B8LdVI7fi0njZ/m39hR93549aQuX1oGjvlrSiFUD8O44I74uHNK/Oic+ldd94w6eppxdR9rWyWu5DJLJd/EVcO4GpzhuKL1WvO3uFD1t6740v3oGY/DT3xOy/YKf1st1W3Nw7DbDP/YgV+/R63gr5bv1vIsQL7/xEfnfOUbxMuDFvLNxo+HZ7VJryE/nf/wc13pJaVJFMeRtPPzuIV6bdYf3xi78q7vrzfvHuE7ky3vjPa26W8N8u3pOepvxwSf37C/ufiCzyBona+KKLfF03ZL/eyY2HV9f+0gZsBrtrC28qhXIz7M534FAAD//4ZAZ4q4EQAA";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/test/pingpong_service.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/test/pingpong_service.mojom.dart
index e051127..bb9910e 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/test/pingpong_service.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/test/pingpong_service.mojom.dart
@@ -1231,7 +1231,7 @@
   // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
   // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
   // file. The string contains the base64 encoding of the gzip-compressed bytes.
-  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xZzU4UTxDvmeVj//BfPhR0BQRUNHuRIdED4bSJEk00ZlWMctpslhZG2ZlxPohHjzwCj+Aj8Bg+BkeP3rSbqYamp9sZNvO1hk6Kpmehp6q66verrq2jcEzB/B1m8fk6t9aIVGF9m8gsER97/sZGy7R2W7a1+xa7B2YXS/5e3HcN5vuw19Z2a7P9YnN7g264Gt1PtY/DPdcl+68QWVDu/2TfxJZ/GT0a3Hsqgj50fTQUrpcFfc+GFk7PUXT8JoPp3eSe0bmF5OMGkQn6uWDRPHl2Hc5HYm7Ej4tExoi0ibwnYuzZPWy4wY7dMy3sGj37k214bjf8Zafj+kbHcejunkF/tsnKM0zLx+7HThd7hkPe6ZB3tr3Qd6v0H3uR97L1/+eukcZbA13064nCH3F+RYJfG4p9qD70KKnbZP5agjjI2l9iHDG7q3p/9q4p7J0Bm6m9D138JSA6yuxmI2u7xfNvSvAIcZ/HjaR+QgJ+iOMa5Mmpyged/QDLcWkJ8jJvP9UFqJlCcjxyINkOBTxqCv45EviBxdGxwj+iPssS3B7lnlOMGicCCPuq08OJ+OUmkUkO99gnCxDLCviOnFM1J9yLs0fUi8e7Ee48deAZik3DkA8jXLz+qIBdo+F8XIPnM+H8rS7H058p4akqb6aJ/Hd6zj7HQlG7xwrCVWb/Xp+4uq6w+xbYfmY3D64lx1caX78ywlcV705APHchSGTxMZ9jfCDh/csxdVfSejMpbsfVPVpWdY8pr3tq/2rdY17VPYnqHvPvdU+tZHWPiuc+wD1NT5nnZsEHNJ62Ou4u9t+9eSnx03TBPLdWSZfnWH1zwW4uoYrKJ7Ev0NDUeaUVwHfjUM8F7r40n6ah1s0jn/hxWdyp9ukfLcY/NahDunZg+Qr/3CsYb3Rurcq3asp15SLUIGK+eUR3D5efv1DOecbuFfZnpMyzRyXmLYZLx8BbFZTNPeU8nrhLs8RfswXxF/PDYZ/81VTYfwd8ELG/JPc1kce+auW6t01CXwe0lsbLSgnubaq+UdL+/6DwIvX34xLzIovPKT3dPL5LZE6Rx4wbB+F+VzZ+pPH0dAD4kY2hlPlxDu7Az7Av6Soj6fdaRfKjk1FeRe2/SJBX/czL8SJdP8gxTvSMeDGtfuZwRv3M14Ep7evNF9zPPEHZ9DOpvWXoZ1YV3wvWFfr/CQAA//9KRkekmCIAAA==";
+  var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xZy04UTRSu7uEyP/zDRUFHQEBFMxtpEl0QVpMo0URjRsUoq8lkKKGV6W77Qly65BF4BB+Bx/AxWLp0p1X0KSiqq+xm0rcxVHIoqgeq63x1zvedqqmjsE1B/x168fk6N9aIVWF8m9gsMR97/sZGy7R2W7a1+xa7B2YXS/5enHcN+vsw19Z2a7P9YnN7g064Gp1PNY/DPdcl868QW1DO/2TfxJZ/mXU0uPdUhPXQ8dFQOF4W1nvWtLB7jqLtN2ls3U3uGe1bSN5uEJugnwsezZNn12F/JO5GcFwkNkasTew9MWPP7mHDDXbsnmlh1+jZn2zDc7vhLzsd1zc6jkNn9wz6s01GnmFaPnY/drrYMxzyToe8s+2F2K3Sf+xF3svG/59DI423BrqI64kCjzhckYBrQzEPXQ/dSgqbDK8liIOs8RLjiPld1fvzd03h7wz4TP196OIvAVmjzG/WsvZb3P+mhI8Q93lcS4oTEvhDbNcgT06XfNDZD7Ccl5YgL/PGqS5QzRSS85EDyXYo8FFTwOdI0AcWR8cKfMT1LEt4e5R7TjlqnBgw7KtODyfSl5vEJjneY58sQCwr6DuyT9WceC/OH3FdPN+NcPupg85QbhqGfBjh4vVHBfwaDfvjGjyfCftvdTmf/kyJT1V5M03sv9N99jkVivo9VhCvMv/3+uTVdYXft8D3M795ci05v9L4+pURv6p0dwLiuQtBIouP+RzjAwnvX46pu5LWm0l5O67u0bKqe0x53VP7V+se86ruSVT3mH+ve2olq3tUOvcBzml6yjo3CxjQeNrquLvYf/fmpQSn6YJ1bq2Srs6x+uaC31xCFZVP4r1AQ1PnlVaA3o1DPRe4+9J8moZaN4984ttleafaJz5aDD41qEO6dmD5CnzuFcw3OjdW5Vs15bpyEWoQMd88snYPl1+/UM55xs4V9mekzLNHJdYtxkvHoFsVlM055TyeuEOzBK/ZgvSL4XDYp341Ff7fAQwi/pfkvCbq2FetXOe2SbjXgVVL42WlBOc21b1R0vv/QdFFivfjEusii88pPd08vktsTpHHTBsH4XxXNn2k8fR0APSRtaGU9XEOzsDPsC+5VUbS77WK1Ecno7yK+n9RIK/uMy+ni3T8IMc40TPSxbTuM4czus98HZjSe735gu8zT1A295nU3zLcZ1YV3wvWFXXSnwAAAP///12id5giAAA=";
 
   // Deserialize RuntimeTypeInfo
   var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/public/tools/bindings/mojom_tool/bin/linux64/mojom.sha1 b/mojo/public/tools/bindings/mojom_tool/bin/linux64/mojom.sha1
index 4e1717c..f877b06 100644
--- a/mojo/public/tools/bindings/mojom_tool/bin/linux64/mojom.sha1
+++ b/mojo/public/tools/bindings/mojom_tool/bin/linux64/mojom.sha1
@@ -1 +1 @@
-f08221cad306516a10689f6d65e774e646826c9c
\ No newline at end of file
+4cf9bd6d35321e593c7f020fd7575a6085fb1647
\ No newline at end of file
diff --git a/mojo/public/tools/bindings/mojom_tool/bin/mac64/mojom.sha1 b/mojo/public/tools/bindings/mojom_tool/bin/mac64/mojom.sha1
index 24d5f22..d4f2e23 100644
--- a/mojo/public/tools/bindings/mojom_tool/bin/mac64/mojom.sha1
+++ b/mojo/public/tools/bindings/mojom_tool/bin/mac64/mojom.sha1
@@ -1 +1 @@
-5bf2707796bf2f79b4afe80c82a87515f95e614e
\ No newline at end of file
+18499cedacd5eb9953ecbb41cf0d7a5811289051
\ No newline at end of file
diff --git a/mojom/mojom_parser/mojom/computed_data.go b/mojom/mojom_parser/mojom/computed_data.go
index e0a3438..fc70091 100644
--- a/mojom/mojom_parser/mojom/computed_data.go
+++ b/mojom/mojom_parser/mojom/computed_data.go
@@ -201,7 +201,7 @@
 func (s *MojomStruct) computeVersionInfo() error {
 	s.versionInfo = make([]StructVersion, 0)
 	previousMinVersion := uint32(0)
-	payloadSizeSoFar := uint32(0)
+	payloadSizeSoFar := structHeaderSize
 	for i, field := range s.fieldsInOrdinalOrder {
 		value, literalValue, found, ok := field.minVersionAttribute()
 		if found == false {
diff --git a/mojom/mojom_parser/serialization/serialization_test.go b/mojom/mojom_parser/serialization/serialization_test.go
index baf834c..56e4235 100644
--- a/mojom/mojom_parser/serialization/serialization_test.go
+++ b/mojom/mojom_parser/serialization/serialization_test.go
@@ -1155,6 +1155,33 @@
 	test := singleFileTest{}
 
 	////////////////////////////////////////////////////////////
+	// Test Case: Empty struct
+	////////////////////////////////////////////////////////////
+	{
+		contents := `
+	struct Foo{
+	};`
+
+		test.addTestCase("", contents)
+
+		test.expectedFile().DeclaredMojomObjects.Structs = &[]string{"TYPE_KEY:Foo"}
+
+		test.expectedGraph().ResolvedTypes["TYPE_KEY:Foo"] = &mojom_types.UserDefinedTypeStructType{mojom_types.MojomStruct{
+			DeclData: test.newDeclData("Foo", "Foo"),
+			Fields:   []mojom_types.StructField{},
+			VersionInfo: &[]mojom_types.StructVersion{
+				mojom_types.StructVersion{
+					VersionNumber: 0,
+					NumFields:     0,
+					NumBytes:      8,
+				},
+			},
+		}}
+
+		test.endTestCase()
+	}
+
+	////////////////////////////////////////////////////////////
 	// Test Case: Test struct field min versions: 1,2
 	////////////////////////////////////////////////////////////
 	{