When instrumenting regular for loops, we instrument the FOR_ITER instruction as the LEFT branch and the POP_ITER instruction as the RIGHT branch.
This doesn't work for async for as it uses exceptions to exit the loop.
Raising an exception is the documented behavior for exiting a [async] generator, so we will still need to generate an event for the exception being raised, much as we do in INSTRUMENTED_END_FOR as well as the BRANCH events.
Linked PRs
When instrumenting regular
forloops, we instrument theFOR_ITERinstruction as theLEFTbranch and thePOP_ITERinstruction as theRIGHTbranch.This doesn't work for
async foras it uses exceptions to exit the loop.Raising an exception is the documented behavior for exiting a [async] generator, so we will still need to generate an event for the exception being raised, much as we do in
INSTRUMENTED_END_FORas well as theBRANCHevents.Linked PRs
async forloops. #130569async for#130847