loco-rails 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/loco/js_assets_structure/js_assets_structure_generator.rb +1 -1
  3. data/lib/loco/version.rb +1 -1
  4. data/test/dummy/bower.json +3 -3
  5. data/test/dummy/db/test.sqlite3 +0 -0
  6. data/test/dummy/log/development.log +914 -0
  7. data/test/dummy/log/test.log +14364 -0
  8. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1-WO2UjmfLs4SpjVZdSJGGMzBEsVGyxycwsDwVEQj1k.cache +0 -0
  9. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1lwmN4qs8MJAzC_yfG97s_SBsqDZ7S3tjAhKpSGRoPk.cache +0 -0
  10. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2W9ni6toILqWfZF81i5tLooI3KkJgLMV2Um69h4tACE.cache +0 -0
  11. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/888aULOiH1o8nErYVbar7so8TSiHMnVRkCJVrsFow-8.cache +1 -0
  12. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/C2zMBdauRoyKtP5-Hbx-3FKU63Wir8HxxhnsEQjnye4.cache +1 -0
  13. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KmN1A2cbnIa89JVXdNUnbxekW6XoG37uQ7TOrUmla6M.cache +1 -0
  14. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/N2LaSeSkH9O3-nDAwbgQ3fvF1RyzULzIdW9tRkCFdiE.cache +1 -0
  15. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NMX4CbiSfseLfHWah6QjF3ka-_q8iZ35lDHxpx5HZBc.cache +1 -0
  16. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/O97vuogdZekuQD9891VkdZtj2Ah9a6j_9SdFgHpRZPk.cache +3 -0
  17. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/RgNfOjSuRN575tirFTi553UywDtiZquNSKAUN4t_37E.cache +2 -0
  18. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/URfsWTq0WfX5JFf50HidIK1kGXYILlI3krzHQOlpGFw.cache +2 -0
  19. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UqKz2K55R9dWSo9wYoLdN5lxNUXJFqA_7eipeyHMqQc.cache +1 -0
  20. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WspjnlaWGkNP36-eIBusMx-VcvbF81RZ3L495DxSNNg.cache +1 -0
  21. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XUYO10EzvYAECtPUgdBF8rPWs9x6tndCxSwdhYWmDpQ.cache +1 -0
  22. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ckF-gg5mdNyYLK2tDms9BdsP1vFw5VYxZ11u7l8vzfc.cache +0 -0
  23. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cxoptH0sPRJzPLP351ISNHPjig_W2A_-5fLVnK3tFu0.cache +1 -0
  24. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/k5GkEt2yH5INFBgLUTsGEmzjRr5Ngh6FiXYfmbqh-Tg.cache +1 -0
  25. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zIWnum7SG2OPux4uomf0kHpIZ5Nl1NfTAoHCdkHwZIY.cache +0 -0
  26. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zgdP9EhEWd05XIYSWZx4uQKkuRklpRj6KiShg6HqIRo.cache +0 -0
  27. data/test/dummy/vendor/assets/bower_components/jquery/AUTHORS.txt +53 -24
  28. data/test/dummy/vendor/assets/bower_components/jquery/dist/core.js +481 -0
  29. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.js +2706 -3647
  30. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.min.js +4 -5
  31. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -1
  32. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.js +533 -444
  33. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.min.js +4 -4
  34. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.min.map +1 -1
  35. data/test/dummy/vendor/assets/bower_components/jquery/{sizzle → external/sizzle}/LICENSE.txt +0 -0
  36. data/test/dummy/vendor/assets/bower_components/jquery/{sizzle → external/sizzle}/dist/sizzle.js +154 -80
  37. data/test/dummy/vendor/assets/bower_components/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  38. data/test/dummy/vendor/assets/bower_components/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  39. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +5 -3
  40. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/load.js +3 -11
  41. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +9 -10
  42. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/script.js +26 -44
  43. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/location.js +2 -0
  44. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +2 -0
  45. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +2 -0
  46. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/xhr.js +138 -198
  47. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax.js +104 -91
  48. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/attr.js +23 -167
  49. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/classes.js +18 -13
  50. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/prop.js +9 -37
  51. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/support.js +12 -49
  52. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/val.js +21 -28
  53. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes.js +4 -2
  54. data/test/dummy/vendor/assets/bower_components/jquery/src/callbacks.js +5 -3
  55. data/test/dummy/vendor/assets/bower_components/jquery/src/core/DOMEval.js +2 -0
  56. data/test/dummy/vendor/assets/bower_components/jquery/src/core/access.js +8 -6
  57. data/test/dummy/vendor/assets/bower_components/jquery/src/core/init.js +13 -26
  58. data/test/dummy/vendor/assets/bower_components/jquery/src/core/parseHTML.js +32 -8
  59. data/test/dummy/vendor/assets/bower_components/jquery/src/core/ready-no-deferred.js +111 -0
  60. data/test/dummy/vendor/assets/bower_components/jquery/src/core/ready.js +32 -100
  61. data/test/dummy/vendor/assets/bower_components/jquery/src/core/readyException.js +13 -0
  62. data/test/dummy/vendor/assets/bower_components/jquery/src/core/support.js +3 -1
  63. data/test/dummy/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +2 -1
  64. data/test/dummy/vendor/assets/bower_components/jquery/src/core.js +71 -119
  65. data/test/dummy/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +2 -0
  66. data/test/dummy/vendor/assets/bower_components/jquery/src/css/adjustCSS.js +8 -2
  67. data/test/dummy/vendor/assets/bower_components/jquery/src/css/curCSS.js +34 -112
  68. data/test/dummy/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +7 -28
  69. data/test/dummy/vendor/assets/bower_components/jquery/src/css/showHide.js +69 -9
  70. data/test/dummy/vendor/assets/bower_components/jquery/src/css/support.js +48 -142
  71. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +2 -0
  72. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +3 -1
  73. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  74. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +2 -0
  75. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +2 -0
  76. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/swap.js +2 -0
  77. data/test/dummy/vendor/assets/bower_components/jquery/src/css.js +71 -223
  78. data/test/dummy/vendor/assets/bower_components/jquery/src/data/Data.js +24 -63
  79. data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/acceptData.js +11 -12
  80. data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/dataPriv.js +2 -0
  81. data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/dataUser.js +2 -0
  82. data/test/dummy/vendor/assets/bower_components/jquery/src/data.js +66 -247
  83. data/test/dummy/vendor/assets/bower_components/jquery/src/deferred/exceptionHook.js +4 -2
  84. data/test/dummy/vendor/assets/bower_components/jquery/src/deferred.js +290 -60
  85. data/test/dummy/vendor/assets/bower_components/jquery/src/deprecated.js +4 -8
  86. data/test/dummy/vendor/assets/bower_components/jquery/src/dimensions.js +9 -9
  87. data/test/dummy/vendor/assets/bower_components/jquery/src/effects/Tween.js +11 -9
  88. data/test/dummy/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +3 -1
  89. data/test/dummy/vendor/assets/bower_components/jquery/src/effects.js +183 -135
  90. data/test/dummy/vendor/assets/bower_components/jquery/src/event/ajax.js +2 -0
  91. data/test/dummy/vendor/assets/bower_components/jquery/src/event/alias.js +7 -3
  92. data/test/dummy/vendor/assets/bower_components/jquery/src/event/focusin.js +5 -3
  93. data/test/dummy/vendor/assets/bower_components/jquery/src/event/support.js +3 -20
  94. data/test/dummy/vendor/assets/bower_components/jquery/src/event/trigger.js +4 -18
  95. data/test/dummy/vendor/assets/bower_components/jquery/src/event.js +145 -553
  96. data/test/dummy/vendor/assets/bower_components/jquery/src/exports/amd.js +2 -0
  97. data/test/dummy/vendor/assets/bower_components/jquery/src/exports/global.js +10 -2
  98. data/test/dummy/vendor/assets/bower_components/jquery/src/jquery.js +4 -1
  99. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +2 -0
  100. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/buildFragment.js +22 -75
  101. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/getAll.js +9 -19
  102. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/setGlobalEval.js +11 -8
  103. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/support.js +13 -50
  104. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +2 -0
  105. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rscriptType.js +2 -0
  106. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rtagName.js +3 -1
  107. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/wrapMap.js +11 -12
  108. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation.js +104 -203
  109. data/test/dummy/vendor/assets/bower_components/jquery/src/offset.js +64 -51
  110. data/test/dummy/vendor/assets/bower_components/jquery/src/queue/delay.js +3 -1
  111. data/test/dummy/vendor/assets/bower_components/jquery/src/queue.js +12 -11
  112. data/test/dummy/vendor/assets/bower_components/jquery/src/selector-native.js +29 -3
  113. data/test/dummy/vendor/assets/bower_components/jquery/src/selector-sizzle.js +5 -0
  114. data/test/dummy/vendor/assets/bower_components/jquery/src/selector.js +3 -1
  115. data/test/dummy/vendor/assets/bower_components/jquery/src/serialize.js +13 -12
  116. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +9 -10
  117. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/dir.js +2 -0
  118. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +2 -0
  119. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/siblings.js +2 -0
  120. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing.js +36 -37
  121. data/test/dummy/vendor/assets/bower_components/jquery/src/var/ObjectFunctionString.js +7 -0
  122. data/test/dummy/vendor/assets/bower_components/jquery/src/var/arr.js +2 -0
  123. data/test/dummy/vendor/assets/bower_components/jquery/src/var/class2type.js +1 -0
  124. data/test/dummy/vendor/assets/bower_components/jquery/src/var/concat.js +5 -3
  125. data/test/dummy/vendor/assets/bower_components/jquery/src/var/document.js +2 -0
  126. data/test/dummy/vendor/assets/bower_components/jquery/src/var/documentElement.js +2 -0
  127. data/test/dummy/vendor/assets/bower_components/jquery/src/var/fnToString.js +7 -0
  128. data/test/dummy/vendor/assets/bower_components/jquery/src/var/getProto.js +5 -0
  129. data/test/dummy/vendor/assets/bower_components/jquery/src/var/hasOwn.js +2 -0
  130. data/test/dummy/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -3
  131. data/test/dummy/vendor/assets/bower_components/jquery/src/var/pnum.js +2 -0
  132. data/test/dummy/vendor/assets/bower_components/jquery/src/var/push.js +5 -3
  133. data/test/dummy/vendor/assets/bower_components/jquery/src/var/rcssNum.js +2 -0
  134. data/test/dummy/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +2 -0
  135. data/test/dummy/vendor/assets/bower_components/jquery/src/var/slice.js +5 -3
  136. data/test/dummy/vendor/assets/bower_components/jquery/src/var/support.js +1 -0
  137. data/test/dummy/vendor/assets/bower_components/jquery/src/var/toString.js +2 -0
  138. data/test/dummy/vendor/assets/bower_components/jquery/src/wrap.js +14 -14
  139. data/test/dummy/vendor/assets/bower_components/lie/bower.json +1 -1
  140. data/test/dummy/vendor/assets/bower_components/lie/component.json +1 -1
  141. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.js +80 -80
  142. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.min.js +1 -1
  143. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.polyfill.js +9 -9
  144. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.polyfill.min.js +1 -1
  145. data/test/dummy/vendor/assets/bower_components/lie/lib/browser.js +253 -0
  146. data/test/dummy/vendor/assets/bower_components/lie/lib/index.js +5 -5
  147. data/test/dummy/vendor/assets/bower_components/lie/package.json +28 -19
  148. data/test/dummy/vendor/assets/bower_components/lie/src/index.js +278 -0
  149. metadata +62 -36
  150. data/test/dummy/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.js +0 -3
  151. data/test/dummy/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.map +0 -1
  152. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +0 -53
  153. data/test/dummy/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +0 -72
  154. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +0 -16
  155. data/test/dummy/vendor/assets/bower_components/jquery/src/data/accepts.js +0 -20
  156. data/test/dummy/vendor/assets/bower_components/jquery/src/data/support.js +0 -23
  157. data/test/dummy/vendor/assets/bower_components/jquery/src/effects/support.js +0 -58
  158. data/test/dummy/vendor/assets/bower_components/jquery/src/intro.js +0 -44
  159. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/createSafeFragment.js +0 -20
  160. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/nodeNames.js +0 -5
  161. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js +0 -3
  162. data/test/dummy/vendor/assets/bower_components/jquery/src/outro.js +0 -2
  163. data/test/dummy/vendor/assets/bower_components/jquery/src/support.js +0 -63
  164. data/test/dummy/vendor/assets/bower_components/jquery/src/var/deletedIds.js +0 -3
