From 38fed4a7d0a48bb05136fb1f4eec207554295393 Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Tue, 30 Jun 2015 19:46:55 -0400 Subject: [PATCH] fixed cljs obj-extends? to have special case for nil because it cannot be reflected on like normal objects --- src/com/rpl/specter/impl.cljc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/com/rpl/specter/impl.cljc b/src/com/rpl/specter/impl.cljc index efeecab..364e1ee 100644 --- a/src/com/rpl/specter/impl.cljc +++ b/src/com/rpl/specter/impl.cljc @@ -102,13 +102,15 @@ :cljs (defn obj-extends? [prot-sym obj] - ;; this requires that prot-sym be fully qualified - (let [props (->> obj type .-prototype (.getOwnPropertyNames js/Object) seq) - ns (namespace prot-sym) - n (name prot-sym) - lookup (str (s/replace ns "." "$") "$" n "$")] - (seq-contains? props lookup) - )) + (if (nil? obj) + (= prot-sym `p/StructurePath) + ;; this requires that prot-sym be fully qualified + (let [props (->> obj type .-prototype (.getOwnPropertyNames js/Object) seq) + ns (namespace prot-sym) + n (name prot-sym) + lookup (str (s/replace ns "." "$") "$" n "$")] + (seq-contains? props lookup) + ))) ) #?(:clj