_评论者:mfikes_
CLJS\-3118.patch 在三个地方转换为 {{-with-meta}}
在 {{MapEntry}} 中,这似乎是可接受的,因为它被应用到一个向量字面量上。
在 {{vec}} 和 {{set}} 中,{{with-meta}} 以前被应用于满足 {{vector?}} 和 {{set?}} 的值。假设这些非 {{nil}} 值也不满足 {{goog/isFunction}},那么 {{with-meta}} 将调用 {{-with-meta}}。因此,这一变化也可能略微提升了性能,这归因于内联和省略了一些检查。
另一方面,如果满足 {{goog/isFunction}} 的值传递给 {{vec}} 或 {{set}} 并导致代码遵循此路径(由满足 {{vector?}} / {{set?}}),则变化的正确性似乎也取决于该值是否正确实现了 {{-with-meta}}。似乎只有在代码进行一些古怪的操作时,你才会遇到这种情况,比如
(extend-type function IVector (-assoc-n [_ _ _]))
或
(extend-type function ISet (-disjoin [_ _]))