<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Clojure Q&amp;A - Recent activity in ClojureScript</title>
<link>https://ask.clojure.org/index.php/activity/clojurescript</link>
<description></description>
<item>
<title>Edited: Missing protocol error will hang on infinite `(range)` input in ClojureScript but not Clojure</title>
<link>https://ask.clojure.org/index.php/15026/missing-protocol-error-infinite-range-clojurescript-clojure?show=15026#q15026</link>
<description>&lt;p&gt;functions like &lt;code&gt;transient&lt;/code&gt;, &lt;code&gt;assoc&lt;/code&gt;, etc  will throw helpful missing-protocol error when receiving invalid input but it will hang if it receives infinite &lt;code&gt;(range)&lt;/code&gt;.&lt;br&gt;
this is related to issue below&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://ask.clojure.org/index.php/14578/even-range-hangs?show=14578#q14578&quot;&gt;https://ask.clojure.org/index.php/14578/even-range-hangs?show=14578#q14578&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;however, missing-protocol only hang in clojurescript but not clojure so I am wondering if this difference is intended.&lt;/p&gt;
&lt;p&gt;example calls that should throws&lt;br&gt;
- &lt;code&gt;(transient (range))&lt;/code&gt;&lt;br&gt;
- &lt;code&gt;(assoc (range) :a 1)&lt;/code&gt;&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/15026/missing-protocol-error-infinite-range-clojurescript-clojure?show=15026#q15026</guid>
<pubDate>Fri, 03 Apr 2026 11:22:38 +0000</pubDate>
</item>
<item>
<title>TypedArrays don't implement ICounted in cljs</title>
<link>https://ask.clojure.org/index.php/14919/typedarrays-dont-implement-icounted-in-cljs</link>
<description>&lt;p&gt;I just discovered that JS TypedArrays (&lt;code&gt;Uint8Array&lt;/code&gt; et al) do not implement &lt;code&gt;ICounted&lt;/code&gt; out of the box, even though it's trivial to make them do so. As a result &lt;code&gt;count&lt;/code&gt; doesn't work on them; this is in contrast to Clojure where &lt;code&gt;count&lt;/code&gt; works on arrays of primitives. Can/should this be added, or is the current behaviour intended?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(count (js/Uint8Array. [1 2 3]))
;; Execution error (Error) at (&amp;lt;cljs repl&amp;gt;:1).
;; No protocol method ICounted.-count defined for type object: 1,2,3
;=&amp;gt; :repl/exception!

(extend-protocol ICounted
 js/Uint8Array 
 (-count [this] (alength this)))
;=&amp;gt; #object [Function]

