title: Object doesn't support this property or method in IE8: _normalizeServiceName
body: <p>I'm upgrading my app from .NET 4.0 to 4.5, and upgrading Breeze.js from 1.4.17 to 1.5.4.  Things seem to be working well in IE11 and other browsers, but in IE8 (or in IE11 in IE8 mode) I am getting an "Object doesn't support this property or method" error related to the <code>_normalizeServiceName</code> method in this section of code:</p>
  
  <pre><code>function updateWithConfig(obj, config) {
    if (config) {
      assertConfig(config)
          .whereParam("serviceName").isOptional()
          .whereParam("adapterName").isString().isOptional()
          .whereParam("uriBuilderName").isString().isOptional()
          .whereParam("hasServerMetadata").isBoolean().isOptional()
          .whereParam("jsonResultsAdapter").isInstanceOf(JsonResultsAdapter).isOptional()
          .whereParam("useJsonp").isBoolean().isOptional()
          .applyAll(obj);
      obj.serviceName = obj.serviceName &amp;&amp; DataService._normalizeServiceName(obj.serviceName); // &lt;&lt;&lt; Error here
      obj.adapterInstance = obj.adapterName &amp;&amp; __config.getAdapterInstance("dataService", obj.adapterName);
      obj.uriBuilder = obj.uriBuilderName &amp;&amp; __config.getAdapterInstance("uriBuilder", obj.uriBuilderName);
    }
    return obj;
  }
  </code></pre>
  
  <p>I can see that the <code>_normalizeServiceName</code> method is defined right after <code>updateWithConfig</code>:</p>
  
  <pre><code>ctor._normalizeServiceName = function (serviceName) {
    serviceName = serviceName.trim();
    if (serviceName.substr(-1) !== "/") {
      return serviceName + '/';
    } else {
      return serviceName;
    }
  };
  </code></pre>
  
  <p>If I trace through where <code>DataService</code> is defined, <code>ctor</code> does have the <code>_normalizeServiceName</code> method defined when it is returned, but by the time <code>updateWithConfig</code> is called it is missing from <code>DataService</code>.</p>
  
  <p>The error occurs when I create a new <code>EntityManager</code>:</p>
  
  <pre><code>this.manager = new breeze.EntityManager(appRoot + "breeze/myapp");
  </code></pre>
  
  <p>The Breeze website seems to say that IE8 is still supported.  I have the ES5 Shim/Sham scripts referenced in a conditional comment:</p>
  
  <pre><code>&lt;!--[if lt IE 9]&gt;
  &lt;script src="/myapp/js/respond.js"&gt;&lt;/script&gt;
  &lt;script src="/myapp/js/es5-shim.js"&gt;&lt;/script&gt;
  &lt;script src="/myapp/js/es5-sham.js"&gt;&lt;/script&gt;
  &lt;script src="/myapp/js/json3.js"&gt;&lt;/script&gt;
  &lt;![endif]--&gt;
  </code></pre>
  
  <p>So, is IE8 still supported in Breeze?  Did I miss something I need to update in my code when going from Breeze 1.4.x to 1.5.x (the only thing I changed was related to the <code>Promise</code> API seeming to change)?  Or is this a bug in Breeze?</p>