mirror of
https://github.com/hanzoai/react.git
synced 2026-09-24 17:02:27 +00:00
* [Scheduler] Mark user-timing events Marks when Scheduler starts and stops running a task. Also marks when a task is initially scheduled, and when Scheduler is waiting for a callback, which can't be inferred from a sample-based JavaScript CPU profile alone. The plan is to use the user-timing events to build a Scheduler profiler that shows how the lifetime of tasks interact with each other and with unscheduled main thread work. The test suite works by printing an text representation of a Scheduler flamegraph. * Expose shared array buffer with profiling info Array contains - the priority Scheduler is currently running - the size of the queue - the id of the currently running task * Replace user-timing calls with event log Events are written to an array buffer using a custom instruction format. For now, this is only meant to be used during page start up, before the profiler worker has a chance to start up. Once the worker is ready, call `stopLoggingProfilerEvents` to return the log up to that point, then send the array buffer to the worker. Then switch to the sampling based approach. * Record the current run ID Each synchronous block of Scheduler work is given a unique run ID. This is different than a task ID because a single task will have more than one run if it yields with a continuation.
45 lines
957 B
JavaScript
45 lines
957 B
JavaScript
'use strict';
|
|
|
|
module.exports = {
|
|
env: {
|
|
commonjs: true,
|
|
browser: true,
|
|
},
|
|
globals: {
|
|
// ES6
|
|
Map: true,
|
|
Set: true,
|
|
Symbol: true,
|
|
Proxy: true,
|
|
WeakMap: true,
|
|
WeakSet: true,
|
|
Uint16Array: true,
|
|
// Vendor specific
|
|
MSApp: true,
|
|
__REACT_DEVTOOLS_GLOBAL_HOOK__: true,
|
|
// FB
|
|
__DEV__: true,
|
|
// Node.js Server Rendering
|
|
setImmediate: true,
|
|
Buffer: true,
|
|
|
|
// Scheduler profiling
|
|
SharedArrayBuffer: true,
|
|
Int32Array: true,
|
|
ArrayBuffer: true,
|
|
},
|
|
parserOptions: {
|
|
ecmaVersion: 5,
|
|
sourceType: 'script',
|
|
},
|
|
rules: {
|
|
'no-undef': 'error',
|
|
'no-shadow-restricted-names': 'error',
|
|
},
|
|
|
|
// These plugins aren't used, but eslint complains if an eslint-ignore comment
|
|
// references unused plugins. An alternate approach could be to strip
|
|
// eslint-ignore comments as part of the build.
|
|
plugins: ['jest', 'no-for-of-loops', 'react', 'react-internal'],
|
|
};
|