UNPKG

error-polyfill

Version:
50 lines (46 loc) 1.51 kB
var cache = require("u3").cache, prepareStackTrace = require("./prepareStackTrace"); module.exports = function () { Error.captureStackTrace = function (throwable, terminator) { Object.defineProperties(throwable, { stack: { configurable: true, get: cache(function () { return (Error.prepareStackTrace || prepareStackTrace)(throwable, []); }) }, cachedStack: { configurable: true, writable: true, enumerable: false, value: true } }); }; Error.getStackTrace = function (throwable) { if (throwable.cachedStack) return throwable.stack; var stack = (Error.prepareStackTrace || prepareStackTrace)(throwable, []); try { Object.defineProperties(throwable, { stack: { configurable: true, writable: true, enumerable: false, value: stack }, cachedStack: { configurable: true, writable: true, enumerable: false, value: true } }); } catch (nonConfigurableError) { } return stack; }; return { prepareStackTrace: prepareStackTrace }; };