11'use strict' ;
2- var common = require ( '../common' ) ;
3- var assert = require ( 'assert' ) ;
4- var events = require ( 'events' ) ;
2+ const common = require ( '../common' ) ;
3+ const assert = require ( 'assert' ) ;
4+ const events = require ( 'events' ) ;
55
66
77function expect ( expected ) {
8- var actual = [ ] ;
8+ const actual = [ ] ;
99 process . on ( 'exit' , function ( ) {
1010 assert . deepStrictEqual ( actual . sort ( ) , expected . sort ( ) ) ;
1111 } ) ;
@@ -17,56 +17,63 @@ function expect(expected) {
1717
1818function listener ( ) { }
1919
20- var e1 = new events . EventEmitter ( ) ;
21- e1 . on ( 'foo' , listener ) ;
22- e1 . on ( 'bar' , listener ) ;
23- e1 . on ( 'baz' , listener ) ;
24- e1 . on ( 'baz' , listener ) ;
25- var fooListeners = e1 . listeners ( 'foo' ) ;
26- var barListeners = e1 . listeners ( 'bar' ) ;
27- var bazListeners = e1 . listeners ( 'baz' ) ;
28- e1 . on ( 'removeListener' , expect ( [ 'bar' , 'baz' , 'baz' ] ) ) ;
29- e1 . removeAllListeners ( 'bar' ) ;
30- e1 . removeAllListeners ( 'baz' ) ;
31- assert . deepStrictEqual ( e1 . listeners ( 'foo' ) , [ listener ] ) ;
32- assert . deepStrictEqual ( e1 . listeners ( 'bar' ) , [ ] ) ;
33- assert . deepStrictEqual ( e1 . listeners ( 'baz' ) , [ ] ) ;
34- // after calling removeAllListeners,
35- // the old listeners array should stay unchanged
36- assert . deepStrictEqual ( fooListeners , [ listener ] ) ;
37- assert . deepStrictEqual ( barListeners , [ listener ] ) ;
38- assert . deepStrictEqual ( bazListeners , [ listener , listener ] ) ;
39- // after calling removeAllListeners,
40- // new listeners arrays are different from the old
41- assert . notEqual ( e1 . listeners ( 'bar' ) , barListeners ) ;
42- assert . notEqual ( e1 . listeners ( 'baz' ) , bazListeners ) ;
20+ {
21+ const ee = new events . EventEmitter ( ) ;
22+ ee . on ( 'foo' , listener ) ;
23+ ee . on ( 'bar' , listener ) ;
24+ ee . on ( 'baz' , listener ) ;
25+ ee . on ( 'baz' , listener ) ;
26+ const fooListeners = ee . listeners ( 'foo' ) ;
27+ const barListeners = ee . listeners ( 'bar' ) ;
28+ const bazListeners = ee . listeners ( 'baz' ) ;
29+ ee . on ( 'removeListener' , expect ( [ 'bar' , 'baz' , 'baz' ] ) ) ;
30+ ee . removeAllListeners ( 'bar' ) ;
31+ ee . removeAllListeners ( 'baz' ) ;
32+ assert . deepStrictEqual ( ee . listeners ( 'foo' ) , [ listener ] ) ;
33+ assert . deepStrictEqual ( ee . listeners ( 'bar' ) , [ ] ) ;
34+ assert . deepStrictEqual ( ee . listeners ( 'baz' ) , [ ] ) ;
35+ // After calling removeAllListeners(),
36+ // the old listeners array should stay unchanged.
37+ assert . deepStrictEqual ( fooListeners , [ listener ] ) ;
38+ assert . deepStrictEqual ( barListeners , [ listener ] ) ;
39+ assert . deepStrictEqual ( bazListeners , [ listener , listener ] ) ;
40+ // After calling removeAllListeners(),
41+ // new listeners arrays is different from the old.
42+ assert . notEqual ( ee . listeners ( 'bar' ) , barListeners ) ;
43+ assert . notEqual ( ee . listeners ( 'baz' ) , bazListeners ) ;
44+ }
4345
44- var e2 = new events . EventEmitter ( ) ;
45- e2 . on ( 'foo' , listener ) ;
46- e2 . on ( 'bar' , listener ) ;
47- // expect LIFO order
48- e2 . on ( 'removeListener' , expect ( [ 'foo' , 'bar' , 'removeListener' ] ) ) ;
49- e2 . on ( 'removeListener' , expect ( [ 'foo' , 'bar' ] ) ) ;
50- e2 . removeAllListeners ( ) ;
51- console . error ( e2 ) ;
52- assert . deepStrictEqual ( [ ] , e2 . listeners ( 'foo' ) ) ;
53- assert . deepStrictEqual ( [ ] , e2 . listeners ( 'bar' ) ) ;
46+ {
47+ const ee = new events . EventEmitter ( ) ;
48+ ee . on ( 'foo' , listener ) ;
49+ ee . on ( 'bar' , listener ) ;
50+ // Expect LIFO order
51+ ee . on ( 'removeListener' , expect ( [ 'foo' , 'bar' , 'removeListener' ] ) ) ;
52+ ee . on ( 'removeListener' , expect ( [ 'foo' , 'bar' ] ) ) ;
53+ ee . removeAllListeners ( ) ;
54+ assert . deepStrictEqual ( [ ] , ee . listeners ( 'foo' ) ) ;
55+ assert . deepStrictEqual ( [ ] , ee . listeners ( 'bar' ) ) ;
56+ }
5457
55- var e3 = new events . EventEmitter ( ) ;
56- e3 . on ( 'removeListener' , listener ) ;
57- // check for regression where removeAllListeners throws when
58- // there exists a removeListener listener, but there exists
59- // no listeners for the provided event type
60- assert . doesNotThrow ( e3 . removeAllListeners . bind ( e3 , 'foo' ) ) ;
58+ {
59+ const ee = new events . EventEmitter ( ) ;
60+ ee . on ( 'removeListener' , listener ) ;
61+ // Check for regression where removeAllListeners() throws when
62+ // there exists a 'removeListener' listener, but there exists
63+ // no listeners for the provided event type.
64+ assert . doesNotThrow ( ee . removeAllListeners . bind ( ee , 'foo' ) ) ;
65+ }
6166
62- var e4 = new events . EventEmitter ( ) ;
63- var expectLength = 2 ;
64- e4 . on ( 'removeListener' , function ( name , listener ) {
65- assert . equal ( expectLength -- , this . listeners ( 'baz' ) . length ) ;
66- } ) ;
67- e4 . on ( 'baz' , function ( ) { } ) ;
68- e4 . on ( 'baz' , function ( ) { } ) ;
69- e4 . on ( 'baz' , function ( ) { } ) ;
70- assert . equal ( e4 . listeners ( 'baz' ) . length , expectLength + 1 ) ;
71- e4 . removeAllListeners ( 'baz' ) ;
72- assert . equal ( e4 . listeners ( 'baz' ) . length , 0 ) ;
67+ {
68+ const ee = new events . EventEmitter ( ) ;
69+ var expectLength = 2 ;
70+ ee . on ( 'removeListener' , function ( name , listener ) {
71+ assert . strictEqual ( expectLength -- , this . listeners ( 'baz' ) . length ) ;
72+ } ) ;
73+ ee . on ( 'baz' , function ( ) { } ) ;
74+ ee . on ( 'baz' , function ( ) { } ) ;
75+ ee . on ( 'baz' , function ( ) { } ) ;
76+ assert . strictEqual ( ee . listeners ( 'baz' ) . length , expectLength + 1 ) ;
77+ ee . removeAllListeners ( 'baz' ) ;
78+ assert . strictEqual ( ee . listeners ( 'baz' ) . length , 0 ) ;
79+ }
0 commit comments