Provides js-specific passes for tools.analyzer
user> (require '[clojure.tools.analyzer.js :as a]
'[clojure.tools.analyzer.env :as env)
nil
user> (def env (a/global-env))
#'user/env
user> (env/with-env env (a/analyze 1))
{:op :const,
:top-level true,
:tag number,
:env {:context :ctx/statement, :locals {}, :ns cljs.user},
:type :number,
:literal? true,
:val 1,
:form 1}
user> (env/with-env env (a/analyze-ns 'cljs.core))
[{:op :ns ..}
{:op :def ..}
..]
If clojure.tools.analyzer.js
is used inside a cljs macro being expanded by cljs.analyzer
, you can use cljs-env->env
to populate tools.analyzer.js' global env from clojure.analyzer's one:
clojure.tools.analyzer.js> (env/ensure (env/with-env (merge (env/deref-env)
{:namespaces (cljs-env->env)}))
..)
Latest stable release: 0.1.0-beta4
Leiningen dependency information:
[org.clojure/tools.analyzer.js "0.1.0-beta4"]
Maven dependency information:
<dependency>
<groupId>org.clojure</groupId>
<artifactId>tools.analyzer.js</artifactId>
<version>0.1.0-beta4</version>
</dependency>
Copyright © 2014 Nicola Mometto, Rich Hickey & contributors.
Distributed under the Eclipse Public License, the same as Clojure.
Can you improve this documentation? These fine people already did:
Nicola Mometto & Alex MillerEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close