diff --git a/lib/util.js b/lib/util.js index c5d7bea7db3..7b2bfd2b3c0 100644 --- a/lib/util.js +++ b/lib/util.js @@ -3,7 +3,9 @@ const uv = process.binding('uv'); const Buffer = require('buffer').Buffer; const internalUtil = require('internal/util'); + var Debug; +var ObjectIsPromise; const formatRegExp = /%[sdj%]/g; exports.format = function(f) { @@ -183,11 +185,21 @@ function getConstructorOf(obj) { } +function ensureDebugIsInitialized() { + if (Debug === undefined) { + const runInDebugContext = require('vm').runInDebugContext; + const result = runInDebugContext('[Debug, ObjectIsPromise]'); + Debug = result[0]; + ObjectIsPromise = result[1]; + } +} + + function inspectPromise(p) { - Debug = Debug || require('vm').runInDebugContext('Debug'); - var mirror = Debug.MakeMirror(p, true); - if (!mirror.isPromise()) + ensureDebugIsInitialized(); + if (!ObjectIsPromise(p)) return null; + const mirror = Debug.MakeMirror(p, true); return {status: mirror.status(), value: mirror.promiseValue().value_}; }