You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a helper is invoked we pass in the arguments, those arguments
are frozen (via Object.freeze) so that helpers can't mutate them
(and cause issues in the rendering engine itself). When a helper
doesn't have hash arguments, we use a shared `EMPTY_HASH` empty
object to avoid allocating a bunch of empty objects for no reason
(we do roughly the same thing when no positional params are
passed). Since these objects are shared they are being frozen
over and over again (throughout the lifetime of the running
application). Turns out that there is what we think is almost
certainly a bug in Chrome, where re-freezing the same object many
times starts taking significantly more time upon each freeze
attempt.
This change introduces a guard to ensure we do not re-freeze repeatedly.
Thanks to @krisselden for identifying the root cause.
0 commit comments