At master 7926b28, pagerEventEmitter explicitly returns nullptr before an emitter is attached or after it is cleared, but onPageSelected, onPageScrollStateChanged and sendScrollEventsForPosition unconditionally dereference it. Extracted Objective-C++ method bodies were exercised in a Simulator harness with a checked-pointer test double: all three missing-emitter paths attempt a null dereference, while attached-emitter controls deliver normally. Proposed fix: return before emission when no emitter exists, including the legacy animation notification path, and remove the unused emitter lookup in onPageScrollWithData. This is an event-lifecycle fix, not a claim of a reproduced full-app teardown crash. This source audit is AI-assisted.
At master 7926b28, pagerEventEmitter explicitly returns nullptr before an emitter is attached or after it is cleared, but onPageSelected, onPageScrollStateChanged and sendScrollEventsForPosition unconditionally dereference it. Extracted Objective-C++ method bodies were exercised in a Simulator harness with a checked-pointer test double: all three missing-emitter paths attempt a null dereference, while attached-emitter controls deliver normally. Proposed fix: return before emission when no emitter exists, including the legacy animation notification path, and remove the unused emitter lookup in onPageScrollWithData. This is an event-lifecycle fix, not a claim of a reproduced full-app teardown crash. This source audit is AI-assisted.