评论者:favila
引用。是否有使用 str 较高确实有问题证据?
提出 CLJS-847 的 Kevin Neaton 在生产中使用了仅针对高阶情况的补丁,他表示补丁修复了他们的问题。他对 str 宏的情况没有影响,因为它要么已经使用''+x(已应用 CLJS-801)或者使用了 {{[x].join('')}}(尚未在 Safari 6.0.5 中测试,但可能起作用)。
如果我们使用 str 宏中的 ''+x 出现问题,那么只要应用了 CLJS-847,使用字符串函数的 ''+x 也会出现问题。
我还没有下拉 master,但是这里有一个测试用例,我相信它会因为 CLJS-847 补丁而失败。
(def tricky-obj #js {"toString" (fn [] "hello") "valueOf" (fn [] 42)}) (assert (= (apply str tricky-obj) "hello")) ;; 将得到 "42"'