Closed viesti closed 9 months ago
Hickory uses aget for example in
(defn node-type [type] (aget goog.dom.NodeType type))
which, which current ClojurScript, breaks under advanced compilation, since property names are munged.
Under advanced compilation:
(println "hickory goog.dom.NodeType" goog.dom.NodeType) => hickory goog.dom.NodeType #js {:Fi 1, :zi 2, :Ki 3, :Ai 4, :Hi 5, :Gi 6, :Ji 7, :Bi 8, :Ci 9, :Ei 10, :Di 11, :Ii 12}
when not using advanced compilation:
(println "hickory goog.dom.NodeType" goog.dom.NodeType) => hickory goog.dom.NodeType #js {:ELEMENT 1, :ATTRIBUTE 2, :TEXT 3, :CDATA_SECTION 4, :ENTITY_REFERENCE 5, :ENTITY 6, :PROCESSING_INSTRUCTION 7, :COMMENT 8, :DOCUMENT 9, :DOCUMENT_TYPE 10, :DOCUMENT_FRAGMENT 11, :NOTATION 12}
Should probably use just .- property access instead of aget. aget probably has worked with older ClojureScript, but doesn't work any longer.
.-
aget
Or actually, goog.object/get, as suggested in docs:
(require 'goog.object) (def obj #js {:foo #js {:bar 2}}) (goog.object/get obj "foo") ;;=> #js {:bar 2}
Fixed by https://github.com/clj-commons/hickory/commits/master/
Hickory uses aget for example in
which, which current ClojurScript, breaks under advanced compilation, since property names are munged.
Under advanced compilation:
when not using advanced compilation:
Should probably use just
.-
property access instead ofaget
.aget
probably has worked with older ClojureScript, but doesn't work any longer.