assert, util: *DeepEqual() handles ArrayBuffers
Previously, all ArrayBuffer
s and SharedArrayBuffer
s were considered equal in assert.deepEqual()
, assert.deepStrictEqual()
, and util.isDeepStrictEqual()
. Now, ArrayBuffer
s and SharedArrayBuffer
s must have the same byte lengths and contents to be considered equal. In loose mode, an ArrayBuffer
is considered equal to a SharedArrayBuffer
if they have the same contents, whereas in strict mode, the buffers must be both ArrayBuffer
s or both SharedArrayBuffer
s.
Here are 2 examples, both of which succeeded before but now throw:
assert.deepEqual(new Uint8Array([1, 2, 3]).buffer, new Uint8Array([4, 5, 6]).buffer)
assert.deepStrictEqual(new ArrayBuffer(3), new ArrayBuffer(4))
Checklist
-
make -j4 test
(UNIX), orvcbuild test
(Windows) passes -
tests and/or benchmarks are included -
commit message follows commit guidelines