评论由:favila 创建
bq. 有没有证据表明str使用频率更高会真正引起问题?
打开CLJS-847的用户Kevin Neaton,在生产中使用了一个修复高阶情况的补丁。他说这个补丁为他们解决了问题。str宏的情况没有受影响,因为要么已经使用了''+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"