summaryrefslogtreecommitdiff
path: root/std/node
diff options
context:
space:
mode:
Diffstat (limited to 'std/node')
-rw-r--r--std/node/buffer.ts9
-rw-r--r--std/node/buffer_test.ts16
2 files changed, 23 insertions, 2 deletions
diff --git a/std/node/buffer.ts b/std/node/buffer.ts
index e74ece196..b878092dc 100644
--- a/std/node/buffer.ts
+++ b/std/node/buffer.ts
@@ -60,8 +60,9 @@ export default class Buffer extends Uint8Array {
if (typeof fill === "string" && fill.length === 1 && encoding === "utf8")
buf.fill(fill.charCodeAt(0));
else bufFill = Buffer.from(fill, encoding);
- } else if (typeof fill === "number") buf.fill(fill);
- else if (fill instanceof Uint8Array) {
+ } else if (typeof fill === "number") {
+ buf.fill(fill);
+ } else if (fill instanceof Uint8Array) {
if (fill.length === 0) {
throw new TypeError(
`The argument "value" is invalid. Received ${fill.constructor.name} []`
@@ -89,6 +90,10 @@ export default class Buffer extends Uint8Array {
return buf;
}
+ static allocUnsafe(size: number): Buffer {
+ return new Buffer(size);
+ }
+
/**
* Returns the byte length of a string when encoded. This is not the same as
* String.prototype.length, which does not account for the encoding that is
diff --git a/std/node/buffer_test.ts b/std/node/buffer_test.ts
index 8f6d19058..105bc284e 100644
--- a/std/node/buffer_test.ts
+++ b/std/node/buffer_test.ts
@@ -97,6 +97,22 @@ Deno.test({
});
Deno.test({
+ name: "allocUnsafe allocates a buffer with the expected size",
+ fn() {
+ const buffer: Buffer = Buffer.allocUnsafe(1);
+ assertEquals(buffer.length, 1, "Buffer size should be 1");
+ },
+});
+
+Deno.test({
+ name: "allocUnsafe(0) creates an empty buffer",
+ fn() {
+ const buffer: Buffer = Buffer.allocUnsafe(0);
+ assertEquals(buffer.length, 0, "Buffer size should be 0");
+ },
+});
+
+Deno.test({
name: "alloc filled correctly with integer",
fn() {
const buffer: Buffer = Buffer.alloc(3, 5);