[ https://issues.apache.org/jira/browse/MYFACES-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17885984#comment-17885984 ]
Melloware commented on MYFACES-4683: ------------------------------------ [~werpu] i agree with the above i would expect them to be in the correct order > Scripts executed in reverse order during ajax event > --------------------------------------------------- > > Key: MYFACES-4683 > URL: https://issues.apache.org/jira/browse/MYFACES-4683 > Project: MyFaces Core > Issue Type: Bug > Components: General > Affects Versions: 4.1.0-RC2 > Environment: Windows, Chrome > Reporter: Jamie Goodfellow > Assignee: Werner Punz > Priority: Major > > When myfaces handles an ajax request, the script tags of the rendered xhtml > fragments are executed from last to first which is the opposite of what would > happen during a regular page load. I encountered this problem because one of > my components references another component in it's constructor and the > referenced component didn't exist yet during an ajax call because of reverse > execution. I found the problem code: > .sort((node1, node2) => node1.compareDocumentPosition(node2) - 3) // > preceding 2, following == 4) > The compareDocumentPosition method compares the node2 position relative to > node1's position. If node2 is preceding node1 then the sort return value > should be 1 but in this case it will be -1 as 2 (return of > compareDocumentPosition) minus 3 is -1. The correct code should be: > .sort((node1, node2) => node2.compareDocumentPosition(node1) - 3) // > preceding 2, following == 4) > Here is a jsfiddle - [JSFiddle - Code > Playground|https://jsfiddle.net/jc03vLt5/] > -- This message was sent by Atlassian Jira (v8.20.10#820010)