Skip to content

Commit ddaf7f7

Browse files
committed
feat: multi-byte encoder never returns pooled Uint8Arrays
1 parent 349739e commit ddaf7f7

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

fallback/multi-byte.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -957,6 +957,6 @@ export function multibyteEncoder(enc, onError) {
957957
}
958958
}
959959

960-
return i === u8.length ? u8 : u8.subarray(0, i)
960+
return i === u8.length ? u8 : u8.slice(0, i)
961961
}
962962
}

tests/multi-byte.encode.test.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,13 @@ describe('roundtrip, tables', () => {
228228
continue
229229
}
230230

231-
t.assert.doesNotThrow(() => t.assert.strictEqual(dec(enc(str)), str), description)
232-
t.assert.doesNotThrow(() => t.assert.strictEqual(dec(toShared(enc(str))), str), description)
231+
let u8
232+
t.assert.doesNotThrow(() => {
233+
u8 = enc(str)
234+
}, `encode: ${description}`)
235+
t.assert.strictEqual(u8.byteLength, u8.buffer.byteLength, `pooling: ${description}`)
236+
t.assert.doesNotThrow(() => t.assert.strictEqual(dec(u8), str), description)
237+
t.assert.doesNotThrow(() => t.assert.strictEqual(dec(toShared(u8)), str), description)
233238
}
234239
})
235240
}

0 commit comments

Comments
 (0)