It's a performance optimisation. Java code tends to be more performance sensitive than JavaScript and the performance characteristics of the JVM are better known than V8. On the JVM calling a map function with an argument will often cause allocations, and Stream.map() goes megamorphic quite fast which means the indirections are slow. Historically C2 wasn't that great at fixing this situation (Graal is much better), so Kotlin has this inlined function trick. With JS I guess it's just assumed V8 will figure it out and if it doesn't, oh well, no big deal. If you care a lot about performance you aren't using browsers or NodeJS anyway <shrug>