ianschenck opened a new issue, #54: URL: https://github.com/apache/arrow-js/issues/54
### Describe the bug, including details regarding any error messages, version, and platform. Some platforms don't allow eval or `new Function`. CloudFlare workers is one such platform. `createIsValidFunction` templates out a validation function using switch, since it's very fast. However, this doesn't work on CloudFlare workers (or generally workerd). The function in question: `builder/valid.ts` ``` export function createIsValidFunction<T extends DataType = any, TNull = any>(nullValues?: ReadonlyArray<TNull>) { if (!nullValues || nullValues.length <= 0) { // @ts-ignore return function isValid(value: any) { return true; }; } let fnBody = ''; const noNaNs = nullValues.filter((x) => x === x); if (noNaNs.length > 0) { fnBody = ` switch (x) {${noNaNs.map((x) => ` case ${valueToCase(x)}:`).join('')} return false; }`; } // NaN doesn't equal anything including itself, so it doesn't work as a // switch case. Instead we must explicitly check for NaN before the switch. if (nullValues.length !== noNaNs.length) { fnBody = `if (x !== x) return false;\n${fnBody}`; } return new Function(`x`, `${fnBody}\nreturn true;`) as (value: T['TValue'] | TNull) => boolean; } ``` This is the only place in apache-arrow that uses new Function. I have been able to patch it locally and moved forward doing that. I'd like to know if there's any interest in having the library function out-of-the-box on CloudFlare. If so, we would be willing to refine our patch and submit for review. Thank you. ### Component(s) JavaScript -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org