insert-module-globals icon indicating copy to clipboard operation
insert-module-globals copied to clipboard

Got `nextTick is not a function` when using 7.1.0

Open PikachuEXE opened this issue 7 years ago • 2 comments

Original error message is l is not a function pointing to the following minified code:

f.setImmediate="function"===typeof r?r:function(a){var b=D++,c=2>arguments.length?!1:m.call(arguments,1);n[b]=!0;l(function(){n[b]&&(c?a.apply(null,c):a.call(null),f.clearImmediate(b))});return b}

After generating a not minified file, I found the following function:

exports.setImmediate = typeof setImmediate === "function" ? setImmediate : function(fn) {
  var id = nextImmediateId++;
  var args = arguments.length < 2 ? false : slice.call(arguments, 1);

  immediateIds[id] = true;

  nextTick(function onNextTick() {
    if (immediateIds[id]) {
      // fn.call() is faster so we optimize for the common use-case
      // @see http://jsperf.com/call-apply-segu
      if (args) {
        fn.apply(null, args);
      } else {
        fn.call(null);
      }
      // Prevent ids from leaking
      exports.clearImmediate(id);
    }
  });

  return id;
};

PikachuEXE avatar May 17 '18 04:05 PikachuEXE

Hmm, this works for me with 7.1.0:

setImmediate(function () {
  console.log('test')
})

Could you share an example snippet that reproduces the problem?

goto-bus-stop avatar May 18 '18 08:05 goto-bus-stop

Actually I cannot reproduce it with the same script file in local website I will try to compile a file without minifying it and the get the stack trace

PikachuEXE avatar May 18 '18 09:05 PikachuEXE