[dart2wasm] Fix while scoping in async generator.

The new test was resulting in an uninitialized late read of localContext here:
https://github.com/dart-lang/sdk/blob/main/pkg/dart2wasm/lib/code_generator.dart#L830

The `++i` results in a let expression declaring a new variable within the condition of the while loop.

The code linked above tries to look up the variable within the current context. The `ContextCollector` defines the while scope as including the while's condition:
https://github.com/dart-lang/sdk/blob/main/pkg/dart2wasm/lib/closures.dart#L1486

However, the AstCodeGenerator doesn't register the while's scope until after processing the condition:
https://github.com/dart-lang/sdk/blob/main/pkg/dart2wasm/lib/code_generator.dart#L1248

So when processing the condition, the loopkup happens on the scope above the while even though the variable is captured on the while's scope.

A synthetic let statement is the only way to get a variable declaration within a while's condition. And it wouldn't otherwise be captured (a closure can't reference it) but async function bodies mark all variables as captured.

Change-Id: I5f8fdd69d4875c099a21505cd588b08cacdd86c1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/384863
Reviewed-by: Martin Kustermann <kustermann@google.com>

https://dart.googlesource.com/sdk/+/b8ff81ea0db6905393fec07b5308aad3e0243f5c
diff --git a/DEPS b/DEPS
index 5f41ca4..3217846 100644
--- a/DEPS
+++ b/DEPS
@@ -283,7 +283,7 @@
 
   'engine/src/flutter': Var('flutter_git') + '/mirrors/engine' + '@' + '0a6104386392956f81306cc90b80bfb0aa15776a',
 
-  'engine/src/flutter/third_party/dart': Var('dart_git') + '/sdk' + '@' + '43698dbed37e0c442b8a1d4dfb0943b69c363f94',
+  'engine/src/flutter/third_party/dart': Var('dart_git') + '/sdk' + '@' + 'b8ff81ea0db6905393fec07b5308aad3e0243f5c',
 
   'flutter': Var('flutter_git') + '/mirrors/flutter' + '@' + '90aa59f6c32fd522e6f45a169637a9f0419dbdc6',
 
diff --git a/commits.json b/commits.json
index 5757ab3..b498931 100644
--- a/commits.json
+++ b/commits.json
@@ -1,5 +1,5 @@
 {
   "engine/src/flutter":"0a6104386392956f81306cc90b80bfb0aa15776a",
-  "engine/src/flutter/third_party/dart":"43698dbed37e0c442b8a1d4dfb0943b69c363f94",
+  "engine/src/flutter/third_party/dart":"b8ff81ea0db6905393fec07b5308aad3e0243f5c",
   "flutter":"90aa59f6c32fd522e6f45a169637a9f0419dbdc6"
 }
\ No newline at end of file