| 'use strict'; |
| |
| var common = require('./common'); |
| var EventEmitter = require('../'); |
| var assert = require('assert'); |
| |
| var myEE = new EventEmitter(); |
| var m = 0; |
| // This one comes last. |
| myEE.on('foo', common.mustCall(function () { |
| assert.strictEqual(m, 2); |
| })); |
| |
| // This one comes second. |
| myEE.prependListener('foo', common.mustCall(function () { |
| assert.strictEqual(m++, 1); |
| })); |
| |
| // This one comes first. |
| myEE.prependOnceListener('foo', |
| common.mustCall(function () { |
| assert.strictEqual(m++, 0); |
| })); |
| |
| myEE.emit('foo'); |
| |
| // Verify that the listener must be a function |
| assert.throws(function () { |
| var ee = new EventEmitter(); |
| ee.prependOnceListener('foo', null); |
| }, 'TypeError: The "listener" argument must be of type Function. Received type object'); |