rtfeldman/seamless-immutable

`merge` ignores Symbols contrary to `set`

オープン

#189 opened on 2016/12/28

 (0 件のコメント) (0 件のリアクション) (0 人の担当者)JavaScript (221 件のフォーク)batch import
bughelp wanted

Repository metrics

Stars
 (5,367 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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'

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