summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCasper Beyer <caspervonb@pm.me>2020-06-10 23:54:54 +0800
committerGitHub <noreply@github.com>2020-06-10 11:54:54 -0400
commitbe8bacaaa4258089e5a0cf4f1d8f53db8e534d4b (patch)
tree46a0729ad95cbb5b6f7aab4c6008adde257c2451
parent54c3f8e27fa1f38a3e2d65c2b297c415062d01c8 (diff)
fix: Remove try-catch from Buffer.readFrom, readFromSync (#6161)
-rw-r--r--cli/js/buffer.ts36
-rw-r--r--cli/tests/unit/buffer_test.ts8
-rw-r--r--cli/tests/unit/test_util.ts1
3 files changed, 23 insertions, 22 deletions
diff --git a/cli/js/buffer.ts b/cli/js/buffer.ts
index 8389db4f9..473affe3d 100644
--- a/cli/js/buffer.ts
+++ b/cli/js/buffer.ts
@@ -158,38 +158,30 @@ export class Buffer implements Reader, ReaderSync, Writer, WriterSync {
async readFrom(r: Reader): Promise<number> {
let n = 0;
while (true) {
- try {
- const i = this.#grow(MIN_READ);
- this.#reslice(i);
- const fub = new Uint8Array(this.#buf.buffer, i);
- const nread = await r.read(fub);
- if (nread === null) {
- return n;
- }
- this.#reslice(i + nread);
- n += nread;
- } catch (e) {
+ const i = this.#grow(MIN_READ);
+ this.#reslice(i);
+ const fub = new Uint8Array(this.#buf.buffer, i);
+ const nread = await r.read(fub);
+ if (nread === null) {
return n;
}
+ this.#reslice(i + nread);
+ n += nread;
}
}
readFromSync(r: ReaderSync): number {
let n = 0;
while (true) {
- try {
- const i = this.#grow(MIN_READ);
- this.#reslice(i);
- const fub = new Uint8Array(this.#buf.buffer, i);
- const nread = r.readSync(fub);
- if (nread === null) {
- return n;
- }
- this.#reslice(i + nread);
- n += nread;
- } catch (e) {
+ const i = this.#grow(MIN_READ);
+ this.#reslice(i);
+ const fub = new Uint8Array(this.#buf.buffer, i);
+ const nread = r.readSync(fub);
+ if (nread === null) {
return n;
}
+ this.#reslice(i + nread);
+ n += nread;
}
}
}
diff --git a/cli/tests/unit/buffer_test.ts b/cli/tests/unit/buffer_test.ts
index a5a0147ab..23e655a05 100644
--- a/cli/tests/unit/buffer_test.ts
+++ b/cli/tests/unit/buffer_test.ts
@@ -7,6 +7,8 @@ import {
assertEquals,
assert,
assertStringContains,
+ assertThrows,
+ assertThrowsAsync,
unitTest,
} from "./test_util.ts";
@@ -202,6 +204,9 @@ unitTest(async function bufferReadFrom(): Promise<void> {
const fub = new Uint8Array(testString.length);
await empty(b, s, fub);
}
+ assertThrowsAsync(async function () {
+ await new Buffer().readFrom(null!);
+ });
});
unitTest(async function bufferReadFromSync(): Promise<void> {
@@ -221,6 +226,9 @@ unitTest(async function bufferReadFromSync(): Promise<void> {
const fub = new Uint8Array(testString.length);
await empty(b, s, fub);
}
+ assertThrows(function () {
+ new Buffer().readFromSync(null!);
+ });
});
unitTest(async function bufferTestGrow(): Promise<void> {
diff --git a/cli/tests/unit/test_util.ts b/cli/tests/unit/test_util.ts
index d5010fc63..8b690505a 100644
--- a/cli/tests/unit/test_util.ts
+++ b/cli/tests/unit/test_util.ts
@@ -4,6 +4,7 @@ import { assert, assertEquals } from "../../../std/testing/asserts.ts";
export {
assert,
assertThrows,
+ assertThrowsAsync,
assertEquals,
assertMatch,
assertNotEquals,