diff --git a/packages/repl/src/lib/Output/AstNode.svelte b/packages/repl/src/lib/Output/AstNode.svelte index 03f5ec69d0..381f19625e 100644 --- a/packages/repl/src/lib/Output/AstNode.svelte +++ b/packages/repl/src/lib/Output/AstNode.svelte @@ -92,7 +92,7 @@ {String(value)} {:else} - {JSON.stringify(value)} + {typeof value === 'bigint' ? `${value}n` : JSON.stringify(value)} {/if} @@ -170,7 +170,8 @@ color: var(--shiki-token-string); } - .token.number { + .token.number, + .token.bigint { color: var(--shiki-token-constant); } diff --git a/packages/repl/src/lib/Output/srcdoc/index.html b/packages/repl/src/lib/Output/srcdoc/index.html index 21f049cbcc..d93691525b 100644 --- a/packages/repl/src/lib/Output/srcdoc/index.html +++ b/packages/repl/src/lib/Output/srcdoc/index.html @@ -155,6 +155,11 @@ return { type: 'Set', value }; } + // if we don't handle bigints separately, they will cause JSON.stringify to blow up + if (typeof value === 'bigint') { + return { type: 'BigInt', value: value + '' }; + } + return value; }); } catch (error) {