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 @@
{: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) {