vue
vue copied to clipboard
fix: #10435 update the observer dep to support a Set based implementation
What kind of change does this PR introduce? (check at least one)
- [ ] Bugfix
- [ ] Feature
- [ ] Code style update
- [ ] Refactor
- [ ] Build-related changes
- [X] Other, please describe:
This PR introduces a performance improvement for component destruction.
Does this PR introduce a breaking change? (check one)
- [ ] Yes
- [X] No
If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:
- [X] It's submitted to the
dev
branch for v2.x (or to a previous version branch), not themaster
branch - [X] When resolving a specific issue, it's referenced in the PR's title (e.g.
fix #xxx[,#xxx]
, where "xxx" is the issue number) - [X] All tests are passing: https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#development-setup
- [X] New/updated tests are included
If adding a new feature, the PR's description includes:
- [ ] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)
Other information:
The issue that this PR aims to fix documents the observed performance issue and explains it pretty well.
At this moment in time upgrading to Vue 3 is not currently an option for me, getting some resolution to this issue would be awesome, hence the PR.
The PR aims to maintain compatibility with ES5 based browsers, but where Set is supported then it would favour that.
There already exists another pull request for this same issue, specifically #8157, however it appears as though that pull request never progressed.
The approach in this PR is different in its implementation in that it is Set based, which is in line with Vue 3.x