| 'use strict'; | 
| var $ = require('../internals/export'); | 
| var getBuiltIn = require('../internals/get-built-in'); | 
| var isObject = require('../internals/is-object'); | 
| var classof = require('../internals/classof'); | 
| var fails = require('../internals/fails'); | 
|   | 
| var ERROR = 'Error'; | 
| var DOM_EXCEPTION = 'DOMException'; | 
| // eslint-disable-next-line es/no-object-setprototypeof, no-proto -- safe | 
| var PROTOTYPE_SETTING_AVAILABLE = Object.setPrototypeOf || ({}).__proto__; | 
|   | 
| var DOMException = getBuiltIn(DOM_EXCEPTION); | 
| var $Error = Error; | 
| var $isError = $Error.isError; | 
|   | 
| var FORCED = !$isError || !PROTOTYPE_SETTING_AVAILABLE || fails(function () { | 
|   // Bun, isNativeError-based implementations, some buggy structuredClone-based implementations, etc. | 
|   // https://github.com/oven-sh/bun/issues/15821 | 
|   return (DOMException && !$isError(new DOMException(DOM_EXCEPTION))) || | 
|     // structuredClone-based implementations | 
|     // eslint-disable-next-line es/no-error-cause -- detection | 
|     !$isError(new $Error(ERROR, { cause: function () { /* empty */ } })) || | 
|     // instanceof-based and FF Error#stack-based implementations | 
|     $isError(getBuiltIn('Object', 'create')($Error.prototype)); | 
| }); | 
|   | 
| // `Error.isError` method | 
| // https://github.com/tc39/proposal-is-error | 
| $({ target: 'Error', stat: true, sham: true, forced: FORCED }, { | 
|   isError: function isError(arg) { | 
|     if (!isObject(arg)) return false; | 
|     var tag = classof(arg); | 
|     return tag === ERROR || tag === DOM_EXCEPTION; | 
|   } | 
| }); |