async / await, done properly: a resumable virtual machine
This is the flagship language release. await used to run to completion instead of actually suspending, so the ordering of an async function relative to later work was wrong - the classic a, b, c logging as a, c, b. Fixing it meant the interpreter had to be able to STOP in the middle of a function, save all of its local state onto the heap, let other queued work run, and later resume exactly where it left off. That resumable machine now exists: await genuinely defers, the microtask queue drains in the right order, and async ordering matches every other engine. It is the single biggest correctness gain to the JavaScript language this scorecard has made.