Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Buffer.alloc with non-buffer fill

Abierto
#278 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
javascript, nodejs
Área
web-dev

Línea de trabajo

Comienza comparando Buffer.alloc(size[, fill[, encoding]]) con la implementación y las pruebas actuales de buffer de Node, especialmente con el caso de relleno de Uint8Array mostrado aquí. Revisa la discusión relacionada en #177 y determina qué pruebas de buffer de Node son relevantes; se considera terminado cuando se conservan los bytes de Uint8Array del 0 al 255 y el comportamiento está cubierto por pruebas.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi @feross!

If you pass a <Uint8Array> as the fill to Buffer.alloc(size[, fill[, encoding]]) node (v14.15.1) will copy those bytes verbatim into the buffer, whereas with the ferros/buffer package, it does something and the end result is that the resulting buffer is filled with strange data.

const input = [ 247, 108, 225 ]
const typedArr = new Uint8Array(input)
const output = Array.from(Buffer.alloc(typedArr.byteLength, typedArr))

// node:
// [ 247, 108, 225 ] (matches input, expected)

// feross/buffer:
//  [ 239, 191, 189 ] (???)

It works fine for numbers between 0 and 127, but things get weird once you're out of those bounds (Uint8 should work for numbers between 0 - 255).

Workaround is to pass a Buffer as the fill value:

const output = Array.from(Buffer.alloc(typedArr.byteLength, Buffer.from(typedArr)))

// node:
// [ 247, 108, 225 ] (cool)

// feross/buffer:
// [ 247, 108, 225 ] (cool)

I'd perhaps PR a fix for this specific issue, but I feel like the real problem is that this package needs to be refreshed with the latest buffer code + tests from node, rather than me patching in a specific fix? i.e. Perhaps related to #177. I looked into this briefly and the transform from node looked non-trivial if you haven't done it before.

Lenguaje dominante
JavaScript
Estrellas
1.9k
Forks
260
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de feross/buffer

Todos los issues de feross/buffer

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.