@openedx/frontend-build 14.0.9 → 14.0.11

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.
Files changed (202) hide show
  1. package/package.json +11 -5
  2. package/.eslintignore +0 -5
  3. package/.eslintrc.js +0 -10
  4. package/.github/workflows/add-depr-ticket-to-depr-board.yml +0 -19
  5. package/.github/workflows/add-remove-label-on-comment.yml +0 -20
  6. package/.github/workflows/ci.yml +0 -30
  7. package/.github/workflows/commitlint.yml +0 -10
  8. package/.github/workflows/lockfileversion-check.yml +0 -13
  9. package/.github/workflows/release.yml +0 -34
  10. package/.github/workflows/self-assign-issue.yml +0 -12
  11. package/.github/workflows/sync-master-alpha.yml +0 -35
  12. package/.nvmrc +0 -1
  13. package/coverage/clover.xml +0 -6
  14. package/coverage/coverage-final.json +0 -1
  15. package/coverage/lcov-report/base.css +0 -224
  16. package/coverage/lcov-report/block-navigation.js +0 -87
  17. package/coverage/lcov-report/favicon.png +0 -0
  18. package/coverage/lcov-report/index.html +0 -101
  19. package/coverage/lcov-report/prettify.css +0 -1
  20. package/coverage/lcov-report/prettify.js +0 -2
  21. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  22. package/coverage/lcov-report/sorter.js +0 -196
  23. package/coverage/lcov.info +0 -0
  24. package/docs/0001-non-usage-of-gatsby.rst +0 -37
  25. package/docs/0002-js-environment-config.md +0 -47
  26. package/docs/0003-fedx-scripts-serve.md +0 -37
  27. package/example/.env +0 -0
  28. package/example/.env.development +0 -3
  29. package/example/.env.test +0 -2
  30. package/example/.eslintignore +0 -5
  31. package/example/.eslintrc.js +0 -3
  32. package/example/dist/1382e1cbf8d733d7301cdd212192bfea.jpg +0 -0
  33. package/example/dist/652.70be34739115e11aaeb3.js +0 -3
  34. package/example/dist/652.70be34739115e11aaeb3.js.LICENSE.txt +0 -41
  35. package/example/dist/652.70be34739115e11aaeb3.js.map +0 -1
  36. package/example/dist/app.09a2e8d2732091b5c03c.css +0 -3
  37. package/example/dist/app.09a2e8d2732091b5c03c.css.map +0 -1
  38. package/example/dist/app.09a2e8d2732091b5c03c.js +0 -2
  39. package/example/dist/app.09a2e8d2732091b5c03c.js.map +0 -1
  40. package/example/dist/babel/App.js +0 -94
  41. package/example/dist/babel/App.js.map +0 -1
  42. package/example/dist/babel/App.test.jsx +0 -11
  43. package/example/dist/babel/Image.tsx +0 -16
  44. package/example/dist/babel/__snapshots__/App.test.jsx.snap +0 -120
  45. package/example/dist/babel/apple.jpg +0 -0
  46. package/example/dist/babel/apple.svg +0 -1
  47. package/example/dist/babel/index.js +0 -13
  48. package/example/dist/babel/index.js.map +0 -1
  49. package/example/dist/babel/style.scss +0 -9
  50. package/example/dist/cb28cdb1468c915e27e5cec9af64f22f.svg +0 -1
  51. package/example/dist/index.html +0 -4
  52. package/example/dist/report.html +0 -39
  53. package/example/dist/runtime.40856db71d718a3e9d37.js +0 -2
  54. package/example/dist/runtime.40856db71d718a3e9d37.js.map +0 -1
  55. package/example/env.config.js +0 -6
  56. package/example/node_modules/.package-lock.json +0 -98
  57. package/example/node_modules/js-tokens/CHANGELOG.md +0 -151
  58. package/example/node_modules/js-tokens/LICENSE +0 -21
  59. package/example/node_modules/js-tokens/README.md +0 -240
  60. package/example/node_modules/js-tokens/index.js +0 -23
  61. package/example/node_modules/js-tokens/package.json +0 -30
  62. package/example/node_modules/loose-envify/LICENSE +0 -21
  63. package/example/node_modules/loose-envify/README.md +0 -45
  64. package/example/node_modules/loose-envify/cli.js +0 -16
  65. package/example/node_modules/loose-envify/custom.js +0 -4
  66. package/example/node_modules/loose-envify/index.js +0 -3
  67. package/example/node_modules/loose-envify/loose-envify.js +0 -36
  68. package/example/node_modules/loose-envify/package.json +0 -36
  69. package/example/node_modules/loose-envify/replace.js +0 -65
  70. package/example/node_modules/object-assign/index.js +0 -90
  71. package/example/node_modules/object-assign/license +0 -21
  72. package/example/node_modules/object-assign/package.json +0 -42
  73. package/example/node_modules/object-assign/readme.md +0 -61
  74. package/example/node_modules/prop-types/LICENSE +0 -21
  75. package/example/node_modules/prop-types/README.md +0 -302
  76. package/example/node_modules/prop-types/checkPropTypes.js +0 -103
  77. package/example/node_modules/prop-types/factory.js +0 -19
  78. package/example/node_modules/prop-types/factoryWithThrowingShims.js +0 -65
  79. package/example/node_modules/prop-types/factoryWithTypeCheckers.js +0 -610
  80. package/example/node_modules/prop-types/index.js +0 -19
  81. package/example/node_modules/prop-types/lib/ReactPropTypesSecret.js +0 -12
  82. package/example/node_modules/prop-types/lib/has.js +0 -1
  83. package/example/node_modules/prop-types/package.json +0 -60
  84. package/example/node_modules/prop-types/prop-types.js +0 -1315
  85. package/example/node_modules/prop-types/prop-types.min.js +0 -1
  86. package/example/node_modules/react/LICENSE +0 -21
  87. package/example/node_modules/react/README.md +0 -13
  88. package/example/node_modules/react/build-info.json +0 -8
  89. package/example/node_modules/react/cjs/react-jsx-dev-runtime.development.js +0 -889
  90. package/example/node_modules/react/cjs/react-jsx-dev-runtime.production.min.js +0 -9
  91. package/example/node_modules/react/cjs/react-jsx-runtime.development.js +0 -911
  92. package/example/node_modules/react/cjs/react-jsx-runtime.production.min.js +0 -10
  93. package/example/node_modules/react/cjs/react.development.js +0 -1912
  94. package/example/node_modules/react/cjs/react.production.min.js +0 -25
  95. package/example/node_modules/react/index.js +0 -7
  96. package/example/node_modules/react/jsx-dev-runtime.js +0 -7
  97. package/example/node_modules/react/jsx-runtime.js +0 -7
  98. package/example/node_modules/react/package.json +0 -44
  99. package/example/node_modules/react/umd/react.development.js +0 -3318
  100. package/example/node_modules/react/umd/react.production.min.js +0 -32
  101. package/example/node_modules/react/umd/react.profiling.min.js +0 -39
  102. package/example/node_modules/react-dom/LICENSE +0 -21
  103. package/example/node_modules/react-dom/README.md +0 -54
  104. package/example/node_modules/react-dom/build-info.json +0 -8
  105. package/example/node_modules/react-dom/cjs/react-dom-server.browser.development.js +0 -4043
  106. package/example/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js +0 -54
  107. package/example/node_modules/react-dom/cjs/react-dom-server.node.development.js +0 -4085
  108. package/example/node_modules/react-dom/cjs/react-dom-server.node.production.min.js +0 -55
  109. package/example/node_modules/react-dom/cjs/react-dom-test-utils.development.js +0 -1480
  110. package/example/node_modules/react-dom/cjs/react-dom-test-utils.production.min.js +0 -35
  111. package/example/node_modules/react-dom/cjs/react-dom-unstable-fizz.browser.development.js +0 -141
  112. package/example/node_modules/react-dom/cjs/react-dom-unstable-fizz.browser.production.min.js +0 -11
  113. package/example/node_modules/react-dom/cjs/react-dom-unstable-fizz.node.development.js +0 -162
  114. package/example/node_modules/react-dom/cjs/react-dom-unstable-fizz.node.production.min.js +0 -12
  115. package/example/node_modules/react-dom/cjs/react-dom-unstable-native-dependencies.development.js +0 -1629
  116. package/example/node_modules/react-dom/cjs/react-dom-unstable-native-dependencies.production.min.js +0 -31
  117. package/example/node_modules/react-dom/cjs/react-dom.development.js +0 -25012
  118. package/example/node_modules/react-dom/cjs/react-dom.production.min.js +0 -292
  119. package/example/node_modules/react-dom/cjs/react-dom.profiling.min.js +0 -299
  120. package/example/node_modules/react-dom/index.js +0 -38
  121. package/example/node_modules/react-dom/package.json +0 -60
  122. package/example/node_modules/react-dom/profiling.js +0 -38
  123. package/example/node_modules/react-dom/server.browser.js +0 -7
  124. package/example/node_modules/react-dom/server.js +0 -3
  125. package/example/node_modules/react-dom/server.node.js +0 -7
  126. package/example/node_modules/react-dom/test-utils.js +0 -7
  127. package/example/node_modules/react-dom/umd/react-dom-server.browser.development.js +0 -4147
  128. package/example/node_modules/react-dom/umd/react-dom-server.browser.production.min.js +0 -45
  129. package/example/node_modules/react-dom/umd/react-dom-test-utils.development.js +0 -1499
  130. package/example/node_modules/react-dom/umd/react-dom-test-utils.production.min.js +0 -30
  131. package/example/node_modules/react-dom/umd/react-dom-unstable-fizz.browser.development.js +0 -141
  132. package/example/node_modules/react-dom/umd/react-dom-unstable-fizz.browser.production.min.js +0 -10
  133. package/example/node_modules/react-dom/umd/react-dom-unstable-native-dependencies.development.js +0 -1628
  134. package/example/node_modules/react-dom/umd/react-dom-unstable-native-dependencies.production.min.js +0 -28
  135. package/example/node_modules/react-dom/umd/react-dom.development.js +0 -25147
  136. package/example/node_modules/react-dom/umd/react-dom.production.min.js +0 -239
  137. package/example/node_modules/react-dom/umd/react-dom.profiling.min.js +0 -247
  138. package/example/node_modules/react-dom/unstable-fizz.browser.js +0 -7
  139. package/example/node_modules/react-dom/unstable-fizz.js +0 -3
  140. package/example/node_modules/react-dom/unstable-fizz.node.js +0 -7
  141. package/example/node_modules/react-dom/unstable-native-dependencies.js +0 -7
  142. package/example/node_modules/react-is/LICENSE +0 -21
  143. package/example/node_modules/react-is/README.md +0 -104
  144. package/example/node_modules/react-is/build-info.json +0 -8
  145. package/example/node_modules/react-is/cjs/react-is.development.js +0 -181
  146. package/example/node_modules/react-is/cjs/react-is.production.min.js +0 -15
  147. package/example/node_modules/react-is/index.js +0 -7
  148. package/example/node_modules/react-is/package.json +0 -27
  149. package/example/node_modules/react-is/umd/react-is.development.js +0 -181
  150. package/example/node_modules/react-is/umd/react-is.production.min.js +0 -13
  151. package/example/node_modules/react-test-renderer/LICENSE +0 -21
  152. package/example/node_modules/react-test-renderer/README.md +0 -26
  153. package/example/node_modules/react-test-renderer/build-info.json +0 -8
  154. package/example/node_modules/react-test-renderer/cjs/react-test-renderer-shallow.development.js +0 -1019
  155. package/example/node_modules/react-test-renderer/cjs/react-test-renderer-shallow.production.min.js +0 -35
  156. package/example/node_modules/react-test-renderer/cjs/react-test-renderer.development.js +0 -15596
  157. package/example/node_modules/react-test-renderer/cjs/react-test-renderer.production.min.js +0 -181
  158. package/example/node_modules/react-test-renderer/index.js +0 -7
  159. package/example/node_modules/react-test-renderer/package.json +0 -41
  160. package/example/node_modules/react-test-renderer/shallow.js +0 -7
  161. package/example/node_modules/react-test-renderer/umd/react-test-renderer-shallow.development.js +0 -1176
  162. package/example/node_modules/react-test-renderer/umd/react-test-renderer-shallow.production.min.js +0 -31
  163. package/example/node_modules/react-test-renderer/umd/react-test-renderer.development.js +0 -15709
  164. package/example/node_modules/react-test-renderer/umd/react-test-renderer.production.min.js +0 -151
  165. package/example/node_modules/scheduler/LICENSE +0 -21
  166. package/example/node_modules/scheduler/README.md +0 -9
  167. package/example/node_modules/scheduler/build-info.json +0 -8
  168. package/example/node_modules/scheduler/cjs/scheduler-tracing.development.js +0 -349
  169. package/example/node_modules/scheduler/cjs/scheduler-tracing.production.min.js +0 -10
  170. package/example/node_modules/scheduler/cjs/scheduler-tracing.profiling.min.js +0 -17
  171. package/example/node_modules/scheduler/cjs/scheduler-unstable_mock.development.js +0 -857
  172. package/example/node_modules/scheduler/cjs/scheduler-unstable_mock.production.min.js +0 -20
  173. package/example/node_modules/scheduler/cjs/scheduler.development.js +0 -858
  174. package/example/node_modules/scheduler/cjs/scheduler.production.min.js +0 -21
  175. package/example/node_modules/scheduler/index.js +0 -7
  176. package/example/node_modules/scheduler/package.json +0 -39
  177. package/example/node_modules/scheduler/tracing-profiling.js +0 -7
  178. package/example/node_modules/scheduler/tracing.js +0 -7
  179. package/example/node_modules/scheduler/umd/scheduler-tracing.development.js +0 -80
  180. package/example/node_modules/scheduler/umd/scheduler-tracing.production.min.js +0 -80
  181. package/example/node_modules/scheduler/umd/scheduler-tracing.profiling.min.js +0 -80
  182. package/example/node_modules/scheduler/umd/scheduler-unstable_mock.development.js +0 -857
  183. package/example/node_modules/scheduler/umd/scheduler-unstable_mock.production.min.js +0 -17
  184. package/example/node_modules/scheduler/umd/scheduler.development.js +0 -152
  185. package/example/node_modules/scheduler/umd/scheduler.production.min.js +0 -146
  186. package/example/node_modules/scheduler/umd/scheduler.profiling.min.js +0 -146
  187. package/example/node_modules/scheduler/unstable_mock.js +0 -7
  188. package/example/package-lock.json +0 -110
  189. package/example/package.json +0 -24
  190. package/example/public/index.html +0 -13
  191. package/example/src/App.jsx +0 -43
  192. package/example/src/App.test.jsx +0 -11
  193. package/example/src/Image.tsx +0 -16
  194. package/example/src/__snapshots__/App.test.jsx.snap +0 -120
  195. package/example/src/apple.jpg +0 -0
  196. package/example/src/apple.svg +0 -1
  197. package/example/src/index.jsx +0 -13
  198. package/example/src/style.scss +0 -9
  199. package/example/tsconfig.json +0 -16
  200. package/openedx.yaml +0 -10
  201. package/renovate.json +0 -22
  202. package/smoke-test.sh +0 -11
