title: Backbone Marionette AppRouter passing invalid arguments to function calls on Internet Explorer 8 (IE8)
body: <p>I've set up a Backbone Marionette application as follows in my application</p>
  
  <pre><code>CL.Modules.Users = (Users, App, Backbone, Marionette, $, _) -&gt;
    Users.Router = class Router extends CL.AppRouter
      appRoutes:
        'profile' : 'showProfile'
  </code></pre>
  
  <p>And I have a function showProfile() that takes an argument. </p>
  
  <pre><code>showProfile: (arg1) -&gt;
    alert(arg1)
    arg1.preventDefault() if arg1?
  </code></pre>
  
  <p>In browsers other than IE8, arg1 is alerted as undefined, but on IE8, it is an empty string (I checked by using typeof). The problem is that <code>arg1?</code> checks to see if event is undefined and so <code>preventDefault()</code> is being called on an empty string on IE8, which is breaking the execution. I'm not sure how this is happening. Any ideas?</p>