I don't understand.  Here we are using:
```js
(function(global) {
...
})(typeof global !== 'undefined' ? global : this);
```
So we know what 'global' means. this.self on the other hand is an object given by the registerModule() call. I think the only time that the given object is correct is when it equals our 'global' here, right?