评论者:favila
bq. 是否有任何证据表明-str 使用频率越高实际上是有问题的?
Kevin Neaton,他打开了 CLJS-847,在生产的补丁中只解决了高阶情况,他说补丁解决了他们的问题。他对-str 宏的情况没有影响,因为要么已经使用了 ''+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"