Skip to content
This repository has been archived by the owner on Oct 9, 2020. It is now read-only.

Commit

Permalink
Fixing #559 - IE11 runtime error in static/sfx builds.
Browse files Browse the repository at this point in the history
  • Loading branch information
joeldenning committed Apr 19, 2016
1 parent 104ff4f commit 601f549
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 20 deletions.
34 changes: 25 additions & 9 deletions templates/sfx-core-register.js
Original file line number Diff line number Diff line change
Expand Up @@ -139,19 +139,17 @@
var esModule = {};
// don't trigger getters/setters in environments that support them
if (typeof exports == 'object' || typeof exports == 'function') {
var hasOwnProperty = exports && exports.hasOwnProperty;
if (getOwnPropertyDescriptor) {
var d;
for (var p in exports)
if (d = Object.getOwnPropertyDescriptor(exports, p))
defineProperty(esModule, p, d);
}
else {
var hasOwnProperty = exports && exports.hasOwnProperty;
for (var p in exports) {
if (!hasOwnProperty || exports.hasOwnProperty(p))
esModule[p] = exports[p];
if (!trySilentDefineProperty(esModule, exports, p))
setPropertyIfHasOwnProperty(esModule, exports, p, hasOwnProperty);
}
}
else {
for (var p in exports)
setPropertyIfHasOwnProperty(esModule, exports, p, hasOwnProperty);
}
}
esModule['default'] = exports;
defineProperty(esModule, '__useDefault', {
Expand All @@ -160,6 +158,24 @@
return esModule;
}

function setPropertyIfHasOwnProperty(targetObj, sourceObj, propName, hasOwnProperty) {
if (!hasOwnProperty || sourceObj.hasOwnProperty(propName))
targetObj[propName] = sourceObj[propName];
}

function trySilentDefineProperty(targetObj, sourceObj, propName) {
try {
var d;
if (d = Object.getOwnPropertyDescriptor(sourceObj, propName))
defineProperty(targetObj, propName, d);

return true;
} catch (ex) {
// Object.getOwnPropertyDescriptor threw an exception, fall back to normal set property.
return false;
}
}

/*
* Given a module, and the list of modules for this current branch,
* ensure that each of the dependencies of this module is evaluated
Expand Down
36 changes: 25 additions & 11 deletions templates/sfx-core.js
Original file line number Diff line number Diff line change
Expand Up @@ -288,24 +288,20 @@

// converts any module.exports object into an object ready for SystemJS.newModule
function getESModule(exports) {
if (exports === global)
return exports;
var esModule = {};
// don't trigger getters/setters in environments that support them
if (typeof exports == 'object' || typeof exports == 'function') {
var hasOwnProperty = exports && exports.hasOwnProperty;
if (getOwnPropertyDescriptor) {
var d;
for (var p in exports)
if (d = Object.getOwnPropertyDescriptor(exports, p))
defineProperty(esModule, p, d);
}
else {
var hasOwnProperty = exports && exports.hasOwnProperty;
for (var p in exports) {
if (!hasOwnProperty || exports.hasOwnProperty(p))
esModule[p] = exports[p];
if (!trySilentDefineProperty(esModule, exports, p))
setPropertyIfHasOwnProperty(esModule, exports, p, hasOwnProperty);
}
}
else {
for (var p in exports)
setPropertyIfHasOwnProperty(esModule, exports, p, hasOwnProperty);
}
}
esModule['default'] = exports;
defineProperty(esModule, '__useDefault', {
Expand All @@ -314,6 +310,24 @@
return esModule;
}

function setPropertyIfHasOwnProperty(targetObj, sourceObj, propName, hasOwnProperty) {
if (!hasOwnProperty || sourceObj.hasOwnProperty(propName))
targetObj[propName] = sourceObj[propName];
}

function trySilentDefineProperty(targetObj, sourceObj, propName) {
try {
var d;
if (d = Object.getOwnPropertyDescriptor(sourceObj, propName))
defineProperty(targetObj, propName, d);

return true;
} catch (ex) {
// Object.getOwnPropertyDescriptor threw an exception, fall back to normal set property.
return false;
}
}

/*
* Given a module, and the list of modules for this current branch,
* ensure that each of the dependencies of this module is evaluated
Expand Down

0 comments on commit 601f549

Please sign in to comment.