Summary:
There is a range of types that -- when returned from formulas -- used to cause
bad errors (that looked like a data engine crash and were reported as "Memory
Error") because they looked like primitive types but were not marshallable. For
example, IntEnum.
We now encode such values as the primitive type they are based on.
Test Plan:
- Added a unittest that encode_object() now handles problematic values.
- Added a browser test case that problematic values are no longer causing errors.
Reviewers: jarek
Reviewed By: jarek
Differential Revision: https://phab.getgrist.com/D4336