Project

Profile

Help

Bug #4756

closed

Failure XTTE3090 with on-no-match=deep-skip

Added by Michael Kay over 3 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Low
Assignee:
Category:
-
Sprint/Milestone:
-
Start date:
2020-09-27
Due date:
% Done:

100%

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

Description

XSLT3 test case mode-1437a is failing XTTE3090 (no context node when evaluating template).

The reason is that the code implementing deep-skip (which for a document node actually invokes templates on the children) is setting the current iterator to a Join iterator without wrapping it in a Tracker. This means that the value of "current" is undefined, triggering the error condition.

Actions #1

Updated by Michael Kay over 3 years ago

  • Status changed from New to Resolved
  • Applies to JS Branch 2.0, Trunk added
  • Fix Committed on JS Branch 2.0 added

Fixed. Changed the deep-skip code (mode.js#128) to

                    case K.DOCUMENT_NODE:
                    case K.DOCUMENT_FRAGMENT_NODE:
                        const c2 = context.newContext(false);
                        c2.focus = Iter.Tracker(Axis.child(item));
                        mode.applyTemplates(c2, out);
                        break;
Actions #2

Updated by Community Admin over 3 years ago

  • Applies to JS Branch 2 added
  • Applies to JS Branch deleted (2.0, Trunk)
Actions #3

Updated by Community Admin over 3 years ago

  • Fix Committed on JS Branch 2 added
  • Fix Committed on JS Branch deleted (2.0)
Actions #4

Updated by Debbie Lockett about 3 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100
  • Fixed in JS Release set to Saxon-JS 2.1

Bug fix applied in the Saxon-JS 2.1 maintenance release.

Please register to edit this issue

Also available in: Atom PDF Tracking page