mirror of https://github.com/lukechilds/node.git
Browse Source
Event emitters support symbols as event names. The process object assumes that the event name is a string, and examines the first three characters to check for signals. This causes an exception if the event name is a symbol. This commit ensures that the event name is a string before trying to slice() it. PR-URL: https://github.com/nodejs/node/pull/4798 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Michaël Zasso <mic.besace@gmail.com> Reviewed-By: Wyatt Preul <wpreul@gmail.com>process-exit-stdio-flushing
cjihrig
9 years ago
2 changed files with 22 additions and 1 deletions
@ -0,0 +1,20 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
const sym = Symbol(); |
|||
|
|||
process.on('normal', common.mustCall(data => { |
|||
assert.strictEqual(data, 'normalData'); |
|||
})); |
|||
|
|||
process.on(sym, common.mustCall(data => { |
|||
assert.strictEqual(data, 'symbolData'); |
|||
})); |
|||
|
|||
process.on('SIGPIPE', common.mustCall(data => { |
|||
assert.strictEqual(data, 'signalData'); |
|||
})); |
|||
|
|||
process.emit('normal', 'normalData'); |
|||
process.emit(sym, 'symbolData'); |
|||
process.emit('SIGPIPE', 'signalData'); |
Loading…
Reference in new issue