assert: Check typed array view type in deepEqual (backport to 4.x)
Checklist
-
tests and code linting passes -
a test and/or benchmark is included -
the commit message follows commit guidelines
Affected core subsystem(s)
assert
Description of change
This is a backport of #5910 and is identical to what landed in master up to s/Buffer.from/new Buffer/
.
Do not convert typed arrays to Buffer for deepEqual since their values may not be accurately represented by 8-bit ints. Instead perform binary comparison of underlying ArrayBuffers, but only when the array types match.
Never apply any kind of optimization for floating-point typed arrays since bit pattern equality is not the right kind of check for them.
Fixes: #5907 (closed) (introduced in #4330)