Skip to content

fix: defer array observer reentrant notifications#7559

Open
janechu wants to merge 2 commits into
mainfrom
users/janechu/assess-edge-array-observer
Open

fix: defer array observer reentrant notifications#7559
janechu wants to merge 2 commits into
mainfrom
users/janechu/assess-edge-array-observer

Conversation

@janechu
Copy link
Copy Markdown
Collaborator

@janechu janechu commented Jun 3, 2026

Pull Request

Description

Fix array observer notification delivery so mutations queued while subscribers are
being notified are deferred to the update queue instead of being flushed
reentrantly when a subscriber is added.

  • Prevent nested array observer notifications when a subscriber mutates the
    observed array and subscribes during notification.
  • Add a Playwright regression test for mutation plus subscription during
    notification.
  • Document array observation batching behavior and add a Beachball patch file.

Test Plan

  • npm run build
  • npm run biome:check
  • npm run checkchange
  • npm run build:tsc -w @microsoft/fast-element
  • npm run lint -w @microsoft/fast-element
  • Array observation and repeat Chromium tests: 326 passed
  • npm run test currently fails in unrelated @microsoft/fast-test-harness
    Firefox fixture timeouts in this local environment.

Checklist

General

  • I have included a change request file using $ npm run change
  • I have added tests for my changes.
  • I have tested my changes.
  • I have updated the project documentation to reflect my changes.
  • I have read the CONTRIBUTING documentation and followed the standards for this project.

@janechu janechu marked this pull request as ready for review June 3, 2026 21:26
janechu and others added 2 commits June 3, 2026 15:17
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@janechu janechu force-pushed the users/janechu/assess-edge-array-observer branch from b43340f to 1aa8dbf Compare June 3, 2026 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant