Now run `npm run build` and take a look at compiled.js:
```JavaScript
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i <props.length;i++){vardescriptor =props[i];descriptor.enumerable =descriptor.enumerable||false;descriptor.configurable =true;if("value"indescriptor)descriptor.writable =true;Object.defineProperty(target,descriptor.key,descriptor);}}returnfunction(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);returnConstructor;};}();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Car = function () {
function Car() {
_classCallCheck(this, Car);
}
_createClass(Car, [{
key: "run",
value: function run() {}
}]);
return Car;
}();
```
That's a spicy meatball!
## IIFE
Normally, variable declarations, are "hoisted" up to the top of whatever function they are declared in (or global if no function exists). This can lead to some weird moments: