评论者: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"