;; Analyzed by ClojureScript 1.8.51
{:use-macros nil, :excludes #{}, :name javascript-externs-generator.extern, :imports nil, :requires {dom goog.dom, goog.dom goog.dom, obj goog.object, goog.object goog.object, string clojure.string, clojure.string clojure.string}, :uses nil, :defs {prop-type {:protocol-inline nil, :meta {:file "/Users/jmmk/Dropbox/clojure/javascript-externs-generator/src/javascript_externs_generator/extern.cljs", :line 6, :column 7, :end-line 6, :end-column 16, :arglists (quote ([obj])), :doc "Differentiate between function property and object property"}, :name javascript-externs-generator.extern/prop-type, :variadic false, :file "src/javascript_externs_generator/extern.cljs", :end-column 16, :method-params ([obj]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 6, :end-line 6, :max-fixed-arity 1, :fn-var true, :arglists (quote ([obj])), :doc "Differentiate between function property and object property"}, parent-type? {:protocol-inline nil, :meta {:file "/Users/jmmk/Dropbox/clojure/javascript-externs-generator/src/javascript_externs_generator/extern.cljs", :line 13, :column 7, :end-line 13, :end-column 19, :arglists (quote ([obj])), :doc "Is it possible for this object to have child properties?"}, :name javascript-externs-generator.extern/parent-type?, :variadic false, :file "src/javascript_externs_generator/extern.cljs", :end-column 19, :method-params ([obj]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 13, :end-line 13, :max-fixed-arity 1, :fn-var true, :arglists (quote ([obj])), :doc "Is it possible for this object to have child properties?"}, generate-object-tree {:protocol-inline nil, :meta {:file "/Users/jmmk/Dropbox/clojure/javascript-externs-generator/src/javascript_externs_generator/extern.cljs", :line 19, :column 7, :end-line 19, :end-column 27, :arglists (quote ([obj name] [obj name seen])), :doc "Build a recursive tree representation of the JavaScript object\n  and metadata about its properties, prototype, and functions", :top-fn {:variadic false, :max-fixed-arity 3, :method-params ([obj name] [obj name seen]), :arglists ([obj name] [obj name seen]), :arglists-meta (nil nil)}}, :name javascript-externs-generator.extern/generate-object-tree, :variadic false, :file "src/javascript_externs_generator/extern.cljs", :end-column 27, :top-fn {:variadic false, :max-fixed-arity 3, :method-params ([obj name] [obj name seen]), :arglists ([obj name] [obj name seen]), :arglists-meta (nil nil)}, :method-params ([obj name] [obj name seen]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 19, :end-line 19, :max-fixed-arity 3, :fn-var true, :arglists ([obj name] [obj name seen]), :doc "Build a recursive tree representation of the JavaScript object\n  and metadata about its properties, prototype, and functions"}, emit-props-extern {:protocol-inline nil, :meta {:file "/Users/jmmk/Dropbox/clojure/javascript-externs-generator/src/javascript_externs_generator/extern.cljs", :line 38, :column 7, :end-line 38, :end-column 24, :arglists (quote ([obj])), :doc "Return recursive string representation of an object's properties"}, :name javascript-externs-generator.extern/emit-props-extern, :variadic false, :file "src/javascript_externs_generator/extern.cljs", :end-column 24, :method-params ([obj]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 38, :end-line 38, :max-fixed-arity 1, :fn-var true, :arglists (quote ([obj])), :doc "Return recursive string representation of an object's properties"}, emit-prototype {:protocol-inline nil, :meta {:file "/Users/jmmk/Dropbox/clojure/javascript-externs-generator/src/javascript_externs_generator/extern.cljs", :line 51, :column 7, :end-line 51, :end-column 21, :arglists (quote ([namespace prototype])), :doc "Return string representation of an object's prototype/functions"}, :name javascript-externs-generator.extern/emit-prototype, :variadic false, :file "src/javascript_externs_generator/extern.cljs", :end-column 21, :method-params ([namespace prototype]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 51, :end-line 51, :max-fixed-arity 2, :fn-var true, :arglists (quote ([namespace prototype])), :doc "Return string representation of an object's prototype/functions"}, emit-prototype-extern {:protocol-inline nil, :meta {:file "/Users/jmmk/Dropbox/clojure/javascript-externs-generator/src/javascript_externs_generator/extern.cljs", :line 58, :column 7, :end-line 58, :end-column 28, :arglists (quote ([obj namespace])), :doc "Return recursive string representation of an object's prototype chain"}, :name javascript-externs-generator.extern/emit-prototype-extern, :variadic false, :file "src/javascript_externs_generator/extern.cljs", :end-column 28, :method-params ([obj namespace]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 58, :end-line 58, :max-fixed-arity 2, :fn-var true, :arglists (quote ([obj namespace])), :doc "Return recursive string representation of an object's prototype chain"}, extract {:protocol-inline nil, :meta {:file "/Users/jmmk/Dropbox/clojure/javascript-externs-generator/src/javascript_externs_generator/extern.cljs", :line 67, :column 7, :end-line 67, :end-column 14, :arglists (quote ([name js-object])), :doc "Recursively extract properties and prototypes from a JavaScript object\n  into an extern for use with the Google Closure Compiler"}, :name javascript-externs-generator.extern/extract, :variadic false, :file "src/javascript_externs_generator/extern.cljs", :end-column 14, :method-params ([name js-object]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 67, :end-line 67, :max-fixed-arity 2, :fn-var true, :arglists (quote ([name js-object])), :doc "Recursively extract properties and prototypes from a JavaScript object\n  into an extern for use with the Google Closure Compiler"}, wrap-extern {:protocol-inline nil, :meta {:file "/Users/jmmk/Dropbox/clojure/javascript-externs-generator/src/javascript_externs_generator/extern.cljs", :line 76, :column 7, :end-line 76, :end-column 18, :arglists (quote ([name extern])), :doc "Add header and footer to extern output"}, :name javascript-externs-generator.extern/wrap-extern, :variadic false, :file "src/javascript_externs_generator/extern.cljs", :end-column 18, :method-params ([name extern]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 76, :end-line 76, :max-fixed-arity 2, :fn-var true, :arglists (quote ([name extern])), :doc "Add header and footer to extern output"}, extract-loaded {:protocol-inline nil, :meta {:file "/Users/jmmk/Dropbox/clojure/javascript-externs-generator/src/javascript_externs_generator/extern.cljs", :line 88, :column 7, :end-line 88, :end-column 21, :arglists (quote ([name])), :doc "Grab a loaded JavaScript object to extract an extern"}, :name javascript-externs-generator.extern/extract-loaded, :variadic false, :file "src/javascript_externs_generator/extern.cljs", :end-column 21, :method-params ([name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 88, :end-line 88, :max-fixed-arity 1, :fn-var true, :arglists (quote ([name])), :doc "Grab a loaded JavaScript object to extract an extern"}}, :require-macros nil, :cljs.analyzer/constants {:seen #{:name :type :function :root :prototype :object :props}, :order [:function :object :name :type :props :prototype :root]}, :doc nil}