UNPKG

e2ed

Version:

E2E testing framework over Playwright

32 lines (31 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getStackTrace = void 0; /** * For using arguments.callee we need to eval this function in non-strict mode. */ // eslint-disable-next-line no-restricted-syntax const getStackTraceBody = function getStackTrace() { const savedLimit = Error.stackTraceLimit; Error.stackTraceLimit = 5000; // eslint-disable-next-line @typescript-eslint/unbound-method const originalPrepareStackTrace = Error.prepareStackTrace; // eslint-disable-next-line no-restricted-syntax Error.prepareStackTrace = function prepareStackTrace(_, stack) { return stack; }; const error = new Error(); // eslint-disable-next-line no-caller, no-restricted-properties Error.captureStackTrace(error, arguments.callee); const { stack } = error; Error.prepareStackTrace = originalPrepareStackTrace; Error.stackTraceLimit = savedLimit; return stack; }; // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func const getStackTraceGetter = new Function(`return (${getStackTraceBody.toString()})`); /** * Get V8 inner stack trace. * {@link https://www.npmjs.com/package/callsite} */ exports.getStackTrace = getStackTraceGetter();