Index: third_party/polymer/v1_0/components-chromium/promise-polyfill/Promise.js |
diff --git a/third_party/polymer/v1_0/components-chromium/promise-polyfill/Promise.js b/third_party/polymer/v1_0/components-chromium/promise-polyfill/Promise.js |
deleted file mode 100644 |
index dc6f58f1b22efaf547c5d205a0203732cf21f0dd..0000000000000000000000000000000000000000 |
--- a/third_party/polymer/v1_0/components-chromium/promise-polyfill/Promise.js |
+++ /dev/null |
@@ -1,128 +0,0 @@ |
-function MakePromise (asap) { |
- function Promise(fn) { |
- if (typeof this !== 'object' || typeof fn !== 'function') throw new TypeError(); |
- this._state = null; |
- this._value = null; |
- this._deferreds = [] |
- |
- doResolve(fn, resolve.bind(this), reject.bind(this)); |
- } |
- |
- function handle(deferred) { |
- var me = this; |
- if (this._state === null) { |
- this._deferreds.push(deferred); |
- return |
- } |
- asap(function() { |
- var cb = me._state ? deferred.onFulfilled : deferred.onRejected |
- if (typeof cb !== 'function') { |
- (me._state ? deferred.resolve : deferred.reject)(me._value); |
- return; |
- } |
- var ret; |
- try { |
- ret = cb(me._value); |
- } |
- catch (e) { |
- deferred.reject(e); |
- return; |
- } |
- deferred.resolve(ret); |
- }) |
- } |
- |
- function resolve(newValue) { |
- try { //Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure |
- if (newValue === this) throw new TypeError(); |
- if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) { |
- var then = newValue.then; |
- if (typeof then === 'function') { |
- doResolve(then.bind(newValue), resolve.bind(this), reject.bind(this)); |
- return; |
- } |
- } |
- this._state = true; |
- this._value = newValue; |
- finale.call(this); |
- } catch (e) { reject.call(this, e); } |
- } |
- |
- function reject(newValue) { |
- this._state = false; |
- this._value = newValue; |
- finale.call(this); |
- } |
- |
- function finale() { |
- for (var i = 0, len = this._deferreds.length; i < len; i++) { |
- handle.call(this, this._deferreds[i]); |
- } |
- this._deferreds = null; |
- } |
- |
- /** |
- * Take a potentially misbehaving resolver function and make sure |
- * onFulfilled and onRejected are only called once. |
- * |
- * Makes no guarantees about asynchrony. |
- */ |
- function doResolve(fn, onFulfilled, onRejected) { |
- var done = false; |
- try { |
- fn(function (value) { |
- if (done) return; |
- done = true; |
- onFulfilled(value); |
- }, function (reason) { |
- if (done) return; |
- done = true; |
- onRejected(reason); |
- }) |
- } catch (ex) { |
- if (done) return; |
- done = true; |
- onRejected(ex); |
- } |
- } |
- |
- Promise.prototype['catch'] = function (onRejected) { |
- return this.then(null, onRejected); |
- }; |
- |
- Promise.prototype.then = function(onFulfilled, onRejected) { |
- var me = this; |
- return new Promise(function(resolve, reject) { |
- handle.call(me, { |
- onFulfilled: onFulfilled, |
- onRejected: onRejected, |
- resolve: resolve, |
- reject: reject |
- }); |
- }) |
- }; |
- |
- Promise.resolve = function (value) { |
- if (value && typeof value === 'object' && value.constructor === Promise) { |
- return value; |
- } |
- |
- return new Promise(function (resolve) { |
- resolve(value); |
- }); |
- }; |
- |
- Promise.reject = function (value) { |
- return new Promise(function (resolve, reject) { |
- reject(value); |
- }); |
- }; |
- |
- |
- return Promise; |
-} |
- |
-if (typeof module !== 'undefined') { |
- module.exports = MakePromise; |
-} |
- |