Fix for LinkeDOM compatibility: don't rely on live collections #677
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.
This allows
@mozilla/readability
to work withLinkeDOM
, an alternative tojsdom
that is much faster, has a smaller RAM footprint, and uses less dependencies (4 vs 96).It's intended as a drop-in replacement for
jsdom
, but when trying to use it withreadability
, I stumbled into one small issue with a cached instance of childNodes. This new lib,LinkeDOM
, does not update cached instances, so there is an incompatibility with howReadability.js
accesses the DOM. This practice of usingchildNodes
as both a node of a tree, with the expectations and side effects of modifying the tree indirectly, and also as an Array, sounds like 1990's JavaScript -- it feels awkward to use it nowadays.More info here: WebReflection/linkedom#43