The JavaScript fallback in `lib/sync.js` re-hashes passwords that exceed the digest's block size (64 bytes, or 128 bytes for sha384 and sha512) during every iteration. This occurs because the password is passed to HMAC as the key on each iteration, and HMAC hashes such keys in full every time. This results in a computational cost of O(iterations × password length), which can lead to the event loop being blocked when processing long passwords. This fallback is triggered by `pbkdf2Sync()` and `pbkdf2()` on Bun versions 1.0.0 through 1.1.34 and 1.2.6 and later, Deno 2.9.0 and later, and Node.js versions prior to 0.12, as well as when `lib/sync.js` is imported directly.