items(x).forEach(function(key, value) {
alert(key + ',' + val);
});
You can already just do that, without ES6.
> It also brings up the question of interpolation, why do we even have to use + in the first place?
Did you miss the last item, "quasis"? `You are ${age} years old.`
> Also, can someone in the know care to tell me why that is that those additions for what is the end rather basic functionality is coming so late to the language?
Because unlike most languages, there's no canonical implementation.
Mozilla, who actually holds the trademark on the name "JavaScript", totally tried to evolve the language since the beginning and even shipped e.g. JavaScript 1.7 (which had generators, iterators, let, array comprehensions, and destructuring assignment [1]) with Firefox 2 in 2006, but Firefox just didn't have the market share for authors to start using the new features, and no other browser implemented any of them. That deadlock was only broken by Brendan Eich using corporate politics rather than hacker-style "putting it out there": rounding up all the big browser makers (of course, it helped that Apple and Google had just broken into the scene), and convincing them to commit to implementing new features decided on by the committee they formed, TC39 (and to update their browsers at all, ahem IE ahem).
[1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_...