🐛 Work around incorrect global context in @percy/dom #164
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is this?
The
@percy/dom
package uses a UMD format which assigns exports to aglobalThis
variable when in a browser environment. However, if the implementation ofglobalThis
is incorrect (mozilla/geckodriver#1798), thePercyDOM
object is not correctly carried forward into other script executions where the DOM is meant to be serialized.This PR aims to work around this issue by checking if
window
andglobalThis
are not equal to each other (which technically should be impossible under normal circumstances). If they are not equal, the library adds itself towindow
ahead of the eventual UMD dance.While testing this, I also noticed that babel helpers were inlined multiple times. Updating this setting to
bundled
will ensure they are only bundled once in the final output.