评论者:favila
兼任. 有任何证据表明,高频率使用str实际上是有问题的吗?
打开 CLJS-847 的 Kevin Neaton 在生产环境中使用了一个补丁,该补丁仅解决高阶 case,他表示补丁解决了他们的问题。他对 str 宏 case 没有影响,因为它要么使用了 ''+x(已应用 CLJS-801)或使用了 {{[x].join('')}}(尚未与 Safari 6.0.5 测试过,但可能有效)。
因此,如果我们使用 ''+x 与 str 宏有问题,只要应用 CLJS-847 补丁,我们肯定在使用 ''+x 与字符串函数时也会有问题。
我尚未下载 master,但这里有一个我敢打赌会在 CLJS-847 补丁上失败的测试用例
(def tricky-obj #js {"toString" (fn [] "hello") "valueOf" (fn [] 42)}) (assert (= (apply str tricky-obj) "hello")) ;; 将得到 "42"