gristlabs_grist-core/app/client/models
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
..
entities (core) add new filter bar 2021-04-15 20:29:00 +02:00
AppModel.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
BaseRowModel.js (core) Update ACL resources/rules when tables/columns get renamed 2021-01-04 22:03:01 -05:00
BillingModel.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
ClientColumnGetters.ts (core) hide long sequences of unchanged rows in diffs 2020-11-19 18:19:54 -05:00
ColumnACIndexes.ts (core) Use unicode-aware comparisons for user-visible strings. 2021-03-15 09:54:10 -04:00
ColumnFilter.ts (core) Fix issue when using Other Values with many rows 2021-04-20 15:15:18 +02:00
ColumnFilterMenuModel.ts (core) Adds limitShown option to ColumnFilterMenu, defaults to 500 2021-03-29 09:30:13 +02:00
ConnectState.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
DataRowModel.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
DataTableModel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
DataTableModelWithDiff.ts (core) Change how formula columns can be converted to data. 2021-03-05 12:42:57 -05:00
DocData.ts (core) Checks that an ACL formula can be parsed, and prevent saving unparsable ACL rules. 2020-12-15 09:43:37 -05:00
DocModel.ts (core) make AccessRules and FullCopies effective 2021-03-25 15:05:26 -04:00
DocPageModel.ts (core) granular access control in the presence of schema changes 2021-03-01 13:49:31 -05:00
errors.ts (core) granular access control in the presence of schema changes 2021-03-01 13:49:31 -05:00
gristConfigCache.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
gristUrlState.ts (core) Implement much of the general AccessRules UI. 2020-12-07 14:48:41 -05:00
HomeModel.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
MetaRowModel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
MetaTableModel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
modelUtil.js (core) move client code to core 2020-10-02 13:24:21 -04:00
NotifyModel.ts (core) Disallow the combination of Public Edit access and granular ACLs. 2021-03-26 09:59:41 -04:00
QuerySet.ts (core) Change how formula columns can be converted to data. 2021-03-05 12:42:57 -05:00
rowset.ts (core) Change how formula columns can be converted to data. 2021-03-05 12:42:57 -05:00
rowuid.js (core) move client code to core 2020-10-02 13:24:21 -04:00
SearchModel.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
SectionFilter.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
TableData.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
TableModel.js (core) Change how formula columns can be converted to data. 2021-03-05 12:42:57 -05:00
TreeModel.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
UserManagerModel.ts (core) Disallow the combination of Public Edit access and granular ACLs. 2021-03-26 09:59:41 -04:00
UserPrefs.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
WorkspaceInfo.ts (core) move client code to core 2020-10-02 13:24:21 -04:00