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

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

This affects all versions of the new codebase, very likely a general problem 
with chromes querySelectAll itself!

I am aware of it and will fix it within the next few days!

 

 


was (Author: werpu):
I will take over, it would be helpful to have an example to start with so that 
I do not have to write my own :).

This affects all versions, very likely a general problem with chromes 
querySelectAll itself!

 

 

> "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
>
> 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