@@ -304,7 +304,7 @@ function renderDataStructuresVersion1(curEntry, vizDiv) {
304304 else {
305305 curTr . find ( "td.varname" ) . html ( varname ) ;
306306 }
307- renderData ( val , curTr . find ( "td.val" ) ) ;
307+ renderData ( val , curTr . find ( "td.val" ) , false ) ;
308308 } ) ;
309309
310310 tbl . find ( "tr:last" ) . find ( "td.varname" ) . css ( 'border-bottom' , '0px' ) ;
@@ -382,7 +382,7 @@ function renderDataStructuresVersion1(curEntry, vizDiv) {
382382 tbl . append ( '<tr><td class="varname"></td><td class="val"></td></tr>' ) ;
383383 var curTr = tbl . find ( 'tr:last' ) ;
384384 curTr . find ( "td.varname" ) . html ( varname ) ;
385- renderData ( val , curTr . find ( "td.val" ) ) ;
385+ renderData ( val , curTr . find ( "td.val" ) , false ) ;
386386 }
387387 } ) ;
388388
@@ -516,7 +516,7 @@ function renderDataStructuresVersion2(curEntry, vizDiv) {
516516
517517 // render primitives inline
518518 if ( isPrimitiveType ( val ) ) {
519- renderData ( val , curTr . find ( "td.stackFrameValue" ) ) ;
519+ renderData ( val , curTr . find ( "td.stackFrameValue" ) , false ) ;
520520 }
521521 else {
522522 // add a stub so that we can connect it with a connector later.
@@ -594,7 +594,7 @@ function renderDataStructuresVersion2(curEntry, vizDiv) {
594594
595595 // render primitives inline and compound types on the heap
596596 if ( isPrimitiveType ( val ) ) {
597- renderData ( val , curTr . find ( "td.stackFrameValue" ) ) ;
597+ renderData ( val , curTr . find ( "td.stackFrameValue" ) , false ) ;
598598 }
599599 else {
600600 // add a stub so that we can connect it with a connector later.
@@ -658,7 +658,7 @@ function renderDataStructuresVersion2(curEntry, vizDiv) {
658658 else {
659659 $ ( vizDiv + ' #heap' ) . prepend ( newDiv ) ;
660660 }
661- renderData ( obj , $ ( vizDiv + ' #heap #' + heapObjID ) ) ;
661+ renderData ( obj , $ ( vizDiv + ' #heap #' + heapObjID ) , false ) ;
662662
663663 alreadyRenderedObjectIDs [ objectID ] = 1 ;
664664 }
@@ -840,7 +840,7 @@ function getObjectID(obj) {
840840// render the JS data object obj inside of jDomElt,
841841// which is a jQuery wrapped DOM object
842842// (obj is in a format encoded by cgi-bin/pg_encoder.py)
843- function renderData ( obj , jDomElt ) {
843+ function renderData ( obj , jDomElt , ignoreIDs ) {
844844 // dispatch on types:
845845 var typ = typeof obj ;
846846
@@ -871,13 +871,19 @@ function renderData(obj, jDomElt) {
871871 else if ( typ == "object" ) {
872872 assert ( $ . isArray ( obj ) ) ;
873873
874+ var idStr = '' ;
875+ if ( ! ignoreIDs ) {
876+ idStr = ' (id=' + getObjectID ( obj ) + ')' ;
877+ }
878+
874879 if ( obj [ 0 ] == 'LIST' ) {
875880 assert ( obj . length >= 2 ) ;
876881 if ( obj . length == 2 ) {
877- jDomElt . append ( '<div class="typeLabel">empty list (id= ' + obj [ 1 ] + ') </div>' ) ;
882+ jDomElt . append ( '<div class="typeLabel">empty list' + idStr + '</div>' ) ;
878883 }
879884 else {
880- jDomElt . append ( '<div class="typeLabel">list (id=' + obj [ 1 ] + '):</div>' ) ;
885+ jDomElt . append ( '<div class="typeLabel">list' + idStr + ':</div>' ) ;
886+
881887 jDomElt . append ( '<table class="listTbl"><tr></tr><tr></tr></table>' ) ;
882888 var tbl = jDomElt . children ( 'table' ) ;
883889 var headerTr = tbl . find ( 'tr:first' ) ;
@@ -891,17 +897,17 @@ function renderData(obj, jDomElt) {
891897 headerTr . find ( 'td:last' ) . append ( ind - 2 ) ;
892898
893899 contentTr . append ( '<td class="listElt"></td>' ) ;
894- renderData ( val , contentTr . find ( 'td:last' ) ) ;
900+ renderData ( val , contentTr . find ( 'td:last' ) , ignoreIDs ) ;
895901 } ) ;
896902 }
897903 }
898904 else if ( obj [ 0 ] == 'TUPLE' ) {
899905 assert ( obj . length >= 2 ) ;
900906 if ( obj . length == 2 ) {
901- jDomElt . append ( '<div class="typeLabel">empty tuple (id= ' + obj [ 1 ] + ') </div>' ) ;
907+ jDomElt . append ( '<div class="typeLabel">empty tuple' + idStr + '</div>' ) ;
902908 }
903909 else {
904- jDomElt . append ( '<div class="typeLabel">tuple (id= ' + obj [ 1 ] + ') :</div>' ) ;
910+ jDomElt . append ( '<div class="typeLabel">tuple' + idStr + ':</div>' ) ;
905911 jDomElt . append ( '<table class="tupleTbl"><tr></tr><tr></tr></table>' ) ;
906912 var tbl = jDomElt . children ( 'table' ) ;
907913 var headerTr = tbl . find ( 'tr:first' ) ;
@@ -915,17 +921,17 @@ function renderData(obj, jDomElt) {
915921 headerTr . find ( 'td:last' ) . append ( ind - 2 ) ;
916922
917923 contentTr . append ( '<td class="tupleElt"></td>' ) ;
918- renderData ( val , contentTr . find ( 'td:last' ) ) ;
924+ renderData ( val , contentTr . find ( 'td:last' ) , ignoreIDs ) ;
919925 } ) ;
920926 }
921927 }
922928 else if ( obj [ 0 ] == 'SET' ) {
923929 assert ( obj . length >= 2 ) ;
924930 if ( obj . length == 2 ) {
925- jDomElt . append ( '<div class="typeLabel">empty set (id= ' + obj [ 1 ] + ') </div>' ) ;
931+ jDomElt . append ( '<div class="typeLabel">empty set' + idStr + '</div>' ) ;
926932 }
927933 else {
928- jDomElt . append ( '<div class="typeLabel">set (id= ' + obj [ 1 ] + ') :</div>' ) ;
934+ jDomElt . append ( '<div class="typeLabel">set' + idStr + ':</div>' ) ;
929935 jDomElt . append ( '<table class="setTbl"></table>' ) ;
930936 var tbl = jDomElt . children ( 'table' ) ;
931937 // create an R x C matrix:
@@ -952,17 +958,17 @@ function renderData(obj, jDomElt) {
952958
953959 var curTr = tbl . find ( 'tr:last' ) ;
954960 curTr . append ( '<td class="setElt"></td>' ) ;
955- renderData ( val , curTr . find ( 'td:last' ) ) ;
961+ renderData ( val , curTr . find ( 'td:last' ) , ignoreIDs ) ;
956962 } ) ;
957963 }
958964 }
959965 else if ( obj [ 0 ] == 'DICT' ) {
960966 assert ( obj . length >= 2 ) ;
961967 if ( obj . length == 2 ) {
962- jDomElt . append ( '<div class="typeLabel">empty dict (id= ' + obj [ 1 ] + ') </div>' ) ;
968+ jDomElt . append ( '<div class="typeLabel">empty dict' + idStr + '</div>' ) ;
963969 }
964970 else {
965- jDomElt . append ( '<div class="typeLabel">dict (id= ' + obj [ 1 ] + ') :</div>' ) ;
971+ jDomElt . append ( '<div class="typeLabel">dict' + idStr + ':</div>' ) ;
966972 jDomElt . append ( '<table class="dictTbl"></table>' ) ;
967973 var tbl = jDomElt . children ( 'table' ) ;
968974 $ . each ( obj , function ( ind , kvPair ) {
@@ -972,14 +978,14 @@ function renderData(obj, jDomElt) {
972978 var newRow = tbl . find ( 'tr:last' ) ;
973979 var keyTd = newRow . find ( 'td:first' ) ;
974980 var valTd = newRow . find ( 'td:last' ) ;
975- renderData ( kvPair [ 0 ] , keyTd ) ;
976- renderData ( kvPair [ 1 ] , valTd ) ;
981+ renderData ( kvPair [ 0 ] , keyTd , ignoreIDs ) ;
982+ renderData ( kvPair [ 1 ] , valTd , ignoreIDs ) ;
977983 } ) ;
978984 }
979985 }
980986 else if ( obj [ 0 ] == 'INSTANCE' ) {
981987 assert ( obj . length >= 3 ) ;
982- jDomElt . append ( '<div class="typeLabel">' + obj [ 1 ] + ' instance (id= ' + obj [ 2 ] + ') </div>' ) ;
988+ jDomElt . append ( '<div class="typeLabel">' + obj [ 1 ] + ' instance' + idStr + '</div>' ) ;
983989
984990 if ( obj . length > 3 ) {
985991 jDomElt . append ( '<table class="instTbl"></table>' ) ;
@@ -998,7 +1004,7 @@ function renderData(obj, jDomElt) {
9981004 keyTd . append ( '<span class="keyObj">' + attrnameStr + '</span>' ) ;
9991005
10001006 // values can be arbitrary objects, so recurse:
1001- renderData ( kvPair [ 1 ] , valTd ) ;
1007+ renderData ( kvPair [ 1 ] , valTd , ignoreIDs ) ;
10021008 } ) ;
10031009 }
10041010 }
@@ -1009,7 +1015,7 @@ function renderData(obj, jDomElt) {
10091015 superclassStr += ( '[extends ' + obj [ 3 ] . join ( ',' ) + '] ' ) ;
10101016 }
10111017
1012- jDomElt . append ( '<div class="typeLabel">' + obj [ 1 ] + ' class ' + superclassStr + '(id=' + obj [ 2 ] + ') </div>') ;
1018+ jDomElt . append ( '<div class="typeLabel">' + obj [ 1 ] + ' class ' + superclassStr + idStr + ' </div>') ;
10131019
10141020 if ( obj . length > 4 ) {
10151021 jDomElt . append ( '<table class="classTbl"></table>' ) ;
@@ -1028,7 +1034,7 @@ function renderData(obj, jDomElt) {
10281034 keyTd . append ( '<span class="keyObj">' + attrnameStr + '</span>' ) ;
10291035
10301036 // values can be arbitrary objects, so recurse:
1031- renderData ( kvPair [ 1 ] , valTd ) ;
1037+ renderData ( kvPair [ 1 ] , valTd , ignoreIDs ) ;
10321038 } ) ;
10331039 }
10341040 }
@@ -1048,13 +1054,13 @@ function renderData(obj, jDomElt) {
10481054 // then display an abbreviated version rather than the gory details
10491055 noStrReprRE = / < .* a t 0 x .* > / ;
10501056 if ( noStrReprRE . test ( strRepr ) ) {
1051- jDomElt . append ( '<span class="customObj">' + typeName + ' (id=' + id + ') </span>') ;
1057+ jDomElt . append ( '<span class="customObj">' + typeName + idStr + ' </span>') ;
10521058 }
10531059 else {
10541060 strRepr = htmlspecialchars ( strRepr ) ; // escape strings!
10551061
10561062 // warning: we're overloading tuple elts for custom data types
1057- jDomElt . append ( '<div class="typeLabel">' + typeName + ' (id=' + id + ') :</div>') ;
1063+ jDomElt . append ( '<div class="typeLabel">' + typeName + idStr + ' :</div>') ;
10581064 jDomElt . append ( '<table class="tupleTbl"><tr><td class="tupleElt">' + strRepr + '</td></tr></table>' ) ;
10591065 }
10601066 }
0 commit comments