@@ -1,858 +0,0 @@
1
- /** @license React v0.19.1
2
- * scheduler.development.js
3
- *
4
- * Copyright (c) Facebook, Inc. and its affiliates.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
-
10
- 'use strict';
11
-
12
-
13
-
14
- if (process.env.NODE_ENV !== "production") {
15
- (function() {
16
- 'use strict';
17
-
18
- var enableSchedulerDebugging = false;
19
- var enableProfiling = true;
20
-
21
- var requestHostCallback;
22
- var requestHostTimeout;
23
- var cancelHostTimeout;
24
- var shouldYieldToHost;
25
- var requestPaint;
26
-
27
- if ( // If Scheduler runs in a non-DOM environment, it falls back to a naive
28
- // implementation using setTimeout.
29
- typeof window === 'undefined' || // Check if MessageChannel is supported, too.
30
- typeof MessageChannel !== 'function') {
31
- // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,
32
- // fallback to a naive implementation.
33
- var _callback = null;
34
- var _timeoutID = null;
35
-
36
- var _flushCallback = function () {
37
- if (_callback !== null) {
38
- try {
39
- var currentTime = exports.unstable_now();
40
- var hasRemainingTime = true;
41
-
42
- _callback(hasRemainingTime, currentTime);
43
-
44
- _callback = null;
45
- } catch (e) {
46
- setTimeout(_flushCallback, 0);
47
- throw e;
48
- }
49
- }
50
- };
51
-
52
- var initialTime = Date.now();
53
-
54
- exports.unstable_now = function () {
55
- return Date.now() - initialTime;
56
- };
57
-
58
- requestHostCallback = function (cb) {
59
- if (_callback !== null) {
60
- // Protect against re-entrancy.
61
- setTimeout(requestHostCallback, 0, cb);
62
- } else {
63
- _callback = cb;
64
- setTimeout(_flushCallback, 0);
65
- }
66
- };
67
-
68
- requestHostTimeout = function (cb, ms) {
69
- _timeoutID = setTimeout(cb, ms);
70
- };
71
-
72
- cancelHostTimeout = function () {
73
- clearTimeout(_timeoutID);
74
- };
75
-
76
- shouldYieldToHost = function () {
77
- return false;
78
- };
79
-
80
- requestPaint = exports.unstable_forceFrameRate = function () {};
81
- } else {
82
- // Capture local references to native APIs, in case a polyfill overrides them.
83
- var performance = window.performance;
84
- var _Date = window.Date;
85
- var _setTimeout = window.setTimeout;
86
- var _clearTimeout = window.clearTimeout;
87
-
88
- if (typeof console !== 'undefined') {
89
- // TODO: Scheduler no longer requires these methods to be polyfilled. But
90
- // maybe we want to continue warning if they don't exist, to preserve the
91
- // option to rely on it in the future?
92
- var requestAnimationFrame = window.requestAnimationFrame;
93
- var cancelAnimationFrame = window.cancelAnimationFrame; // TODO: Remove fb.me link
94
-
95
- if (typeof requestAnimationFrame !== 'function') {
96
- // Using console['error'] to evade Babel and ESLint
97
- console['error']("This browser doesn't support requestAnimationFrame. " + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');
98
- }
99
-
100
- if (typeof cancelAnimationFrame !== 'function') {
101
- // Using console['error'] to evade Babel and ESLint
102
- console['error']("This browser doesn't support cancelAnimationFrame. " + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');
103
- }
104
- }
105
-
106
- if (typeof performance === 'object' && typeof performance.now === 'function') {
107
- exports.unstable_now = function () {
108
- return performance.now();
109
- };
110
- } else {
111
- var _initialTime = _Date.now();
112
-
113
- exports.unstable_now = function () {
114
- return _Date.now() - _initialTime;
115
- };
116
- }
117
-
118
- var isMessageLoopRunning = false;
119
- var scheduledHostCallback = null;
120
- var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main
121
- // thread, like user events. By default, it yields multiple times per frame.
122
- // It does not attempt to align with frame boundaries, since most tasks don't
123
- // need to be frame aligned; for those that do, use requestAnimationFrame.
124
-
125
- var yieldInterval = 5;
126
- var deadline = 0; // TODO: Make this configurable
127
-
128
- {
129
- // `isInputPending` is not available. Since we have no way of knowing if
130
- // there's pending input, always yield at the end of the frame.
131
- shouldYieldToHost = function () {
132
- return exports.unstable_now() >= deadline;
133
- }; // Since we yield every frame regardless, `requestPaint` has no effect.
134
-
135
-
136
- requestPaint = function () {};
137
- }
138
-
139
- exports.unstable_forceFrameRate = function (fps) {
140
- if (fps < 0 || fps > 125) {
141
- // Using console['error'] to evade Babel and ESLint
142
- console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing framerates higher than 125 fps is not unsupported');
143
- return;
144
- }
145
-
146
- if (fps > 0) {
147
- yieldInterval = Math.floor(1000 / fps);
148
- } else {
149
- // reset the framerate
150
- yieldInterval = 5;
151
- }
152
- };
153
-
154
- var performWorkUntilDeadline = function () {
155
- if (scheduledHostCallback !== null) {
156
- var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync
157
- // cycle. This means there's always time remaining at the beginning of
158
- // the message event.
159
-
160
- deadline = currentTime + yieldInterval;
161
- var hasTimeRemaining = true;
162
-
163
- try {
164
- var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);
165
-
166
- if (!hasMoreWork) {
167
- isMessageLoopRunning = false;
168
- scheduledHostCallback = null;
169
- } else {
170
- // If there's more work, schedule the next message event at the end
171
- // of the preceding one.
172
- port.postMessage(null);
173
- }
174
- } catch (error) {
175
- // If a scheduler task throws, exit the current browser task so the
176
- // error can be observed.
177
- port.postMessage(null);
178
- throw error;
179
- }
180
- } else {
181
- isMessageLoopRunning = false;
182
- } // Yielding to the browser will give it a chance to paint, so we can
183
- };
184
-
185
- var channel = new MessageChannel();
186
- var port = channel.port2;
187
- channel.port1.onmessage = performWorkUntilDeadline;
188
-
189
- requestHostCallback = function (callback) {
190
- scheduledHostCallback = callback;
191
-
192
- if (!isMessageLoopRunning) {
193
- isMessageLoopRunning = true;
194
- port.postMessage(null);
195
- }
196
- };
197
-
198
- requestHostTimeout = function (callback, ms) {
199
- taskTimeoutID = _setTimeout(function () {
200
- callback(exports.unstable_now());
201
- }, ms);
202
- };
203
-
204
- cancelHostTimeout = function () {
205
- _clearTimeout(taskTimeoutID);
206
-
207
- taskTimeoutID = -1;
208
- };
209
- }
210
-
211
- function push(heap, node) {
212
- var index = heap.length;
213
- heap.push(node);
214
- siftUp(heap, node, index);
215
- }
216
- function peek(heap) {
217
- var first = heap[0];
218
- return first === undefined ? null : first;
219
- }
220
- function pop(heap) {
221
- var first = heap[0];
222
-
223
- if (first !== undefined) {
224
- var last = heap.pop();
225
-
226
- if (last !== first) {
227
- heap[0] = last;
228
- siftDown(heap, last, 0);
229
- }
230
-
231
- return first;
232
- } else {
233
- return null;
234
- }
235
- }
236
-
237
- function siftUp(heap, node, i) {
238
- var index = i;
239
-
240
- while (true) {
241
- var parentIndex = index - 1 >>> 1;
242
- var parent = heap[parentIndex];
243
-
244
- if (parent !== undefined && compare(parent, node) > 0) {
245
- // The parent is larger. Swap positions.
246
- heap[parentIndex] = node;
247
- heap[index] = parent;
248
- index = parentIndex;
249
- } else {
250
- // The parent is smaller. Exit.
251
- return;
252
- }
253
- }
254
- }
255
-
256
- function siftDown(heap, node, i) {
257
- var index = i;
258
- var length = heap.length;
259
-
260
- while (index < length) {
261
- var leftIndex = (index + 1) * 2 - 1;
262
- var left = heap[leftIndex];
263
- var rightIndex = leftIndex + 1;
264
- var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.
265
-
266
- if (left !== undefined && compare(left, node) < 0) {
267
- if (right !== undefined && compare(right, left) < 0) {
268
- heap[index] = right;
269
- heap[rightIndex] = node;
270
- index = rightIndex;
271
- } else {
272
- heap[index] = left;
273
- heap[leftIndex] = node;
274
- index = leftIndex;
275
- }
276
- } else if (right !== undefined && compare(right, node) < 0) {
277
- heap[index] = right;
278
- heap[rightIndex] = node;
279
- index = rightIndex;
280
- } else {
281
- // Neither child is smaller. Exit.
282
- return;
283
- }
284
- }
285
- }
286
-
287
- function compare(a, b) {
288
- // Compare sort index first, then task id.
289
- var diff = a.sortIndex - b.sortIndex;
290
- return diff !== 0 ? diff : a.id - b.id;
291
- }
292
-
293
- // TODO: Use symbols?
294
- var NoPriority = 0;
295
- var ImmediatePriority = 1;
296
- var UserBlockingPriority = 2;
297
- var NormalPriority = 3;
298
- var LowPriority = 4;
299
- var IdlePriority = 5;
300
-
301
- var runIdCounter = 0;
302
- var mainThreadIdCounter = 0;
303
- var profilingStateSize = 4;
304
- var sharedProfilingBuffer = // $FlowFixMe Flow doesn't know about SharedArrayBuffer
305
- typeof SharedArrayBuffer === 'function' ? new SharedArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : // $FlowFixMe Flow doesn't know about ArrayBuffer
306
- typeof ArrayBuffer === 'function' ? new ArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : null // Don't crash the init path on IE9
307
- ;
308
- var profilingState = sharedProfilingBuffer !== null ? new Int32Array(sharedProfilingBuffer) : []; // We can't read this but it helps save bytes for null checks
309
-
310
- var PRIORITY = 0;
311
- var CURRENT_TASK_ID = 1;
312
- var CURRENT_RUN_ID = 2;
313
- var QUEUE_SIZE = 3;
314
-
315
- {
316
- profilingState[PRIORITY] = NoPriority; // This is maintained with a counter, because the size of the priority queue
317
- // array might include canceled tasks.
318
-
319
- profilingState[QUEUE_SIZE] = 0;
320
- profilingState[CURRENT_TASK_ID] = 0;
321
- } // Bytes per element is 4
322
-
323
-
324
- var INITIAL_EVENT_LOG_SIZE = 131072;
325
- var MAX_EVENT_LOG_SIZE = 524288; // Equivalent to 2 megabytes
326
-
327
- var eventLogSize = 0;
328
- var eventLogBuffer = null;
329
- var eventLog = null;
330
- var eventLogIndex = 0;
331
- var TaskStartEvent = 1;
332
- var TaskCompleteEvent = 2;
333
- var TaskErrorEvent = 3;
334
- var TaskCancelEvent = 4;
335
- var TaskRunEvent = 5;
336
- var TaskYieldEvent = 6;
337
- var SchedulerSuspendEvent = 7;
338
- var SchedulerResumeEvent = 8;
339
-
340
- function logEvent(entries) {
341
- if (eventLog !== null) {
342
- var offset = eventLogIndex;
343
- eventLogIndex += entries.length;
344
-
345
- if (eventLogIndex + 1 > eventLogSize) {
346
- eventLogSize *= 2;
347
-
348
- if (eventLogSize > MAX_EVENT_LOG_SIZE) {
349
- // Using console['error'] to evade Babel and ESLint
350
- console['error']("Scheduler Profiling: Event log exceeded maximum size. Don't " + 'forget to call `stopLoggingProfilingEvents()`.');
351
- stopLoggingProfilingEvents();
352
- return;
353
- }
354
-
355
- var newEventLog = new Int32Array(eventLogSize * 4);
356
- newEventLog.set(eventLog);
357
- eventLogBuffer = newEventLog.buffer;
358
- eventLog = newEventLog;
359
- }
360
-
361
- eventLog.set(entries, offset);
362
- }
363
- }
364
-
365
- function startLoggingProfilingEvents() {
366
- eventLogSize = INITIAL_EVENT_LOG_SIZE;
367
- eventLogBuffer = new ArrayBuffer(eventLogSize * 4);
368
- eventLog = new Int32Array(eventLogBuffer);
369
- eventLogIndex = 0;
370
- }
371
- function stopLoggingProfilingEvents() {
372
- var buffer = eventLogBuffer;
373
- eventLogSize = 0;
374
- eventLogBuffer = null;
375
- eventLog = null;
376
- eventLogIndex = 0;
377
- return buffer;
378
- }
379
- function markTaskStart(task, ms) {
380
- {
381
- profilingState[QUEUE_SIZE]++;
382
-
383
- if (eventLog !== null) {
384
- // performance.now returns a float, representing milliseconds. When the
385
- // event is logged, it's coerced to an int. Convert to microseconds to
386
- // maintain extra degrees of precision.
387
- logEvent([TaskStartEvent, ms * 1000, task.id, task.priorityLevel]);
388
- }
389
- }
390
- }
391
- function markTaskCompleted(task, ms) {
392
- {
393
- profilingState[PRIORITY] = NoPriority;
394
- profilingState[CURRENT_TASK_ID] = 0;
395
- profilingState[QUEUE_SIZE]--;
396
-
397
- if (eventLog !== null) {
398
- logEvent([TaskCompleteEvent, ms * 1000, task.id]);
399
- }
400
- }
401
- }
402
- function markTaskCanceled(task, ms) {
403
- {
404
- profilingState[QUEUE_SIZE]--;
405
-
406
- if (eventLog !== null) {
407
- logEvent([TaskCancelEvent, ms * 1000, task.id]);
408
- }
409
- }
410
- }
411
- function markTaskErrored(task, ms) {
412
- {
413
- profilingState[PRIORITY] = NoPriority;
414
- profilingState[CURRENT_TASK_ID] = 0;
415
- profilingState[QUEUE_SIZE]--;
416
-
417
- if (eventLog !== null) {
418
- logEvent([TaskErrorEvent, ms * 1000, task.id]);
419
- }
420
- }
421
- }
422
- function markTaskRun(task, ms) {
423
- {
424
- runIdCounter++;
425
- profilingState[PRIORITY] = task.priorityLevel;
426
- profilingState[CURRENT_TASK_ID] = task.id;
427
- profilingState[CURRENT_RUN_ID] = runIdCounter;
428
-
429
- if (eventLog !== null) {
430
- logEvent([TaskRunEvent, ms * 1000, task.id, runIdCounter]);
431
- }
432
- }
433
- }
434
- function markTaskYield(task, ms) {
435
- {
436
- profilingState[PRIORITY] = NoPriority;
437
- profilingState[CURRENT_TASK_ID] = 0;
438
- profilingState[CURRENT_RUN_ID] = 0;
439
-
440
- if (eventLog !== null) {
441
- logEvent([TaskYieldEvent, ms * 1000, task.id, runIdCounter]);
442
- }
443
- }
444
- }
445
- function markSchedulerSuspended(ms) {
446
- {
447
- mainThreadIdCounter++;
448
-
449
- if (eventLog !== null) {
450
- logEvent([SchedulerSuspendEvent, ms * 1000, mainThreadIdCounter]);
451
- }
452
- }
453
- }
454
- function markSchedulerUnsuspended(ms) {
455
- {
456
- if (eventLog !== null) {
457
- logEvent([SchedulerResumeEvent, ms * 1000, mainThreadIdCounter]);
458
- }
459
- }
460
- }
461
-
462
- /* eslint-disable no-var */
463
- // Math.pow(2, 30) - 1
464
- // 0b111111111111111111111111111111
465
-
466
- var maxSigned31BitInt = 1073741823; // Times out immediately
467
-
468
- var IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out
469
-
470
- var USER_BLOCKING_PRIORITY = 250;
471
- var NORMAL_PRIORITY_TIMEOUT = 5000;
472
- var LOW_PRIORITY_TIMEOUT = 10000; // Never times out
473
-
474
- var IDLE_PRIORITY = maxSigned31BitInt; // Tasks are stored on a min heap
475
-
476
- var taskQueue = [];
477
- var timerQueue = []; // Incrementing id counter. Used to maintain insertion order.
478
-
479
- var taskIdCounter = 1; // Pausing the scheduler is useful for debugging.
480
- var currentTask = null;
481
- var currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.
482
-
483
- var isPerformingWork = false;
484
- var isHostCallbackScheduled = false;
485
- var isHostTimeoutScheduled = false;
486
-
487
- function advanceTimers(currentTime) {
488
- // Check for tasks that are no longer delayed and add them to the queue.
489
- var timer = peek(timerQueue);
490
-
491
- while (timer !== null) {
492
- if (timer.callback === null) {
493
- // Timer was cancelled.
494
- pop(timerQueue);
495
- } else if (timer.startTime <= currentTime) {
496
- // Timer fired. Transfer to the task queue.
497
- pop(timerQueue);
498
- timer.sortIndex = timer.expirationTime;
499
- push(taskQueue, timer);
500
-
501
- {
502
- markTaskStart(timer, currentTime);
503
- timer.isQueued = true;
504
- }
505
- } else {
506
- // Remaining timers are pending.
507
- return;
508
- }
509
-
510
- timer = peek(timerQueue);
511
- }
512
- }
513
-
514
- function handleTimeout(currentTime) {
515
- isHostTimeoutScheduled = false;
516
- advanceTimers(currentTime);
517
-
518
- if (!isHostCallbackScheduled) {
519
- if (peek(taskQueue) !== null) {
520
- isHostCallbackScheduled = true;
521
- requestHostCallback(flushWork);
522
- } else {
523
- var firstTimer = peek(timerQueue);
524
-
525
- if (firstTimer !== null) {
526
- requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
527
- }
528
- }
529
- }
530
- }
531
-
532
- function flushWork(hasTimeRemaining, initialTime) {
533
- {
534
- markSchedulerUnsuspended(initialTime);
535
- } // We'll need a host callback the next time work is scheduled.
536
-
537
-
538
- isHostCallbackScheduled = false;
539
-
540
- if (isHostTimeoutScheduled) {
541
- // We scheduled a timeout but it's no longer needed. Cancel it.
542
- isHostTimeoutScheduled = false;
543
- cancelHostTimeout();
544
- }
545
-
546
- isPerformingWork = true;
547
- var previousPriorityLevel = currentPriorityLevel;
548
-
549
- try {
550
- if (enableProfiling) {
551
- try {
552
- return workLoop(hasTimeRemaining, initialTime);
553
- } catch (error) {
554
- if (currentTask !== null) {
555
- var currentTime = exports.unstable_now();
556
- markTaskErrored(currentTask, currentTime);
557
- currentTask.isQueued = false;
558
- }
559
-
560
- throw error;
561
- }
562
- } else {
563
- // No catch in prod codepath.
564
- return workLoop(hasTimeRemaining, initialTime);
565
- }
566
- } finally {
567
- currentTask = null;
568
- currentPriorityLevel = previousPriorityLevel;
569
- isPerformingWork = false;
570
-
571
- {
572
- var _currentTime = exports.unstable_now();
573
-
574
- markSchedulerSuspended(_currentTime);
575
- }
576
- }
577
- }
578
-
579
- function workLoop(hasTimeRemaining, initialTime) {
580
- var currentTime = initialTime;
581
- advanceTimers(currentTime);
582
- currentTask = peek(taskQueue);
583
-
584
- while (currentTask !== null && !(enableSchedulerDebugging )) {
585
- if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {
586
- // This currentTask hasn't expired, and we've reached the deadline.
587
- break;
588
- }
589
-
590
- var callback = currentTask.callback;
591
-
592
- if (callback !== null) {
593
- currentTask.callback = null;
594
- currentPriorityLevel = currentTask.priorityLevel;
595
- var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;
596
- markTaskRun(currentTask, currentTime);
597
- var continuationCallback = callback(didUserCallbackTimeout);
598
- currentTime = exports.unstable_now();
599
-
600
- if (typeof continuationCallback === 'function') {
601
- currentTask.callback = continuationCallback;
602
- markTaskYield(currentTask, currentTime);
603
- } else {
604
- {
605
- markTaskCompleted(currentTask, currentTime);
606
- currentTask.isQueued = false;
607
- }
608
-
609
- if (currentTask === peek(taskQueue)) {
610
- pop(taskQueue);
611
- }
612
- }
613
-
614
- advanceTimers(currentTime);
615
- } else {
616
- pop(taskQueue);
617
- }
618
-
619
- currentTask = peek(taskQueue);
620
- } // Return whether there's additional work
621
-
622
-
623
- if (currentTask !== null) {
624
- return true;
625
- } else {
626
- var firstTimer = peek(timerQueue);
627
-
628
- if (firstTimer !== null) {
629
- requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
630
- }
631
-
632
- return false;
633
- }
634
- }
635
-
636
- function unstable_runWithPriority(priorityLevel, eventHandler) {
637
- switch (priorityLevel) {
638
- case ImmediatePriority:
639
- case UserBlockingPriority:
640
- case NormalPriority:
641
- case LowPriority:
642
- case IdlePriority:
643
- break;
644
-
645
- default:
646
- priorityLevel = NormalPriority;
647
- }
648
-
649
- var previousPriorityLevel = currentPriorityLevel;
650
- currentPriorityLevel = priorityLevel;
651
-
652
- try {
653
- return eventHandler();
654
- } finally {
655
- currentPriorityLevel = previousPriorityLevel;
656
- }
657
- }
658
-
659
- function unstable_next(eventHandler) {
660
- var priorityLevel;
661
-
662
- switch (currentPriorityLevel) {
663
- case ImmediatePriority:
664
- case UserBlockingPriority:
665
- case NormalPriority:
666
- // Shift down to normal priority
667
- priorityLevel = NormalPriority;
668
- break;
669
-
670
- default:
671
- // Anything lower than normal priority should remain at the current level.
672
- priorityLevel = currentPriorityLevel;
673
- break;
674
- }
675
-
676
- var previousPriorityLevel = currentPriorityLevel;
677
- currentPriorityLevel = priorityLevel;
678
-
679
- try {
680
- return eventHandler();
681
- } finally {
682
- currentPriorityLevel = previousPriorityLevel;
683
- }
684
- }
685
-
686
- function unstable_wrapCallback(callback) {
687
- var parentPriorityLevel = currentPriorityLevel;
688
- return function () {
689
- // This is a fork of runWithPriority, inlined for performance.
690
- var previousPriorityLevel = currentPriorityLevel;
691
- currentPriorityLevel = parentPriorityLevel;
692
-
693
- try {
694
- return callback.apply(this, arguments);
695
- } finally {
696
- currentPriorityLevel = previousPriorityLevel;
697
- }
698
- };
699
- }
700
-
701
- function timeoutForPriorityLevel(priorityLevel) {
702
- switch (priorityLevel) {
703
- case ImmediatePriority:
704
- return IMMEDIATE_PRIORITY_TIMEOUT;
705
-
706
- case UserBlockingPriority:
707
- return USER_BLOCKING_PRIORITY;
708
-
709
- case IdlePriority:
710
- return IDLE_PRIORITY;
711
-
712
- case LowPriority:
713
- return LOW_PRIORITY_TIMEOUT;
714
-
715
- case NormalPriority:
716
- default:
717
- return NORMAL_PRIORITY_TIMEOUT;
718
- }
719
- }
720
-
721
- function unstable_scheduleCallback(priorityLevel, callback, options) {
722
- var currentTime = exports.unstable_now();
723
- var startTime;
724
- var timeout;
725
-
726
- if (typeof options === 'object' && options !== null) {
727
- var delay = options.delay;
728
-
729
- if (typeof delay === 'number' && delay > 0) {
730
- startTime = currentTime + delay;
731
- } else {
732
- startTime = currentTime;
733
- }
734
-
735
- timeout = typeof options.timeout === 'number' ? options.timeout : timeoutForPriorityLevel(priorityLevel);
736
- } else {
737
- timeout = timeoutForPriorityLevel(priorityLevel);
738
- startTime = currentTime;
739
- }
740
-
741
- var expirationTime = startTime + timeout;
742
- var newTask = {
743
- id: taskIdCounter++,
744
- callback: callback,
745
- priorityLevel: priorityLevel,
746
- startTime: startTime,
747
- expirationTime: expirationTime,
748
- sortIndex: -1
749
- };
750
-
751
- {
752
- newTask.isQueued = false;
753
- }
754
-
755
- if (startTime > currentTime) {
756
- // This is a delayed task.
757
- newTask.sortIndex = startTime;
758
- push(timerQueue, newTask);
759
-
760
- if (peek(taskQueue) === null && newTask === peek(timerQueue)) {
761
- // All tasks are delayed, and this is the task with the earliest delay.
762
- if (isHostTimeoutScheduled) {
763
- // Cancel an existing timeout.
764
- cancelHostTimeout();
765
- } else {
766
- isHostTimeoutScheduled = true;
767
- } // Schedule a timeout.
768
-
769
-
770
- requestHostTimeout(handleTimeout, startTime - currentTime);
771
- }
772
- } else {
773
- newTask.sortIndex = expirationTime;
774
- push(taskQueue, newTask);
775
-
776
- {
777
- markTaskStart(newTask, currentTime);
778
- newTask.isQueued = true;
779
- } // Schedule a host callback, if needed. If we're already performing work,
780
- // wait until the next time we yield.
781
-
782
-
783
- if (!isHostCallbackScheduled && !isPerformingWork) {
784
- isHostCallbackScheduled = true;
785
- requestHostCallback(flushWork);
786
- }
787
- }
788
-
789
- return newTask;
790
- }
791
-
792
- function unstable_pauseExecution() {
793
- }
794
-
795
- function unstable_continueExecution() {
796
-
797
- if (!isHostCallbackScheduled && !isPerformingWork) {
798
- isHostCallbackScheduled = true;
799
- requestHostCallback(flushWork);
800
- }
801
- }
802
-
803
- function unstable_getFirstCallbackNode() {
804
- return peek(taskQueue);
805
- }
806
-
807
- function unstable_cancelCallback(task) {
808
- {
809
- if (task.isQueued) {
810
- var currentTime = exports.unstable_now();
811
- markTaskCanceled(task, currentTime);
812
- task.isQueued = false;
813
- }
814
- } // Null out the callback to indicate the task has been canceled. (Can't
815
- // remove from the queue because you can't remove arbitrary nodes from an
816
- // array based heap, only the first one.)
817
-
818
-
819
- task.callback = null;
820
- }
821
-
822
- function unstable_getCurrentPriorityLevel() {
823
- return currentPriorityLevel;
824
- }
825
-
826
- function unstable_shouldYield() {
827
- var currentTime = exports.unstable_now();
828
- advanceTimers(currentTime);
829
- var firstTask = peek(taskQueue);
830
- return firstTask !== currentTask && currentTask !== null && firstTask !== null && firstTask.callback !== null && firstTask.startTime <= currentTime && firstTask.expirationTime < currentTask.expirationTime || shouldYieldToHost();
831
- }
832
-
833
- var unstable_requestPaint = requestPaint;
834
- var unstable_Profiling = {
835
- startLoggingProfilingEvents: startLoggingProfilingEvents,
836
- stopLoggingProfilingEvents: stopLoggingProfilingEvents,
837
- sharedProfilingBuffer: sharedProfilingBuffer
838
- } ;
839
-
840
- exports.unstable_IdlePriority = IdlePriority;
841
- exports.unstable_ImmediatePriority = ImmediatePriority;
842
- exports.unstable_LowPriority = LowPriority;
843
- exports.unstable_NormalPriority = NormalPriority;
844
- exports.unstable_Profiling = unstable_Profiling;
845
- exports.unstable_UserBlockingPriority = UserBlockingPriority;
846
- exports.unstable_cancelCallback = unstable_cancelCallback;
847
- exports.unstable_continueExecution = unstable_continueExecution;
848
- exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;
849
- exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;
850
- exports.unstable_next = unstable_next;
851
- exports.unstable_pauseExecution = unstable_pauseExecution;
852
- exports.unstable_requestPaint = unstable_requestPaint;
853
- exports.unstable_runWithPriority = unstable_runWithPriority;
854
- exports.unstable_scheduleCallback = unstable_scheduleCallback;
855
- exports.unstable_shouldYield = unstable_shouldYield;
856
- exports.unstable_wrapCallback = unstable_wrapCallback;
857
- })();
858
- }