gristlabs_grist-core/app/client
Cyprien P 8a26550312 (core) Fix issue when using Other Values with many rows
Summary:
Fix an error that used to happen on Chrome: `RangeError: Maximum call stack size
exceeded`. Happened when clicking the `Other Values` checkbox when
filtering a large table. Turns out culprit was a function call that
was using a spread operator to pass a large number of argument to a
function.

Spread operator for passing multiple argument must not be used with
too many arguments. Otherwise it could hit the engine's argument
length limit. That limit varies across browser (webkit's
javascriptcore engine has argument limit of 65536).

Some interesting description of the limit can be found here:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions

In order to get the fix fast, implementing a proper test for it is left for a follow-up commit.

Test Plan:
 - Manually tested on Chrome/FF

Reviewers: paulfitz

Reviewed By: paulfitz

Subscribers: paulfitz

Differential Revision: https://phab.getgrist.com/D2779
2021-04-20 15:15:18 +02:00
..
aclui (core) support subscriptions to a doc with row-dependent column read permissions 2021-04-16 14:42:34 -04:00
components (core) add new filter bar 2021-04-15 20:29:00 +02:00
lib (core) Use unicode-aware comparisons for user-visible strings. 2021-03-15 09:54:10 -04:00
models (core) Fix issue when using Other Values with many rows 2021-04-20 15:15:18 +02:00
ui (core) Fix issue when using Other Values with many rows 2021-04-20 15:15:18 +02:00
ui2018 (core) Remove the aclUI=1 flag and add 'BETA' tag to the Access Rules page name. 2021-03-25 18:10:00 -04:00
widgets (core) Update UI for formula and column label/id in the right-side panel. 2021-03-17 01:35:56 -04:00
app.css (core) Make mobile the default mode. 2021-02-25 11:31:43 -05:00
app.js (core) Cleanup removing some old unused files, fixing logo.css, and removing #grist-app. 2020-10-09 17:04:09 -04:00
declarations.d.ts (core) Update UI for formula and column label/id in the right-side panel. 2021-03-17 01:35:56 -04:00
exposeModulesForTests.js (core) Some cleanup: remove old unused modules. 2020-11-20 11:23:20 -05:00
logo.css (core) Cleanup removing some old unused files, fixing logo.css, and removing #grist-app. 2020-10-09 17:04:09 -04:00
tsconfig.json freshen app/client/ui2018/cssVars.ts 2020-06-23 16:16:38 -04:00