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