rtfeldman/seamless-immutable

`merge` ignores Symbols contrary to `set`

开放

#189 创建于 2016年12月28日

 (0 条评论) (0 个反应) (0 位负责人)JavaScript (221 个派生)batch import
bughelp wanted

仓库指标

星标
 (5,367 个星标)
PR 合并指标
 (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'

贡献者指南