{quote}
(def ^:dynamic foo 42)
(go
(let (link: old foo)
(set! foo 45)
(println old foo)
(set! foo old)))
{quote}
保留绑定的值为45(与binding+with-redefs的代码相同)。问题在于某种方式下let绑定内联了foo的引用。例如,println语句编译为
{quote}
...
var inst_43089 = cljs.core.println.call(null,full.async.foo,full.async.foo);
...
{quote}
我目前正在查看ioc_macros.clj,但我还没有找到问题所在的部分。任何提示都很有帮助。