]> git.codecow.com Git - libnemo.git/commitdiff
Eliminate slow modulo operator and unshift function.
authorChris Duncan <chris@codecow.com>
Mon, 18 May 2026 17:08:17 +0000 (10:08 -0700)
committerChris Duncan <chris@codecow.com>
Mon, 18 May 2026 17:08:17 +0000 (10:08 -0700)
src/lib/convert.ts

index 636279367163a343e4520e20c4d1f6ecd8d0508f..801f96e1ac1f27ad6e3663ece495f2cce5d6ac3a 100644 (file)
@@ -258,15 +258,14 @@ export class hex {
                if (typeof padding !== 'number') {\r
                        throw new TypeError('Invalid padding when converting hex to array', { cause: padding })\r
                }\r
-               if (hex.length % 2 === 1) hex = `0${hex}`\r
+               if ((hex.length & 1) !== 0) hex = `0${hex}`\r
                const hexArray = hex.match(/.{2}/g)\r
                if (hexArray == null) {\r
                        throw new RangeError('Invalid hex string when converting to array', { cause: hexArray })\r
                }\r
-               for (let i = hexArray.length; i < padding; i++) {\r
-                       hexArray.unshift('0')\r
-               }\r
-               return hexArray.map(v => parseInt(v, 16))\r
+               const diff = padding - hexArray.length\r
+               const pad = new Array(diff > 0 ? diff : 0).fill(0)\r
+               return pad.concat(hexArray.map(v => parseInt(v, 16)))\r
        }\r
 \r
        /**\r