Skip to content

Commit 0285a47

Browse files
committed
* cleanup safe-test?
* show that type inference for a crypto.subtle call works
1 parent 561d65a commit 0285a47

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/main/clojure/cljs/compiler.cljc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,8 @@
641641

642642
(defn safe-test? [env e]
643643
(let [tag (ana/infer-tag env e)]
644-
(or ('#{boolean seq js/Boolean} tag) (truthy-constant? e))))
644+
(or ('#{boolean seq} (ana/js-prim-ctor->tag tag tag))
645+
(truthy-constant? e))))
645646

646647
(defmethod emit* :if
647648
[{:keys [test then else env unchecked]}]

src/test/clojure/cljs/externs_infer_tests.clj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,11 @@
163163
(env/with-compiler-env (env/default-compiler-env)
164164
(analyze (ana/empty-env) '(let [x js/Number]
165165
(.isNaN x 1)))))
166+
:tag)))
167+
(is (= 'js/Promise
168+
(-> (binding [ana/*cljs-ns* ana/*cljs-ns*]
169+
(env/with-compiler-env (env/default-compiler-env)
170+
(analyze (ana/empty-env) '(.generateKey js/crypto.subtle))))
166171
:tag))))
167172

168173
(deftest test-externs-infer

0 commit comments

Comments
 (0)