UNPKG

1.09 kBJavaScriptView Raw
1'use strict';
2var $ = require('../internals/export');
3var globalThis = require('../internals/global');
4var microtask = require('../internals/microtask');
5var aCallable = require('../internals/a-callable');
6var validateArgumentsLength = require('../internals/validate-arguments-length');
7var fails = require('../internals/fails');
8var DESCRIPTORS = require('../internals/descriptors');
9
10// Bun ~ 1.0.30 bug
11// https://github.com/oven-sh/bun/issues/9249
12var WRONG_ARITY = fails(function () {
13 // getOwnPropertyDescriptor for prevent experimental warning in Node 11
14 // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
15 return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1;
16});
17
18// `queueMicrotask` method
19// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask
20$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, {
21 queueMicrotask: function queueMicrotask(fn) {
22 validateArgumentsLength(arguments.length, 1);
23 microtask(aCallable(fn));
24 }
25});