For events registered via once() the listener() API returns different result if longjohn is used or not.
Reproducer:
var assert = require('assert');
var EventEmitter = require('events').EventEmitter;
function onListener() {}
function onceListener() {}
function test() {
var eventEmitter = new EventEmitter();
eventEmitter.on('TheEvent', onListener);
eventEmitter.once('TheEvent', onceListener);
var listeners = eventEmitter.listeners('TheEvent');
assert.equal(listeners[0], onListener);
assert.equal(listeners[1].listener, onceListener);
// the following assert passes for longlohn case
//assert.equal(listeners[1], onceListener);
}
test();
require('longjohn');
test();
Looks like the longlohn implementation unwraps one level too much in listen() for once listeners.