   [s]
   (let [groups (re-find* int-pattern s)
         group3 (aget groups 2)]
-    (if (coercive-not
-         (or (nil? group3)
-             (< (alength group3) 1)))
+    (if-not (or (nil? group3)
+                (< (alength group3) 1))
       0
       (let [negate (if (identical? "-" (aget groups 1)) -1 1)
             a (cond

(defn- re-matches*
  [re s]
  (let [matches (.exec re s)]
    (when (and (coercive-not= matches nil)
               (identical? (aget matches 0) s))
      (if (== (alength matches) 1)
        (aget matches 0)

        token (aget a 0)
        ns (aget a 1)
        name (aget a 2)]
    (if (or (and (not (undefined? ns))
                 (identical? (. ns (substring (- (.-length ns) 2) (.-length ns))) ":/"))
            (identical? (aget name (dec (.-length name))) ":")
            (not (== (.indexOf token "::" 1) -1)))
      (reader-error reader "Invalid token: " token)
      (if (and (not (nil? ns)) (> (.-length ns) 0))
        (keyword (.substring ns 0 (.indexOf ns "/")) name)
        (keyword token)))))

