@ -25,73 +25,79 @@ const common = require('../common');
const assert = require ( 'assert' ) ;
const events = require ( 'events' ) ;
let e = new events . EventEmitter ( ) ;
// default
for ( let i = 0 ; i < 10 ; i ++ ) {
e . on ( 'default' , common . noop ) ;
}
assert . ok ( ! e . _ events [ 'default' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'default' , common . noop ) ;
assert . ok ( e . _ events [ 'default' ] . warned ) ;
{
const e = new events . EventEmitter ( ) ;
// symbol
const symbol = Symbol ( 'symbol' ) ;
e . setMaxListeners ( 1 ) ;
e . on ( symbol , common . noop ) ;
assert . ok ( ! e . _ events [ symbol ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( symbol , common . noop ) ;
assert . ok ( e . _ events [ symbol ] . hasOwnProperty ( 'warned' ) ) ;
for ( let i = 0 ; i < 10 ; i ++ ) {
e . on ( 'default' , common . mustNotCall ( ) ) ;
}
assert . ok ( ! e . _ events [ 'default' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'default' , common . mustNotCall ( ) ) ;
assert . ok ( e . _ events [ 'default' ] . warned ) ;
// specific
e . setMaxListeners ( 5 ) ;
for ( let i = 0 ; i < 5 ; i ++ ) {
e . on ( 'specific' , common . noop ) ;
}
assert . ok ( ! e . _ events [ 'specific' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'specific' , common . noop ) ;
assert . ok ( e . _ events [ 'specific' ] . warned ) ;
// symbol
const symbol = Symbol ( 'symbol' ) ;
e . setMaxListeners ( 1 ) ;
e . on ( symbol , common . mustNotCall ( ) ) ;
assert . ok ( ! e . _ events [ symbol ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( symbol , common . mustNotCall ( ) ) ;
assert . ok ( e . _ events [ symbol ] . hasOwnProperty ( 'warned' ) ) ;
// specific
e . setMaxListeners ( 5 ) ;
for ( let i = 0 ; i < 5 ; i ++ ) {
e . on ( 'specific' , common . mustNotCall ( ) ) ;
}
assert . ok ( ! e . _ events [ 'specific' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'specific' , common . mustNotCall ( ) ) ;
assert . ok ( e . _ events [ 'specific' ] . warned ) ;
// only one
e . setMaxListeners ( 1 ) ;
e . on ( 'only one' , common . noop ) ;
assert . ok ( ! e . _ events [ 'only one' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'only one' , common . noop ) ;
assert . ok ( e . _ events [ 'only one' ] . hasOwnProperty ( 'warned' ) ) ;
// only one
e . setMaxListeners ( 1 ) ;
e . on ( 'only one' , common . mustNotCall ( ) ) ;
assert . ok ( ! e . _ events [ 'only one' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'only one' , common . mustNotCall ( ) ) ;
assert . ok ( e . _ events [ 'only one' ] . hasOwnProperty ( 'warned' ) ) ;
// unlimited
e . setMaxListeners ( 0 ) ;
for ( let i = 0 ; i < 1000 ; i ++ ) {
e . on ( 'unlimited' , common . noop ) ;
// unlimited
e . setMaxListeners ( 0 ) ;
for ( let i = 0 ; i < 1000 ; i ++ ) {
e . on ( 'unlimited' , common . mustNotCall ( ) ) ;
}
assert . ok ( ! e . _ events [ 'unlimited' ] . hasOwnProperty ( 'warned' ) ) ;
}
assert . ok ( ! e . _ events [ 'unlimited' ] . hasOwnProperty ( 'warned' ) ) ;
// process-wide
events . EventEmitter . defaultMaxListeners = 42 ;
e = new events . EventEmitter ( ) ;
{
events . EventEmitter . defaultMaxListeners = 42 ;
const e = new events . EventEmitter ( ) ;
for ( let i = 0 ; i < 42 ; ++ i ) {
e . on ( 'fortytwo' , common . noop ) ;
}
assert . ok ( ! e . _ events [ 'fortytwo' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'fortytwo' , common . noop ) ;
assert . ok ( e . _ events [ 'fortytwo' ] . hasOwnProperty ( 'warned' ) ) ;
delete e . _ events [ 'fortytwo' ] . warned ;
for ( let i = 0 ; i < 42 ; ++ i ) {
e . on ( 'fortytwo' , common . mustNotCall ( ) ) ;
}
assert . ok ( ! e . _ events [ 'fortytwo' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'fortytwo' , common . mustNotCall ( ) ) ;
assert . ok ( e . _ events [ 'fortytwo' ] . hasOwnProperty ( 'warned' ) ) ;
delete e . _ events [ 'fortytwo' ] . warned ;
events . EventEmitter . defaultMaxListeners = 44 ;
e . on ( 'fortytwo' , common . noop ) ;
assert . ok ( ! e . _ events [ 'fortytwo' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'fortytwo' , common . noop ) ;
assert . ok ( e . _ events [ 'fortytwo' ] . hasOwnProperty ( 'warned' ) ) ;
events . EventEmitter . defaultMaxListeners = 44 ;
e . on ( 'fortytwo' , common . mustNotCall ( ) ) ;
assert . ok ( ! e . _ events [ 'fortytwo' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'fortytwo' , common . mustNotCall ( ) ) ;
assert . ok ( e . _ events [ 'fortytwo' ] . hasOwnProperty ( 'warned' ) ) ;
}
// but _maxListeners still has precedence over defaultMaxListeners
events . EventEmitter . defaultMaxListeners = 42 ;
e = new events . EventEmitter ( ) ;
e . setMaxListeners ( 1 ) ;
e . on ( 'uno' , common . noop ) ;
assert . ok ( ! e . _ events [ 'uno' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'uno' , common . noop ) ;
assert . ok ( e . _ events [ 'uno' ] . hasOwnProperty ( 'warned' ) ) ;
{
events . EventEmitter . defaultMaxListeners = 42 ;
const e = new events . EventEmitter ( ) ;
e . setMaxListeners ( 1 ) ;
e . on ( 'uno' , common . mustNotCall ( ) ) ;
assert . ok ( ! e . _ events [ 'uno' ] . hasOwnProperty ( 'warned' ) ) ;
e . on ( 'uno' , common . mustNotCall ( ) ) ;
assert . ok ( e . _ events [ 'uno' ] . hasOwnProperty ( 'warned' ) ) ;
// chainable
assert . strictEqual ( e , e . setMaxListeners ( 1 ) ) ;
// chainable
assert . strictEqual ( e , e . setMaxListeners ( 1 ) ) ;
}