由:favila 评论
bq. 是否有证据表明“str”的高使用实际上存在问题?
CLJS-847 的提出者 Kevin Neaton,在生产中使用了一个补丁,该补丁仅解决了高阶案例问题,并表示补丁修复了他们的问题。他对 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"