This game has been in Beta for several months, with several long standing issues not being fixed. Plus the game is built off a 5+ year old engine. If that's not enough testing, I don't know what is.
Also the 3DS has patching/software updates. The Pokemon Company could release games as buggy as they want. They have the good sense not to do that, since it devalues their product.
The transpilers will compile the module into an object you can require normally.
The default export is under { "default": ... } and the other exported properties are under their exported names.
The real fun part is going the other direction: using non-ES6 modules inside ES6 code.
Using 6to5ify (now babelify), I had the issue that I couldn't access the `exports` variable, only properties on it.
I've not had any problems with importing non-ES6 modules into ES6 code. To use Express for example you can simply do `import express from 'express'`. If you only need access to one or two properties of the exported object you can use the destructuring syntax to just get references to them: `import { hash, compare } from 'bcrypt'`
My experience has been CS professors teach Discrete Math poorly.
Had to take a mostly equivalent class (Intro. to Abstract Math) for my Math degree as well, and the professor explained the same concepts clearer and everyone seemed to come out with a good understanding.
Google rolled out integrated SMS in Hangouts (on Android) a month ago. It's not as transparent, but SMS and Hangout chats are in the same app, and you can switch between the two types of communication with the same person easily.
Here's his JavaScirpt version: https://vimeo.com/45140590
RIP