You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					32 lines
				
				833 B
			
		
		
			
		
	
	
					32 lines
				
				833 B
			| 
								 
											3 years ago
										 
									 | 
							
								'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');
							 |