{"version":3,"file":"unsafeEvalSupported.mjs","sources":["../../../src/utils/browser/unsafeEvalSupported.ts"],"sourcesContent":["// Cache the result to prevent running this over and over\nlet unsafeEval: boolean;\n\n/**\n * Not all platforms allow to generate function code (e.g., `new Function`).\n * this provides the platform-level detection.\n * @private\n * @returns {boolean} `true` if `new Function` is supported.\n */\nexport function unsafeEvalSupported(): boolean\n{\n    if (typeof unsafeEval === 'boolean')\n    {\n        return unsafeEval;\n    }\n\n    try\n    {\n        /* eslint-disable no-new-func */\n        const func = new Function('param1', 'param2', 'param3', 'return param1[param2] === param3;');\n        /* eslint-enable no-new-func */\n\n        unsafeEval = func({ a: 'b' }, 'a', 'b') === true;\n    }\n    catch (_e)\n    {\n        unsafeEval = false;\n    }\n\n    return unsafeEval;\n}\n"],"names":[],"mappings":";AACA,IAAI,UAAA;AAQG,SAAS,mBAAA,GAChB;AACI,EAAA,IAAI,OAAO,eAAe,SAAA,EAC1B;AACI,IAAA,OAAO,UAAA;AAAA,EACX;AAEA,EAAA,IACA;AAEI,IAAA,MAAM,OAAO,IAAI,QAAA,CAAS,QAAA,EAAU,QAAA,EAAU,UAAU,mCAAmC,CAAA;AAG3F,IAAA,UAAA,GAAa,KAAK,EAAE,CAAA,EAAG,KAAI,EAAG,GAAA,EAAK,GAAG,CAAA,KAAM,IAAA;AAAA,EAChD,SACO,EAAA,EACP;AACI,IAAA,UAAA,GAAa,KAAA;AAAA,EACjB;AAEA,EAAA,OAAO,UAAA;AACX;;;;"}