评论者:favila
bq. 有任何证据表明 str 的更高使用率实际上存在问题吗?
开启了 CLJS-847 的 Kevin Neaton 正在使用一个只在生产环境中解决高阶问题的补丁,他说这个补丁解决了他们的问题。由于它要么使用了 ''+x(已有 CLJS-801 应用)要么使用 {{[x].join('')}}(尚未与 Safari 6.0.5 进行测试,但可能可以正常工作),因此对他使用 str 宏已不受影响。
所以,如果我们使用 ''+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"