web.queue-microtask.js 763 B

1234567891011121314151617181920
  1. 'use strict';
  2. var $ = require('../internals/export');
  3. var global = require('../internals/global');
  4. var microtask = require('../internals/microtask');
  5. var aCallable = require('../internals/a-callable');
  6. var validateArgumentsLength = require('../internals/validate-arguments-length');
  7. var IS_NODE = require('../internals/engine-is-node');
  8. var process = global.process;
  9. // `queueMicrotask` method
  10. // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask
  11. $({ global: true, enumerable: true, dontCallGetSet: true }, {
  12. queueMicrotask: function queueMicrotask(fn) {
  13. validateArgumentsLength(arguments.length, 1);
  14. aCallable(fn);
  15. var domain = IS_NODE && process.domain;
  16. microtask(domain ? domain.bind(fn) : fn);
  17. }
  18. });