欢迎!请参阅关于页面,了解更多关于如何使用本站的信息。
在实现一些用于cljs-devtools的去混淆代码时(链接:1),我发现了type->str的一致性问题。它适合deftypes,但不适合defrecords。
问题是,由于某些原因,defrecord没有设置!cljs$lang$ctorStr字段。这很可能被忽略了,因为从我的理解来看,type->str并不常用,只在一些罕见的错误异常中才使用。
无论如何,这个补丁通过复制粘贴来解决,但更好的解决方案是从deftypes和defrecords中提取共享代码,以避免将来出现类似问题,但这似乎是一项大量工作。
该补丁还添加了一些测试。由于type->str不应在高级构建下工作,因此我不得不添加一些实用宏以仅以简单模式运行这些测试。还添加了对CLJS-1722问题的测试,以便在潜在合并后取消注释。
(链接:1) https://github.com/binaryage/cljs-devtools/blob/52899e61e33373df36be8dcb23c69377936821b2/src/lib/devtools/munging.cljs#L56-L60
评论者:mfikes
补丁不再适用;需要重新基准。