lfr-amd-loader
Version:
AMD Loader with support for combo URL and conditional loading
275 lines (273 loc) • 8.6 kB
JavaScript
/*!
* @overview es6-promise - a tiny implementation of Promises/A+.
* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
* @license Licensed under MIT license
* See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE
* @version 2.0.0
*/
(function () {
function r(a, b) {
n[l] = a;
n[l + 1] = b;
l += 2;
2 === l && A()
}
function s(a) {
return "function" === typeof a
}
function F() {
return function () {
process.nextTick(t)
}
}
function G() {
var a = 0,
b = new B(t),
c = document.createTextNode("");
b.observe(c, {
characterData: !0
});
return function () {
c.data = a = ++a % 2
}
}
function H() {
var a = new MessageChannel;
a.port1.onmessage = t;
return function () {
a.port2.postMessage(0)
}
}
function I() {
return function () {
setTimeout(t, 1)
}
}
function t() {
for (var a = 0; a < l; a += 2)(0, n[a])(n[a + 1]), n[a] = void 0, n[a + 1] = void 0;
l = 0
}
function p() {}
function J(a, b, c, d) {
try {
a.call(b, c, d)
} catch (e) {
return e
}
}
function K(a, b, c) {
r(function (a) {
var e = !1,
f = J(c, b, function (c) {
e || (e = !0, b !== c ? q(a, c) : m(a, c))
}, function (b) {
e || (e = !0, g(a, b))
});
!e && f && (e = !0, g(a, f))
}, a)
}
function L(a, b) {
1 === b.a ? m(a, b.b) : 2 === a.a ? g(a, b.b) : u(b, void 0, function (b) {
q(a, b)
}, function (b) {
g(a, b)
})
}
function q(a, b) {
if (a === b) g(a, new TypeError("You cannot resolve a promise with itself"));
else if ("function" === typeof b || "object" === typeof b && null !== b) if (b.constructor === a.constructor) L(a, b);
else {
var c;
try {
c = b.then
} catch (d) {
v.error = d, c = v
}
c === v ? g(a, v.error) : void 0 === c ? m(a, b) : s(c) ? K(a, b, c) : m(a, b)
} else m(a, b)
}
function M(a) {
a.f && a.f(a.b);
x(a)
}
function m(a, b) {
void 0 === a.a && (a.b = b, a.a = 1, 0 !== a.e.length && r(x, a))
}
function g(a, b) {
void 0 === a.a && (a.a = 2, a.b = b, r(M, a))
}
function u(a, b, c, d) {
var e = a.e,
f = e.length;
a.f = null;
e[f] = b;
e[f + 1] = c;
e[f + 2] = d;
0 === f && a.a && r(x, a)
}
function x(a) {
var b = a.e,
c = a.a;
if (0 !== b.length) {
for (var d, e, f = a.b, g = 0; g < b.length; g += 3) d = b[g], e = b[g + c], d ? C(c, d, e, f) : e(f);
a.e.length = 0
}
}
function D() {
this.error =
null
}
function C(a, b, c, d) {
var e = s(c),
f, k, h, l;
if (e) {
try {
f = c(d)
} catch (n) {
y.error = n, f = y
}
f === y ? (l = !0, k = f.error, f = null) : h = !0;
if (b === f) {
g(b, new TypeError("A promises callback cannot return that same promise."));
return
}
} else f = d, h = !0;
void 0 === b.a && (e && h ? q(b, f) : l ? g(b, k) : 1 === a ? m(b, f) : 2 === a && g(b, f))
}
function N(a, b) {
try {
b(function (b) {
q(a, b)
}, function (b) {
g(a, b)
})
} catch (c) {
g(a, c)
}
}
function k(a, b, c, d) {
this.n = a;
this.c = new a(p, d);
this.i = c;
this.o(b) ? (this.m = b, this.d = this.length = b.length, this.l(), 0 === this.length ? m(this.c, this.b) : (this.length = this.length || 0, this.k(), 0 === this.d && m(this.c, this.b))) : g(this.c, this.p())
}
function h(a) {
O++;
this.b = this.a = void 0;
this.e = [];
if (p !== a) {
if (!s(a)) throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");
if (!(this instanceof h)) throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
N(this, a)
}
}
var E = Array.isArray ? Array.isArray : function (a) {
return "[object Array]" === Object.prototype.toString.call(a)
},
l = 0,
w = "undefined" !== typeof window ? window : {},
B = w.MutationObserver || w.WebKitMutationObserver,
w = "undefined" !== typeof Uint8ClampedArray && "undefined" !== typeof importScripts && "undefined" !== typeof MessageChannel,
n = Array(1E3),
A;
A = "undefined" !== typeof process && "[object process]" === {}.toString.call(process) ? F() : B ? G() : w ? H() : I();
var v = new D,
y = new D;
k.prototype.o = function (a) {
return E(a)
};
k.prototype.p = function () {
return Error("Array Methods must be provided an Array")
};
k.prototype.l =
function () {
this.b = Array(this.length)
};
k.prototype.k = function () {
for (var a = this.length, b = this.c, c = this.m, d = 0; void 0 === b.a && d < a; d++) this.j(c[d], d)
};
k.prototype.j = function (a, b) {
var c = this.n;
"object" === typeof a && null !== a ? a.constructor === c && void 0 !== a.a ? (a.f = null, this.g(a.a, b, a.b)) : this.q(c.resolve(a), b) : (this.d--, this.b[b] = this.h(a))
};
k.prototype.g = function (a, b, c) {
var d = this.c;
void 0 === d.a && (this.d--, this.i && 2 === a ? g(d, c) : this.b[b] = this.h(c));
0 === this.d && m(d, this.b)
};
k.prototype.h = function (a) {
return a
};
k.prototype.q = function (a, b) {
var c = this;
u(a, void 0, function (a) {
c.g(1, b, a)
}, function (a) {
c.g(2, b, a)
})
};
var O = 0;
h.all = function (a, b) {
return (new k(this, a, !0, b)).c
};
h.race = function (a, b) {
function c(a) {
q(e, a)
}
function d(a) {
g(e, a)
}
var e = new this(p, b);
if (!E(a)) return (g(e, new TypeError("You must pass an array to race.")), e);
for (var f = a.length, h = 0; void 0 === e.a && h < f; h++) u(this.resolve(a[h]), void 0, c, d);
return e
};
h.resolve = function (a, b) {
if (a && "object" === typeof a && a.constructor === this) return a;
var c = new this(p, b);
q(c, a);
return c
};
h.reject = function (a, b) {
var c = new this(p, b);
g(c, a);
return c
};
h.prototype = {
constructor: h,
then: function (a, b) {
var c = this.a;
if (1 === c && !a || 2 === c && !b) return this;
var d = new this.constructor(p),
e = this.b;
if (c) {
var f = arguments[c - 1];
r(function () {
C(c, d, f, e)
})
} else u(this, d, a, b);
return d
},
"catch": function (a) {
return this.then(null, a)
}
};
var z = {
Promise: h,
polyfill: function () {
var a;
a = "undefined" !== typeof global ? global : "undefined" !== typeof window && window.document ? window : self;
"Promise" in a && "resolve" in a.Promise && "reject" in a.Promise && "all" in a.Promise && "race" in a.Promise &&
function () {
var b;
new a.Promise(function (a) {
b = a
});
return s(b)
}() || (a.Promise = h)
}
};
"function" === typeof define && define.amd ? define(function () {
return z
}) : "undefined" !== typeof module && module.exports ? module.exports = z : "undefined" !== typeof this && (this.ES6Promise = z)
}).call(this);