| 319 | prettyPrinted = function prettyPrinted(value) { |
| 320 | let visited = new Set(); |
| 321 | function prettyPrint(value) { |
| 322 | try { |
| 323 | switch (typeof value) { |
| 324 | case "string": |
| 325 | return JSONStringify(value); |
| 326 | case "bigint": |
| 327 | return String(value) + "n"; |
| 328 | case "number": |
| 329 | if (value === 0 && (1 / value) < 0) return "-0"; |
| 330 | // FALLTHROUGH. |
| 331 | case "boolean": |
| 332 | case "undefined": |
| 333 | case "function": |
| 334 | case "symbol": |
| 335 | return String(value); |
| 336 | case "object": |
| 337 | if (value === null) return "null"; |
| 338 | // Guard against re-visiting. |
| 339 | if (visited.has(value)) return "<...>"; |
| 340 | visited.add(value); |
| 341 | var objectClass = classOf(value); |
| 342 | switch (objectClass) { |
| 343 | case "Number": |
| 344 | case "BigInt": |
| 345 | case "String": |
| 346 | case "Boolean": |
| 347 | case "Date": |
| 348 | return objectClass + "(" + prettyPrint(ValueOf(value)) + ")"; |
| 349 | case "RegExp": |
| 350 | return RegExpPrototypeToString.call(value); |
| 351 | case "Array": |
| 352 | var mapped = ArrayPrototypeMap.call( |
| 353 | value, (v,i,array)=>{ |
| 354 | if (v === undefined && !(i in array)) return ""; |
| 355 | return prettyPrint(v, visited); |
| 356 | }); |
| 357 | var joined = ArrayPrototypeJoin.call(mapped, ","); |
| 358 | return "[" + joined + "]"; |
| 359 | case "Int8Array": |
| 360 | case "Uint8Array": |
| 361 | case "Uint8ClampedArray": |
| 362 | case "Int16Array": |
| 363 | case "Uint16Array": |
| 364 | case "Int32Array": |
| 365 | case "Uint32Array": |
| 366 | case "Float32Array": |
| 367 | case "Float64Array": |
| 368 | case "BigInt64Array": |
| 369 | case "BigUint64Array": |
| 370 | var joined = ArrayPrototypeJoin.call(value, ","); |
| 371 | return objectClass + "([" + joined + "])"; |
| 372 | case "Object": |
| 373 | break; |
| 374 | default: |
| 375 | return objectClass + "(" + String(value) + ")"; |
| 376 | } |
| 377 | // classOf() returned "Object". |
| 378 | var name = value.constructor?.name ?? "Object"; |