12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /*!
- * depd
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- 'use strict'
- /**
- * Module dependencies.
- * @private
- */
- var EventEmitter = require('events').EventEmitter
- /**
- * Module exports.
- * @public
- */
- lazyProperty(module.exports, 'callSiteToString', function callSiteToString () {
- var limit = Error.stackTraceLimit
- var obj = {}
- var prep = Error.prepareStackTrace
- function prepareObjectStackTrace (obj, stack) {
- return stack
- }
- Error.prepareStackTrace = prepareObjectStackTrace
- Error.stackTraceLimit = 2
- // capture the stack
- Error.captureStackTrace(obj)
- // slice the stack
- var stack = obj.stack.slice()
- Error.prepareStackTrace = prep
- Error.stackTraceLimit = limit
- return stack[0].toString ? toString : require('./callsite-tostring')
- })
- lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount () {
- return EventEmitter.listenerCount || require('./event-listener-count')
- })
- /**
- * Define a lazy property.
- */
- function lazyProperty (obj, prop, getter) {
- function get () {
- var val = getter()
- Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: true,
- value: val
- })
- return val
- }
- Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: true,
- get: get
- })
- }
- /**
- * Call toString() on the obj
- */
- function toString (obj) {
- return obj.toString()
- }
|