Currently mobileFrontend is an object which persists state but can't be easily reinitialized. This makes unit testing more difficult (tests are not atomic), e.g.:
Unit test 1
- M.define( 'testModule', ... );
- checks that calling M.define( 'testModule', ... ) again throws an error saying that module exists.
Unit test 2
- M.define( 'testModule', ... ); <--- FAILS here because the previous test already defined 'testModule' and M is not reinitialized
- checks if M.require( 'testModule' ) returns what we just defined