• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright Joyent, Inc. and other Node contributors.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a
4// copy of this software and associated documentation files (the
5// "Software"), to deal in the Software without restriction, including
6// without limitation the rights to use, copy, modify, merge, publish,
7// distribute, sublicense, and/or sell copies of the Software, and to permit
8// persons to whom the Software is furnished to do so, subject to the
9// following conditions:
10//
11// The above copyright notice and this permission notice shall be included
12// in all copies or substantial portions of the Software.
13//
14// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20// USE OR OTHER DEALINGS IN THE SOFTWARE.
21
22'use strict';
23
24require('../common');
25const assert = require('assert');
26
27const EventEmitter = require('events').EventEmitter;
28
29const e = new EventEmitter();
30let fl;  // foo listeners
31
32fl = e.listeners('foo');
33assert(Array.isArray(fl));
34assert.strictEqual(fl.length, 0);
35assert(!(e._events instanceof Object));
36assert.deepStrictEqual(Object.keys(e._events), []);
37
38e.on('foo', assert.fail);
39fl = e.listeners('foo');
40assert.strictEqual(e._events.foo, assert.fail);
41assert(Array.isArray(fl));
42assert.strictEqual(fl.length, 1);
43assert.strictEqual(fl[0], assert.fail);
44
45e.listeners('bar');
46
47e.on('foo', assert.ok);
48fl = e.listeners('foo');
49
50assert(Array.isArray(e._events.foo));
51assert.strictEqual(e._events.foo.length, 2);
52assert.strictEqual(e._events.foo[0], assert.fail);
53assert.strictEqual(e._events.foo[1], assert.ok);
54
55assert(Array.isArray(fl));
56assert.strictEqual(fl.length, 2);
57assert.strictEqual(fl[0], assert.fail);
58assert.strictEqual(fl[1], assert.ok);
59
60console.log('ok');
61