gecko-dev/js/public
Nicolas B. Pierron 95eb456ef7 Bug 1753709 - JavaScript: Add a preference to switch between delazification strategies. r=arai
This patch changes the way we parse JavaScript coming from Necko while loading
web pages, by adding an about:config flag named
javascript.options.delazification.strategy which is used to select between:

 0 - On Demand
 1 - Concurrent Depth First
 255 - Parse Everything Eagerly

Previously, we moved from On-demand delazification, to parsing everything
eagerly to improve responsiveness of the browser, but we knew that more room for
optimization exists.

This toogle is meant to explore the space of delazification strategies, such
that we can parse functions of JavaScript files on an helper thread, while the
JavaScript file is being executed on the main thread. The space of
delazification strategies goes from ordering the order in which functions are
processed, as well as filtering functions which are processed. Not all functions
have to be delazified, and if the main thread needs a function which is not
parsed yet, it will fallback to parsing it on-demand.

Differential Revision: https://phabricator.services.mozilla.com/D138034
2022-03-01 15:00:03 +00:00
..
experimental Bug 1745351 - Remove JS::StencilCanLazilyParse. r=nbp 2021-12-10 11:27:23 +00:00
friend Bug 1755389 - wasm: Add stack tracing support to WebAssembly.Exception. r=lth 2022-02-25 21:33:06 +00:00
shadow Bug 1740745 - Part 1: Make needs barrier state atomic r=sfink 2021-11-19 15:42:02 +00:00
AllocationLogging.h
AllocationRecording.h Bug 1716250 - Remove JS_FRIEND_API. r=jandem,sfink 2021-06-16 19:38:10 +00:00
AllocPolicy.h Bug 1716147 - Mark TempAllocPolicy as JS_PUBLIC_API. r=sfink 2021-07-08 23:48:21 +00:00
Array.h Bug 1704042 part 9 - Report an exception for large lengths from JS::GetArrayLength API. r=lth 2021-04-09 13:20:48 +00:00
ArrayBuffer.h Bug 1741941 - Add JSAPI helper to verify transfer safety r=sfink 2022-01-04 22:33:20 +00:00
ArrayBufferMaybeShared.h Bug 1716250 - Remove JS_FRIEND_API. r=jandem,sfink 2021-06-16 19:38:10 +00:00
BigInt.h Bug 1706866 - Fix up various details of existing BigInt public API. r=jandem 2021-06-15 08:16:17 +00:00
BuildId.h
CallAndConstruct.h Bug 1708450 - Move call and construct functions into js/public/CallAndConstruct.h. r=nbp 2021-07-13 11:52:43 +00:00
CallArgs.h
CallNonGenericMethod.h
CharacterEncoding.h
Class.h Bug 1730843 - Part 1 - Add support for empty R&T based on objects r=jandem 2021-12-20 15:17:16 +00:00
ComparisonOperators.h
CompilationAndEvaluation.h Bug 1720619 - Part 2: Add JS::InstantiateOptions. r=tcampbell 2021-10-18 17:08:06 +00:00
CompileOptions.h Bug 1753709 - JavaScript: Add a preference to switch between delazification strategies. r=arai 2022-03-01 15:00:03 +00:00
Context.h Bug 1746231: Convert the script callback to take a JSContext instead of a system bool r=freddyb,iain 2021-12-21 20:40:33 +00:00
ContextOptions.h Bug 1757035 - Remove Class static block preference code r=arai 2022-02-25 02:29:12 +00:00
Conversions.h Bug 1730843 - Part 8 - Add support for spread in records r=jandem 2021-12-20 15:17:20 +00:00
Date.h
Debug.h Bug 1736737 - Move SafelyInitialized into a struct to allow partial specialization. r=jonco 2021-10-25 21:18:56 +00:00
Equality.h
ErrorInterceptor.h Bug 1726737 - Part 4: Add public header for JSErrorInterceptor. r=arai 2021-08-20 18:10:34 +00:00
ErrorReport.h Bug 1735200 - Add cause argument to JS::CreateError(). r=jandem 2022-01-17 15:23:40 +00:00
Exception.h Bug 1735200 - Add JSAPI for getting Error.cause. r=jandem 2022-01-17 15:23:40 +00:00
ForOfIterator.h
GCAnnotations.h Bug 1727374 - Implement a JS_HAZ_VALUE_IS_GC_SAFE annotation, saying that *at the time of the annotation*, the given variable does not contain any GC-invalidatable pointers r=jonco 2021-09-01 17:19:08 +00:00
GCAPI.h Bug 1753958 - Part 3: Add a GCOption for shutdown GCs and use this rather than checking the GCReason r=sfink,mccr8 2022-02-15 09:45:06 +00:00
GCHashTable.h Bug 1736604 - Part 3: Rename MapSweepPolicy to MapEntryGCPolicy r=sfink 2021-11-09 09:17:35 +00:00
GCPolicyAPI.h Bug 1744059 - Rename UnsafeTraceRoot to TraceRoot as it is not unsafe to use r=sfink,mccr8 2021-12-07 09:02:36 +00:00
GCTypeMacros.h Bug 1754405 part 11 - Make PropertyKey bits field private. r=evilpie 2022-02-13 12:01:48 +00:00
GCVariant.h
GCVector.h Bug 1749298 - Part 3: Only trace finalization records if the registry's global is alive r=sfink 2022-02-11 11:28:29 +00:00
GlobalObject.h Bug 1726737 - Part 14: Add public header for global object functions. r=arai 2021-08-20 18:10:37 +00:00
HashTable.h
HeapAPI.h Bug 1744770 - Part 2: Don't immediately decommit new chunks when we are allocating quickly r=sfink 2021-12-08 08:34:59 +00:00
HelperThreadAPI.h Bug 1716940 - Pass external thread stack size through to the JS engine r=sfink,bas 2021-06-17 16:14:19 +00:00
Id.h Bug 1754405 part 14 - Rename PropertyKey::fromNonIntAtom to PropertyKey::NonIntAtom. r=evilpie 2022-02-13 12:01:49 +00:00
Initialization.h Bug 1732362 part 3 - Add an API to disable the JIT backend completely. r=iain 2022-01-25 10:13:04 +00:00
Interrupt.h Bug 1726737 - Part 10: Add public header for interrupt functions. r=arai 2021-08-20 18:10:36 +00:00
JSON.h
LocaleSensitive.h
MapAndSet.h Bug 1708739 - Move Map and Set APIs to new public header r=yulia 2021-05-01 12:10:15 +00:00
MemoryCallbacks.h Bug 1726737 - Part 6: Add public header for out-of-memory callbacks. r=arai 2021-08-20 18:10:34 +00:00
MemoryFunctions.h Bug 1693257 - Remove unused JS::MemoryUse::PerfMeasurement r=tcampbell 2021-05-28 17:41:06 +00:00
MemoryMetrics.h Bug 1615988 - Fix memory reporting of wasm memory. r=sfink 2021-09-07 21:03:48 +00:00
Modules.h Bug 1736060 - Part 4: Implement HostGetSupportedImportAssertions. r=mgaudet,arai 2021-12-01 18:26:09 +00:00
Object.h Bug 1719457 - Remove support for JSObject private slots. r=jonco 2021-07-30 12:43:17 +00:00
OffThreadScriptCompilation.h Bug 1734098 - Part 15: Use consistent name for decode multi stencils API. r=tcampbell 2021-12-10 04:28:31 +00:00
Principals.h
Printf.h
ProfilingCategory.h Bug 1716250 - Remove JS_FRIEND_API. r=jandem,sfink 2021-06-16 19:38:10 +00:00
ProfilingFrameIterator.h Bug 1716250 - Remove JS_FRIEND_API. r=jandem,sfink 2021-06-16 19:38:10 +00:00
ProfilingStack.h Bug 1724187 - Change the category of the ChromeUtils.addProfilerMarker label frame to PROFILER so that this code is ignored in stacks captured for profiler markers, r=gerald. 2021-08-06 20:24:42 +00:00
Promise.h Bug 1734243 - Part 1: Add JS::SetAnyPromiseIsHandled r=arai 2022-02-25 02:32:04 +00:00
PropertyAndElement.h Bug 1708448 - Move property and element functions into js/public/PropertyAndElement.h. r=nbp 2021-07-13 11:52:42 +00:00
PropertyDescriptor.h Bug 1708432 - Move JS_Get*PropertyDescriptor* to js/public/PropertyDescriptor.h. r=nbp 2021-07-13 11:52:41 +00:00
PropertySpec.h Bug 1713083 part 2 - Remove JSPROP_GETTER and JSPROP_SETTER. r=evilpie 2021-05-27 15:03:38 +00:00
ProtoKey.h Bug 1755391 - Remove JS Streams implementation of Writable Stream and PipeTo r=jandem 2022-03-01 14:17:07 +00:00
Proxy.h Bug 1716250 - Remove JS_FRIEND_API. r=jandem,sfink 2021-06-16 19:38:10 +00:00
Realm.h Bug 1589066 - Part 2: Remove unused RealmNeedsSweep API and implementation r=sfink 2021-10-14 10:52:27 +00:00
RealmIterators.h Bug 1708441 - Create js/public/RealmIterators.h and move some functions from jsapi.h in it. r=jonco 2021-04-30 16:30:45 +00:00
RealmOptions.h Bug 1750955 - add pref to turn off Array Grouping; r=evilpie 2022-02-02 09:00:39 +00:00
RefCounted.h
RegExp.h Bug 1730992: Add comment to ExecuteRegExp and ExecuteRegExpNoStatics r=sfink DONTBUILD 2021-09-17 19:05:31 +00:00
RegExpFlags.h
Result.h
RootingAPI.h Bug 1736737 - Implement Heap<ArrayBufferOrView> (for all subtypes) r=jonco 2021-10-25 21:18:57 +00:00
SavedFrameAPI.h Bug 1716250 - Remove JS_FRIEND_API. r=jandem,sfink 2021-06-16 19:38:10 +00:00
ScalarType.h Bug 1752167 - Use official name(js::Scalar::Type). r=jonco 2022-02-03 19:23:22 +00:00
ScriptPrivate.h Bug 1726737 - Part 3: Add public header for ScriptPrivate functions. r=arai 2021-08-20 18:10:33 +00:00
SharedArrayBuffer.h
SliceBudget.h Bug 1752646 - Record whether a GC slice was triggered and budgeted for idle time r=jonco 2022-02-08 23:22:29 +00:00
SourceText.h
StableStringChars.h Bug 1716250 - Remove JS_FRIEND_API. r=jandem,sfink 2021-06-16 19:38:10 +00:00
Stack.h Bug 1726737 - Part 1: Add public header for stack operations. r=arai 2021-08-20 18:10:32 +00:00
Stream.h Bug 1754251 - Refactor WriteIntoReadRequestBuffer to avoid hazard r=sfink 2022-02-10 15:54:50 +00:00
StreamConsumer.h Bug 1545131 - compress wasm alt data entries (r=jandem) 2021-10-21 22:08:14 +00:00
String.h Bug 1754405 part 4 - Remove JSID_TO_LINEAR_STRING. r=evilpie 2022-02-10 09:13:18 +00:00
StructuredClone.h Bug 1644600 - Move JSStructuredCloneData destructor into private impl r=sfink 2021-05-04 14:05:08 +00:00
SweepingAPI.h Bug 1736397 - Part 6: Use tracing for the incremental read barrier on WeakCached maps and sets r=sfink 2021-10-19 14:43:32 +00:00
Symbol.h
TelemetryTimers.h Bug 1726737 - Part 12: Add public header for telemetry timers. r=arai 2021-08-20 18:10:37 +00:00
TraceKind.h Bug 1715512 part 2 - Add PropMap GC thing. r=jonco 2021-06-17 16:51:40 +00:00
TraceLoggerAPI.h
TracingAPI.h Bug 1744059 - Rename UnsafeTraceRoot to TraceRoot as it is not unsafe to use r=sfink,mccr8 2021-12-07 09:02:36 +00:00
Transcoding.h Bug 1734098 - Part 15: Use consistent name for decode multi stencils API. r=tcampbell 2021-12-10 04:28:31 +00:00
TypeDecls.h Bug 1754977 - Don't build JS Streams when MOZ_DOM_STREAMS is enabled r=jandem 2022-02-15 15:58:13 +00:00
UbiNode.h Bug 1746090 - Switch RootList::init from taking an AutoCheckCannotGC token to returning one r=jonco 2022-01-22 01:34:45 +00:00
UbiNodeBreadthFirst.h
UbiNodeCensus.h Bug 1726123 - Part 1: Remove unnecessary includes to jsapi.h and jsfriendapi.h. r=arai 2021-08-17 15:45:37 +00:00
UbiNodeDominatorTree.h
UbiNodePostOrder.h
UbiNodeShortestPaths.h
UbiNodeUtils.h
UniquePtr.h
Utility.h Bug 1715976 - Add Delazification helper thread task. r=arai 2022-01-27 17:02:15 +00:00
Value.h Bug 1755489 part 1 - Optimize and simplify EqualGivenSameType a bit. r=iain 2022-02-16 09:37:56 +00:00
ValueArray.h
Vector.h
WaitCallbacks.h Bug 1726737 - Part 8: Add public header for wait callbacks. r=arai 2021-08-20 18:10:35 +00:00
Warnings.h
WasmFeatures.h Bug 1755641 - do not disable memory64 when fuzzing ion. r=rhunt 2022-02-17 06:33:39 +00:00
WasmModule.h
WeakMap.h Bug 1708739 - Move WeakMap APIs to new public header r=yulia 2021-05-01 12:10:14 +00:00
WeakMapPtr.h
Wrapper.h Bug 1716250 - Remove JS_FRIEND_API. r=jandem,sfink 2021-06-16 19:38:10 +00:00
WrapperCallbacks.h Bug 1726737 - Part 7: Add public header for wrapper callbacks. r=arai 2021-08-20 18:10:35 +00:00
Zone.h Bug 1708469 - Split realms, compartments, zones, context and runtime from JSApi; r=jonco 2021-05-04 16:53:05 +00:00