rtfeldman/seamless-immutable

`merge` ignores Symbols contrary to `set`

Open

#189 aperta il 28 dic 2016

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)JavaScript (221 fork)batch import
bughelp wanted

Metriche repository

Star
 (5367 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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'

Guida contributor