aboutsummaryrefslogtreecommitdiff
path: root/node_modules/domain-browser/source
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/domain-browser/source
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/domain-browser/source')
-rw-r--r--node_modules/domain-browser/source/index.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/node_modules/domain-browser/source/index.js b/node_modules/domain-browser/source/index.js
new file mode 100644
index 00000000..e06b3a17
--- /dev/null
+++ b/node_modules/domain-browser/source/index.js
@@ -0,0 +1,70 @@
+// 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)