123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /*!
- * depd
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Module exports.
- */
- lazyProperty(module.exports, 'bufferConcat', function bufferConcat() {
- return Buffer.concat || require('./buffer-concat')
- })
- 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')
- })
- /**
- * 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()
- }
|