 So, 2017, pretty much dead to us. So last year? But the next one, in a linear fashion, 2018, very much interested about that. So I've been thinking about some of the features of the web that are going to be sort of landing or discuss around then. And I wanted to see if I could describe one of them to you in two minutes. And the thing I'm going to describe to you is a flat map and flatten. What? Good question. These are methods that are going to go on arrays. Oh, this is like the, I think the array prep hasn't been changed in a long, long time. So this would be the first new array prototype functions in a long time. Yeah. Since we had things like sum and find index, there are a few new things. Those are very new, yeah. So what does flat map and, like, flatten? What is flatten? Okay. If you have an array of arrays, it will go through it and just turn it into one long array, as if each array is concatenated together. One level or will recurse down? Aha. Good question. One of the arguments is depth, which basically says how many times it will run that old group. Can I give infinity a step? That is a good question, of which I do not know the answer. But that is a fun thing to look up. Flat map. What does flat map do? What does flat map do? It's, do you know map? I know map. You take an array and you apply a function to it. You take an array and you apply a function to every element. Yes. And it will always produce an array the same length of the array you operate on. It will be a new array, but you can, like, change every item for another item. Yeah. You can change dom nodes for strings or whatever. Whereas reduce always takes you down to, like, one element is the idea of taking an array down to one element. Flat map lets you look at an item and you return an array of items. Oh. So it's, like, map and then flatten. Exactly. Hence the name. Flat map. Yes, you've spotted the two words in there that join together to form what this does. But it's something that I found that I've needed quite a bit. Yeah. Like, I usually use reduced, where I, like, push to my accumulator value. And it kind of feels like a hack you use to reduce. Oh, it's so annoying to write. Right. Exactly. So it's a way to remove all of the annoyance and you just get to, you know, create an array of arbitrary length from an array of arbitrary length by returning X-ray array items. And that's stage three in TC39. I'm really looking forward to that. We're getting good at this. Yeah, that's a good time. Async iterators and generators. Okay. Now, I'm aware of iterators. I'm aware of generators. Exactly. What you've done there is put the word async in front of them. Right. And that's pretty much it. I think we're done.