Well, it is clear that it will be reflective, as per previous discussions, which means we will end up with a `global.Loader` as a reference to `Reflect.Loader`, AFAIK.

But I think the real point here is that `system.js` should be relying on the `Loader` definition without worry whether or not it is a polyfill, and if a developer wants to patch it, or replace it, it should be ok.

In the polyfills, we normally do the patching or the runtime if needed, and define a global polyfill variable in case someone will want to use that instead of what is in the runtime, saying:

```loader.js
global.LoaderPolyfill = function () {};
if (!global.Loader) 
   global.Loader = global.LoaderPolyfill;
```

or


```promise.js
global.PromisePolyfill = function () {};
if (!global.Promise) 
   global.Loader = global.PromisePolyfill;
```

by doing that, developers will be able to force to use `LoaderPolyfill` instead of whatever is in `global.Loader` already if they feel that's the correct thing to do by doing.