-
Notifications
You must be signed in to change notification settings - Fork 16
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
Sparse arrays are treated like arrays of undefined #74
Comments
Nice find! If we could detect the gap, we could encode a custom "empty primitive"? |
That would make sense to me. Detecting the gap is simple enough, just add concordance/lib/complexValues/object.js Lines 110 to 123 in b30e7c8
I think any change here would probably(?) be breaking, though, since it would mean introducing a new descriptor tag, meaning old versions couldn't decode new serializations, and existing snapshots of sparse arrays would compare inequal to new snapshots of the same values. There's also a test case asserting the current behavior at concordance/test/lodash-isequal-comparison.js Line 135 in b30e7c8
I reviewed a few other libraries; it looks like |
Yea. Let's see if we can get that into AVA 4 — and otherwise we can work out some compatibility between the different snapshot versions.
I'm happy to follow |
concordance
treats empty slots in arrays likeundefined
, for both formatting and comparison.format(new Array(5))
giveswhereas
util.inspect(new Array(5))
gives[ <5 empty items> ]
compare(new Array(5), Array.from({length: 5})
returnstrue
, although these values behave rather differently.The text was updated successfully, but these errors were encountered: