aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/text-decoder.test.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-23 04:58:42 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-23 04:58:42 -0800
commit45296570ce67d014f07e4bcd3c9194f8a2adee23 (patch)
treea2dd96bd4141fe04525064c415cbcf6d45254884 /test/bun.js/text-decoder.test.js
parentf9306ff815a7f463c8e84f358d61cbed09b90a0e (diff)
downloadbun-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.js21
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);