deno
deno copied to clipboard
`deno fmt` consumes all available memory
Version: Deno 2.0.4
deno --version
deno 2.0.4 (stable, release, x86_64-unknown-linux-gnu)
v8 12.9.202.13-rusty
typescript 5.6.2
Overview
When formatting the following JavaScript code, deno fmt consumes all available memory.
let a={b:{c:1,d:()=>{{switch(1){default:if(1){if(1){}else{ABCDEFGHIJKLMNOPQR=123456789012}}else{ABCDEFGHIJKLMNOPQR=123456789012}}}}}}
NOTE: I recommended to limit memory usage when actually trying this out, otherwise your system may freeze.
Additional information
Curiously, if I reduce the number of characters in the ABCDEFGHIJKLMNOPQR=123456789012 part, deno fmt works well.
--- a/fmt-works.js
+++ b/fmt-oom.js
@@ -1 +1 @@
-let a={b:{c:1,d:()=>{{switch(1){default:if(1){if(1){}else{ABCDEFGHIJKLMNOPQ=123456789012}}else{ABCDEFGHIJKLMNOPQR=123456789012}}}}}}
+let a={b:{c:1,d:()=>{{switch(1){default:if(1){if(1){}else{ABCDEFGHIJKLMNOPQR=123456789012}}else{ABCDEFGHIJKLMNOPQR=123456789012}}}}}}
podman run --rm -it --memory 4g -v ./fmt-works.js:/fmt-works.js "docker.io/denoland/deno:2.0.4" fmt /fmt-works.js
/fmt-works.js
Checked 1 file
podman run --rm -it --memory 4g -v ./fmt-oom.js:/fmt-oom.js "docker.io/denoland/deno:2.0.4" fmt /fmt-oom.js
# OOM ocurred !