Project

Profile

Help

Bug #3221

closed

p.genPos pattern not implemented in Saxon-JS

Added by John Lumley over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Sprint/Milestone:
-
Start date:
2017-05-13
Due date:
% Done:

100%

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

Description

For the match pattern:

P/C[position() != 1]

Saxon-EE allocates a GeneralPositionPattern and generates the SEF instructions:

  <p.withUpper role="match" axis="parent" upFirst="true">
     <p.genPos type="C">
      <vc op="ne" comp="CAVC">
       <fn name="position"/>
       <int val="1"/>
      </vc>
     </p.genPos>
     <p.nodeTest test="P" jsTest="..."/>
    </p.withUpper>

Unfortunately Saxon-JS currently doesn't support the p.genPos pattern instruction.

(When the pattern doesn't involve an upper component, e.g. C[position() != 1] optimisation avoids p.genPos and uses p.genNode with either tail() or remove() calls)

Actions #1

Updated by Debbie Lockett over 7 years ago

  • Status changed from New to Resolved
  • Assignee set to John Lumley

An implementation has been added. (Though is could perhaps be improved; code says "a bit rough-and-ready at present and probably very expensive".)

Actions #2

Updated by Debbie Lockett over 7 years ago

  • Applies to JS Branch 1.0 added
  • Fix Committed on JS Branch 1.0 added
Actions #3

Updated by Debbie Lockett over 7 years ago

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

Bug fix applied in Saxon-JS 1.0.1 maintenance release.

Please register to edit this issue

Also available in: Atom PDF Tracking page