欢迎!请参阅关于页面了解此功能的相关信息。
以下是一个产生无效JavaScript的最小测试用例
`(defn f [](let [a 0]
`
^{"meta" "data"} (fn [] true)))
编译后的JavaScript包含无效的令牌序列"return return"。(根据Chrome:未捕获的语法错误:意外的return令牌)
如果元数据应用于映射字面量而不是函数字面量,则不会出现此问题。只有当函数和元数据在let块内时,才会出现此问题。
评论者:bobby.eickhoff
我忘了试with-meta。使用with-meta不会产生此语法错误,因此这仅是元数据读取宏的问题。
评论者:dnolen
关于这个,尼古拉,你有什么快速的想法?这可能是CLJS侧的编译器问题。
由此 2015-05-07T01:15:53+0000 由 jira
评论由:bendlas做法
我只是随机升级了老旧的项目时遇到了此问题,也有重复的已知问题: http://dev.clojure.org/jira/browse/CLJS-1482
评论由:gingenhagen做法
即使没有 let 也会出现此问题。
(fn [] ^{"meta" "data"} (fn [] true))
给出了