1'use strict'; 2 3require('../common'); 4const assert = require('assert'); 5const domain = require('domain'); 6const EventEmitter = require('events'); 7const isEnumerable = Function.call.bind(Object.prototype.propertyIsEnumerable); 8 9const d = new domain.Domain(); 10const e = new EventEmitter(); 11const e2 = new EventEmitter(); 12 13d.add(e); 14assert.strictEqual(e.domain, d); 15assert.strictEqual(isEnumerable(e, 'domain'), false); 16 17// Adding the same event to a domain should not change the member count 18let previousMemberCount = d.members.length; 19d.add(e); 20assert.strictEqual(previousMemberCount, d.members.length); 21 22d.add(e2); 23assert.strictEqual(e2.domain, d); 24assert.strictEqual(isEnumerable(e2, 'domain'), false); 25 26previousMemberCount = d.members.length; 27d.remove(e2); 28assert.notStrictEqual(e2.domain, d); 29assert.strictEqual(isEnumerable(e2, 'domain'), false); 30assert.strictEqual(previousMemberCount - 1, d.members.length); 31