'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; 
 | 
  } 
 | 
}); 
 |