diff options
Diffstat (limited to 'packages/bun-polyfills/src/utils/errors.ts')
-rw-r--r-- | packages/bun-polyfills/src/utils/errors.ts | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/packages/bun-polyfills/src/utils/errors.ts b/packages/bun-polyfills/src/utils/errors.ts index cc82efdf0..35b967436 100644 --- a/packages/bun-polyfills/src/utils/errors.ts +++ b/packages/bun-polyfills/src/utils/errors.ts @@ -1,6 +1,15 @@ type PosixErrNo = MapKeysType<ReturnType<typeof getPosixSystemErrorMap>>;
type Win32ErrNo = MapKeysType<ReturnType<typeof getWin32SystemErrorMap>>;
+export function getCallSites(sliceOff = 1) {
+ const originalPST = Error.prepareStackTrace;
+ Error.prepareStackTrace = (error, stack) => stack;
+ const { stack } = new Error();
+ if (stack?.constructor.name !== 'Array') throw new Error('Failed to acquire structured JS stack trace');
+ Error.prepareStackTrace = originalPST;
+ return (stack as unknown as NodeJS.CallSite[]).slice(sliceOff);
+}
+
export function getPosixSystemErrorMap() {
return new Map([
[ -7, [ 'E2BIG', 'argument list too long' ] ],
|