rtfeldman/seamless-immutable

`merge` ignores Symbols contrary to `set`

Open

#189 opened on 2016年12月28日

GitHub で見る
 (0 comments) (0 reactions) (0 assignees)JavaScript (221 forks)batch import
bughelp wanted

Repository metrics

Stars
 (5,367 stars)
PR merge metrics
 (30d に merged PR はありません)

説明

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'

コントリビューターガイド