'use strict'; const common = require('../common'); const assert = require('assert'); const EventEmitter = require('events').EventEmitter; const e = new EventEmitter(); let fl; // foo listeners fl = e.listeners('foo'); assert(Array.isArray(fl)); assert.strictEqual(fl.length, 0); assert(!(e._events instanceof Object)); assert.deepStrictEqual(Object.keys(e._events), []); e.on('foo', common.fail); fl = e.listeners('foo'); assert.strictEqual(e._events.foo, common.fail); assert(Array.isArray(fl)); assert.strictEqual(fl.length, 1); assert.strictEqual(fl[0], common.fail); e.listeners('bar'); e.on('foo', assert.ok); fl = e.listeners('foo'); assert(Array.isArray(e._events.foo)); assert.strictEqual(e._events.foo.length, 2); assert.strictEqual(e._events.foo[0], common.fail); assert.strictEqual(e._events.foo[1], assert.ok); assert(Array.isArray(fl)); assert.strictEqual(fl.length, 2); assert.strictEqual(fl[0], common.fail); assert.strictEqual(fl[1], assert.ok); console.log('ok');