1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* eslint-disable no-unused-vars -- required for functions `.length` */
- var $ = require('../internals/export');
- var global = require('../internals/global');
- var apply = require('../internals/function-apply');
- var wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');
- var WEB_ASSEMBLY = 'WebAssembly';
- var WebAssembly = global[WEB_ASSEMBLY];
- var FORCED = 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://github.com/tc39/proposal-error-cause
- 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); };
- });
|