es6_promise_polyfill_rails 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d8e87e653f1cf427d1a1b7939ea7a1b31ed828b7
4
- data.tar.gz: 6cb8a938f752182228eccd12d9e7ecaffa87b745
3
+ metadata.gz: 8e625b83fd4805120089c9832bef53ae8cb10295
4
+ data.tar.gz: eb0a00f7a1c875758f43d13a0ba6c0e91d84b097
5
5
  SHA512:
6
- metadata.gz: 321d82ef803140309730c790be3e2281931febb64ef39f3ecc648a3d5ab24fdbfdb5429f58f45573c5ee7721e11985345ea29a961a5a06d2f9c55a0d6fb6fb75
7
- data.tar.gz: b44de0750060847c9ae71511837eee79ff70819c0aa9f0199994f71d55200ccec98c1db8a32f5698ec52f1a1dbe29ac51c84aa57f47719b17e288e4d412d3f21
6
+ metadata.gz: ad4677ea51521d2e6d9b544368981fffc5535bed892c2c5d34fd3b13406887380d20d25210134f73737236fa7de0ecaa71fc986daa58b415ba15b9ccf352e72e
7
+ data.tar.gz: 0de03d428c4a58771b4e50a4d4348ca4b85bb523b98aa8b0ceff360917380940068b119376319463c719c2acb10093fc04af67f83a73318ed9b950bd6568a500
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- es6_promise_polyfill_rails (0.1.0)
4
+ es6_promise_polyfill_rails (0.1.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -14,9 +14,9 @@ PLATFORMS
14
14
 
15
15
  DEPENDENCIES
16
16
  bundler (~> 1.11)
17
+ es6_promise_polyfill_rails!
17
18
  minitest (~> 5.0)
18
19
  rake (~> 10.0)
19
- es6_promise_polyfill_rails!
20
20
 
21
21
  BUNDLED WITH
22
22
  1.11.2
@@ -1,230 +1,231 @@
1
- (function (root) {
2
- if(typeof Promise == 'function'){ return }
3
- // Store setTimeout reference so promise-polyfill will be unaffected by
4
- // other code modifying setTimeout (like sinon.useFakeTimers())
5
- var setTimeoutFunc = setTimeout;
6
-
7
- function noop() {
8
- }
9
-
10
- // Use polyfill for setImmediate for performance gains
11
- var asap = (typeof setImmediate === 'function' && setImmediate) ||
12
- function (fn) {
13
- setTimeoutFunc(fn, 1);
14
- };
1
+ if(typeof Promise != 'function'){
2
+ (function (root) {
3
+ // Store setTimeout reference so promise-polyfill will be unaffected by
4
+ // other code modifying setTimeout (like sinon.useFakeTimers())
5
+ var setTimeoutFunc = setTimeout;
6
+
7
+ function noop() {
8
+ }
15
9
 
16
- var onUnhandledRejection = function onUnhandledRejection(err) {
17
- console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console
18
- };
10
+ // Use polyfill for setImmediate for performance gains
11
+ var asap = (typeof setImmediate === 'function' && setImmediate) ||
12
+ function (fn) {
13
+ setTimeoutFunc(fn, 1);
14
+ };
19
15
 
20
- // Polyfill for Function.prototype.bind
21
- function bind(fn, thisArg) {
22
- return function () {
23
- fn.apply(thisArg, arguments);
16
+ var onUnhandledRejection = function onUnhandledRejection(err) {
17
+ console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console
24
18
  };
25
- }
26
-
27
- var isArray = Array.isArray || function (value) {
28
- return Object.prototype.toString.call(value) === '[object Array]';
29
- };
30
-
31
- function Promise(fn) {
32
- if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');
33
- if (typeof fn !== 'function') throw new TypeError('not a function');
34
- this._state = 0;
35
- this._handled = false;
36
- this._value = undefined;
37
- this._deferreds = [];
38
-
39
- doResolve(fn, this);
40
- }
41
-
42
- function handle(self, deferred) {
43
- while (self._state === 3) {
44
- self = self._value;
19
+
20
+ // Polyfill for Function.prototype.bind
21
+ function bind(fn, thisArg) {
22
+ return function () {
23
+ fn.apply(thisArg, arguments);
24
+ };
45
25
  }
46
- if (self._state === 0) {
47
- self._deferreds.push(deferred);
48
- return;
26
+
27
+ var isArray = Array.isArray || function (value) {
28
+ return Object.prototype.toString.call(value) === '[object Array]';
29
+ };
30
+
31
+ function Promise(fn) {
32
+ if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');
33
+ if (typeof fn !== 'function') throw new TypeError('not a function');
34
+ this._state = 0;
35
+ this._handled = false;
36
+ this._value = undefined;
37
+ this._deferreds = [];
38
+
39
+ doResolve(fn, this);
49
40
  }
50
- self._handled = true;
51
- asap(function () {
52
- var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;
53
- if (cb === null) {
54
- (self._state === 1 ? resolve : reject)(deferred.promise, self._value);
55
- return;
41
+
42
+ function handle(self, deferred) {
43
+ while (self._state === 3) {
44
+ self = self._value;
56
45
  }
57
- var ret;
58
- try {
59
- ret = cb(self._value);
60
- } catch (e) {
61
- reject(deferred.promise, e);
46
+ if (self._state === 0) {
47
+ self._deferreds.push(deferred);
62
48
  return;
63
49
  }
64
- resolve(deferred.promise, ret);
65
- });
66
- }
67
-
68
- function resolve(self, newValue) {
69
- try {
70
- // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
71
- if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');
72
- if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
73
- var then = newValue.then;
74
- if (newValue instanceof Promise) {
75
- self._state = 3;
76
- self._value = newValue;
77
- finale(self);
50
+ self._handled = true;
51
+ asap(function () {
52
+ var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;
53
+ if (cb === null) {
54
+ (self._state === 1 ? resolve : reject)(deferred.promise, self._value);
78
55
  return;
79
- } else if (typeof then === 'function') {
80
- doResolve(bind(then, newValue), self);
56
+ }
57
+ var ret;
58
+ try {
59
+ ret = cb(self._value);
60
+ } catch (e) {
61
+ reject(deferred.promise, e);
81
62
  return;
82
63
  }
64
+ resolve(deferred.promise, ret);
65
+ });
66
+ }
67
+
68
+ function resolve(self, newValue) {
69
+ try {
70
+ // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
71
+ if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');
72
+ if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
73
+ var then = newValue.then;
74
+ if (newValue instanceof Promise) {
75
+ self._state = 3;
76
+ self._value = newValue;
77
+ finale(self);
78
+ return;
79
+ } else if (typeof then === 'function') {
80
+ doResolve(bind(then, newValue), self);
81
+ return;
82
+ }
83
+ }
84
+ self._state = 1;
85
+ self._value = newValue;
86
+ finale(self);
87
+ } catch (e) {
88
+ reject(self, e);
83
89
  }
84
- self._state = 1;
90
+ }
91
+
92
+ function reject(self, newValue) {
93
+ self._state = 2;
85
94
  self._value = newValue;
86
95
  finale(self);
87
- } catch (e) {
88
- reject(self, e);
89
96
  }
90
- }
91
-
92
- function reject(self, newValue) {
93
- self._state = 2;
94
- self._value = newValue;
95
- finale(self);
96
- }
97
-
98
- function finale(self) {
99
- if (self._state === 2 && self._deferreds.length === 0) {
100
- setTimeout(function() {
101
- if (!self._handled) {
102
- onUnhandledRejection(self._value);
103
- }
104
- }, 1);
97
+
98
+ function finale(self) {
99
+ if (self._state === 2 && self._deferreds.length === 0) {
100
+ setTimeout(function() {
101
+ if (!self._handled) {
102
+ onUnhandledRejection(self._value);
103
+ }
104
+ }, 1);
105
+ }
106
+
107
+ for (var i = 0, len = self._deferreds.length; i < len; i++) {
108
+ handle(self, self._deferreds[i]);
109
+ }
110
+ self._deferreds = null;
105
111
  }
106
112
 
107
- for (var i = 0, len = self._deferreds.length; i < len; i++) {
108
- handle(self, self._deferreds[i]);
113
+ function Handler(onFulfilled, onRejected, promise) {
114
+ this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
115
+ this.onRejected = typeof onRejected === 'function' ? onRejected : null;
116
+ this.promise = promise;
109
117
  }
110
- self._deferreds = null;
111
- }
112
-
113
- function Handler(onFulfilled, onRejected, promise) {
114
- this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
115
- this.onRejected = typeof onRejected === 'function' ? onRejected : null;
116
- this.promise = promise;
117
- }
118
-
119
- /**
120
- * Take a potentially misbehaving resolver function and make sure
121
- * onFulfilled and onRejected are only called once.
122
- *
123
- * Makes no guarantees about asynchrony.
124
- */
125
- function doResolve(fn, self) {
126
- var done = false;
127
- try {
128
- fn(function (value) {
129
- if (done) return;
130
- done = true;
131
- resolve(self, value);
132
- }, function (reason) {
118
+
119
+ /**
120
+ * Take a potentially misbehaving resolver function and make sure
121
+ * onFulfilled and onRejected are only called once.
122
+ *
123
+ * Makes no guarantees about asynchrony.
124
+ */
125
+ function doResolve(fn, self) {
126
+ var done = false;
127
+ try {
128
+ fn(function (value) {
129
+ if (done) return;
130
+ done = true;
131
+ resolve(self, value);
132
+ }, function (reason) {
133
+ if (done) return;
134
+ done = true;
135
+ reject(self, reason);
136
+ });
137
+ } catch (ex) {
133
138
  if (done) return;
134
139
  done = true;
135
- reject(self, reason);
136
- });
137
- } catch (ex) {
138
- if (done) return;
139
- done = true;
140
- reject(self, ex);
140
+ reject(self, ex);
141
+ }
141
142
  }
142
- }
143
143
 
144
- Promise.prototype['catch'] = function (onRejected) {
145
- return this.then(null, onRejected);
146
- };
147
-
148
- Promise.prototype.then = function (onFulfilled, onRejected) {
149
- var prom = new Promise(noop);
150
- handle(this, new Handler(onFulfilled, onRejected, prom));
151
- return prom;
152
- };
153
-
154
- Promise.all = function () {
155
- var args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);
144
+ Promise.prototype['catch'] = function (onRejected) {
145
+ return this.then(null, onRejected);
146
+ };
156
147
 
157
- return new Promise(function (resolve, reject) {
158
- if (args.length === 0) return resolve([]);
159
- var remaining = args.length;
148
+ Promise.prototype.then = function (onFulfilled, onRejected) {
149
+ var prom = new Promise(noop);
150
+ handle(this, new Handler(onFulfilled, onRejected, prom));
151
+ return prom;
152
+ };
160
153
 
161
- function res(i, val) {
162
- try {
163
- if (val && (typeof val === 'object' || typeof val === 'function')) {
164
- var then = val.then;
165
- if (typeof then === 'function') {
166
- then.call(val, function (val) {
167
- res(i, val);
168
- }, reject);
169
- return;
154
+ Promise.all = function () {
155
+ var args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);
156
+
157
+ return new Promise(function (resolve, reject) {
158
+ if (args.length === 0) return resolve([]);
159
+ var remaining = args.length;
160
+
161
+ function res(i, val) {
162
+ try {
163
+ if (val && (typeof val === 'object' || typeof val === 'function')) {
164
+ var then = val.then;
165
+ if (typeof then === 'function') {
166
+ then.call(val, function (val) {
167
+ res(i, val);
168
+ }, reject);
169
+ return;
170
+ }
170
171
  }
172
+ args[i] = val;
173
+ if (--remaining === 0) {
174
+ resolve(args);
175
+ }
176
+ } catch (ex) {
177
+ reject(ex);
171
178
  }
172
- args[i] = val;
173
- if (--remaining === 0) {
174
- resolve(args);
175
- }
176
- } catch (ex) {
177
- reject(ex);
178
179
  }
179
- }
180
180
 
181
- for (var i = 0; i < args.length; i++) {
182
- res(i, args[i]);
181
+ for (var i = 0; i < args.length; i++) {
182
+ res(i, args[i]);
183
+ }
184
+ });
185
+ };
186
+
187
+ Promise.resolve = function (value) {
188
+ if (value && typeof value === 'object' && value.constructor === Promise) {
189
+ return value;
183
190
  }
184
- });
185
- };
186
191
 
187
- Promise.resolve = function (value) {
188
- if (value && typeof value === 'object' && value.constructor === Promise) {
189
- return value;
192
+ return new Promise(function (resolve) {
193
+ resolve(value);
194
+ });
195
+ };
196
+
197
+ Promise.reject = function (value) {
198
+ return new Promise(function (resolve, reject) {
199
+ reject(value);
200
+ });
201
+ };
202
+
203
+ Promise.race = function (values) {
204
+ return new Promise(function (resolve, reject) {
205
+ for (var i = 0, len = values.length; i < len; i++) {
206
+ values[i].then(resolve, reject);
207
+ }
208
+ });
209
+ };
210
+
211
+ /**
212
+ * Set the immediate function to execute callbacks
213
+ * @param fn {function} Function to execute
214
+ * @private
215
+ */
216
+ Promise._setImmediateFn = function _setImmediateFn(fn) {
217
+ asap = fn;
218
+ };
219
+
220
+ Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
221
+ onUnhandledRejection = fn;
222
+ };
223
+
224
+ if (typeof module !== 'undefined' && module.exports) {
225
+ module.exports = Promise;
226
+ } else if (!root.Promise) {
227
+ root.Promise = Promise;
190
228
  }
191
229
 
192
- return new Promise(function (resolve) {
193
- resolve(value);
194
- });
195
- };
196
-
197
- Promise.reject = function (value) {
198
- return new Promise(function (resolve, reject) {
199
- reject(value);
200
- });
201
- };
202
-
203
- Promise.race = function (values) {
204
- return new Promise(function (resolve, reject) {
205
- for (var i = 0, len = values.length; i < len; i++) {
206
- values[i].then(resolve, reject);
207
- }
208
- });
209
- };
210
-
211
- /**
212
- * Set the immediate function to execute callbacks
213
- * @param fn {function} Function to execute
214
- * @private
215
- */
216
- Promise._setImmediateFn = function _setImmediateFn(fn) {
217
- asap = fn;
218
- };
219
-
220
- Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
221
- onUnhandledRejection = fn;
222
- };
223
-
224
- if (typeof module !== 'undefined' && module.exports) {
225
- module.exports = Promise;
226
- } else if (!root.Promise) {
227
- root.Promise = Promise;
228
- }
229
-
230
- })(this);
230
+ })(this);
231
+ }
@@ -1,3 +1,3 @@
1
1
  module Es6PromisePolyfillRails
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: es6_promise_polyfill_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Greene