Files
scriptc/tests/corpus/node24-deep-equality.cjs

19 lines
1022 B
JavaScript

const { isDeepStrictEqual: equal } = require("node:util");
const util = require("util");
const compare = util.isDeepStrictEqual;
console.log("missing", equal(), equal(undefined), equal(1), compare());
console.log("alias", equal === compare, compare({ a: [1] }, { a: [1] }));
const a = Object.create(null);
a.value = { inner: 1 };
const b = { value: { inner: 1 } };
console.log("prototype", equal(a, b), equal(a, b, false), equal(a, b, true));
console.log("truthiness", equal(a, b, 0), equal(a, b, "yes"), equal(a, b, { skipPrototype: false }));
console.log("recursive", equal({ a }, { a: b }), equal({ a }, { a: b }, true));
const trace = [];
function argument(label, value) { trace.push(label); return value; }
console.log("arguments", equal(argument("a", 1), argument("b", 1), argument("option", false), argument("extra", 2)), trace.join(","));
const first = { value: 1 };
const second = { value: 2 };
function update() { first.value = 2; return 0; }
console.log("late mutation", equal(first, second, false, update()));