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

Werner Punz edited comment on MYFACES-4754 at 6/11/26 6:50 PM:
---------------------------------------------------------------

Ok not a bit lenght problem chromium probably simply has a hard call stack size 
when you call a function like push on huge arrays. And slice indeed solves it:  
!image-2026-06-11-19-42-58-778.png|width=804,height=373!


was (Author: werpu):
Ok not a bit lenght problem chromium probably simply has a hard call stack size 
limit and seems to push loops over arrays into a call stack the limit is 
somewhere between 124.000 and 125.000 elements. And slice indeed solves it:  
!image-2026-06-11-19-42-58-778.png|width=804,height=373!

> "Maximum call stack size exceeded" when AJAX updating large DOM in Chromium 
> based browsers
> ------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-4754
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4754
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 4.1.3
>            Reporter: Ben Chester
>            Assignee: Werner Punz
>            Priority: Major
>         Attachments: image-2026-06-11-19-42-58-778.png
>
>
> We chased this down to the spread operator used in the bottom of 
> `querySelectAllDeep` in DomQuery.ts. Changing those spread operators that 
> just copy to `.slice()` appears to rectify the issue.
> This is caused by an issue that Chromium (or more specifically V8) is aware 
> of but don't care to fix, the earliest report I could find is from 2022: 
> [https://issues.chromium.org/issues/41467953] .
> The issue is reproducible with the following xhtml, which creates 100,000 
> empty divs (it breaks somewhere between 60k and 70k). I believe the only 
> thing that matters is the total number of elements in the DOM.
> {noformat}
> <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml";
>       xmlns:ui="jakarta.faces.facelets"
>       xmlns:f="jakarta.faces.core"
>       xmlns:h="jakarta.faces.html"
> ><h:body>
>     <h:form>
>         <ui:repeat begin="0" end="100000">
>             <div/>
>         </ui:repeat>
>         <h:outputText value="Test Text"/>
>         <br/>
>         <h:commandLink
>                 id="testButton"
>                 value="Test"
>         >
>             <f:ajax
>                     execute="@this"
>                     render="testButton"
>             />
>         </h:commandLink>
>     </h:form>
> </h:body></html>{noformat}
> I'm happy to prepare a PR for this if that'd help



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to