{"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,CAAA;AAQG,SAAS,mBAChB,GAAA;AACI,EAAI,IAAA,OAAO,eAAe,SAC1B,EAAA;AACI,IAAO,OAAA,UAAA,CAAA;AAAA,GACX;AAEA,EACA,IAAA;AAEI,IAAA,MAAM,OAAO,IAAI,QAAA,CAAS,QAAU,EAAA,QAAA,EAAU,UAAU,mCAAmC,CAAA,CAAA;AAG3F,IAAA,UAAA,GAAa,KAAK,EAAE,CAAA,EAAG,KAAO,EAAA,GAAA,EAAK,GAAG,CAAM,KAAA,IAAA,CAAA;AAAA,WAEzC,CACP,EAAA;AACI,IAAa,UAAA,GAAA,KAAA,CAAA;AAAA,GACjB;AAEA,EAAO,OAAA,UAAA,CAAA;AACX;;;;"}