评论者:favila
引用。“有证据表明频繁使用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"