'use strict'; var $ = require('../internals/export'); var globalThis = require('../internals/global'); var microtask = require('../internals/microtask'); var aCallable = require('../internals/a-callable'); var validateArgumentsLength = require('../internals/validate-arguments-length'); var fails = require('../internals/fails'); var DESCRIPTORS = require('../internals/descriptors'); // Bun ~ 1.0.30 bug // https://github.com/oven-sh/bun/issues/9249 var WRONG_ARITY = fails(function () { // getOwnPropertyDescriptor for prevent experimental warning in Node 11 // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; }); // `queueMicrotask` method // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask $({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, { queueMicrotask: function queueMicrotask(fn) { validateArgumentsLength(arguments.length, 1); microtask(aCallable(fn)); } });