Javascript is obviously Turing-complete, so it is as powerful as any other language, and you can implement any other programming language on top of it.
The trick is not wasting too much performance while doing that. Fortunately Javascript performance is already not bad, and specific subsets like asm.js can have their performance optimized even further.
So your question is not unlike "what an x86 command set cannot do?", just for a 50-100x slower command set.
Not completely true, you already have WebWorkers, and if you're targeting, say, JavaScriptCore on iOS and OS X Mavericks then threads are an option via running multiple JS Virtual Machines - JSValues may be passed between them.