Socket
Socket
Sign inDemoInstall

deep-equal

Package Overview
Dependencies
48
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.1.0 to 2.2.0

12

CHANGELOG.md

@@ -8,2 +8,14 @@ # Changelog

## [v2.2.0](https://github.com/inspect-js/node-deep-equal/compare/v2.1.0...v2.2.0) - 2023-01-05
### Commits
- [New] add support for `SharedArrayBuffer` [`0ef51c7`](https://github.com/inspect-js/node-deep-equal/commit/0ef51c79b7dcd6ae5890b2dce4304be7c8ebe314)
- [Refactor] use `is-array-buffer` package [`0360ee1`](https://github.com/inspect-js/node-deep-equal/commit/0360ee1f1bb6e5804c15a9a4aa75ff84120a33e1)
- [Fix] `whichTypedArray` can return false in both cases [`df3e3c4`](https://github.com/inspect-js/node-deep-equal/commit/df3e3c4e30552b7a7892b62dc45fccd31eac9bfe)
- [Dev Deps] update `aud`, `object.getownpropertydescriptors` [`6d62ea4`](https://github.com/inspect-js/node-deep-equal/commit/6d62ea4f2b82d4f861fd3e0c2d67916939b1edbc)
- [Dev Deps] update `@ljharb/eslint-config` [`15aab59`](https://github.com/inspect-js/node-deep-equal/commit/15aab59d647628e05b77d1897036d73884f7a107)
- [Deps] update `which-typed-array` [`8dfce27`](https://github.com/inspect-js/node-deep-equal/commit/8dfce27f333721c697b90569b26e4bded0d61d88)
- [eslint] remove `.eslintignore` [`af46773`](https://github.com/inspect-js/node-deep-equal/commit/af46773b281dc67d7743280505a22248f0f0748d)
## [v2.1.0](https://github.com/inspect-js/node-deep-equal/compare/v2.0.5...v2.1.0) - 2022-11-02

@@ -10,0 +22,0 @@

49

index.js
'use strict';
var objectKeys = require('object-keys');
var assign = require('object.assign');
var callBound = require('call-bind/callBound');
var flags = require('regexp.prototype.flags');
var GetIntrinsic = require('get-intrinsic');
var getIterator = require('es-get-iterator');
var getSideChannel = require('side-channel');
var is = require('object-is');
var isArguments = require('is-arguments');
var is = require('object-is');
var isRegex = require('is-regex');
var flags = require('regexp.prototype.flags');
var isArray = require('isarray');
var isArrayBuffer = require('is-array-buffer');
var isDate = require('is-date-object');
var isRegex = require('is-regex');
var isSharedArrayBuffer = require('is-shared-array-buffer');
var objectKeys = require('object-keys');
var whichBoxedPrimitive = require('which-boxed-primitive');
var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var whichCollection = require('which-collection');
var getIterator = require('es-get-iterator');
var getSideChannel = require('side-channel');
var whichTypedArray = require('which-typed-array');
var assign = require('object.assign');
// TODO: use extracted package
var byteLength = callBound('ArrayBuffer.prototype.byteLength', true);
function isArrayBuffer(buffer) {
if (!buffer || typeof buffer !== 'object' || !byteLength) {
return false;
}
try {
byteLength(buffer);
return true;
} catch (e) {
return false;
}
}
var byteLength = callBound('ArrayBuffer.prototype.byteLength', true)
|| function byteLength(ab) { return ab.byteLength; }; // in node < 0.11, byteLength is an own nonconfigurable property
var sabByteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);

@@ -323,3 +315,5 @@ var $getTime = callBound('Date.prototype.getTime');

if (whichTypedArray(a) !== whichTypedArray(b)) {
var aWhich = whichTypedArray(a);
var bWhich = whichTypedArray(b);
if ((aWhich || bWhich) && aWhich !== bWhich) {
return false;

@@ -344,6 +338,13 @@ }

if (byteLength(a) !== byteLength(b)) { return false; }
/* global Uint8Array */
return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);
}
var aIsSAB = isSharedArrayBuffer(a);
var bIsSAB = isSharedArrayBuffer(b);
if (aIsSAB !== bIsSAB) { return false; }
if (aIsSAB || bIsSAB) { // && would work too, because both are true or both false here
if (sabByteLength(a) !== sabByteLength(b)) { return false; }
return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);
}
if (typeof a !== typeof b) { return false; }

@@ -350,0 +351,0 @@

{
"name": "deep-equal",
"version": "2.1.0",
"version": "2.2.0",
"description": "node's assert.deepEqual algorithm",

@@ -38,4 +38,6 @@ "main": "index.js",

"is-arguments": "^1.1.1",
"is-array-buffer": "^3.0.1",
"is-date-object": "^1.0.5",
"is-regex": "^1.1.4",
"is-shared-array-buffer": "^1.0.2",
"isarray": "^2.0.5",

@@ -49,7 +51,7 @@ "object-is": "^1.1.5",

"which-collection": "^1.0.1",
"which-typed-array": "^1.1.8"
"which-typed-array": "^1.1.9"
},
"devDependencies": {
"@ljharb/eslint-config": "^21.0.0",
"aud": "^2.0.1",
"@ljharb/eslint-config": "^21.0.1",
"aud": "^2.0.2",
"auto-changelog": "^2.4.0",

@@ -62,3 +64,3 @@ "eslint": "=8.8.0",

"nyc": "^10.3.2",
"object.getownpropertydescriptors": "^2.1.4",
"object.getownpropertydescriptors": "^2.1.5",
"safe-publish-latest": "^2.0.0",

@@ -65,0 +67,0 @@ "semver": "^6.3.0",

@@ -1162,3 +1162,2 @@ 'use strict';

t.test('one TypedArray faking as another', { skip: !hasDunderProto }, function (st) {
/* globals Uint8Array, Int8Array */
var a = new Uint8Array(10);

@@ -1222,2 +1221,3 @@ var b = tag(new Int8Array(10), 'Uint8Array');

// node < 0.11 has a nonconfigurable own byteLength property
t.test('lies about byteLength', { skip: !('byteLength' in ArrayBuffer.prototype) }, function (s2t) {

@@ -1241,3 +1241,64 @@ var empty4 = new ArrayBuffer(4);

t.test('SharedArrayBuffers', { skip: typeof SharedArrayBuffer !== 'function' }, function (st) {
var buffer1 = new SharedArrayBuffer(8); // initial value of 0's
var buffer2 = new SharedArrayBuffer(8); // initial value of 0's
var view1 = new Int8Array(buffer1);
var view2 = new Int8Array(buffer2);
st.deepEqualTest(
view1,
view2,
'Int8Arrays of similar SharedArrayBuffers',
true,
true
);
st.deepEqualTest(
buffer1,
buffer2,
'similar SharedArrayBuffers',
true,
true
);
for (var i = 0; i < view1.byteLength; i += 1) {
view1[i] = 9; // change all values to 9's
}
st.deepEqualTest(
view1,
view2,
'Int8Arrays of different SharedArrayBuffers',
false,
false
);
st.deepEqualTest(
buffer1,
buffer2,
'different SharedArrayBuffers',
false,
false
);
t.test('lies about byteLength', { skip: !('byteLength' in SharedArrayBuffer.prototype) }, function (s2t) {
var empty4 = new SharedArrayBuffer(4);
var empty6 = new SharedArrayBuffer(6);
Object.defineProperty(empty6, 'byteLength', { value: 4 });
s2t.deepEqualTest(
empty4,
empty6,
'different-length SharedArrayBuffers, one lying',
false,
false
);
s2t.end();
});
st.end();
});
t.end();
});

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc