评论人:favila
bq。有证据表明,字符串的高频使用实际上有问题吗?
打开了CLJS-847的人Kevin Neaton,在生产环境中使用了一个补丁,该补丁仅解决了高阶案例。他表示该补丁已为他们解决了此问题。他对str宏情况下的str宏案例没有影响,因为它要么已经应用了CLJS-801使用了''+x(或者在x的接边上没有使用{{[x].join('')}}(尚未在Safari 6.0.5上进行测试,但可能有效)。
因此,如果我们使用str宏中的''+x有问题,那么只要应用CLJS-847,我们使用字符串函数的''+x就会有问题。
我还没有拉取master,但我这里有一个我认为在应用CLJS-847补丁后会失败的测试案例
(def tricky-obj #js {"toString" (fn [] "hello") "valueOf" (fn [] 42)}) (assert (= (apply str tricky-obj) "hello")) ;; 将得到 "42"