rtfeldman/seamless-immutable

`merge` ignores Symbols contrary to `set`

Open

#189 aberto em 28 de dez. de 2016

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)JavaScript (221 forks)batch import
bughelp wanted

Métricas do repositório

Stars
 (5.367 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

Using Immutable 7.0.1, Babel, and Node 6, it seems that merge skips properties where the key is a Symbol, while set (correctly) sets them. It works with normal objects. Example:

babel> const Immutable =  require('seamless-immutable');
babel> const s = Symbol("sym mine");
babel> Immutable({}).merge({[s]: "sym val"})[s]
undefined // WRONG: expected 'sym val'
babel> Immutable({}).set(s, "sym val")[s]
'sym val' // CORRECT

However it works when the key is not a Symbol but a normal object:

> var Immutable =  require('seamless-immutable');
> var s = {name: "key obj"};
> Immutable({}).merge({[s]: "sym val"})[s]
'sym val'

Guia do colaborador