In equalAttrs, yattrs can be null thus crashing when Object.keys(yattrs) is executed.
I suppose this happens because iterating over attribute keys a check is done:
eq = key === 'ychange' || l === r || (typeof l === 'object' && typeof r === 'object' && equalAttrs(l, r))
Which in case when comparing a regular object {} against null tries to recurse the null because null's typeof is object. A rather unfortunate fact but that's how it is. So maybe a fix could be adding a nullness check in that condition or at the start of the function.
To Reproduce
I'll write a reproduction if needed.
Environment Information
"y-prosemirror": "^1.0.12",
In equalAttrs,
yattrs
can be null thus crashing whenObject.keys(yattrs)
is executed.I suppose this happens because iterating over attribute keys a check is done:
Which in case when comparing a regular object
{}
againstnull
tries to recurse the null because null's typeof is object. A rather unfortunate fact but that's how it is. So maybe a fix could be adding a nullness check in that condition or at the start of the function.To Reproduce I'll write a reproduction if needed.
Environment Information "y-prosemirror": "^1.0.12",