Don't stringify properties with undefined values in flushToDOM #5549
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.
Description:
This PR ensures that the stringification process skips over properties with
undefined
values. These would otherwise lead to the string literal"undefined"
ending up in the output.Context for this change: aframevr/aframe-inspector#722 (comment)
Prior to 1.6.0 an empty string would remain an empty string, but now ends up as
undefined
, hence causing issue when usingflushToDOM
. The reason to change the stringification behaviour is that even in version <=1.5.0 it's possible to end up withundefined
values (e.g.removeAttribute('material', 'src')
).Take for example the following operations:
Would lead to the following outputs:
{a: '', b: undefined}
"a: ; b: undefined"
{a: undefined, b: undefined}
"a: undefined; b: undefined"
{a: undefined, b: undefined}
""
Changes proposed:
undefined
values when stringifyingflushToDOM