`DOMException`s do not work with `v8.serialize()`
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 122k
- Forks
- 37.4k
- Merge medio
- 4 d 3 h
- PR fusionados (30 d)
- 272
Descripción
Version
v22.1.0
Platform
Linux ether-laptop 6.5.0-35-generic #35-Ubuntu SMP PREEMPT_DYNAMIC Fri Apr 26 11:23:57 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Subsystem
node:v8
What steps will reproduce the bug?
import {serialize, deserialize} from 'node:v8';
const error = AbortSignal.abort().reason;
console.log(error instanceof DOMException);
// true
console.log(error);
// DOMException [AbortError]: This operation was aborted
// at new DOMException (node:internal/per_context/domexception:53:5)
// at AbortSignal.abort (node:internal/abort_controller:205:14)
// at ...
const clonedError = deserialize(serialize(error));
console.log(clonedError instanceof DOMException);
// false
console.log(clonedError);
// {}
How often does it reproduce? Is there a required condition?
Always.
What is the expected behavior? Why is that the expected behavior?
A DOMException should be serializable/deserializable like other error instances.
What do you see instead?
Serializing/deserializing with v8 turns it into an empty plain object.
Additional information
Related: structuredClone(domException) returns an empty plain object, which is probably the same bug. This might be related to #49181.
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.
Línea de trabajo
El informe se centra en node:v8 serialize/deserialize y reproduce el problema con AbortSignal.abort().reason; empieza siguiendo ese recorrido de ida y vuelta y comparándolo con otras instancias de Error. La tarea estará terminada cuando DOMException sobreviva a la serialización como una DOMException con sus datos observables preservados, y haya una prueba de regresión que cubra el ejemplo indicado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, node.js
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 48/100