Project

Profile

Help

Bug #6134

closed

Partial function application call to function in ixsl namespace fails

Added by Debbie Lockett 10 months ago. Updated 8 months ago.

Status:
Closed
Priority:
Normal
Category:
IXSL extensions
Sprint/Milestone:
-
Start date:
2023-07-19
Due date:
% Done:

100%

Estimated time:
Applies to JS Branch:
2, Trunk
Fix Committed on JS Branch:
2, Trunk
Fixed in JS Release:
SEF Generated with:
Platforms:
Company:
-
Contact person:
-
Additional contact persons:
-

Description

I've stumbled across a bug where some calls to functions in the ixsl namespace fail. It seems that the problem occurs when the function call gets exported as an "fnRef" expression, rather than an "ifCall" expression. For instance, when the ixsl function is called as a partial function application. SaxonJS actually attempts to call the function with the same local name in the fn namespace, resulting in unexpected results, or failure if such a function does not exist.

e.g. array:for-each(['A string', 'B string'], ixsl:contains(?, 'string')) actually ends up calling fn:contains instead of ixsl:contains.

e.g. array:for-each(['A string', 'B string'], ixsl:get(?, 'string')) fails with "The get() construct is not implemented in SaxonJS".

Actions #1

Updated by Debbie Lockett 10 months ago

  • Fix Committed on JS Branch 2, Trunk added

Unit test nodejs/iss6134 and code fix committed on main and saxonjs2 branches. The fix was to add the ixsl namespace to the list of namespaces where implementations are found in ExtraFn, as used in the CoreFunction class in XdmFunction.js.

Actions #2

Updated by Debbie Lockett 10 months ago

  • Status changed from New to Resolved
Actions #3

Updated by Debbie Lockett 8 months ago

  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100
  • Fixed in JS Release set to SaxonJS 2.6

Bug fix applied in the SaxonJS 2.6 maintenance release.

Please register to edit this issue

Also available in: Atom PDF Tracking page