basant307/AI_Governance_Project
048
1// Copyright Joyent, Inc. and other Node contributors.2//3// Permission is hereby granted, free of charge, to any person obtaining a4// copy of this software and associated documentation files (the5// "Software"), to deal in the Software without restriction, including6// without limitation the rights to use, copy, modify, merge, publish,7// distribute, sublicense, and/or sell copies of the Software, and to permit8// persons to whom the Software is furnished to do so, subject to the9// following conditions:10//11// The above copyright notice and this permission notice shall be included12// in all copies or substantial portions of the Software.13//14// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS15// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF16// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN17// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,18// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR19// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE20// USE OR OTHER DEALINGS IN THE SOFTWARE.21 22var common = require('./common');23var test = require('tape');24var assert = require('assert');25var EventEmitter = require('../').EventEmitter;26var util = require('util');27 28util.inherits(MyEE, EventEmitter);29 30function MyEE(cb) {31 this.once(1, cb);32 this.emit(1);33 this.removeAllListeners();34 EventEmitter.call(this);35}36 37var myee = new MyEE(common.mustCall());38 39 40util.inherits(ErrorEE, EventEmitter);41function ErrorEE() {42 this.emit('error', new Error('blerg'));43}44 45assert.throws(function() {46 new ErrorEE();47}, /blerg/);48 49test.onFinish(function() {50 assert.ok(!(myee._events instanceof Object));51 assert.strictEqual(Object.keys(myee._events).length, 0);52});53 54 55function MyEE2() {56 EventEmitter.call(this);57}58 59MyEE2.prototype = new EventEmitter();60 61var ee1 = new MyEE2();62var ee2 = new MyEE2();63 64ee1.on('x', function() {});65 66assert.strictEqual(ee2.listenerCount('x'), 0);67 