   :closure-defines option."
     :jsdoc ["@define {string}"]}
   *target* "default")
+
+(def
+  ^{:dynamic true
+    :doc "Var bound to the current namespace. Only used for bootstrapping."}
+  *ns* nil)
 
 (defonce
   ^{:doc "Each runtime environment provides a different way to print output.

  [tag form]
  {:pre [(symbol? tag)]}
  (cljs.core.TaggedLiteral. tag form))

         (identical? (goog/typeOf js/Symbol) "function"))
  (def ITER_SYMBOL (.-iterator js/Symbol))
  (def ITER_SYMBOL "@@iterator"))

(def ^{:jsdoc ["@enum {string"]}
  CHAR_MAP
  #js {"-"    "_"
       ":"    "_COLON_"
       "+"    "_PLUS_"
       ">"    "_GT_"
       "<"    "_LT_"
       "="    "_EQ_"
       "~"    "_TILDE_"
       "!"    "_BANG_"
       "@"    "_CIRCA_"
       "#"    "_SHARP_"
       "'"    "_SINGLEQUOTE_"
       "\\\"" "_DOUBLEQUOTE_"
       "%"    "_PERCENT_"
       "^"    "_CARET_"
       "&"    "_AMPERSAND_"
       "*"    "_STAR_"
       "|"    "_BAR_"
       "{"    "_LBRACE_"
       "}"    "_RBRACE_"
       "["    "_LBRACK_"
       "]"    "_RBRACK_"
       "/"    "_SLASH_"
       "\\\\" "_BSLASH_"
       "?"    "_QMARK_"})

(def ^{:jsdoc ["@enum {string}"]}
  DEMUNGE_MAP
  #js {"_"             "-"
       "_COLON_"       ":"
       "_PLUS_"        "+"
       "_GT_"          ">"
       "_LT_"          "<"
       "_EQ_"          "="
       "_TILDE_"       "~"
       "_BANG_"        "!"
       "_CIRCA_"       "@"
       "_SHARP_"       "#"
       "_SINGLEQUOTE_" "'"
       "_DOUBLEQUOTE_" "\\\""
       "_PERCENT_"     "%"
       "_CARET_"       "^"
       "_AMPERSAND_"   "&"
       "_STAR_"        "*"
       "_BAR_"         "|"
       "_LBRACE_"      "{"
       "_RBRACE_"      "}"
       "_LBRACK_"      "["
       "_RBRACK_"      "]"
       "_SLASH_"       "/"
       "_BSLASH_"      "\\\\"
       "_QMARK_"       "?"})

(def DEMUNGE_PATTERN nil)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; arrays ;;;;;;;;;;;;;;;;

