评论由: favila 发布
bq. 是否存在任何证据表明str的使用过频实际上出问题了吗?
Kevin Neaton,他在CLJS-847中使用了修复更高阶情况的补丁,并表示补丁为他们解决了问题。由于使用了''+x (已应用 CLJS-801) 或使用{{[x].join('')}}(尚未在Safari 6.0.5上测试,但可能工作),因此他未受str宏情况的影響。
因此,如果我们使用''+x与str宏有问题,只要CLJS-847被应用,我们将毫无疑问地与任意字符串函数存在问题。
我还没有拉取最新版,但这有一个我认为会因CLJS-847补丁而失败的测试用例
(def tricky-obj #js {"toString" (fn [] "hello") "valueOf" (fn [] 42)}) (assert (= (apply str tricky-obj) "hello")) ;; 会得到 "42"