'use strict'; 
 | 
/* eslint-disable no-unused-vars -- required for functions `.length` */ 
 | 
var $ = require('../internals/export'); 
 | 
var globalThis = require('../internals/global-this'); 
 | 
var apply = require('../internals/function-apply'); 
 | 
var wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause'); 
 | 
  
 | 
var WEB_ASSEMBLY = 'WebAssembly'; 
 | 
var WebAssembly = globalThis[WEB_ASSEMBLY]; 
 | 
  
 | 
// eslint-disable-next-line es/no-error-cause -- feature detection 
 | 
var FORCED = new Error('e', { cause: 7 }).cause !== 7; 
 | 
  
 | 
var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) { 
 | 
  var O = {}; 
 | 
  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED); 
 | 
  $({ global: true, constructor: true, arity: 1, forced: FORCED }, O); 
 | 
}; 
 | 
  
 | 
var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) { 
 | 
  if (WebAssembly && WebAssembly[ERROR_NAME]) { 
 | 
    var O = {}; 
 | 
    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED); 
 | 
    $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O); 
 | 
  } 
 | 
}; 
 | 
  
 | 
// https://tc39.es/ecma262/#sec-nativeerror 
 | 
exportGlobalErrorCauseWrapper('Error', function (init) { 
 | 
  return function Error(message) { return apply(init, this, arguments); }; 
 | 
}); 
 | 
exportGlobalErrorCauseWrapper('EvalError', function (init) { 
 | 
  return function EvalError(message) { return apply(init, this, arguments); }; 
 | 
}); 
 | 
exportGlobalErrorCauseWrapper('RangeError', function (init) { 
 | 
  return function RangeError(message) { return apply(init, this, arguments); }; 
 | 
}); 
 | 
exportGlobalErrorCauseWrapper('ReferenceError', function (init) { 
 | 
  return function ReferenceError(message) { return apply(init, this, arguments); }; 
 | 
}); 
 | 
exportGlobalErrorCauseWrapper('SyntaxError', function (init) { 
 | 
  return function SyntaxError(message) { return apply(init, this, arguments); }; 
 | 
}); 
 | 
exportGlobalErrorCauseWrapper('TypeError', function (init) { 
 | 
  return function TypeError(message) { return apply(init, this, arguments); }; 
 | 
}); 
 | 
exportGlobalErrorCauseWrapper('URIError', function (init) { 
 | 
  return function URIError(message) { return apply(init, this, arguments); }; 
 | 
}); 
 | 
exportWebAssemblyErrorCauseWrapper('CompileError', function (init) { 
 | 
  return function CompileError(message) { return apply(init, this, arguments); }; 
 | 
}); 
 | 
exportWebAssemblyErrorCauseWrapper('LinkError', function (init) { 
 | 
  return function LinkError(message) { return apply(init, this, arguments); }; 
 | 
}); 
 | 
exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) { 
 | 
  return function RuntimeError(message) { return apply(init, this, arguments); }; 
 | 
}); 
 |