-0 is not normalized

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

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
javascript
Área
tooling

Línea de trabajo

Empieza ejecutando la reproducción en JavaScript del issue y compara tuple(Object, -0) con tuple(Object, 0) cuando cada uno se crea primero. Sigue la caché de tuplas y el manejo de claves para determinar dónde afecta el tratamiento de -0 de Map/Set al valor almacenado; se considera terminado cuando el resultado es determinista y coincide con el comportamiento de normalización previsto.

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

Descripción

In JavaScript Map and Set do not distinguish 0 and -0 as different keys, instead -0 is normalized to 0.

This leads to the following 'bug':

const { tuple } = require("immutable-tuple");

if (Math.random() > 0.5) {
    tuple(Object, -0); // sometimes create this first
} else {
    tuple(Object, 0); // other times create this first
}

function isNegativeZero(n) {
  return Object.is(n, -0);
}

console.log(isNegativeZero(tuple(Object, -0)[1])); // sometimes 'true', sometimes 'false'
Lenguaje dominante
JavaScript
Estrellas
38
Forks
3
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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 benjamn/immutable-tuple

Todos los issues de benjamn/immutable-tuple

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.