title: Angular 2 RC 4 "(SystemJS) Can't resolve all parameters for [object Location]: " in IE 11
body: <p>My Web App works fine in Chrome, Firefox and Edge, but of course not in IE 11. 
  Probably not older versions of IE as well. It is a minimal app using Angular Cli to generate the app. </p>
  
  <p>full error: </p>
  
  <pre><code>EXCEPTION: Can't resolve all parameters for [object Location]: (?).
     EXCEPTION: Can't resolve all parameters for [object Location]: (?).
  
  Unhandled Promise rejection: (SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js ; Zone: &lt;root&gt; ; Task: Promise.then ; Value: Error: (SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js
     "Unhandled Promise rejection:"
     "(SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js"
     "; Zone:"
     "&lt;root&gt;"
     "; Task:"
     "Promise.then"
     "; Value:"
     {
        [functions]: ,
        __proto__: { },
        description: "(SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js",
        message: "(SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js",
        name: "Error",
        originalErr: { },
        stack: null,
        Symbol()_g.sn5fkg9wx58: undefined,
        Symbol(rxSubscriber)_o.sn5fkg9wx58: undefined
     }
  
  Error: Uncaught (in promise): Error: (SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js
     {
        [functions]: ,
        __proto__: { },
        description: "Uncaught (in promise): Error: (SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js",
        message: "Uncaught (in promise): Error: (SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js",
        name: "Error",
        promise: {
           [functions]: ,
           __proto__: { },
           __zone_symbol__state: 0,
           __zone_symbol__value: { },
           Symbol()_g.sn5fkg9wx58: undefined,
           Symbol(rxSubscriber)_o.sn5fkg9wx58: undefined
        },
        rejection: {
           [functions]: ,
           __proto__: { },
           description: "(SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js",
           message: "(SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js",
           name: "Error",
           originalErr: { },
           stack: null,
           Symbol()_g.sn5fkg9wx58: undefined,
           Symbol(rxSubscriber)_o.sn5fkg9wx58: undefined
        },
        stack: "Error: Uncaught (in promise): Error: (SystemJS) Can't resolve all parameters for [object Location]: (?).
      Evaluating http://localhost:4200/main.js
      Error loading http://localhost:4200/main.js
     at l (http://localhost:4200/vendor/zone.js/dist/zone.min.js:1:2987)
     at l (http://localhost:4200/vendor/zone.js/dist/zone.min.js:1:2816)
     at Anonymous function (http://localhost:4200/vendor/zone.js/dist/zone.min.js:1:3327)
     at e.prototype.invokeTask (http://localhost:4200/vendor/zone.js/dist/zone.min.js:1:7737)
     at e.prototype.runTask (http://localhost:4200/vendor/zone.js/dist/zone.min.js:1:5178)
     at a (http://localhost:4200/vendor/zone.js/dist/zone.min.js:1:2421)
     at invoke (http://localhost:4200/vendor/zone.js/dist/zone.min.js:1:8989)",
        Symbol()_g.sn5fkg9wx58: undefined,
        Symbol(rxSubscriber)_o.sn5fkg9wx58: undefined,
        task: { },
        zone: { }
     }
  </code></pre>
  
  <p>package.json</p>
  
  <pre><code>  "dependencies": {
      "@angular/common": "2.0.0-rc.4",
      "@angular/compiler": "2.0.0-rc.4",
      "@angular/core": "2.0.0-rc.4",
      "@angular/platform-browser": "2.0.0-rc.4",
      "@angular/platform-browser-dynamic": "2.0.0-rc.4",
      "@angular/router": "3.0.0-beta.1",
      "core-js": "^2.4.0",
      "es5-shim": "^4.5.9",
      "es6-shim": "^0.35.1",
      "reflect-metadata": "0.1.3",
      "rxjs": "5.0.0-beta.6",
      "systemjs": "^0.19.31",
      "zone.js": "^0.6.12"
    },
  </code></pre>
  
  <p>index.html</p>
  
  <pre><code>&lt;!doctype html&gt;
  &lt;html&gt;
  
  &lt;head&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;title&gt;Focus Anbud&lt;/title&gt;
    &lt;base href='/'&gt; {{content-for 'head'}}
    &lt;link rel="icon" type="image/x-icon" href="favicon.ico"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
  
    &lt;!-- Loading Spinner --&gt;
    &lt;link rel="stylesheet" href="assets/css/whirly.css"&gt;
  
    &lt;link rel="stylesheet" href="assets/css/bootstrap.min.css"&gt;
    &lt;link rel="stylesheet" href="assets/css/font-awesome.min.css"&gt;
    &lt;link rel="stylesheet" href="assets/css/ionicons.min.css"&gt;
    &lt;!--
    &lt;link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"&gt;
    &lt;link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"&gt;
    &lt;link rel="stylesheet" href="//code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css"&gt;
    --&gt;
  
    &lt;!-- Theme --&gt;
    &lt;link rel="stylesheet" href="assets/css/AdminLTE.min.css"&gt;
    &lt;link rel="stylesheet" href="assets/css/skins/skin-blue.min.css"&gt;
  
  &lt;/head&gt;
  
  &lt;body class="hold-transition skin-blue sidebar-mini"&gt;
    &lt;!--&lt;div class="wrapper"&gt;--&gt;
    &lt;app&gt;
      &lt;div class="whirly-loader" style="margin-left: 50%; margin-top:20%"&gt;Loading...&lt;/div&gt;
    &lt;/app&gt;
    &lt;!--&lt;/div&gt;--&gt;
    &lt;!-- ./wrapper --&gt;
  
    &lt;!-- jQuery 2.1.4 --&gt;
    &lt;script src="plugins/jQuery/jQuery-2.1.4.min.js"&gt;&lt;/script&gt;
  
    &lt;!-- Bootstrap 3.3.6 --&gt;
    &lt;script src="assets/js/bootstrap.min.js"&gt;&lt;/script&gt;
    &lt;!--&lt;script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"&gt;&lt;/script&gt;--&gt;
  
    &lt;!-- AdminLTE App --&gt;
    &lt;script src="assets/js/app.js"&gt;&lt;/script&gt;
  
    &lt;!-- polyfills for older browsers --&gt;
    &lt;script src="vendor/es5-shim/es5-shim.min.js"&gt;&lt;/script&gt;
    &lt;script src="vendor/es6-shim/es6-shim.min.js"&gt;&lt;/script&gt;
    &lt;script src="vendor/systemjs/dist/system-polyfills.js"&gt;&lt;/script&gt;
    &lt;script src="https://npmcdn.com/angular2/es6/dev/src/testing/shims_for_IE.js"&gt;&lt;/script&gt;
    &lt;script src="vendor/core-js/client/shim.min.js"&gt;&lt;/script&gt;
  
    &lt;!-- default --&gt;
    &lt;script src="vendor/zone.js/dist/zone.min.js"&gt;&lt;/script&gt;
    &lt;script src="vendor/reflect-metadata/Reflect.js"&gt;&lt;/script&gt;
    &lt;script src="vendor/systemjs/dist/system.src.js"&gt;&lt;/script&gt;
  
    &lt;script&gt;
      System.import('system-config.js').then(function() {
        System.import('main');
      }).catch(console.error.bind(console));
    &lt;/script&gt;
  &lt;/body&gt;
  
  &lt;/html&gt;
  </code></pre>
  
  <p>As you can see I have tried all combinations of es5-shim, es6-shim, shims for IE, core-js shim etc. Does not seem to make any difference.. </p>
  
  <p>tsconfig: </p>
  
  <pre><code>      "compileOnSave": false,
        "compilerOptions": {
          "declaration": false,
          "emitDecoratorMetadata": true,
          "experimentalDecorators": true,
          "mapRoot": "",
          "module": "commonjs",
          "moduleResolution": "node",
          "noEmitOnError": true,
          "noImplicitAny": false,
          "outDir": "../dist/",
          "rootDir": ".",
          "sourceMap": true,
          "target": "es5",
          "inlineSources": true
        },
  
  system-config.ts
  
  /***********************************************************************************************
   * User Configuration.
   **********************************************************************************************/
  /** Map relative paths to URLs. */
  const map: any = {
  };
  
  /** User packages configuration. */
  const packages: any = {
  };
  
  ////////////////////////////////////////////////////////////////////////////////////////////////
  /***********************************************************************************************
   * Everything underneath this line is managed by the CLI.
   **********************************************************************************************/
  const barrels: string[] = [
    // Angular specific barrels.
    '@angular/core',
    '@angular/common',
    '@angular/compiler',
    '@angular/http',
    '@angular/router',
    '@angular/platform-browser',
    '@angular/platform-browser-dynamic',
  
    // Thirdparty barrels.
    'rxjs',
  
    // translate
    'ng2-translate',
  
    // google-analytics
    'angulartics2',
  
    // App specific barrels.
    'app',
    'app/shared',
    'app/home',
    'app/_widgets/app-header/',
    'app/_widgets/menu-aside',
    'app/page2',
    'app/page3',
    'app/_widgets/alert',
    'app/_widgets/box',
    'app/_widgets/messages-box',
    'app/_widgets/notification-box',
    'app/_widgets/tasks-box',
    'app/_widgets/user-box',
    'app/_widgets/language-box',
    'app/profile',
    /** @cli-barrel */
  
  ];
  
  const cliSystemConfigPackages: any = {};
  barrels.forEach((barrelName: string) =&gt; {
    cliSystemConfigPackages[barrelName] = { main: 'index', "defaultExtension": "js" };
  });
  
  /** Type declaration for ambient System. */
  declare var System: any;
  
  // Apply the CLI SystemJS configuration.
  System.config({
    map: {
      '@angular': 'vendor/@angular',
      'rxjs': 'vendor/rxjs',
      'main': 'main.js',
      'ng2-translate': 'vendor/ng2-translate',
      'angulartics2': 'vendor/angulartics2'
    },
    packages: cliSystemConfigPackages
  });
  
  // Apply the user's configuration.
  System.config({map, packages });
  </code></pre>