评论者: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"