PHP 8.2.30
Preview: are-inputs-equal.ts Size: 1.20 KB
/proc/thread-self/root/home/byroehnu/.trash/node_modules11/memoize-one/src/are-inputs-equal.ts

// Number.isNaN as it is not supported in IE11 so conditionally using ponyfill
// Using Number.isNaN where possible as it is ~10% faster

const safeIsNaN =
  Number.isNaN ||
  function ponyfill(value: unknown): boolean {
    // // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#polyfill
    // NaN is the only value in JavaScript which is not equal to itself.
    return typeof value === 'number' && value !== value;
  };

function isEqual(first: unknown, second: unknown): boolean {
  if (first === second) {
    return true;
  }

  // Special case for NaN (NaN !== NaN)
  if (safeIsNaN(first) && safeIsNaN(second)) {
    return true;
  }

  return false;
}

export default function areInputsEqual(
  newInputs: readonly unknown[],
  lastInputs: readonly unknown[],
): boolean {
  // no checks needed if the inputs length has changed
  if (newInputs.length !== lastInputs.length) {
    return false;
  }
  // Using for loop for speed. It generally performs better than array.every
  // https://github.com/alexreardon/memoize-one/pull/59
  for (let i = 0; i < newInputs.length; i++) {
    if (!isEqual(newInputs[i], lastInputs[i])) {
      return false;
    }
  }
  return true;
}

Directory Contents

Dirs: 0 × Files: 3

Name Size Perms Modified Actions
1.20 KB lrw-r--r-- 2026-02-28 00:28:02
Edit Download
343 B lrw-r--r-- 2026-02-28 00:26:56
Edit Download
1.58 KB lrw-r--r-- 2026-02-28 00:28:10
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).