-0 is not normalized

Aberta
#9 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
42/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
javascript
Domínio
tooling

Direção de pesquisa

Comece executando a reprodução em JavaScript da issue e compare tuple(Object, -0) com tuple(Object, 0) quando cada um é criado primeiro. Rastreie o cache de tuplas e o tratamento de chaves para determinar onde o tratamento de -0 por Map/Set afeta o valor armazenado; considera-se concluído quando o resultado é determinístico e corresponde ao comportamento de normalização pretendido.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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'
Linguagem predominante
JavaScript
Estrelas
38
Forks
3
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de benjamn/immutable-tuple

Todas as issues de benjamn/immutable-tuple

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.