SaxonJS 2.4 released

May 12, 2022

Submitted by Norm Tovey-Walsh.

Saxonica is pleased to announce the release of SaxonJS 2.4 for both Node.js and the browser.

SaxonJS is a high-performance XSLT 3.0 processor. It conforms with the latest W3C specifications (notably XSLT 3.0 and XPath 3.1), together with extensions designed to meet the needs of modern web applications.

The SaxonJS 2.4 release is a maintenance release containing about 30 bug fixes. If you’re using Saxon-EE 11 to produce SEFs for use with SaxonJS 2, please use version 11.3 or later, as a number of bugs in compiling to SEF were fixed in the 11.3 maintenance release.

Notable bug fixes in this SaxonJS release:

* 4755 Pattern x/(a | b) is rejected
* 5036 key() doesn't work on ixsl:page() after ixsl:replace-content?
* 5039 Chaining two XSLTs in the browser doesn’t work
* 5042 xslt3 fails to type check return values from templates
* 5066 Element.localName is not implemented in saxon-js 2.3
* 5074 "XML Parsing Error" when loading SEF file with Saxon-JS 2.3
* 5079 resolve-uri doesn't take static-base-uri of included module
  into account, even with relocate:off Saxon EE compiled/exported XSLT
* 5081 The omit-xml-declaration serialization property was not always
* 5162 Failure when using collations in SaxonJS.XPath.evaluate
* 5190 Incorrect handling of shadowed variable/parameter names in some
* 5193 Problems with the arrow operator and fold-left
* 5230 Difficulty using xsl:xpath-default-namespace in conjunction
  with the key attribute of xsl:map-entry
* 5338 Problem with accumulator access from global variables
* 5387 Adaptive serialization only escapes the first quotation mark in
  a string
* 5390 document() doesn't remove duplicates
* 5414 Saxon-JS 2.3 doesn't reject xsl:map-entry key="()"
* 5430 Use of deliverResultDocument in SaxonJS.transform options
  causes error "Unsupported result-document destination undefined"
* 5458 Replacing an HTML document's root element leaves
  duplicated/empty head/body elements
* 5462 Add "-relocate" command line option for XX compiler (xslt3
* 5464 unparsed-text() with an empty file throws a TypeError
* 5471 Results object from asynchronous SaxonJS.transform does not
  contain stylesheetInternal

For a more detailed summary of bug fixes, see the release notes: https://www.saxonica.com/saxon-js/release-notes.xml

News items may be commercial in nature and are published as received.