{:rename-macros {}, :renames {}, :use-macros {safe-call devtools.util, oset devtools.util, oget devtools.util, get-fast-path-protocol-partitions-count devtools.munging, ocall devtools.util, get-fast-path-protocols-lookup-table devtools.munging}, :excludes #{js-reserved?}, :name devtools.munging, :imports {StringBuffer goog.string.StringBuffer}, :requires {string clojure.string, clojure.string clojure.string, devtools.util devtools.util, gobj goog.object, goog.object goog.object, StringBuffer goog.string.StringBuffer}, :uses nil, :defs {args-lists-to-strings {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 436, :column 7, :end-line 436, :end-column 28, :arglists (quote ([args-lists spacer-symbol multi-arity-symbol rest-symbol])), :doc "Converts a list of arguments lists into a list of strings suitable for UI presentation."}, :name devtools.munging/args-lists-to-strings, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 28, :method-params ([args-lists spacer-symbol multi-arity-symbol rest-symbol]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 436, :end-line 436, :max-fixed-arity 4, :fn-var true, :arglists (quote ([args-lists spacer-symbol multi-arity-symbol rest-symbol])), :doc "Converts a list of arguments lists into a list of strings suitable for UI presentation."}, get-basis {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 496, :column 7, :end-line 496, :end-column 16, :arglists (quote ([f]))}, :name devtools.munging/get-basis, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 16, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 496, :end-line 496, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f]))}, humanize-name {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 328, :column 7, :end-line 328, :end-column 20, :arglists (quote ([state name])), :doc "Given a name and intermediate state. Convert name to a human readable version by keeping human readable prefix with\n optional subscribt postfix and store it in ::result. Subscript number is picked based on state. State keeps track of\n previously assigned subscripts. Returns a new state."}, :name devtools.munging/humanize-name, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 20, :method-params ([state name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 328, :end-line 328, :max-fixed-arity 2, :fn-var true, :arglists (quote ([state name])), :doc "Given a name and intermediate state. Convert name to a human readable version by keeping human readable prefix with\n optional subscribt postfix and store it in ::result. Subscript number is picked based on state. State keeps track of\n previously assigned subscripts. Returns a new state."}, find-index-of-human-prefix {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 314, :column 7, :end-line 314, :end-column 33, :arglists (quote ([name])), :doc "Given a demunged ClojureScript parameter name. Tries to detect human readable part and returns the index where it ends.\n Returns nil if no prefix can be detected.\n\n The idea is to convert macro-generated parameters and other generated names to more friendly names.\n We observed that param names generated by gensym have prefix followed by big numbers.\n Other generated names contain two dashes after prefix (originally probably using underscores)."}, :name devtools.munging/find-index-of-human-prefix, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 33, :method-params ([name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 314, :end-line 314, :max-fixed-arity 1, :fn-var true, :arglists (quote ([name])), :doc "Given a demunged ClojureScript parameter name. Tries to detect human readable part and returns the index where it ends.\n Returns nil if no prefix can be detected.\n\n The idea is to convert macro-generated parameters and other generated names to more friendly names.\n We observed that param names generated by gensym have prefix followed by big numbers.\n Other generated names contain two dashes after prefix (originally probably using underscores)."}, protocol-descriptors-comparator {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 578, :column 7, :end-line 578, :end-column 38, :arglists (quote ([a b]))}, :name devtools.munging/protocol-descriptors-comparator, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 38, :method-params ([a b]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 578, :end-line 578, :max-fixed-arity 2, :fn-var true, :arglists (quote ([a b]))}, make-subscript {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 77, :column 7, :end-line 77, :end-column 21, :arglists (quote ([subscript])), :doc "Given a subscript number converts it into a string representation consisting of unicode subscript characters (digits)."}, :name devtools.munging/make-subscript, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 21, :method-params ([subscript]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 77, :end-line 77, :max-fixed-arity 1, :fn-var true, :arglists (quote ([subscript])), :doc "Given a subscript number converts it into a string representation consisting of unicode subscript characters (digits)."}, trivial-fn-source? {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 129, :column 7, :end-line 129, :end-column 25, :arglists (quote ([fn-source]))}, :name devtools.munging/trivial-fn-source?, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 25, :method-params ([fn-source]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 129, :end-line 129, :max-fixed-arity 1, :fn-var true, :arglists (quote ([fn-source]))}, char-to-subscript {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 66, :column 7, :end-line 66, :end-column 24, :arglists (quote ([char])), :doc "Given a character with a single digit converts it into a subscript character.\n Zero chracter maps to unicode 'SUBSCRIPT ZERO' (U+2080)."}, :name devtools.munging/char-to-subscript, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 24, :method-params ([char]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 66, :end-line 66, :max-fixed-arity 1, :fn-var true, :arglists (quote ([char])), :doc "Given a character with a single digit converts it into a subscript character.\n Zero chracter maps to unicode 'SUBSCRIPT ZERO' (U+2080)."}, proper-arg-demunge {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 177, :column 7, :end-line 177, :end-column 25, :arglists (quote ([munged-arg-name]))}, :name devtools.munging/proper-arg-demunge, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 25, :method-params ([munged-arg-name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 177, :end-line 177, :max-fixed-arity 1, :fn-var true, :arglists (quote ([munged-arg-name]))}, js-reserved? {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 33, :column 7, :end-line 33, :end-column 19, :arglists (quote ([x]))}, :name devtools.munging/js-reserved?, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 19, :method-params ([x]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 33, :end-line 33, :max-fixed-arity 1, :fn-var true, :arglists (quote ([x]))}, fast-path-protocols-lookup-table {:name devtools.munging/fast-path-protocols-lookup-table, :file "docs/js/compiled/out/devtools/munging.cljs", :line 542, :column 1, :end-line 542, :end-column 38, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 542, :column 6, :end-line 542, :end-column 38}}, present-fn-part {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 462, :column 7, :end-line 462, :end-column 22, :arglists (quote ([fn-ns fn-name include-ns?]))}, :name devtools.munging/present-fn-part, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 22, :method-params ([fn-ns fn-name include-ns?]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 462, :end-line 462, :max-fixed-arity 3, :fn-var true, :arglists (quote ([fn-ns fn-name include-ns?]))}, collect-fn-arities {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 381, :column 7, :end-line 381, :end-column 25, :arglists (quote ([f])), :doc "Given a Javascript function object, tries to inspect known arity properties generated by ClojureScript compiler and\n collects all available arity functions into a map. Arities are keyed by arity count and variadic arity gets ::variadic key."}, :name devtools.munging/collect-fn-arities, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 25, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 381, :end-line 381, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f])), :doc "Given a Javascript function object, tries to inspect known arity properties generated by ClojureScript compiler and\n collects all available arity functions into a map. Arities are keyed by arity count and variadic arity gets ::variadic key."}, protocol-path {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 513, :column 7, :end-line 513, :end-column 20, :arglists (quote ([protocol-selector]))}, :name devtools.munging/protocol-path, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 20, :method-params ([protocol-selector]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 513, :end-line 513, :max-fixed-arity 1, :fn-var true, :arglists (quote ([protocol-selector]))}, key-for-protocol-partition {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 544, :column 7, :end-line 544, :end-column 33, :arglists (quote ([partition]))}, :name devtools.munging/key-for-protocol-partition, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 33, :method-params ([partition]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 544, :end-line 544, :max-fixed-arity 1, :fn-var true, :arglists (quote ([partition]))}, collect-protocol-methods {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 587, :column 7, :end-line 587, :end-column 31, :arglists (quote ([obj protocol-selector]))}, :name devtools.munging/collect-protocol-methods, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 31, :method-params ([obj protocol-selector]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 587, :end-line 587, :max-fixed-arity 2, :fn-var true, :arglists (quote ([obj protocol-selector]))}, reserved-aware-demunge {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 169, :column 7, :end-line 169, :end-column 29, :arglists (quote ([munged-name]))}, :name devtools.munging/reserved-aware-demunge, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 29, :method-params ([munged-name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 169, :end-line 169, :max-fixed-arity 1, :fn-var true, :arglists (quote ([munged-name]))}, arity-keywords-comparator {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 394, :column 7, :end-line 394, :end-column 32, :arglists (quote ([x y])), :doc "::variadic goes last, other keywords compare by name."}, :name devtools.munging/arity-keywords-comparator, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 32, :method-params ([x y]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 394, :end-line 394, :max-fixed-arity 2, :fn-var true, :arglists (quote ([x y])), :doc "::variadic goes last, other keywords compare by name."}, extract-arities {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 453, :column 7, :end-line 453, :end-column 22, :arglists (quote ([f humanize? spacer-symbol multi-arity-symbol rest-symbol]))}, :name devtools.munging/extract-arities, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 22, :method-params ([f humanize? spacer-symbol multi-arity-symbol rest-symbol]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 453, :end-line 453, :max-fixed-arity 5, :fn-var true, :arglists (quote ([f humanize? spacer-symbol multi-arity-symbol rest-symbol]))}, arities-key-comparator {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 402, :column 7, :end-line 402, :end-column 29, :arglists (quote ([x y])), :doc "numbers go first (ordered), then keywords (ordered by name), and then ::variadic sticks last"}, :name devtools.munging/arities-key-comparator, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 29, :method-params ([x y]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 402, :end-line 402, :max-fixed-arity 2, :fn-var true, :arglists (quote ([x y])), :doc "numbers go first (ordered), then keywords (ordered by name), and then ::variadic sticks last"}, get-fn-max-fixed-arity {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 49, :column 7, :end-line 49, :end-column 29, :arglists (quote ([f]))}, :name devtools.munging/get-fn-max-fixed-arity, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 29, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 49, :end-line 49, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f]))}, common-protocol? {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 458, :column 7, :end-line 458, :end-column 23, :arglists (quote ([protocol-ns protocol-name]))}, :name devtools.munging/common-protocol?, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 23, :method-params ([protocol-ns protocol-name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 458, :end-line 458, :max-fixed-arity 2, :fn-var true, :arglists (quote ([protocol-ns protocol-name]))}, break-munged-name {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 230, :column 7, :end-line 230, :end-column 24, :arglists (quote ([munged-name] [munged-name ns-detector])), :doc "Given a munged-name from Javascript lands attempts to break it into:\n [fn-ns fn-name protocol-ns protocol-name protocol-method arity].\n\n Protocol and arity elements are optional. Function elements are always present or \"\".\n\n examples for input:\n cljs$core$rest => ['cljs.core', 'rest']\n cljs.core.reduce$cljs$core$IFn$_invoke$arity$3 => ['cljs.core' 'reduce' 'cljs.core' 'IFn' '_invoke' 3]", :top-fn {:variadic false, :max-fixed-arity 2, :method-params ([munged-name] [munged-name ns-detector]), :arglists ([munged-name] [munged-name ns-detector]), :arglists-meta (nil nil)}}, :name devtools.munging/break-munged-name, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 24, :top-fn {:variadic false, :max-fixed-arity 2, :method-params ([munged-name] [munged-name ns-detector]), :arglists ([munged-name] [munged-name ns-detector]), :arglists-meta (nil nil)}, :method-params ([munged-name] [munged-name ns-detector]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 230, :end-line 230, :max-fixed-arity 2, :fn-var true, :arglists ([munged-name] [munged-name ns-detector]), :doc "Given a munged-name from Javascript lands attempts to break it into:\n [fn-ns fn-name protocol-ns protocol-name protocol-method arity].\n\n Protocol and arity elements are optional. Function elements are always present or \"\".\n\n examples for input:\n cljs$core$rest => ['cljs.core', 'rest']\n cljs.core.reduce$cljs$core$IFn$_invoke$arity$3 => ['cljs.core' 'reduce' 'cljs.core' 'IFn' '_invoke' 3]"}, present-function-name {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 473, :column 7, :end-line 473, :end-column 28, :arglists (quote ([munged-name options])), :doc "Given javascript function name tries to present it as plain string for display in UI on best effort basis."}, :name devtools.munging/present-function-name, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 28, :method-params ([munged-name options]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 473, :end-line 473, :max-fixed-arity 2, :fn-var true, :arglists (quote ([munged-name options])), :doc "Given javascript function name tries to present it as plain string for display in UI on best effort basis."}, char-to-superscript {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 83, :column 7, :end-line 83, :end-column 26, :arglists (quote ([char])), :doc "Given a character with a single digit converts it into a superscript character.\n Zero chracter maps to unicode 'SUPERSCRIPT ZERO' (U+2070)."}, :name devtools.munging/char-to-superscript, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 26, :method-params ([char]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 83, :end-line 83, :max-fixed-arity 1, :fn-var true, :arglists (quote ([char])), :doc "Given a character with a single digit converts it into a superscript character.\n Zero chracter maps to unicode 'SUPERSCRIPT ZERO' (U+2070)."}, get-fn-variadic-arity {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 46, :column 7, :end-line 46, :end-column 28, :arglists (quote ([f]))}, :name devtools.munging/get-fn-variadic-arity, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 28, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 46, :end-line 46, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f]))}, scan-protocols {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 581, :column 7, :end-line 581, :end-column 21, :arglists (quote ([obj]))}, :name devtools.munging/scan-protocols, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 21, :method-params ([obj]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 581, :end-line 581, :max-fixed-arity 1, :fn-var true, :arglists (quote ([obj]))}, get-protocol-object {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 516, :column 7, :end-line 516, :end-column 26, :arglists (quote ([protocol-selector]))}, :name devtools.munging/get-protocol-object, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 26, :method-params ([protocol-selector]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 516, :end-line 516, :max-fixed-arity 1, :fn-var true, :arglists (quote ([protocol-selector]))}, parse-fn-source {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 114, :column 7, :end-line 114, :end-column 22, :arglists (quote ([fn-source])), :doc "Given a function source code parses out [name args]. Note that both strings are still munged.\n Suitable for further processing.\n\n For exampe for input below the function will return [\"devtools_sample$core$hello\" \"name, unused_param\"]:\n\n function devtools_sample$core$hello(name, unused_param){\n return [cljs.core.str(\"hello, \"),cljs.core.str(name),cljs.core.str(\"!\")].join('');\n }\n "}, :name devtools.munging/parse-fn-source, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 22, :method-params ([fn-source]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 114, :end-line 114, :max-fixed-arity 1, :fn-var true, :arglists (quote ([fn-source])), :doc "Given a function source code parses out [name args]. Note that both strings are still munged.\n Suitable for further processing.\n\n For exampe for input below the function will return [\"devtools_sample$core$hello\" \"name, unused_param\"]:\n\n function devtools_sample$core$hello(name, unused_param){\n return [cljs.core.str(\"hello, \"),cljs.core.str(name),cljs.core.str(\"!\")].join('');\n }\n "}, ns-exists? {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 187, :column 7, :end-line 187, :end-column 17, :arglists (quote ([ns-module-name]))}, :name devtools.munging/ns-exists?, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 17, :method-params ([ns-module-name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 187, :end-line 187, :max-fixed-arity 1, :fn-var true, :arglists (quote ([ns-module-name]))}, get-protocol-selector {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 527, :column 7, :end-line 527, :end-column 28, :arglists (quote ([key]))}, :name devtools.munging/get-protocol-selector, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 28, :method-params ([key]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 527, :end-line 527, :max-fixed-arity 1, :fn-var true, :arglists (quote ([key]))}, convert-to-protocol-descriptor {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 575, :column 7, :end-line 575, :end-column 37, :arglists (quote ([fast? [ns name selector]]))}, :name devtools.munging/convert-to-protocol-descriptor, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 37, :method-params ([fast? p__41294]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 575, :end-line 575, :max-fixed-arity 2, :fn-var true, :arglists (quote ([fast? [ns name selector]]))}, review-arities {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 373, :column 7, :end-line 373, :end-column 21, :arglists (quote ([arities])), :doc "Some arities can be marked as fixed arity but in fact point to a variadic-arity function. We want to detect this case\n and turn such improperly categorized arities to ::variadic."}, :name devtools.munging/review-arities, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 21, :method-params ([arities]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 373, :end-line 373, :max-fixed-arity 1, :fn-var true, :arglists (quote ([arities])), :doc "Some arities can be marked as fixed arity but in fact point to a variadic-arity function. We want to detect this case\n and turn such improperly categorized arities to ::variadic."}, scan-fast-path-protocols-partition {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 547, :column 7, :end-line 547, :end-column 41, :arglists (quote ([obj partition]))}, :name devtools.munging/scan-fast-path-protocols-partition, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 41, :method-params ([obj partition]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 547, :end-line 547, :max-fixed-arity 2, :fn-var true, :arglists (quote ([obj partition]))}, proper-ns-demunge {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 182, :column 7, :end-line 182, :end-column 24, :arglists (quote ([munged-ns-name]))}, :name devtools.munging/proper-ns-demunge, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 24, :method-params ([munged-ns-name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 182, :end-line 182, :max-fixed-arity 1, :fn-var true, :arglists (quote ([munged-ns-name]))}, strip-arity {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 216, :column 7, :end-line 216, :end-column 18, :arglists (quote ([tokens]))}, :name devtools.munging/strip-arity, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 18, :method-params ([tokens]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 216, :end-line 216, :max-fixed-arity 1, :fn-var true, :arglists (quote ([tokens]))}, scan-slow-path-protocols {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 564, :column 7, :end-line 564, :end-column 31, :arglists (quote ([obj]))}, :name devtools.munging/scan-slow-path-protocols, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 31, :method-params ([obj]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 564, :end-line 564, :max-fixed-arity 1, :fn-var true, :arglists (quote ([obj]))}, arities-to-args-lists {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 423, :column 7, :end-line 423, :end-column 28, :arglists (quote ([arities & [humanize?]])), :doc "Given a map of arity functions. Tries to parse individual functions and prepare an arguments list for each arity.\n Returned list of arguments list is sorted by arity count, variadic arity goes last if available.\n\n The function also optionally humanizes argument names in each arguments list if requested.", :top-fn {:variadic true, :max-fixed-arity 1, :method-params [(arities [humanize?])], :arglists ([arities & [humanize?]]), :arglists-meta (nil)}}, :name devtools.munging/arities-to-args-lists, :variadic true, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 28, :top-fn {:variadic true, :max-fixed-arity 1, :method-params [(arities [humanize?])], :arglists ([arities & [humanize?]]), :arglists-meta (nil)}, :method-params [(arities [humanize?])], :protocol-impl nil, :arglists-meta (nil), :column 1, :line 423, :end-line 423, :max-fixed-arity 1, :fn-var true, :arglists ([arities & [humanize?]]), :doc "Given a map of arity functions. Tries to parse individual functions and prepare an arguments list for each arity.\n Returned list of arguments list is sorted by arity count, variadic arity goes last if available.\n\n The function also optionally humanizes argument names in each arguments list if requested."}, collect-fn-variadic-arities {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 363, :column 7, :end-line 363, :end-column 34, :arglists (quote ([f]))}, :name devtools.munging/collect-fn-variadic-arities, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 34, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 363, :end-line 363, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f]))}, get-fn-fixed-arity {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 43, :column 7, :end-line 43, :end-column 25, :arglists (quote ([f n]))}, :name devtools.munging/get-fn-fixed-arity, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 25, :method-params ([f n]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 43, :end-line 43, :max-fixed-arity 2, :fn-var true, :arglists (quote ([f n]))}, dollar-replacement {:name devtools.munging/dollar-replacement, :file "docs/js/compiled/out/devtools/munging.cljs", :line 28, :column 1, :end-line 28, :end-column 24, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 28, :column 6, :end-line 28, :end-column 24}}, revert-reserved {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 163, :column 7, :end-line 163, :end-column 22, :arglists (quote ([s]))}, :name devtools.munging/revert-reserved, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 22, :method-params ([s]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 163, :end-line 163, :max-fixed-arity 1, :fn-var true, :arglists (quote ([s]))}, detect-namespace-prefix {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 192, :column 7, :end-line 192, :end-column 30, :arglists (quote ([tokens & [ns-detector]])), :doc "Given a name broken into namespace parts returns [detected-ns remaining-parts],\n where detected-ns is a string representing longest detected existing namespace and\n remaining-parts is a vector of remaing input parts not included in the detected-ns concatenation.\n\n For given input [\"cljs\" \"core\" \"first\"] returns [\"cljs.core\" [\"first\"]] (asumming cljs.core exists)", :top-fn {:variadic true, :max-fixed-arity 1, :method-params [(tokens [ns-detector])], :arglists ([tokens & [ns-detector]]), :arglists-meta (nil)}}, :name devtools.munging/detect-namespace-prefix, :variadic true, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 30, :top-fn {:variadic true, :max-fixed-arity 1, :method-params [(tokens [ns-detector])], :arglists ([tokens & [ns-detector]]), :arglists-meta (nil)}, :method-params [(tokens [ns-detector])], :protocol-impl nil, :arglists-meta (nil), :column 1, :line 192, :end-line 192, :max-fixed-arity 1, :fn-var true, :arglists ([tokens & [ns-detector]]), :doc "Given a name broken into namespace parts returns [detected-ns remaining-parts],\n where detected-ns is a string representing longest detected existing namespace and\n remaining-parts is a vector of remaing input parts not included in the detected-ns concatenation.\n\n For given input [\"cljs\" \"core\" \"first\"] returns [\"cljs.core\" [\"first\"]] (asumming cljs.core exists)"}, parse-fn-info-deep {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 293, :column 7, :end-line 293, :end-column 25, :arglists (quote ([f])), :doc "Given a Javascript function object tries to retrieve [ns name & args] as in parse-fn-info (on best effort basis).\n\n The difference from parse-fn-info is that this function prefers to read args from arities if available.\n It recurses arbitrary deep following IFn protocol leads.\n\n If we hit multi-arity situation in leaf, we don't attempt to list arguments and return ::multi-arity placeholder instead.\n\n The reason for reading arities is that it gives more accurate parameter names in some cases.\n We observed that variadic functions don't always contain original parameter names, but individual IFn arity functions do."}, :name devtools.munging/parse-fn-info-deep, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 25, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 293, :end-line 293, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f])), :doc "Given a Javascript function object tries to retrieve [ns name & args] as in parse-fn-info (on best effort basis).\n\n The difference from parse-fn-info is that this function prefers to read args from arities if available.\n It recurses arbitrary deep following IFn protocol leads.\n\n If we hit multi-arity situation in leaf, we don't attempt to list arguments and return ::multi-arity placeholder instead.\n\n The reason for reading arities is that it gives more accurate parameter names in some cases.\n We observed that variadic functions don't always contain original parameter names, but individual IFn arity functions do."}, parse-fn-source-info {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 272, :column 7, :end-line 272, :end-column 27, :arglists (quote ([fn-source])), :doc "Given function source code tries to retrieve [ns name & args] on best effort basis, where\n ns is demunged namespace part of the function name (or \"\" if namespace cannot be detected)\n name is demunged short name (or \"\" if function is anonymous or name cannot be retrieved)\n args is optional number of demunged argument names.\n\n Please note that this function always returns a vector with something. In worst cases [\"\" \"\"].\n "}, :name devtools.munging/parse-fn-source-info, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 27, :method-params ([fn-source]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 272, :end-line 272, :max-fixed-arity 1, :fn-var true, :arglists (quote ([fn-source])), :doc "Given function source code tries to retrieve [ns name & args] on best effort basis, where\n ns is demunged namespace part of the function name (or \"\" if namespace cannot be detected)\n name is demunged short name (or \"\" if function is anonymous or name cannot be retrieved)\n args is optional number of demunged argument names.\n\n Please note that this function always returns a vector with something. In worst cases [\"\" \"\"].\n "}, arities-to-args-lists* {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 413, :column 7, :end-line 413, :end-column 29, :arglists (quote ([arities]))}, :name devtools.munging/arities-to-args-lists*, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 29, :method-params ([arities]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 413, :end-line 413, :max-fixed-arity 1, :fn-var true, :arglists (quote ([arities]))}, cljs-fn-name? {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 106, :column 7, :end-line 106, :end-column 20, :arglists (quote ([munged-name])), :doc "Given a Javascript name answers if the name was likely generated by ClojureScript.\n We use a simple heuristic here:\n The name must contain at least two separate dollars because we assume two-segment namespaces."}, :name devtools.munging/cljs-fn-name?, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 20, :method-params ([munged-name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 106, :end-line 106, :max-fixed-arity 1, :fn-var true, :arglists (quote ([munged-name])), :doc "Given a Javascript name answers if the name was likely generated by ClojureScript.\n We use a simple heuristic here:\n The name must contain at least two separate dollars because we assume two-segment namespaces."}, break-and-demunge-name {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 255, :column 7, :end-line 255, :end-column 29, :arglists (quote ([munged-name] [munged-name ns-detector])), :doc "Given a munged-name from Javascript lands attempts to break it into a namespace part and remaining short name.\n Then applies appropriate demunging on them and returns ClojureScript versions of the names.", :top-fn {:variadic false, :max-fixed-arity 2, :method-params ([munged-name] [munged-name ns-detector]), :arglists ([munged-name] [munged-name ns-detector]), :arglists-meta (nil nil)}}, :name devtools.munging/break-and-demunge-name, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 29, :top-fn {:variadic false, :max-fixed-arity 2, :method-params ([munged-name] [munged-name ns-detector]), :arglists ([munged-name] [munged-name ns-detector]), :arglists-meta (nil nil)}, :method-params ([munged-name] [munged-name ns-detector]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 255, :end-line 255, :max-fixed-arity 2, :fn-var true, :arglists ([munged-name] [munged-name ns-detector]), :doc "Given a munged-name from Javascript lands attempts to break it into a namespace part and remaining short name.\n Then applies appropriate demunging on them and returns ClojureScript versions of the names."}, parse-constructor-info {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 499, :column 7, :end-line 499, :end-column 29, :arglists (quote ([f])), :doc "Given a Javascript constructor function tries to retrieve [ns name basis]. Returns nil if not a cljs type."}, :name devtools.munging/parse-constructor-info, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 29, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 499, :end-line 499, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f])), :doc "Given a Javascript constructor function tries to retrieve [ns name basis]. Returns nil if not a cljs type."}, collect-fn-fixed-arities {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 354, :column 7, :end-line 354, :end-column 31, :arglists (quote ([f max-arity]))}, :name devtools.munging/collect-fn-fixed-arities, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 31, :method-params ([f max-arity]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 354, :end-line 354, :max-fixed-arity 2, :fn-var true, :arglists (quote ([f max-arity]))}, get-fn-source-safely {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 37, :column 7, :end-line 37, :end-column 27, :arglists (quote ([f]))}, :name devtools.munging/get-fn-source-safely, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 27, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 37, :end-line 37, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f]))}, cljs-fn? {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 134, :column 7, :end-line 134, :end-column 15, :arglists (quote ([f])), :doc "Given a Javascript function object returns true if the function looks like a ClojureScript function.\n\n Uses various heuristics:\n 1. must be fn? (is javascript function or satisfies Fn and IFn protocols)\n 2. and name must be cljs-fn-name? (name can come from f.name or parsed out of function source)\n 3. or if anonymous function, must be non-trivial"}, :name devtools.munging/cljs-fn?, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 15, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 134, :end-line 134, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f])), :doc "Given a Javascript function object returns true if the function looks like a ClojureScript function.\n\n Uses various heuristics:\n 1. must be fn? (is javascript function or satisfies Fn and IFn protocols)\n 2. and name must be cljs-fn-name? (name can come from f.name or parsed out of function source)\n 3. or if anonymous function, must be non-trivial"}, protocol-exists? {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 524, :column 7, :end-line 524, :end-column 23, :arglists (quote ([protocol-selector]))}, :name devtools.munging/protocol-exists?, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 23, :method-params ([protocol-selector]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 524, :end-line 524, :max-fixed-arity 1, :fn-var true, :arglists (quote ([protocol-selector]))}, parse-fn-info {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 287, :column 7, :end-line 287, :end-column 20, :arglists (quote ([f])), :doc "Given Javascript function object tries to retrieve [ns name & args] as in parse-fn-source-info (on best effort basis)."}, :name devtools.munging/parse-fn-info, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 20, :method-params ([f]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 287, :end-line 287, :max-fixed-arity 1, :fn-var true, :arglists (quote ([f])), :doc "Given Javascript function object tries to retrieve [ns name & args] as in parse-fn-source-info (on best effort basis)."}, make-superscript {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 98, :column 7, :end-line 98, :end-column 23, :arglists (quote ([superscript])), :doc "Given a superscript number converts it into a string representation consisting of unicode superscript characters (digits)."}, :name devtools.munging/make-superscript, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 23, :method-params ([superscript]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 98, :end-line 98, :max-fixed-arity 1, :fn-var true, :arglists (quote ([superscript])), :doc "Given a superscript number converts it into a string representation consisting of unicode superscript characters (digits)."}, demunge-protocol-selector {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 534, :column 7, :end-line 534, :end-column 32, :arglists (quote ([protocol-selector]))}, :name devtools.munging/demunge-protocol-selector, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 32, :method-params ([protocol-selector]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 534, :end-line 534, :max-fixed-arity 1, :fn-var true, :arglists (quote ([protocol-selector]))}, proper-demunge {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 174, :column 7, :end-line 174, :end-column 21, :arglists (quote ([munged-name]))}, :name devtools.munging/proper-demunge, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 21, :method-params ([munged-name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 174, :end-line 174, :max-fixed-arity 1, :fn-var true, :arglists (quote ([munged-name]))}, normalize-arity {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 209, :column 7, :end-line 209, :end-column 22, :arglists (quote ([arity-tokens]))}, :name devtools.munging/normalize-arity, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 22, :method-params ([arity-tokens]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 209, :end-line 209, :max-fixed-arity 1, :fn-var true, :arglists (quote ([arity-tokens]))}, present-protocol-part {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 467, :column 7, :end-line 467, :end-column 28, :arglists (quote ([protocol-ns protocol-name protocol-method include-protocol-ns?]))}, :name devtools.munging/present-protocol-part, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 28, :method-params ([protocol-ns protocol-name protocol-method include-protocol-ns?]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 467, :end-line 467, :max-fixed-arity 4, :fn-var true, :arglists (quote ([protocol-ns protocol-name protocol-method include-protocol-ns?]))}, parse-protocol {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 220, :column 7, :end-line 220, :end-column 21, :arglists (quote ([tokens detector]))}, :name devtools.munging/parse-protocol, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 21, :method-params ([tokens detector]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 220, :end-line 220, :max-fixed-arity 2, :fn-var true, :arglists (quote ([tokens detector]))}, humanize-names {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 343, :column 7, :end-line 343, :end-column 21, :arglists (quote ([names])), :doc "Given a list of names, returns a list of human-readable versions of those names.\n It detects human-readable prefix using a simple heuristics. When names repeat it assigns simple subscripts starting with 2.\n Subscripts are assigned left-to-right.\n\n Given [\"p--a\" \"p--b\" \"x\" \"p--c\"] returns [\"p\" \"p₂\" \"x\" \"p₃\"]"}, :name devtools.munging/humanize-names, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 21, :method-params ([names]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 343, :end-line 343, :max-fixed-arity 1, :fn-var true, :arglists (quote ([names])), :doc "Given a list of names, returns a list of human-readable versions of those names.\n It detects human-readable prefix using a simple heuristics. When names repeat it assigns simple subscripts starting with 2.\n Subscripts are assigned left-to-right.\n\n Given [\"p--a\" \"p--b\" \"x\" \"p--c\"] returns [\"p\" \"p₂\" \"x\" \"p₃\"]"}, review-arity {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 367, :column 7, :end-line 367, :end-column 19, :arglists (quote ([[arity arity-fn]]))}, :name devtools.munging/review-arity, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 19, :method-params ([p__41251]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 367, :end-line 367, :max-fixed-arity 1, :fn-var true, :arglists (quote ([[arity arity-fn]]))}, dollar-preserving-demunge {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 154, :column 7, :end-line 154, :end-column 32, :arglists (quote ([munged-name])), :doc "Standard cljs.core/demunge is too agresive in replacing dollars.\n This wrapper function works around it by leaving dollars intact."}, :name devtools.munging/dollar-preserving-demunge, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 32, :method-params ([munged-name]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 154, :end-line 154, :max-fixed-arity 1, :fn-var true, :arglists (quote ([munged-name])), :doc "Standard cljs.core/demunge is too agresive in replacing dollars.\n This wrapper function works around it by leaving dollars intact."}, scan-fast-path-protocols {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 561, :column 7, :end-line 561, :end-column 31, :arglists (quote ([obj]))}, :name devtools.munging/scan-fast-path-protocols, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 31, :method-params ([obj]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 561, :end-line 561, :max-fixed-arity 1, :fn-var true, :arglists (quote ([obj]))}, max-fixed-arity-to-scan {:name devtools.munging/max-fixed-arity-to-scan, :file "docs/js/compiled/out/devtools/munging.cljs", :line 29, :column 1, :end-line 29, :end-column 29, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 29, :column 6, :end-line 29, :end-column 29}}, make-protocol-descriptor {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 569, :column 7, :end-line 569, :end-column 31, :arglists (quote ([ns name selector fast?]))}, :name devtools.munging/make-protocol-descriptor, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 31, :method-params ([ns name selector fast?]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 569, :end-line 569, :max-fixed-arity 4, :fn-var true, :arglists (quote ([ns name selector fast?]))}, get-type-name {:protocol-inline nil, :meta {:file "/Users/simon/workspace/swinging-needle-meter/docs/js/compiled/out/devtools/munging.cljs", :line 52, :column 7, :end-line 52, :end-column 20, :arglists (quote ([t]))}, :name devtools.munging/get-type-name, :variadic false, :file "docs/js/compiled/out/devtools/munging.cljs", :end-column 20, :method-params ([t]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 52, :end-line 52, :max-fixed-arity 1, :fn-var true, :arglists (quote ([t]))}}, :require-macros {devtools.munging devtools.munging, devtools.util devtools.util}, :cljs.analyzer/constants {:seen #{:selector :devtools.munging/variadic :else :include-protocol-ns? :ns-detector :ns :name :naked :fast? :devtools.munging/multi-arity :silence-common-protocols? :include-ns? :devtools.munging/result}, :order [:devtools.munging/multi-arity :devtools.munging/result :devtools.munging/variadic :else :naked :include-ns? :include-protocol-ns? :silence-common-protocols? :ns-detector :ns :name :selector :fast?]}, :doc "This namespace implements various heuristics to map Javascript names back to corresponding ClojureScript names.\n The functionality here heavily depends on observed ClojureScript compiler and runtime behaviour (fragile!).\n Answers given by functions in this namespace cannot be perfect because generated Javascript naming schemes produced by\n ClojureScript compiler were not designed with easy reversibility in mind. We recommend this functionality to be used for\n presentation in the UI only. The goal here is to provide user with more familiar view of runtime state of her app\n in most common cases (on best effort basis).\n\n Our main weapons in this uneven fight are:\n 1. munged function names as they appear in Javascript (generated by ClojureScript)\n 2. we can also analyze function sources accessible via .toString\n 3. special cljs$core$IFn$_invoke protocol props generated for multi-arity functions\n\n We can also cheat and look at runtime state of browser environment to determine some answers about namespaces.\n\n If you discovered breakage or a new case which should be covered by this code, please open an issue:\n https://github.com/binaryage/cljs-devtools/issues"}