File tree Expand file tree Collapse file tree 2 files changed +13
-3
lines changed
Expand file tree Collapse file tree 2 files changed +13
-3
lines changed Original file line number Diff line number Diff line change 398398 else-is-promise? (promise-form? transformed-else)
399399 ; ; If either branch is a promise-form, ensure BOTH branches return promises
400400 ; ; so we can safely call .then on the if result
401+ ; ; Also handle missing else when then is promise (implicit nil else)
401402 final-then (if (and else-is-promise? (not then-is-promise?))
402403 (wrap-promise transformed-then)
403404 transformed-then)
404- final-else (if (and then-is-promise? (not else-is-promise?) transformed-else)
405- (wrap-promise transformed-else)
406- transformed-else)
405+ final-else (cond
406+ ; ; else is promise but then isn't - wrap then (handled above), keep else
407+ else-is-promise? transformed-else
408+ ; ; then is promise but else isn't (including nil) - wrap else
409+ then-is-promise? (wrap-promise transformed-else)
410+ ; ; neither is promise - keep as-is
411+ :else transformed-else)
407412 branches-have-promise? (or then-is-promise? else-is-promise?)]
408413 (if (promise-form? transformed-test)
409414 (let [test-binding (gensym " test__" )]
Original file line number Diff line number Diff line change 406406 :no-else-await-in-then
407407 (if true (await (js/Promise.resolve :result)))
408408
409+ ;; REGRESSION: no else, await in then, but test is false (implicit nil)
410+ :no-else-await-in-then-falsy
411+ (if false (await (js/Promise.resolve :never)))
412+
409413 ;; REGRESSION: loop with if having mixed branches
410414 :nested-loop-mixed
411415 (loop [sum 0 items [{:x 10} 5 {:x 20}]]
432436 :await-both-falsy :else
433437 :no-else-await-in-test :result
434438 :no-else-await-in-then :result
439+ :no-else-await-in-then-falsy nil
435440 :nested-loop-mixed 35
436441 :expr-position-mixed 142 }
437442 result))))
You can’t perform that action at this time.
0 commit comments