![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets.corals.io/wp-content/themes/metras/node_modules/leven/ |
'use strict'; const array = []; const charCodeCache = []; const leven = (left, right) => { if (left === right) { return 0; } const swap = left; // Swapping the strings if `a` is longer than `b` so we know which one is the // shortest & which one is the longest if (left.length > right.length) { left = right; right = swap; } let leftLength = left.length; let rightLength = right.length; // Performing suffix trimming: // We can linearly drop suffix common to both strings since they // don't increase distance at all // Note: `~-` is the bitwise way to perform a `- 1` operation while (leftLength > 0 && (left.charCodeAt(~-leftLength) === right.charCodeAt(~-rightLength))) { leftLength--; rightLength--; } // Performing prefix trimming // We can linearly drop prefix common to both strings since they // don't increase distance at all let start = 0; while (start < leftLength && (left.charCodeAt(start) === right.charCodeAt(start))) { start++; } leftLength -= start; rightLength -= start; if (leftLength === 0) { return rightLength; } let bCharCode; let result; let temp; let temp2; let i = 0; let j = 0; while (i < leftLength) { charCodeCache[i] = left.charCodeAt(start + i); array[i] = ++i; } while (j < rightLength) { bCharCode = right.charCodeAt(start + j); temp = j++; result = j; for (i = 0; i < leftLength; i++) { temp2 = bCharCode === charCodeCache[i] ? temp : temp + 1; temp = array[i]; // eslint-disable-next-line no-multi-assign result = array[i] = temp > result ? temp2 > result ? result + 1 : temp2 : temp2 > temp ? temp + 1 : temp2; } } return result; }; module.exports = leven; // TODO: Remove this for the next major release module.exports.default = leven;