@@ -0,0 +1,278 @@
1
+ 'use strict';
2
+ var immediate = require('immediate');
3
+
4
+ /* istanbul ignore next */
5
+ function INTERNAL() {}
6
+
7
+ var handlers = {};
8
+
9
+ var REJECTED = ['REJECTED'];
10
+ var FULFILLED = ['FULFILLED'];
11
+ var PENDING = ['PENDING'];
12
+ /* istanbul ignore else */
13
+ if (!process.browser) {
14
+ // in which we actually take advantage of JS scoping
15
+ var UNHANDLED = ['UNHANDLED'];
16
+ }
17
+
18
+ module.exports = Promise;
19
+
20
+ function Promise(resolver) {
21
+ if (typeof resolver !== 'function') {
22
+ throw new TypeError('resolver must be a function');
23
+ }
24
+ this.state = PENDING;
25
+ this.queue = [];
26
+ this.outcome = void 0;
27
+ /* istanbul ignore else */
28
+ if (!process.browser) {
29
+ this.handled = UNHANDLED;
30
+ }
31
+ if (resolver !== INTERNAL) {
32
+ safelyResolveThenable(this, resolver);
33
+ }
34
+ }
35
+
36
+ Promise.prototype.catch = function (onRejected) {
37
+ return this.then(null, onRejected);
38
+ };
39
+ Promise.prototype.then = function (onFulfilled, onRejected) {
40
+ if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||
41
+ typeof onRejected !== 'function' && this.state === REJECTED) {
42
+ return this;
43
+ }
44
+ var promise = new this.constructor(INTERNAL);
45
+ /* istanbul ignore else */
46
+ if (!process.browser) {
47
+ if (this.handled === UNHANDLED) {
48
+ this.handled = null;
49
+ }
50
+ }
51
+ if (this.state !== PENDING) {
52
+ var resolver = this.state === FULFILLED ? onFulfilled : onRejected;
53
+ unwrap(promise, resolver, this.outcome);
54
+ } else {
55
+ this.queue.push(new QueueItem(promise, onFulfilled, onRejected));
56
+ }
57
+
58
+ return promise;
59
+ };
60
+ function QueueItem(promise, onFulfilled, onRejected) {
61
+ this.promise = promise;
62
+ if (typeof onFulfilled === 'function') {
63
+ this.onFulfilled = onFulfilled;
64
+ this.callFulfilled = this.otherCallFulfilled;
65
+ }
66
+ if (typeof onRejected === 'function') {
67
+ this.onRejected = onRejected;
68
+ this.callRejected = this.otherCallRejected;
69
+ }
70
+ }
71
+ QueueItem.prototype.callFulfilled = function (value) {
72
+ handlers.resolve(this.promise, value);
73
+ };
74
+ QueueItem.prototype.otherCallFulfilled = function (value) {
75
+ unwrap(this.promise, this.onFulfilled, value);
76
+ };
77
+ QueueItem.prototype.callRejected = function (value) {
78
+ handlers.reject(this.promise, value);
79
+ };
80
+ QueueItem.prototype.otherCallRejected = function (value) {
81
+ unwrap(this.promise, this.onRejected, value);
82
+ };
83
+
84
+ function unwrap(promise, func, value) {
85
+ immediate(function () {
86
+ var returnValue;
87
+ try {
88
+ returnValue = func(value);
89
+ } catch (e) {
90
+ return handlers.reject(promise, e);
91
+ }
92
+ if (returnValue === promise) {
93
+ handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));
94
+ } else {
95
+ handlers.resolve(promise, returnValue);
96
+ }
97
+ });
98
+ }
99
+
100
+ handlers.resolve = function (self, value) {
101
+ var result = tryCatch(getThen, value);
102
+ if (result.status === 'error') {
103
+ return handlers.reject(self, result.value);
104
+ }
105
+ var thenable = result.value;
106
+
107
+ if (thenable) {
108
+ safelyResolveThenable(self, thenable);
109
+ } else {
110
+ self.state = FULFILLED;
111
+ self.outcome = value;
112
+ var i = -1;
113
+ var len = self.queue.length;
114
+ while (++i < len) {
115
+ self.queue[i].callFulfilled(value);
116
+ }
117
+ }
118
+ return self;
119
+ };
120
+ handlers.reject = function (self, error) {
121
+ self.state = REJECTED;
122
+ self.outcome = error;
123
+ /* istanbul ignore else */
124
+ if (!process.browser) {
125
+ if (self.handled === UNHANDLED) {
126
+ immediate(function () {
127
+ if (self.handled === UNHANDLED) {
128
+ process.emit('unhandledRejection', error, self);
129
+ }
130
+ });
131
+ }
132
+ }
133
+ var i = -1;
134
+ var len = self.queue.length;
135
+ while (++i < len) {
136
+ self.queue[i].callRejected(error);
137
+ }
138
+ return self;
139
+ };
140
+
141
+ function getThen(obj) {
142
+ // Make sure we only access the accessor once as required by the spec
143
+ var then = obj && obj.then;
144
+ if (obj && typeof obj === 'object' && typeof then === 'function') {
145
+ return function appyThen() {
146
+ then.apply(obj, arguments);
147
+ };
148
+ }
149
+ }
150
+
151
+ function safelyResolveThenable(self, thenable) {
152
+ // Either fulfill, reject or reject with error
153
+ var called = false;
154
+ function onError(value) {
155
+ if (called) {
156
+ return;
157
+ }
158
+ called = true;
159
+ handlers.reject(self, value);
160
+ }
161
+
162
+ function onSuccess(value) {
163
+ if (called) {
164
+ return;
165
+ }
166
+ called = true;
167
+ handlers.resolve(self, value);
168
+ }
169
+
170
+ function tryToUnwrap() {
171
+ thenable(onSuccess, onError);
172
+ }
173
+
174
+ var result = tryCatch(tryToUnwrap);
175
+ if (result.status === 'error') {
176
+ onError(result.value);
177
+ }
178
+ }
179
+
180
+ function tryCatch(func, value) {
181
+ var out = {};
182
+ try {
183
+ out.value = func(value);
184
+ out.status = 'success';
185
+ } catch (e) {
186
+ out.status = 'error';
187
+ out.value = e;
188
+ }
189
+ return out;
190
+ }
191
+
192
+ Promise.resolve = resolve;
193
+ function resolve(value) {
194
+ if (value instanceof this) {
195
+ return value;
196
+ }
197
+ return handlers.resolve(new this(INTERNAL), value);
198
+ }
199
+
200
+ Promise.reject = reject;
201
+ function reject(reason) {
202
+ var promise = new this(INTERNAL);
203
+ return handlers.reject(promise, reason);
204
+ }
205
+
206
+ Promise.all = all;
207
+ function all(iterable) {
208
+ var self = this;
209
+ if (Object.prototype.toString.call(iterable) !== '[object Array]') {
210
+ return this.reject(new TypeError('must be an array'));
211
+ }
212
+
213
+ var len = iterable.length;
214
+ var called = false;
215
+ if (!len) {
216
+ return this.resolve([]);
217
+ }
218
+
219
+ var values = new Array(len);
220
+ var resolved = 0;
221
+ var i = -1;
222
+ var promise = new this(INTERNAL);
223
+
224
+ while (++i < len) {
225
+ allResolver(iterable[i], i);
226
+ }
227
+ return promise;
228
+ function allResolver(value, i) {
229
+ self.resolve(value).then(resolveFromAll, function (error) {
230
+ if (!called) {
231
+ called = true;
232
+ handlers.reject(promise, error);
233
+ }
234
+ });
235
+ function resolveFromAll(outValue) {
236
+ values[i] = outValue;
237
+ if (++resolved === len && !called) {
238
+ called = true;
239
+ handlers.resolve(promise, values);
240
+ }
241
+ }
242
+ }
243
+ }
244
+
245
+ Promise.race = race;
246
+ function race(iterable) {
247
+ var self = this;
248
+ if (Object.prototype.toString.call(iterable) !== '[object Array]') {
249
+ return this.reject(new TypeError('must be an array'));
250
+ }
251
+
252
+ var len = iterable.length;
253
+ var called = false;
254
+ if (!len) {
255
+ return this.resolve([]);
256
+ }
257
+
258
+ var i = -1;
259
+ var promise = new this(INTERNAL);
260
+
261
+ while (++i < len) {
262
+ resolver(iterable[i]);
263
+ }
264
+ return promise;
265
+ function resolver(value) {
266
+ self.resolve(value).then(function (response) {
267
+ if (!called) {
268
+ called = true;
269
+ handlers.resolve(promise, response);
270
+ }
271
+ }, function (error) {
272
+ if (!called) {
273
+ called = true;
274
+ handlers.reject(promise, error);
275
+ }
276
+ });
277
+ }
278
+ }