This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-06-28
Channels
- # babashka (10)
- # beginners (140)
- # cider (6)
- # clj-kondo (10)
- # cljs-dev (39)
- # cljsrn (6)
- # clojars (1)
- # clojure (23)
- # clojure-europe (2)
- # clojure-spec (7)
- # clojure-uk (6)
- # clojurescript (1)
- # conjure (16)
- # cursive (3)
- # datomic (3)
- # emacs (6)
- # fulcro (13)
- # graalvm (3)
- # malli (8)
- # meander (4)
- # off-topic (43)
- # pathom (1)
- # pedestal (15)
- # re-frame (13)
- # reagent (3)
- # sci (25)
- # shadow-cljs (26)
- # sql (9)
- # testing (34)
- # tools-deps (80)
def interested in testing browser REPL, and code splitting in a browser - probably via puppeteer
all the things that really shouldn't break but inevitably get missed because there a lot of things to remember
Congrats. I've used https://github.com/igrishaev/etaoin for browser testing as well, works fine for all major browsers
is there no uniqueify pass in cljs? that information is kept in a chain of shadow information?
the and expansion introduces a let. so i imagine i need to collapse the let and just inline usages of the booleans if i can. so we don't emit (let [x true] (js* "{}~ && {}~" x ...)
so to remove the introduced let
need to replace the inline constants with the binding. and to do that need to worry about shadowing. i think the optimizations done at the macroexpansion level are far easier than working on an AST in general.
it is true you may need to mark the let
with metadata that let's the compiler know it should run an optimization pass on it
Ah. I was wondering if I could annotate with something to mark that the expansion came from an and
I think that removes the benefit that other forms will benefit from the optimization though