Mandreel doesn't avoid garbage as much as emscripten output does, but it does create less than "typical" JS, most likely. However, it still can create plenty of doubles as garbage on the heap, on JS engines without nanboxing, such as v8, which is a factor in why v8 loses here.