While Angular 2 sample project is working fine on Internet Explore why there is a difference in IONIC 2 build , UI issue is fine but at least it should run the App without breaking.
Specifically its the shim for Object.name that helps this particular issue (during template compilation):
// function.name (all IE)
/*! @source http://stackoverflow.com/questions/6903762/function-name-not-supported-in-ie*/
if (!Object.hasOwnProperty('name')) {
Object.defineProperty(Function.prototype, 'name', {
get: function() {
var matches = this.toString().match(/^\s*function\s*(\S*)\s*\(/);
var name = matches && matches.length > 1 ? matches[1] : "";
// For better performance only parse once, and then cache the
// result through a new accessor for repeated access.
Object.defineProperty(this, 'name', {value: name});
return name;
}
});
}
As a follow up, the official Angular 2 way is to add core-js (from npm) then include
/node_modules/core-js/client/shim.min.js instead of other older IE shims (see https://angular.io/docs/ts/latest/quickstart.html)
By default your Ionic app will not support loading from node_modules so you can workaround by create a lib folder in your app www, then just copy shim.min.js into there and include /lib/shim.min.js. The proper method would be to adjust the build scripts.