Project

Profile

Help

Bug #1869

closed

Infinite recursion (stack overflow) converting value to Javascript object

Added by Michael Kay over 10 years ago. Updated over 10 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Sprint/Milestone:
-
Start date:
2013-08-26
Due date:
% Done:

0%

Estimated time:
Platforms:

Description

When a node in a temporary tree is passed to an external function (in this case ixsl:set-property) the routine IXSLFunction.convertToJavascript() is called to convert it to a Javascript object. This appears to cause infinite recursion.

I haven't worked out exactly what is happening, but the logic appears to be flawed.

I suspect that the ValueRepresentation being passed is a NodeInfo that is not an HTMLNodeWrapper (specifically, it is a node in a LinkedTree). If this is the case, the logic will fall through to calling convertSequenceToArray, which will get the first item in the sequence (the original NodeInfo), and call convertToJavascript() passing this NodeInfo - which is an infinite recursion.

Actions #1

Updated by Michael Kay over 10 years ago

Note that the code would appear to fail in the same way in other cases where the XDM value doesn't have an obvious representation as a JavaScript object - for example an atomic value of type xs:date.

Actions #2

Updated by Michael Kay over 10 years ago

  • Status changed from In Progress to Resolved
  • Assignee changed from O'Neil Delpratt to Michael Kay

I have committed a patch to github. The effect of the patch is that this case now fails cleanly, saying the node cannot be converted to a Javascript object. I have also added a section to the documentation explaining the conversion rules between XPath and Javascript values.

Please register to edit this issue

Also available in: Atom PDF