Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split cleanup into two buckets. #275

Conversation

rwjblue
Copy link
Member

@rwjblue rwjblue commented Dec 15, 2017

The following are the two cleanup buckets:

  • RENDERING_CLEANUP is done when teardownRenderingContext is done (which should always be before teardownContext is ran).
  • CLEANUP is done after everything else is destroyed and settled.

This refactor fixes the vast majority of issues on IE11. Prior to these changes we were resetting the DOM test fixtures to their original values before we had properly cleaned up the DOM. This meant that when the DOM cleanup actually does run, the various nodes being removed by glimmer's internal cleanup system are not actually present in DOM. Apparently, Chrome / FireFox / Safari / Edge are all fine with this situation (and silently allow node.removeChild(someThingNotInNode) without an error), but IE11 did properly (IMHO) error that someThingNotInNode was not found.

@rwjblue rwjblue force-pushed the reset-testing-container-after-application-cleanup branch from 46c51d8 to aa1612d Compare December 15, 2017 18:03
The following are the two cleanup buckets:

* `RENDERING_CLEANUP` is done when `teardownRenderingContext` is done
(which should **always** be before `teardownContext` is ran).
* `CLEANUP` is done _after_ everything else is destroyed and settled.

---

This refactor fixes the vast majority of issues on IE11. Prior to these
changes we were resetting the DOM test fixtures to their original values
_before_ we had properly cleaned up the DOM. This meant that when the
DOM cleanup actually does run, the various nodes being removed by
glimmer's internal cleanup system are not actually present in DOM.
Apparently, Chrome / FireFox / Safari / Edge are all fine with this
situation (and silently allow `node.removeChild(someThingNotInNode)`
without an error), but IE11 did properly (IMHO) error that
`someThingNotInNode` was not found.
@rwjblue rwjblue force-pushed the reset-testing-container-after-application-cleanup branch from aa1612d to 12ad65e Compare December 15, 2017 18:33
@rwjblue rwjblue merged commit 5bcaefb into emberjs:master Dec 15, 2017
@rwjblue rwjblue deleted the reset-testing-container-after-application-cleanup branch December 15, 2017 18:46
@rwjblue rwjblue added the bug label Dec 15, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant