diff options
author | 2023-01-23 04:58:42 -0800 | |
---|---|---|
committer | 2023-01-23 04:58:42 -0800 | |
commit | 45296570ce67d014f07e4bcd3c9194f8a2adee23 (patch) | |
tree | a2dd96bd4141fe04525064c415cbcf6d45254884 /test/bun.js/text-decoder.test.js | |
parent | f9306ff815a7f463c8e84f358d61cbed09b90a0e (diff) | |
download | bun-45296570ce67d014f07e4bcd3c9194f8a2adee23.tar.gz bun-45296570ce67d014f07e4bcd3c9194f8a2adee23.tar.zst bun-45296570ce67d014f07e4bcd3c9194f8a2adee23.zip |
Fix crash in DOMJIT call with empty input
Diffstat (limited to '')
-rw-r--r-- | test/bun.js/text-decoder.test.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/bun.js/text-decoder.test.js b/test/bun.js/text-decoder.test.js index c2a00222f..561aec6fc 100644 --- a/test/bun.js/text-decoder.test.js +++ b/test/bun.js/text-decoder.test.js @@ -14,6 +14,27 @@ const getByteLength = (str) => { }; describe("TextDecoder", () => { + it("should not crash on empty text", () => { + const decoder = new TextDecoder(); + gcTrace(true); + const fixtures = [ + new Uint8Array(), + new Uint8Array([]), + new Buffer(0), + new ArrayBuffer(0), + ]; + + for (let input of fixtures) { + expect(decoder.decode(input)).toBe(""); + } + + // DOMJIT test + for (let i = 0; i < 90000; i++) { + decoder.decode(fixtures[0]); + } + + gcTrace(true); + }); it("should decode ascii text", () => { const decoder = new TextDecoder("latin1"); gcTrace(true); |