(count (js/Uint8Array. [1 2 3]))
;=&amp;gt; 3
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14919/typedarrays-dont-implement-icounted-in-cljs</guid>
<pubDate>Thu, 05 Feb 2026 12:37:54 +0000</pubDate>
</item>
<item>
<title>Commented: Feature request: async/await support in CLJS</title>
<link>https://ask.clojure.org/index.php/12806/feature-request-async-await-support-in-cljs?show=14897#c14897</link>
<description>There is a patch for cljs now: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJS-3470&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJS-3470&lt;/a&gt;</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12806/feature-request-async-await-support-in-cljs?show=14897#c14897</guid>
<pubDate>Tue, 20 Jan 2026 09:24:19 +0000</pubDate>
</item>
<item>
<title>Answered: false positive warning: &quot;cljs.core/+, all arguments must be numbers&quot;</title>
<link>https://ask.clojure.org/index.php/14870/false-positive-warning-cljs-core-all-arguments-must-numbers?show=14871#a14871</link>
<description>&lt;p&gt;The problem is the &lt;code&gt;when&lt;/code&gt;. The inference mechanism isn't strong enough to narrow the return type (number|nil) if the type of the argument is known.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14870/false-positive-warning-cljs-core-all-arguments-must-numbers?show=14871#a14871</guid>
<pubDate>Tue, 06 Jan 2026 20:07:06 +0000</pubDate>
</item>
<item>
<title>Commented: ClojureScript :preloads doesn't work with just cljs.main --repl</title>
<link>https://ask.clojure.org/index.php/14863/clojurescript-preloads-doesnt-work-with-just-cljs-main-repl?show=14869#c14869</link>
<description>I created an issue here &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJS-3469&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJS-3469&lt;/a&gt;. Have you done the Clojure CA? If so please attach the patch to the issue!</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14863/clojurescript-preloads-doesnt-work-with-just-cljs-main-repl?show=14869#c14869</guid>
<pubDate>Sun, 28 Dec 2025 16:48:20 +0000</pubDate>
</item>
<item>
<title>Commented: `(max &quot;x&quot; &quot;y&quot;)` used to return &quot;y&quot;, now it returns &quot;x&quot;</title>
<link>https://ask.clojure.org/index.php/14847/max-x-y-used-to-return-y-now-it-returns-x?show=14854#c14854</link>
<description>ok, thank you!</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14847/max-x-y-used-to-return-y-now-it-returns-x?show=14854#c14854</guid>
<pubDate>Mon, 22 Dec 2025 19:22:04 +0000</pubDate>
</item>
<item>
<title>Answered: `derive [tag] [parent]` accepts non namespaced keyword/symbol as `tag` ?</title>
<link>https://ask.clojure.org/index.php/14759/derive-tag-parent-accepts-non-namespaced-keyword-symbol-tag?show=14844#a14844</link>
<description>&lt;p&gt;Reading between the lines of this &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/clojure/clojure/commit/d49f0d32473d8387696049b8b10b8403d86e05e4&quot;&gt;commit message&lt;/a&gt;, it seems like the intent was to relax the requirements on namespacing for private hierarchies (so, required for global but not for private).&lt;/p&gt;
&lt;p&gt;Thus, I'm going to treat this as documentation issue in Clojure (presumably adding this constraint would break some existing code). Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJ-2934&quot;&gt;https://clojure.atlassian.net/browse/CLJ-2934&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not sure on CLJS.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14759/derive-tag-parent-accepts-non-namespaced-keyword-symbol-tag?show=14844#a14844</guid>
<pubDate>Mon, 15 Dec 2025 20:54:55 +0000</pubDate>
</item>
<item>
<title>Commented: Add requiring-resolve to ClojureScript</title>
<link>https://ask.clojure.org/index.php/13099/add-requiring-resolve-to-clojurescript?show=14826#c14826</link>
<description>Hm well still, couldn't we have a REPL-only version, and/or an async runtime version?</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13099/add-requiring-resolve-to-clojurescript?show=14826#c14826</guid>
<pubDate>Wed, 10 Dec 2025 16:38:46 +0000</pubDate>
</item>
<item>
<title>Commented: How does `parents` work for JavaScript inheritance?</title>
<link>https://ask.clojure.org/index.php/14764/how-does-parents-work-for-javascript-inheritance?show=14786#c14786</link>
<description>Great! Thank you for the answer and for the patch :)</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14764/how-does-parents-work-for-javascript-inheritance?show=14786#c14786</guid>
<pubDate>Wed, 26 Nov 2025 15:48:54 +0000</pubDate>
</item>
<item>
<title>Edited: Possible ClojureScript bug: corner case with regex literal compilation</title>
<link>https://ask.clojure.org/index.php/14717/possible-clojurescript-corner-regex-literal-compilation?show=14717#q14717</link>
<description>&lt;p&gt;I've found what I believe to be a bug in ClojureScript regarding compilation of certain regex literals to JavaScript, a specific example being &lt;code&gt;#&quot;(?i)&quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In some cases, &lt;code&gt;#&quot;(?i)&quot;&lt;/code&gt; will be compiled to the JavaScript syntax &lt;code&gt;//i&lt;/code&gt;, which is in fact &lt;em&gt;not&lt;/em&gt; a JavaScript regex literal, but rather a JavaScript single line comment.  This then comments out all remaining code on the same generated line, resulting in a syntax error when the code is run on a JavaScript runtime.&lt;/p&gt;
&lt;p&gt;This minimal unit test example demonstrates the issue:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;(ns regex-test&lt;/code&gt;&lt;br&gt;
&lt;code&gt;  (:require [cljs.test :refer-macros [deftest testing is]]))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;(deftest failing-test&lt;/code&gt;&lt;br&gt;
&lt;code&gt;  (testing &quot;Minimal reproduction&quot;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;    (is (not (nil? #&quot;(?i)&quot;)))))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;As a side note, it's worth mentioning that &lt;code&gt;(?i)&lt;/code&gt; is not a valid native JavaScript regex in the first place, so I assume ClojureScript is trying to emulate compatibility with JVM regexes (where this is valid), and converting it to the nearest valid JS equivalent - either &lt;code&gt;(?i:)&lt;/code&gt; (e.g. at the REPL), or &lt;code&gt;//i&lt;/code&gt; (in compiled code, but which is syntactically not a JS regex literal at all).&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14717/possible-clojurescript-corner-regex-literal-compilation?show=14717#q14717</guid>
<pubDate>Sun, 21 Sep 2025 04:30:33 +0000</pubDate>
</item>
<item>
<title>Retagged: Bug in Clojurescript string/split with limit?</title>
<link>https://ask.clojure.org/index.php/14514/bug-in-clojurescript-string-split-with-limit?show=14514#q14514</link>
<description>&lt;p&gt;This seems like a bug to me? Using limit in clojure.string/split (in Clojurescript) gives the wrong result on a simple split.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;;; NB Clojurescript
(clojure.string/split &quot;a|b&quot; #&quot;|&quot;)
;=&amp;gt; [&quot;a&quot; &quot;|&quot; &quot;b&quot;]
(clojure.string/split &quot;a|b&quot; #&quot;|&quot; 3)
;=&amp;gt; [&quot;&quot; &quot;&quot; &quot;a|b&quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Results should be the same?&lt;/p&gt;
&lt;p&gt;Corresponding code in Javascript&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&quot;a|b&quot;.split(/|/)
;=&amp;gt; ['a', '|', 'b']
&quot;a|b&quot;.split(/|/, 3)
;=&amp;gt; ['a', '|', 'b']
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14514/bug-in-clojurescript-string-split-with-limit?show=14514#q14514</guid>
<pubDate>Fri, 18 Jul 2025 19:15:22 +0000</pubDate>
</item>
<item>
<title>Commented: Is it possible to get ClojureScript hot reload in a Chrome Extension?</title>
<link>https://ask.clojure.org/index.php/13786/is-possible-get-clojurescript-hot-reload-chrome-extension?show=14591#c14591</link>
<description>Okay, upon reflection I understand that the ClojureScript REPL depends on eval, and this isn’t something that content scripts support (for security reasons) -&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
```js&lt;br /&gt;
const data = document.getElementById(&amp;quot;json-data&amp;quot;);&lt;br /&gt;
// WARNING! Might be evaluating an evil script!&lt;br /&gt;
const parsed = eval(&amp;quot;(&amp;quot; + data + &amp;quot;)&amp;quot;);&lt;br /&gt;
```</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13786/is-possible-get-clojurescript-hot-reload-chrome-extension?show=14591#c14591</guid>
<pubDate>Wed, 25 Jun 2025 10:57:53 +0000</pubDate>
</item>
<item>
<title>Answer selected: Cannot compile namespace including `+` in clojurescript</title>
<link>https://ask.clojure.org/index.php/14551/cannot-compile-namespace-including-in-clojurescript?show=14552#a14552</link>
<description>&lt;p&gt;Similar issue: &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJS-3430&quot;&gt;https://clojure.atlassian.net/browse/CLJS-3430&lt;/a&gt;&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14551/cannot-compile-namespace-including-in-clojurescript?show=14552#a14552</guid>
<pubDate>Wed, 21 May 2025 06:38:21 +0000</pubDate>
</item>
<item>
<title>regular expression with Classes for Unicode scripts, blocks, categories and binary properties</title>
<link>https://ask.clojure.org/index.php/14513/regular-expression-classes-unicode-categories-properties</link>
<description>&lt;p&gt;In Clojure, the following expression works fine:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(re-matches #&quot;\p{Lu}&quot; &quot;Á&quot;) ;; =&amp;gt; &quot;Á&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But in Clojurescript, it returns &lt;code&gt;nil&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It is not that Javascript doesn't support that kind of Unicode classess, but you have to activate them explicitly, whether in Java, they are activated by default.&lt;/p&gt;
&lt;p&gt;E.g. In Javascript, the following code returns true:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/\p{Lu}/u.test(&quot;Á&quot;) // =&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But if I omit the Unicode flag (&lt;code&gt;/u&lt;/code&gt;) I get false:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/\p{Lu}/.test(&quot;Á&quot;) // =&amp;gt; false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I think this is probably because Clojure Script doesn't activates the Unicode flag for us.&lt;/p&gt;
&lt;p&gt;If that the case, I think consistency between Clojurescript and Clojure could benefit a lot if the flag is activated by default.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14513/regular-expression-classes-unicode-categories-properties</guid>
<pubDate>Tue, 22 Apr 2025 15:39:14 +0000</pubDate>
</item>
<item>
<title>Commented: Is cljs.test swallowing exceptions?</title>
<link>https://ask.clojure.org/index.php/14509/is-cljs-test-swallowing-exceptions?show=14511#c14511</link>
<description>Thanks Eugene, great thoughts as usual. I amended my question with additional information based on your ideas.</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14509/is-cljs-test-swallowing-exceptions?show=14511#c14511</guid>
<pubDate>Fri, 18 Apr 2025 16:35:27 +0000</pubDate>
</item>
<item>
<title>Answered: Protocol function with placeholder _ arguments doesn't work as in Clojure</title>
<link>https://ask.clojure.org/index.php/14469/protocol-function-with-placeholder-arguments-doesnt-clojure?show=14470#a14470</link>
<description>&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJS-3431&quot;&gt;https://clojure.atlassian.net/browse/CLJS-3431&lt;/a&gt;&lt;br&gt;
This issue was made in response&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14469/protocol-function-with-placeholder-arguments-doesnt-clojure?show=14470#a14470</guid>
<pubDate>Mon, 17 Mar 2025 18:30:27 +0000</pubDate>
</item>
<item>
<title>Answered: Source maps show the wrong row in ClojureScript</title>
<link>https://ask.clojure.org/index.php/14441/source-maps-show-the-wrong-row-in-clojurescript?show=14451#a14451</link>
<description>&lt;p&gt;What optimization setting are we talking about here, &lt;code&gt;:none&lt;/code&gt;?&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14441/source-maps-show-the-wrong-row-in-clojurescript?show=14451#a14451</guid>
<pubDate>Thu, 06 Mar 2025 21:56:33 +0000</pubDate>
</item>
<item>
<title>Answer selected: ClojureScript: Destructuring two keys differing only on dash vs underscore doesn't work</title>
<link>https://ask.clojure.org/index.php/14370/clojurescript-destructuring-differing-underscore-doesnt?show=14383#a14383</link>
<description>&lt;p&gt;I think this is just a bug, not a limitation - thanks for the report tracking here - &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJS-3426&quot;&gt;https://clojure.atlassian.net/browse/CLJS-3426&lt;/a&gt;&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14370/clojurescript-destructuring-differing-underscore-doesnt?show=14383#a14383</guid>
<pubDate>Tue, 11 Feb 2025 14:37:12 +0000</pubDate>
</item>
<item>
<title>Answered: How to get interactive programming back when using shadow-cljs with dynamically rendered html</title>
<link>https://ask.clojure.org/index.php/14250/interactive-programming-using-shadow-dynamically-rendered?show=14267#a14267</link>
<description>&lt;p&gt;Are you talking about stoping autoreload? &lt;a rel=&quot;nofollow&quot; href=&quot;https://shadow-cljs.github.io/docs/UsersGuide.html#_config&quot;&gt;https://shadow-cljs.github.io/docs/UsersGuide.html#_config&lt;/a&gt;&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14250/interactive-programming-using-shadow-dynamically-rendered?show=14267#a14267</guid>
<pubDate>Wed, 20 Nov 2024 20:09:20 +0000</pubDate>
</item>
<item>
<title>Answered: For shadow-cljs, how do you get humane-test-output working for the `:browser-test` build target?</title>
<link>https://ask.clojure.org/index.php/14215/shadow-humane-test-output-working-browser-test-build-target?show=14221#a14221</link>
<description>&lt;p&gt;shadow-cljs currently uses &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/bhauman/cljs-test-display&quot;&gt;cljs-test-display&lt;/a&gt; for &lt;code&gt;:browser-test&lt;/code&gt;. This makes the UI slightly prettier.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cljs-test-display&lt;/code&gt; sets its own &lt;code&gt;:reporter&lt;/code&gt; value when running the tests (see &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/bhauman/cljs-test-display/blob/727a08d298b1ce380de4c8f0145254b95eb957cd/src/cljs_test_display/core.cljs#L383-L384&quot;&gt;code&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;As far as I can tell this then bypasses the overwritten &lt;code&gt;:fail&lt;/code&gt; reporter created by &lt;code&gt;humane-test-output&lt;/code&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/pjstadig/humane-test-output/blob/7c4c868aa9d7424248761941cd736ac0a5f4a75b/src/pjstadig/util.cljc#L68-L74&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The problem is that &lt;code&gt;cljs-test-display&lt;/code&gt; seems to be relying on that custom reporter to create its own UI, so replacing that bit will likely break the UI in some way.&lt;/p&gt;
&lt;p&gt;I'm guessing you'd need to overwrite &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/bhauman/cljs-test-display/blob/727a08d298b1ce380de4c8f0145254b95eb957cd/src/cljs_test_display/core.cljs#L330-L338&quot;&gt;this bit&lt;/a&gt; and hook up &lt;code&gt;humane-test-output&lt;/code&gt; into that. I'm not sure how feasible this is.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14215/shadow-humane-test-output-working-browser-test-build-target?show=14221#a14221</guid>
<pubDate>Sat, 02 Nov 2024 08:48:07 +0000</pubDate>
</item>
<item>
<title>Commented: ClojureScript compiler does not transpile &quot;es8&quot; closure libraries</title>
<link>https://ask.clojure.org/index.php/14063/clojurescript-compiler-does-transpile-closure-libraries?show=14082#c14082</link>
<description>Did you submit a CA? I think after that you should be able to login and attach.</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14063/clojurescript-compiler-does-transpile-closure-libraries?show=14082#c14082</guid>
<pubDate>Thu, 22 Aug 2024 17:46:39 +0000</pubDate>
</item>
<item>
<title>Edited: How to load couple of modules with cljs.loader/load?</title>
<link>https://ask.clojure.org/index.php/13807/how-to-load-couple-of-modules-with-cljs-loader-load?show=13807#q13807</link>
<description>&lt;p&gt;I didn't expect any problems with the task initially. Just loaded them one by one with cljs.loader/load until....&lt;br&gt;
Until I got 'beforeLoadModuleCode called with module module2 while module module1 is loading'&lt;br&gt;
First I realized that load was asynchronous and module loading wasn't actually finished when load exited. Digging goog.module.ModuleManager left me with an impression that its load() function is capable to queue new module loading until the previous one finishes loading.&lt;/p&gt;
&lt;p&gt;My impression that the problem is that cljs.loader/load calls beforeLoadModuleCode() at the wrong moment of time. It seems that it must be called at the very begining of evaluating the module code, not before it even starts to download it as it is now, i.e., setLoaded is the last instruction of the module and beforeLoadModuleCode must be the first.&lt;br&gt;
However, I'm still unsure I'm getting the whole idea behind ModuleManager correctly so I need a confirmation that I'm correct.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13807/how-to-load-couple-of-modules-with-cljs-loader-load?show=13807#q13807</guid>
<pubDate>Sat, 06 Apr 2024 08:36:43 +0000</pubDate>
</item>
<item>
<title>Comment edited: Clojurescript unable to use arrow constructors in body of defrecord, while Clojure does</title>
<link>https://ask.clojure.org/index.php/13785/clojurescript-unable-arrow-constructors-defrecord-clojure?show=13791#c13791</link>
<description>Interestingly, in Clojure, deftype refuses to compile, while defrecord allows this.</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13785/clojurescript-unable-arrow-constructors-defrecord-clojure?show=13791#c13791</guid>
<pubDate>Mon, 18 Mar 2024 08:40:31 +0000</pubDate>
</item>
<item>
<title>Answer selected: Var metadata leaves functions in non-evaluated state</title>
<link>https://ask.clojure.org/index.php/13775/var-metadata-leaves-functions-in-non-evaluated-state?show=13776#a13776</link>
<description>&lt;p&gt;It has nothing to do with macroexpansion. Metadata on vars in CLJS is not evaluated, that's it. Why exactly - I don't know. There's some discussion at &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJS-2390&quot;&gt;https://clojure.atlassian.net/browse/CLJS-2390&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Your example with vectors works because the function form is mentioned not in the metadata position of the &lt;code&gt;def&lt;/code&gt; macro, so its evaluation happens in a regular way.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13775/var-metadata-leaves-functions-in-non-evaluated-state?show=13776#a13776</guid>
<pubDate>Sat, 02 Mar 2024 22:13:32 +0000</pubDate>
</item>
<item>
<title>Answered: cljs.core/test does not work as the docstring describes</title>
<link>https://ask.clojure.org/index.php/13756/cljs-core-test-does-not-work-as-the-docstring-describes?show=13762#a13762</link>
<description>&lt;p&gt;Thanks for the report - &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJS-3411&quot;&gt;https://clojure.atlassian.net/browse/CLJS-3411&lt;/a&gt;&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13756/cljs-core-test-does-not-work-as-the-docstring-describes?show=13762#a13762</guid>
<pubDate>Tue, 27 Feb 2024 17:32:14 +0000</pubDate>
</item>
<item>
<title>Answered: How  does cljs require npm package</title>
<link>https://ask.clojure.org/index.php/10706/how-does-cljs-require-npm-package?show=13754#a13754</link>
<description>&lt;p&gt;It seems cljs already fix this issue.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  :dependencies [[org.clojure/clojure &quot;1.11.1&quot;]
                 [org.clojure/clojurescript &quot;1.11.132&quot;]]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With those version, the following code works as expected:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(ns cljs-demo.core
  (:require [pdfjs]
            [puppeteer]))

(enable-console-print!)

(defn -main [&amp;amp; args]
  (println &quot;Hello, World!&quot; puppeteer)
  (println &quot;Hello, World!&quot; pdfjs)
  )

(set! *main-cli-fn* -main)
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10706/how-does-cljs-require-npm-package?show=13754#a13754</guid>
<pubDate>Sun, 25 Feb 2024 06:58:30 +0000</pubDate>
</item>
<item>
<title>Commented: Support for js/BigInt</title>
<link>https://ask.clojure.org/index.php/13676/support-for-js-bigint?show=13706#c13706</link>
<description>Thanks for answering. &lt;br /&gt;
Take this as an &amp;quot;upvote&amp;quot; for prioritizing more thought on BigInts in ClojureScript then :D</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13676/support-for-js-bigint?show=13706#c13706</guid>
<pubDate>Mon, 12 Feb 2024 14:34:40 +0000</pubDate>
</item>
<item>
<title>Commented: Incorrect deprecation warnings</title>
<link>https://ask.clojure.org/index.php/13645/incorrect-deprecation-warnings?show=13647#c13647</link>
<description>Which might be related to this issue &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJS-2000&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJS-2000&lt;/a&gt;</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13645/incorrect-deprecation-warnings?show=13647#c13647</guid>
<pubDate>Sun, 28 Jan 2024 17:23:06 +0000</pubDate>
</item>
<item>
<title>Answered: ClojureScript and the deprecation of Google Closure Library</title>
<link>https://ask.clojure.org/index.php/13612/clojurescript-and-the-deprecation-google-closure-library?show=13640#a13640</link>
<description>&lt;p&gt;See David Nolen's update here in the latest ClojureScript release: &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojurescript.org/news/2024-01-24-release&quot;&gt;https://clojurescript.org/news/2024-01-24-release&lt;/a&gt;&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13612/clojurescript-and-the-deprecation-google-closure-library?show=13640#a13640</guid>
<pubDate>Thu, 25 Jan 2024 01:50:34 +0000</pubDate>
</item>
<item>
<title>Answer selected: Function with meta equality fails</title>
<link>https://ask.clojure.org/index.php/9966/function-with-meta-equality-fails?show=9968#a9968</link>
<description>&lt;p&gt;The page also says &quot;Two objects that differ only in metadata are equal&quot; and &quot;an object with different metadata is a different object.&quot;  &lt;/p&gt;
&lt;p&gt;Thus, equality &lt;em&gt;is&lt;/em&gt; &quot;impacted&quot; where it relies on object identity.  As is the case for compiled functions:  &lt;code&gt;(not= (fn []) (fn []))&lt;/code&gt; regardless of metadata.&lt;/p&gt;
&lt;p&gt;A clarification might be in order.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/9966/function-with-meta-equality-fails?show=9968#a9968</guid>
<pubDate>Tue, 26 Dec 2023 18:38:46 +0000</pubDate>
</item>
<item>
<title>Closed: MUI Select - add deselect function</title>
<link>https://ask.clojure.org/index.php/13551/mui-select-add-deselect-function?show=13551#q13551</link>
<description>&lt;pre&gt;&lt;code&gt;(defn- menu-item
  [value-fn label-fn state lang index item]
(let [value (value-fn item)
    label (label-fn item lang)]
^{:key index}
[:&amp;gt; m/MenuItem {:value   value
                :data-cy (-&amp;gt; (str value) (str/lower-case) (str/replace &quot; &quot; &quot;-&quot;) (str &quot;-menu-item&quot;))}
 [:&amp;gt; m/Checkbox {:checked (= (value-fn state) value)}]
 [:&amp;gt; m/Typography {} label]
 ]))
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;(defn select
  [{:keys [data state-fn disabled? label value-fn label-fn data-cy variant]}]
  (let [rf-lang   (rf/subscribe [:current-language])
        label-fn1 (or label-fn (fn [item lang] (value-fn item)))]
    (fn [{:keys [data state-fn disabled? label value-fn data-cy variant]}]
      (let [lang  @rf-lang
            state (state-fn)
            props (cond-&amp;gt;
                    {:select      true
                     :full-width  true
                     :SelectProps {:MenuProps    {:getContentAnchorEl nil}
                                   :render-value (fn [items]
                                               (if label-fn
                                                 (label-fn state lang)
                                                 (map identity items)))
                               :data-cy      data-cy}
                 :value       (or (value-fn state) &quot;&quot;)
                 :on-change   (fn [e]
                                (let [selected (.. e -target -value)]
                                  (state-fn (first (filter #(= selected (value-fn %)) data)))))
                 :label       (i18n/translation label lang)
                 :disabled    disabled?}
                variant (assoc :variant variant))]
    [:&amp;gt; m/TextField props (map-indexed (partial menu-item value-fn label-fn1 state lang) data)]))))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I have the following piece of code to create a dropdown list with items that have a checkbox next to them. The problem is that the checkbox cannot be removed. When the user clicks on an already selected checkbox, nothing happens. And in this case, it should become deselect.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13551/mui-select-add-deselect-function?show=13551#q13551</guid>
<pubDate>Wed, 13 Dec 2023 13:54:09 +0000</pubDate>
</item>
<item>
<title>Answered: Why doesn't `type` in CLJS check `:type` on its arguments meta like CLJ does?</title>
<link>https://ask.clojure.org/index.php/13095/why-doesnt-type-cljs-check-type-its-arguments-meta-like-does?show=13550#a13550</link>
<description>&lt;p&gt;Hi Colin,&lt;/p&gt;
&lt;p&gt;Was wondering the same thing and I found some discussions in the slack channel:&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://clojurians.slack.com/archives/C07UQ678E/p1593166172290700&quot;&gt;https://clojurians.slack.com/archives/C07UQ678E/p1593166172290700&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://clojurians.slack.com/archives/C07UQ678E/p1610190759145100&quot;&gt;https://clojurians.slack.com/archives/C07UQ678E/p1610190759145100&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;TLDR:&lt;br&gt;
Yeah, bummer. No one wants inconsistencies.&lt;br&gt;
At this point in time, too scary to change :)&lt;br&gt;
+ Not enough incentive (use-cases) identified.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13095/why-doesnt-type-cljs-check-type-its-arguments-meta-like-does?show=13550#a13550</guid>
<pubDate>Wed, 13 Dec 2023 10:00:57 +0000</pubDate>
</item>
<item>
<title>Answered: ClojureScript doesn't respect the provided :line and :column meta for functions</title>
<link>https://ask.clojure.org/index.php/13085/clojurescript-doesnt-respect-provided-line-column-functions?show=13472#a13472</link>
<description>&lt;p&gt;Please create an issue + patch in JIRA, thanks :)&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13085/clojurescript-doesnt-respect-provided-line-column-functions?show=13472#a13472</guid>
<pubDate>Thu, 16 Nov 2023 16:57:26 +0000</pubDate>
</item>
<item>
<title>Commented: sorted-map with heterogeneous keys crashes on lookup</title>
<link>https://ask.clojure.org/index.php/13396/sorted-map-with-heterogeneous-keys-crashes-on-lookup?show=13409#c13409</link>
<description>&amp;gt; It’s a huge challenge trying to build a consistent, excellent language that lives in a vast ecosystem with a history of its own and different philosophies.&lt;br /&gt;
&lt;br /&gt;
Couldn’t agree more, it’s often challenging even keeping consistency between two systems that one fully owns &amp;nbsp;The fact that the Clojure has managed to make a consistent language on top of two (or more) ecosystems with such a long legacy is a testament to the deep thinking that has gone into it, and I appreciate it</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13396/sorted-map-with-heterogeneous-keys-crashes-on-lookup?show=13409#c13409</guid>
<pubDate>Wed, 25 Oct 2023 23:05:39 +0000</pubDate>
</item>
<item>
<title>Commented: clojure.pprint/pprint prints superfluous spaces before newlines</title>
<link>https://ask.clojure.org/index.php/13378/clojure-pprint-pprint-prints-superfluous-spaces-newlines?show=13385#c13385</link>
<description>I stand corrected :)</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13378/clojure-pprint-pprint-prints-superfluous-spaces-newlines?show=13385#c13385</guid>
<pubDate>Sat, 21 Oct 2023 09:25:06 +0000</pubDate>
</item>
<item>
<title>Commented: Can't add #inst values to var metadata. Error: Not supported: class java.time.Instant</title>
<link>https://ask.clojure.org/index.php/13362/cant-inst-values-metadata-error-supported-class-java-instant?show=13365#c13365</link>
<description>I think putting #inst in source code is a mistake &lt;a href=&quot;https://widdindustries.com/blog/what-is-inst.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://widdindustries.com/blog/what-is-inst.html&lt;/a&gt;</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13362/cant-inst-values-metadata-error-supported-class-java-instant?show=13365#c13365</guid>
<pubDate>Sun, 08 Oct 2023 18:48:33 +0000</pubDate>
</item>
<item>
<title>Commented: &quot;not a relative path&quot; bug</title>
<link>https://ask.clojure.org/index.php/8743/not-a-relative-path-bug?show=13338#c13338</link>
<description>A colleague just ran into this again. &amp;nbsp;It prompted me to recheck if the above repro still works. It does:&lt;br /&gt;
&lt;br /&gt;
[Figwheel] Failed to compile build tests in 28.338 seconds.&lt;br /&gt;
[Figwheel:WARNING] Compile Exception: /src/github.com/solita/mnt-teet/app/frontend/target/public/cljs-out/tests/l/events/eventtype.js is not a relative path &amp;nbsp;&lt;br /&gt;
Execution error (IllegalArgumentException) at cljs.closure/write-javascript (closure.clj:2031).&lt;br /&gt;
/src/github.com/solita/mnt-teet/app/frontend/target/public/cljs-out/tests/l/events/eventtype.js is not a relative path&lt;br /&gt;
&lt;br /&gt;
Full report at:&lt;br /&gt;
/tmp/clojure-594316621683314904.edn</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/8743/not-a-relative-path-bug?show=13338#c13338</guid>
<pubDate>Thu, 28 Sep 2023 09:41:20 +0000</pubDate>
</item>
<item>
<title>Answer selected: Clojurescript issue in 1.11.121 and master when compiling</title>
<link>https://ask.clojure.org/index.php/13279/clojurescript-issue-in-1-11-121-and-master-when-compiling?show=13280#a13280</link>
<description>&lt;p&gt;Thanks reverted - to be honest no longer sure of the rationale of the original change - tracking again in the original issue - &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJS-3383&quot;&gt;https://clojure.atlassian.net/browse/CLJS-3383&lt;/a&gt;&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13279/clojurescript-issue-in-1-11-121-and-master-when-compiling?show=13280#a13280</guid>
<pubDate>Wed, 13 Sep 2023 16:45:33 +0000</pubDate>
</item>
<item>
<title>Answer selected: How to transform js/Error to a clojurescript map?</title>
<link>https://ask.clojure.org/index.php/13176/how-to-transform-js-error-to-a-clojurescript-map?show=13177#a13177</link>
<description>&lt;p&gt;&lt;code&gt;js-&amp;gt;clj&lt;/code&gt; only transforms regular JavaScript Object and Arrays. Error is a sub-type, so it isn't converted. You can implement the &lt;code&gt;cljs.core/IEncodeClojure&lt;/code&gt; protocol in theory, so that it does get converted. It is not done by default since the stack information in &lt;code&gt;js/Error&lt;/code&gt; is not standardized in any way, so each JS runtime more or less does it own thing. Handling all of them is kinda tedius and would bloat the code too much for very rare use cases.&lt;/p&gt;
&lt;p&gt;There is a &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/clojure/clojurescript/blob/8a4f8d1025151ae1281185ed9d101c389661554d/src/main/cljs/cljs/core.cljs#L11825-L11860&quot;&gt;cljs.core/Throwable-&amp;gt;map&lt;/a&gt; fn coming, but I believe that is unreleased as of yet. You could just copy it until then.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13176/how-to-transform-js-error-to-a-clojurescript-map?show=13177#a13177</guid>
<pubDate>Tue, 22 Aug 2023 17:35:34 +0000</pubDate>
</item>
<item>
<title>Retagged: Setting `warning-handlers` in a config file fails with &quot;Wrong number of args (3) passed to: clojure.lang.Symbol&quot;</title>
<link>https://ask.clojure.org/index.php/13175/setting-warning-handlers-config-number-passed-clojure-symbol?show=13175#q13175</link>
<description>&lt;p&gt;This config:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{:main             warning-handlers
 :warning-handlers [cljs.analyzer/default-warning-handler]}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Which set &lt;code&gt;:warning-handlers&lt;/code&gt; to the default as listed in &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojurescript.org/reference/compiler-options#warning-handlers&quot;&gt;https://clojurescript.org/reference/compiler-options#warning-handlers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Compiled using: &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;clj -M --main cljs.main --compile-opts compile.edn --compile
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Fails with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;   {:type clojure.lang.ExceptionInfo,
    :message
    &quot;Wrong number of args (3) passed to: clojure.lang.Symbol at line 1 /Users/danie/matter/source/cljs-config/src/warning_handlers.cljs&quot;,
    :data
    {:file
     #object[java.io.File 0x27f8f1cc &quot;/Users/danie/matter/source/cljs-config/src/warning_handlers.cljs&quot;],
     :line 1,
     :column 1,
     :tag :cljs/analysis-error},
    :at [cljs.analyzer$error invokeStatic &quot;analyzer.cljc&quot; 780]}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Full repro here: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/danieroux/cljs-config&quot;&gt;https://github.com/danieroux/cljs-config&lt;/a&gt;&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13175/setting-warning-handlers-config-number-passed-clojure-symbol?show=13175#q13175</guid>
<pubDate>Tue, 22 Aug 2023 00:20:56 +0000</pubDate>
</item>
<item>
<title>Answered: cljs range fn does odd things with nil, is this a bug?</title>
<link>https://ask.clojure.org/index.php/13081/cljs-range-fn-does-odd-things-with-nil-is-this-a-bug?show=13087#a13087</link>
<description>&lt;p&gt;The behavior of non-numeric args passed to &lt;code&gt;range&lt;/code&gt; is undefined.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13081/cljs-range-fn-does-odd-things-with-nil-is-this-a-bug?show=13087#a13087</guid>
<pubDate>Sun, 16 Jul 2023 18:00:58 +0000</pubDate>
</item>
<item>
<title>Retagged: Should documentation be added to explain the default browser console representation of CLJS collections and seqs?</title>
<link>https://ask.clojure.org/index.php/12932/documentation-explain-default-representation-collections?show=12932#q12932</link>
<description>&lt;p&gt;Using &lt;code&gt;console.log&lt;/code&gt; on a CLJS collection or sequence returns an internal representation of the object that looks like &lt;code&gt;`&lt;/code&gt;Object { meta: null, cnt: 3, shift: 5, root: {…}, tail: (3) […], __hash: null, &quot;cljs$lang$protocol_mask$partition0$&quot;: 167666463, &quot;cljs$lang$protocol_mask$partition1$&quot;: 139268 }&lt;code&gt;`&lt;/code&gt;. This seems like an easy pitfall for a beginner since &lt;code&gt;console.log&lt;/code&gt; is a standard debugging tool for JS developers. Referring users to something like &lt;code&gt;binaryage/devtools&lt;/code&gt; or any of the built-in functions for converting CLJS types to JS types might be helpful.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12932/documentation-explain-default-representation-collections?show=12932#q12932</guid>
<pubDate>Tue, 30 May 2023 17:08:22 +0000</pubDate>
</item>
<item>
<title>Retagged: `specify!` and `set!` silently fail if object is not extensible</title>
<link>https://ask.clojure.org/index.php/12898/specify-and-set-silently-fail-if-object-is-not-extensible?show=12898#q12898</link>
<description>&lt;p&gt;&lt;code&gt;specify!&lt;/code&gt; implicitly relies on the provided object to be extensible so that protocol implementations can be provided. Here is a quick demonstration from a REPL.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cljs.user&amp;gt; (def obj #js {:current nil})
[#js {:current nil}]
cljs.user&amp;gt; (js/Object.preventExtensions obj)
{&quot;current&quot; nil}
cljs.user&amp;gt; (specify! obj
              IDeref
              (-deref [^js this] (.-current this)))
{&quot;current&quot; nil}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that &lt;code&gt;reify&lt;/code&gt; does not document this requirement either. This leads to confusing situations where non-extensible objects returned by JavaScript libraries (e.g. React) are unable to be extended and the user has little clue why.&lt;/p&gt;
&lt;p&gt;Similarly, &lt;code&gt;set!&lt;/code&gt; silently fails when objects are not extensible.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cljs.user&amp;gt; (set! (.-foo obj) &quot;bar&quot;)
&quot;bar&quot;
cljs.user&amp;gt; obj
{&quot;current&quot; nil}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;goog.object/set&lt;/code&gt; is able to detect this and throw an error.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cljs.user&amp;gt; (goog.object/set obj &quot;foo&quot; &quot;bar&quot;)    
Execution error (TypeError) at (&amp;lt;cljs repl&amp;gt;:1).
Cannot add property foo, object is not extensible
:repl/exception!
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12898/specify-and-set-silently-fail-if-object-is-not-extensible?show=12898#q12898</guid>
<pubDate>Tue, 30 May 2023 14:42:23 +0000</pubDate>
</item>
<item>
<title>Answered: cljs compile warning: JavaScript file found on classpath for library `...`, but does not contain a corresponding...</title>
<link>https://ask.clojure.org/index.php/12946/compile-warning-javascript-classpath-library-corresponding?show=12953#a12953</link>
<description>&lt;p&gt;This was not an issue with cljs at all - sorry for the noise.&lt;/p&gt;
&lt;p&gt;For future generations of searchers, the change was in the &lt;code&gt;google-closure-library&lt;/code&gt;, &lt;code&gt;&quot;goog.net.cookies&quot;&lt;/code&gt; was deprecated and removed in favor of &lt;code&gt;&quot;goog.net.Cookies&quot;&lt;/code&gt; and a more enterprise-y factory singleton getter initialization. &lt;/p&gt;
&lt;p&gt;Link: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/google/closure-library/releases/tag/v20220301&quot;&gt;https://github.com/google/closure-library/releases/tag/v20220301&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When cljs does upgrade to newer closure library versions uses of this will break.&lt;/p&gt;
&lt;p&gt;Thanks to everyone for your help tracking this down.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12946/compile-warning-javascript-classpath-library-corresponding?show=12953#a12953</guid>
<pubDate>Thu, 18 May 2023 15:29:27 +0000</pubDate>
</item>
<item>
<title>Commented: Custom printing method for records</title>
<link>https://ask.clojure.org/index.php/12921/custom-printing-method-for-records?show=12924#c12924</link>
<description>That's kinda sad. In my case it's more of a repl and DSL thing, so I guess I'll be writing a printing protocol and extending it to everything. Thanks.</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12921/custom-printing-method-for-records?show=12924#c12924</guid>
<pubDate>Mon, 08 May 2023 09:31:23 +0000</pubDate>
</item>
<item>
<title>Comment edited: Why does this work in CLJS but doesn't in JVM Clojure?</title>
<link>https://ask.clojure.org/index.php/12903/why-does-this-work-in-cljs-but-doesnt-in-jvm-clojure?show=12908#c12908</link>
<description>&amp;gt; Undefined behavior is prescribed to be unpredictable by language&lt;br /&gt;
&lt;br /&gt;
If you read more discussions with the core team, undocumented is usually treated as undefined. That's now how they view things, at least under my interpretation and given my memory.&lt;br /&gt;
E.g. see this good comment by Sean Corfield: &lt;a href=&quot;https://groups.google.com/g/clojure/c/yMHHHuK44pE/m/LeBhqdq6BQAJ&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://groups.google.com/g/clojure/c/yMHHHuK44pE/m/LeBhqdq6BQAJ&lt;/a&gt;&lt;br /&gt;
Or this by Alex Miller that explicitly talks about UB in the context of a lack of documentation for something particular: &lt;a href=&quot;https://groups.google.com/g/clojure/c/VwA2Un2NMxc/m/tptww3xZBwAJ&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://groups.google.com/g/clojure/c/VwA2Un2NMxc/m/tptww3xZBwAJ&lt;/a&gt;&lt;br /&gt;
Or this: &lt;a href=&quot;https://groups.google.com/g/clojure/c/HtK4pqsr--8/m/KbWvq8CFCQAJ&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://groups.google.com/g/clojure/c/HtK4pqsr--8/m/KbWvq8CFCQAJ&lt;/a&gt;&lt;br /&gt;
And many, many others, all around the media.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; unspecified behavior&lt;br /&gt;
&lt;br /&gt;
Clojure leaves a *lot* unspecified. The language itself doesn't have any specification or a standard, only docs (that don't document every single thing that exists), some spec definitions, and the reference implementation. It has been explicitly stated before that specifying everything is not a goal.&lt;br /&gt;
&lt;br /&gt;
As an example calling `keys` or `vals` or iterating over the same map object will return items in the same order. But a different map object that is equal to the first one might return them in different order. And a map in CLJS will almost definitely return values in an order different from the one in CLJ.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; If that's a bug in the compiler it may be within protocol implementation which can be a serious problem.&lt;br /&gt;
&lt;br /&gt;
That would be a different discussion, if that were the case.</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12903/why-does-this-work-in-cljs-but-doesnt-in-jvm-clojure?show=12908#c12908</guid>
<pubDate>Fri, 28 Apr 2023 08:15:22 +0000</pubDate>
</item>
<item>
<title>Answered: Questions about cljs.core/prefers* (maybe bugs?)</title>
<link>https://ask.clojure.org/index.php/12867/questions-about-cljs-core-prefers-maybe-bugs?show=12868#a12868</link>
<description>&lt;p&gt;I suspect that code probably derives from the Clojure code in MultiFn, which had that bug with the hierarchy (and was fixed in 1.11 - see &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJ-2234&quot;&gt;https://clojure.atlassian.net/browse/CLJ-2234&lt;/a&gt; ).&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12867/questions-about-cljs-core-prefers-maybe-bugs?show=12868#a12868</guid>
<pubDate>Mon, 17 Apr 2023 21:29:21 +0000</pubDate>
</item>
<item>
<title>Answered: Firefox addon written in cljs can't pass Mozilla's review</title>
<link>https://ask.clojure.org/index.php/12821/firefox-addon-written-in-cljs-cant-pass-mozillas-review?show=12822#a12822</link>
<description>&lt;p&gt;A couple of years ago, I had a similar question (only in my case it was for better caching) and at least back then the answer was &quot;no&quot;. But you might try to build with the optimizations set to &lt;code&gt;simple&lt;/code&gt;. It also does some renaming but I &lt;em&gt;think&lt;/em&gt; it's stable. If that doesn't work, &lt;code&gt;whitespace&lt;/code&gt; should.&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12821/firefox-addon-written-in-cljs-cant-pass-mozillas-review?show=12822#a12822</guid>
<pubDate>Thu, 30 Mar 2023 14:24:02 +0000</pubDate>
</item>
<item>
<title>Answered: Docstring of with-redefs should mention usage of ^:dynamic in production</title>
<link>https://ask.clojure.org/index.php/12766/docstring-redefs-should-mention-usage-dynamic-production?show=12767#a12767</link>
<description>&lt;p&gt;Just a side-note:&lt;/p&gt;
&lt;p&gt;In JVM Clojure you &lt;code&gt;^:redef&lt;/code&gt; metadata is sufficient. See also the docs on direct linking:&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.org/reference/compilation#directlinking&quot;&gt;https://clojure.org/reference/compilation#directlinking&lt;/a&gt;&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12766/docstring-redefs-should-mention-usage-dynamic-production?show=12767#a12767</guid>
<pubDate>Tue, 14 Mar 2023 13:42:57 +0000</pubDate>
</item>
<item>
<title>Answered: Feature request: option to demunge keys in `js-&gt;clj` function</title>
<link>https://ask.clojure.org/index.php/12642/feature-request-option-to-demunge-keys-in-js-clj-function?show=12643#a12643</link>
<description>&lt;p&gt;Wouldn't it be more flexible if keywordize-keys received a function instead of a boolean, so you can do whatever you want, including demunging?&lt;/p&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12642/feature-request-option-to-demunge-keys-in-js-clj-function?show=12643#a12643</guid>
<pubDate>Sun, 05 Feb 2023 11:08:35 +0000</pubDate>
</item>
</channel>
</rss>