95cad9c8a6
Fixes the for loop lowering to JavaScript when there are function expressions in the loop initialization, condition, or updates. Manually assign source mapping information on js_ast nodes to make stepping in the Dart debugger make as much sense as possible. With these mappings three steps are required on each loop variable on each iteration but it ensures that the mapping always points to the variable instead of some random line of code in or around the original for loop. Fixes the failure on language/loop/for_variable_capture_test. Issue: https://github.com/dart-lang/language/issues/3539 Change-Id: I755b88faef11804986fb3d1b2c328da3dd08fe8d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345145 Reviewed-by: Sigmund Cherem <sigmund@google.com> Commit-Queue: Nicholas Shahan <nshahan@google.com>