ClojureScript断点

11

有没有方法在ClojureScript中创建断点?

无论是在REPL中还是在Chrome的原生调试器中。

我已经尝试过(js* "debugger"),但返回以下错误信息:

SyntaxError: 意外的记号debugger

谢谢!

2个回答

15

(js* "debugger;")应该可以正常工作。你只是漏写了分号。


有趣的一点是,这实际上编译为“debugger;;”,因此从repl运行它(在发布之前我尝试过)会触发错误。 - hcliff
1
只是进一步跟进,这不能是函数中的最后一条语句,因为编译器会尝试将其返回(从而创建返回调试器;;),这是行不通的。 - hcliff
也不能处于core-async上下文中,编译器会发出var inst_19518 = debugger;; - Dustin Getz
自ClojureScript 1.7.228以来已经修复,修复记录请参见http://dev.clojure.org/jira/browse/CLJS-1463。 - Antonin Hildebrand

7

如果有人日后看到这篇文章,

如果你在一个 go 块内部,可能需要使用这个: (js* "0; debugger") ,因为 go 宏会在各个地方创建变量定义,所以需要在这种情况下进行修复。

如果由于其他原因未能解决问题,请检查错误日志,你可以尝试添加一些内容来“欺骗”编译器以此解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接