3 * Copyright(c) 2014-2015 Douglas Christopher Wilson
10 * Module dependencies.
14 var Buffer = require('buffer')
15 var EventEmitter = require('events').EventEmitter
22 lazyProperty(module.exports, 'bufferConcat', function bufferConcat() {
23 return Buffer.concat || require('./buffer-concat')
26 lazyProperty(module.exports, 'callSiteToString', function callSiteToString() {
27 var limit = Error.stackTraceLimit
29 var prep = Error.prepareStackTrace
31 function prepareObjectStackTrace(obj, stack) {
35 Error.prepareStackTrace = prepareObjectStackTrace
36 Error.stackTraceLimit = 2
39 Error.captureStackTrace(obj)
42 var stack = obj.stack.slice()
44 Error.prepareStackTrace = prep
45 Error.stackTraceLimit = limit
47 return stack[0].toString ? toString : require('./callsite-tostring')
50 lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount() {
51 return EventEmitter.listenerCount || require('./event-listener-count')
55 * Define a lazy property.
58 function lazyProperty(obj, prop, getter) {
62 Object.defineProperty(obj, prop, {
71 Object.defineProperty(obj, prop, {
79 * Call toString() on the obj
82 function toString(obj) {