|
740 | 740 | switch (typeof val) { |
741 | 741 |
|
742 | 742 | case 'number': return String(val); |
743 | | - case 'string': return `"${val}"`; |
| 743 | + case 'string': return val; |
744 | 744 | case 'boolean': return String(val); |
745 | 745 | case 'bigint': return val.toString() + 'n'; |
746 | 746 | case 'symbol': return val.toString(); |
747 | 747 | case 'function': return `[Function${val.name ? ': ' + val.name : ''}]`; |
748 | 748 |
|
749 | 749 | }//switch |
750 | 750 |
|
751 | | - // Arrays |
752 | 751 | if (Array.isArray(val)) { |
753 | 752 | return '[' + val.map(v => fn(v, seen)).join(', ') + ']'; |
754 | 753 | } |
755 | 754 |
|
756 | | - // Date |
757 | 755 | if (val instanceof Date) { |
758 | 756 | return `Date("${val.toISOString()}")`; |
759 | 757 | } |
760 | 758 |
|
761 | | - // RegExp |
762 | 759 | if (val instanceof RegExp) { |
763 | 760 | return val.toString(); |
764 | 761 | } |
765 | 762 |
|
766 | | - // Error objects |
767 | 763 | if (val instanceof Error) { |
768 | 764 | return `${val.name}: ${val.message}`; |
769 | 765 | } |
770 | 766 |
|
771 | | - // Map |
772 | 767 | if (val instanceof Map) { |
773 | 768 | const entries = []; |
774 | 769 | for (const [k, v] of val.entries()) { |
|
777 | 772 | return `Map { ${entries.join(', ')} }`; |
778 | 773 | } |
779 | 774 |
|
780 | | - // Set |
781 | 775 | if (val instanceof Set) { |
782 | 776 | const entries = [...val].map(v => fn(v, seen)); |
783 | 777 | return `Set { ${entries.join(', ')} }`; |
784 | 778 | } |
785 | 779 |
|
786 | | - // Typed arrays |
787 | 780 | if (ArrayBuffer.isView(val) && !(val instanceof DataView)) { |
788 | 781 | return `${val.constructor.name} [ ${Array.from(val).join(', ')} ]`; |
789 | 782 | } |
790 | 783 |
|
791 | | - // DOM nodes |
792 | 784 | if (val instanceof Node) { |
793 | 785 | if (val.nodeType === 1) { |
794 | 786 | return `<${val.tagName.toLowerCase()}>`; |
|
816 | 808 |
|
817 | 809 | }//catch |
818 | 810 |
|
819 | | - } |
| 811 | + }//fn |
820 | 812 |
|
821 | 813 |
|
822 | 814 |
|
|
0 commit comments