Compiled using: java -cp /home/mary/SVG/tools/Saxon111/saxonee/saxon-ee-14.1.jar net.sf.saxon.Transform -t -xsl:mapmerge.xsl -export:mapmerge.sef.json} -target:JS -nogo -relocate:on -ns:\#\#html5 -config:/home/mary/SVG/saxon/config/config.xml Running with SaxonJ: java -cp /home/mary/SVG/tools/Saxon114/saxonee/saxon-ee-11.4.jar net.sf.saxon.Transform -traceout:#err -config:/home/mary/SVG/saxon/config/config.xml -it:test -xsl:mapmerge.xsl Trace: submap [1]: map{1:"a"} submap [1]: map{2:"a"} submap [1]: map{2:"b"} submap [1]: map{1:"c"} submap [1]: map{3:"d"} merged [1]: map{1: ("a", "c") ,2: ("a", "b") ,3:"d"} Results:
true true true true
[mary@box3 bug]$ Running with SaxonJS: Trace: fn:trace: submap: HashTrie map{xs:integer('1'): xs:string('a')} SaxonJS2.rt.js:840 fn:trace: submap: HashTrie map{xs:integer('2'): xs:string('a')} SaxonJS2.rt.js:840 fn:trace: submap: HashTrie map{xs:integer('2'): xs:string('b')} SaxonJS2.rt.js:840 fn:trace: submap: HashTrie map{xs:integer('1'): xs:string('c')} SaxonJS2.rt.js:840 fn:trace: submap: HashTrie map{xs:integer('3'): xs:string('d')} SaxonJS2.rt.js:840 fn:trace: merged: HashTrie map{xs:integer('1'): (xs:string('a'),xs:string('b'),xs:string('c')), xs:integer('2'): (xs:string('a'),xs:string('b'),xs:string('c')), xs:integer('3'): xs:string('d')} Results: true false false true