@@ -302,16 +302,6 @@ function ensureDebugIsInitialized() {
302302}
303303
304304
305- function inspectPromise ( p ) {
306- // Only create a mirror if the object is a Promise.
307- if ( ! binding . isPromise ( p ) )
308- return null ;
309- ensureDebugIsInitialized ( ) ;
310- const mirror = Debug . MakeMirror ( p , true ) ;
311- return { status : mirror . status ( ) , value : mirror . promiseValue ( ) . value_ } ;
312- }
313-
314-
315305function formatValue ( ctx , value , recurseTimes ) {
316306 if ( ctx . showProxy &&
317307 ( ( typeof value === 'object' && value !== null ) ||
@@ -527,30 +517,25 @@ function formatValue(ctx, value, recurseTimes) {
527517 'byteOffset' ,
528518 'buffer' ) ;
529519 }
520+ } else if ( binding . isPromise ( value ) ) {
521+ braces = [ '{' , '}' ] ;
522+ formatter = formatPromise ;
523+ } else if ( binding . isMapIterator ( value ) ) {
524+ constructor = { name : 'MapIterator' } ;
525+ braces = [ '{' , '}' ] ;
526+ empty = false ;
527+ formatter = formatCollectionIterator ;
528+ } else if ( binding . isSetIterator ( value ) ) {
529+ constructor = { name : 'SetIterator' } ;
530+ braces = [ '{' , '}' ] ;
531+ empty = false ;
532+ formatter = formatCollectionIterator ;
530533 } else {
531- var promiseInternals = inspectPromise ( value ) ;
532- if ( promiseInternals ) {
533- braces = [ '{' , '}' ] ;
534- formatter = formatPromise ;
535- } else {
536- if ( binding . isMapIterator ( value ) ) {
537- constructor = { name : 'MapIterator' } ;
538- braces = [ '{' , '}' ] ;
539- empty = false ;
540- formatter = formatCollectionIterator ;
541- } else if ( binding . isSetIterator ( value ) ) {
542- constructor = { name : 'SetIterator' } ;
543- braces = [ '{' , '}' ] ;
544- empty = false ;
545- formatter = formatCollectionIterator ;
546- } else {
547- // Unset the constructor to prevent "Object {...}" for ordinary objects.
548- if ( constructor && constructor . name === 'Object' )
549- constructor = null ;
550- braces = [ '{' , '}' ] ;
551- empty = true ; // No other data than keys.
552- }
553- }
534+ // Unset the constructor to prevent "Object {...}" for ordinary objects.
535+ if ( constructor && constructor . name === 'Object' )
536+ constructor = null ;
537+ braces = [ '{' , '}' ] ;
538+ empty = true ; // No other data than keys.
554539 }
555540
556541 empty = empty === true && keys . length === 0 ;
@@ -779,14 +764,15 @@ function formatCollectionIterator(ctx, value, recurseTimes, visibleKeys, keys) {
779764}
780765
781766function formatPromise ( ctx , value , recurseTimes , visibleKeys , keys ) {
782- var output = [ ] ;
783- var internals = inspectPromise ( value ) ;
784- if ( internals . status === 'pending' ) {
767+ const output = [ ] ;
768+ const [ state , result ] = binding . getPromiseDetails ( value ) ;
769+
770+ if ( state === binding . kPending ) {
785771 output . push ( '<pending>' ) ;
786772 } else {
787773 var nextRecurseTimes = recurseTimes === null ? null : recurseTimes - 1 ;
788- var str = formatValue ( ctx , internals . value , nextRecurseTimes ) ;
789- if ( internals . status === 'rejected' ) {
774+ var str = formatValue ( ctx , result , nextRecurseTimes ) ;
775+ if ( state === binding . kRejected ) {
790776 output . push ( '<rejected> ' + str ) ;
791777 } else {
792778 output . push ( str ) ;
0 commit comments