| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | 
							- // This file should be ES5 compatible
 
- /* eslint prefer-spread:0, no-var:0, prefer-reflect:0, no-magic-numbers:0 */
 
- 'use strict'
 
- module.exports = (function () {
 
- 	// Import Events
 
- 	var events = require('events')
 
- 	// Export Domain
 
- 	var domain = {}
 
- 	domain.createDomain = domain.create = function () {
 
- 		var d = new events.EventEmitter()
 
- 		function emitError (e) {
 
- 			d.emit('error', e)
 
- 		}
 
- 		d.add = function (emitter) {
 
- 			emitter.on('error', emitError)
 
- 		}
 
- 		d.remove = function (emitter) {
 
- 			emitter.removeListener('error', emitError)
 
- 		}
 
- 		d.bind = function (fn) {
 
- 			return function () {
 
- 				var args = Array.prototype.slice.call(arguments)
 
- 				try {
 
- 					fn.apply(null, args)
 
- 				}
 
- 				catch (err) {
 
- 					emitError(err)
 
- 				}
 
- 			}
 
- 		}
 
- 		d.intercept = function (fn) {
 
- 			return function (err) {
 
- 				if ( err ) {
 
- 					emitError(err)
 
- 				}
 
- 				else {
 
- 					var args = Array.prototype.slice.call(arguments, 1)
 
- 					try {
 
- 						fn.apply(null, args)
 
- 					}
 
- 					catch (err) {
 
- 						emitError(err)
 
- 					}
 
- 				}
 
- 			}
 
- 		}
 
- 		d.run = function (fn) {
 
- 			try {
 
- 				fn()
 
- 			}
 
- 			catch (err) {
 
- 				emitError(err)
 
- 			}
 
- 			return this
 
- 		}
 
- 		d.dispose = function () {
 
- 			this.removeAllListeners()
 
- 			return this
 
- 		}
 
- 		d.enter = d.exit = function () {
 
- 			return this
 
- 		}
 
- 		return d
 
- 	}
 
- 	return domain
 
- }).call(this)
 
 
  |