Bug #6346
openNPE with replace() on SaxonJS2.6 when exported under 4.0-support conditions
0%
Description
When exporting a stylesheet (either 3.0 or 4.0) for SaxonJS 2.6, using SaxonEE 12.4 running under --allowSyntaxExtensions:on
,
a three-argument call on replace()
(that is with the fourth $flags
argument to default to the empty string), at runtime a null pointer expection is thrown when attempting to retrieve the flags:
const flags = args[3] ? args[3].next().toString() : "";
The next()
returns a null.
Without allowSyntaxExtensions
or with the fourth argument supplied, the function behaves as expected.
Sample stylesheet, compiled SEF and web page attached
Files
Updated by Debbie Lockett 2 months ago
Basically, SaxonJS 2 does not support 4.0 syntax, so exporting for -target:JS
from 12.4 with --allowSyntaxExtensions:on
is not supported.
As you have found, although the stylesheet may compile, it will not necessarily run. I think this is a Saxon 12 bug, rather than a SaxonJS bug. We should add something in the documentation to clarify this (i.e. you can't use 4.0 syntax and --allowSyntaxExtensions:on
when exporting for SaxonJS 2). Also it would be better if this was clearer at compile time - i.e. the compile should fail, or at least produce a warning.
Please register to edit this issue
Also available in: Atom PDF Tracking page