[ 
https://issues.apache.org/jira/browse/MYFACES-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17885998#comment-17885998
 ] 

Werner Punz commented on MYFACES-4683:
--------------------------------------

The fix looks correct to me. You can merge it in, I will put this into my 
upstream codebase tomorrow.

(I just wonder why I have the -3, I have to investigate that, there was a 
reason why I did it, but this needs documentation in the codebase, but thats 
unrelated to the fix)


> 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
>             Fix For: 5.0.0, 4.0.3, 4.1.0-RC3
>
>
> 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)

Reply via email to