node:buffer: Buffer.alloc(size, fill, encoding) throws when fill is a number or a Buffer
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, node.js, typescript
Línea de trabajo
Lee src/node/internal/internal_buffer.ts y céntrate en alloc() y en su llamada a buffer.fill(). Compara cómo se pasa el argumento de encoding cuando fill es una cadena en lugar de un número o un Buffer, y añade pruebas de regresión para los tres casos que no son cadenas y que aparecen en el issue. El objetivo es que esos casos coincidan con la salida de Node.js y que el caso de cadena siga funcionando.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Buffer.alloc(size, fill, encoding) throws ERR_INVALID_ARG_TYPE in workerd whenever fill is not a string and encoding is passed. Node.js ignores encoding in that case (per https://nodejs.org/api/buffer.html#static-method-bufferallocsize-fill-encoding, it only applies "if fill is a string") and returns the filled buffer.
worker.mjs:
import { Buffer } from "node:buffer";
const show = (f) => { try { return f().toString("hex"); } catch (e) { return `${e.code}: ${e.message}`; } };
export default { test() {
console.log(show(() => Buffer.alloc(3, 5, "utf8")));
console.log(show(() => Buffer.alloc(3, 0, "utf8")));
console.log(show(() => Buffer.alloc(3, Buffer.from([7]), "utf8")));
console.log(show(() => Buffer.alloc(3, "ab", "utf8")));
} };
config.capnp:
using Workerd = import "/workerd/workerd.capnp";
const config :Workerd.Config = (services = [(name = "main", worker = .w)]);
const w :Workerd.Worker = (
modules = [(name = "worker.mjs", esModule = embed "worker.mjs")],
compatibilityDate = "2026-11-07",
);
npx workerd test --experimental config.capnp
Actual (workerd):
ERR_INVALID_ARG_TYPE: The "start" argument must be of type number. Received type string ('utf8')
ERR_INVALID_ARG_TYPE: The "start" argument must be of type number. Received type string ('utf8')
ERR_INVALID_ARG_TYPE: The "start" argument must be of type number. Received type string ('utf8')
616261
Expected (Node.js v26.13.0):
050505
000000
070707
616261
Tested with workerd 1.20261107.1 (workerd 2026-11-07), compatibility date 2026-11-07, and src/node/internal/internal_buffer.ts on main (d85cb017).
In src/node/internal/internal_buffer.ts, alloc() calls buffer.fill(fill as any, encoding), passing encoding in the start parameter slot of fill(), which only reinterprets a string start as encoding when typeof val === 'string'.
Credit: https://ucsbplse.github.io/
- Lenguaje dominante
- C++
- Estrellas
- 9.1k
- Forks
- 823
- Merge medio
- 1 d 18 h
- PR fusionados (30 d)
- 352
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de cloudflare/workerd
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cloudflare/workerd#8290 ·
Los mantenedores suelen responder en 1 día
-
Streaming TextDecoder drops U+FEFF at the start of a chunk that follows an ASCII-only chunkPosiblemente ocupada @oliarmak-web la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
cloudflare/workerd#8279 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
D1 bind(): typed arrays and DataView store text or an empty blob instead of their bytesPosiblemente ocupada @JosephDoUrden la tomó hace 8 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
cloudflare/workerd#7785 ·
Los mantenedores suelen responder en 1 día
-
docs: suggest adding compatibility date migration guide to READMEPosiblemente ocupada @spideydotjs la tomó hace 49 días. Abierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
cloudflare/workerd#7282 ·
Los mantenedores suelen responder en 1 día
-
[Miniflare] Cross-worker Durable Object proxy drops ctx.id.name for IDs created with idFromName()Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
cloudflare/workerd#7286 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de cloudflare/workerd
Issues similares
-
scripts/moe-cache-tune.py: device_room() under-reports free VRAM when a draft model is loadedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
Vector35/binaryninja-api#8715 ·
Los mantenedores suelen responder en 2 días
-
ai_p3 comp-database-engines
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ClickHouse/ClickHouse#130186 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Bugs
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
openmc-dev/openmc#4222 · 1 comentario ·
Los mantenedores suelen responder en 2 días