< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/DebuggerSupport.java

Print this page




 222             descs[i] = valueInfo(key, object.get(key), all, duplicates);
 223         }
 224 
 225         duplicates.remove(object);
 226 
 227         return descs;
 228     }
 229 
 230     /**
 231      * Generate a string representation of a Script object.
 232      * @param object     Script object to represent.
 233      * @param all        true if to include non-enumerable values.
 234      * @param duplicates Duplication set to avoid cycles.
 235      * @return String representation.
 236      */
 237     private static String objectAsString(final ScriptObject object, final boolean all, final Set<Object> duplicates) {
 238         final StringBuilder sb = new StringBuilder();
 239 
 240         if (ScriptObject.isArray(object)) {
 241             sb.append('[');
 242             final long length = object.getLong("length", INVALID_PROGRAM_POINT);
 243 
 244             for (long i = 0; i < length; i++) {
 245                 if (object.has(i)) {
 246                     final Object valueAsObject = object.get(i);
 247                     final boolean isUndefined = valueAsObject == ScriptRuntime.UNDEFINED;
 248 
 249                     if (isUndefined) {
 250                         if (i != 0) {
 251                             sb.append(",");
 252                         }
 253                     } else {
 254                         if (i != 0) {
 255                             sb.append(", ");
 256                         }
 257 
 258                         if (valueAsObject instanceof ScriptObject && !(valueAsObject instanceof ScriptFunction)) {
 259                             final String objectString = objectAsString((ScriptObject)valueAsObject, all, duplicates);
 260                             sb.append(objectString != null ? objectString : "{...}");
 261                         } else {
 262                             sb.append(valueAsString(valueAsObject));




 222             descs[i] = valueInfo(key, object.get(key), all, duplicates);
 223         }
 224 
 225         duplicates.remove(object);
 226 
 227         return descs;
 228     }
 229 
 230     /**
 231      * Generate a string representation of a Script object.
 232      * @param object     Script object to represent.
 233      * @param all        true if to include non-enumerable values.
 234      * @param duplicates Duplication set to avoid cycles.
 235      * @return String representation.
 236      */
 237     private static String objectAsString(final ScriptObject object, final boolean all, final Set<Object> duplicates) {
 238         final StringBuilder sb = new StringBuilder();
 239 
 240         if (ScriptObject.isArray(object)) {
 241             sb.append('[');
 242             final long length = (long) object.getDouble("length", INVALID_PROGRAM_POINT);
 243 
 244             for (long i = 0; i < length; i++) {
 245                 if (object.has(i)) {
 246                     final Object valueAsObject = object.get(i);
 247                     final boolean isUndefined = valueAsObject == ScriptRuntime.UNDEFINED;
 248 
 249                     if (isUndefined) {
 250                         if (i != 0) {
 251                             sb.append(",");
 252                         }
 253                     } else {
 254                         if (i != 0) {
 255                             sb.append(", ");
 256                         }
 257 
 258                         if (valueAsObject instanceof ScriptObject && !(valueAsObject instanceof ScriptFunction)) {
 259                             final String objectString = objectAsString((ScriptObject)valueAsObject, all, duplicates);
 260                             sb.append(objectString != null ? objectString : "{...}");
 261                         } else {
 262                             sb.append(valueAsString(valueAsObject));


< prev index next >