gecko-dev/js/public
Jon Coppeard 75021bbf69 Bug 1694209 - Buffer GC things in the pre-write barrier and process them later r=sfink
The aim of this is to mark cells in the barrier but delay marking of their children (which can access the mark stack) until a later point when the barrier buffer is processed in one go.

One problem that came up was with strings barriered during rope flattening. These are valid in the barrier but then have some of their contents overwritten with temporary data during flattening. If we try and process the barrier buffer at this point we will crash. Fortunately we don't actually need to process the children of ropes here because this code performs the barrier for all ropes in the tree already.

I had to change some test code because unmarking cells that had been marked by the barrier broke some of the assertions I added.

Differential Revision: https://phabricator.services.mozilla.com/D106151
2021-03-01 13:39:53 +00:00
..
experimental Bug 1691612 - Add public API for JS::Stencil. r=arai 2021-02-13 22:36:17 +00:00
friend Bug 1670124 - Forbid \8 and \9 in strict mode strings and template literals. r=jwalden 2021-02-25 10:58:09 +00:00
shadow Bug 1681297 - Refactor JS::shadow::Zone flags into a single enum and make it const r=jandem 2020-12-16 11:06:23 +00:00
AllocPolicy.h Bug 1684092 - Part 1: Replace MOZ_MUST_USE with [[nodiscard]] in js/src/. r=jandem 2021-02-12 04:09:22 +00:00
AllocationLogging.h Bug 1663365 - Move allocation-logging functions and |JS_COUNT_{CTOR,DTOR}| into a separate header. r=jandem 2020-09-08 22:56:56 +00:00
AllocationRecording.h
Array.h
ArrayBuffer.h Bug 1674777 part 9 - Change GetArrayBufferByteLength return type from uint32_t to size_t. r=sfink 2021-02-10 08:30:06 +00:00
ArrayBufferMaybeShared.h Bug 1674777 part 3 - Change Get*LengthAndData outparam from uint32_t to size_t. r=sfink,aosmond 2021-01-31 08:35:40 +00:00
BigInt.h Bug 1606568 - Add public BigInt API. r=jwalden 2020-07-22 02:53:06 +00:00
BuildId.h Bug 1684092 - Part 3: Remove unnecessary #includes of Attributes.h for MOZ_MUST_USE in js/src/. r=jandem 2021-02-12 04:09:24 +00:00
CallArgs.h
CallNonGenericMethod.h
CharacterEncoding.h Bug 1663365 - Create a new js/public/String.h header seeded with the inline string functions previously found in jsfriendapi.h. (More functions ought be added/moved here, but these make a good start.) r=jandem,geckoview-reviewers,agi 2020-09-08 22:50:52 +00:00
Class.h Bug 1694044 - Add additional modes to PropertyResult. r=jandem 2021-02-24 23:49:57 +00:00
ComparisonOperators.h
CompilationAndEvaluation.h Bug 1668576 - Part 14: Remove ObjectClassName and InitScriptSourceElement. r=tcampbell 2020-10-09 14:24:48 +00:00
CompileOptions.h Bug 1684092 - Part 3: Remove unnecessary #includes of Attributes.h for MOZ_MUST_USE in js/src/. r=jandem 2021-02-12 04:09:24 +00:00
ContextOptions.h Bug 1672160 - SIMD wormhole. r=rhunt 2020-12-15 09:49:35 +00:00
Conversions.h
Date.h
Debug.h
Equality.h
ErrorReport.h Bug 1654927 - Move js.msg and js::GetErrorMessage into a new js/public/friend directory so users of them don't have to depend on all of jsfriendapi.h. r=mgaudet 2020-07-29 04:44:50 +00:00
Exception.h
ForOfIterator.h Bug 1684092 - Part 3: Remove unnecessary #includes of Attributes.h for MOZ_MUST_USE in js/src/. r=jandem 2021-02-12 04:09:24 +00:00
GCAPI.h Bug 1691920 - Add a systemPageSizeKB parameter. r=jonco 2021-02-24 22:04:16 +00:00
GCAnnotations.h
GCHashTable.h Bug 1684092 - Part 1: Replace MOZ_MUST_USE with [[nodiscard]] in js/src/. r=jandem 2021-02-12 04:09:22 +00:00
GCPolicyAPI.h
GCTypeMacros.h
GCVariant.h
GCVector.h Bug 1684092 - Part 1: Replace MOZ_MUST_USE with [[nodiscard]] in js/src/. r=jandem 2021-02-12 04:09:22 +00:00
HashTable.h
HeapAPI.h Bug 1692221 - Update list of free committed arenas in TenuredChunk::decommitFreeArenasWithoutUnlocking r=sfink 2021-02-16 11:59:16 +00:00
Id.h Bug 1666853 - Part 4: Remove use of ApplyGCThingTyped from Value barriers as this doesn't generate good code r=sfink 2020-09-26 10:40:48 +00:00
Initialization.h
JSON.h
LocaleSensitive.h
MemoryFunctions.h Bug 1684092 - Part 3: Remove unnecessary #includes of Attributes.h for MOZ_MUST_USE in js/src/. r=jandem 2021-02-12 04:09:24 +00:00
MemoryMetrics.h Bug 1673553 part 79 - Remove now dead TI memory reporters. r=iain 2020-12-04 10:08:53 +00:00
Modules.h Bug 1519100 - Use pref to completely pref-off top-level await in the browser; r=emilio,jonco 2020-12-04 08:54:10 +00:00
Object.h Bug 1674126 - Store native object's private slot using PrivateValue r=jandem 2020-11-11 11:22:04 +00:00
OffThreadScriptCompilation.h Bug 1686572 - Return JS::OffThreadToken* from off-thread script compile. r=arai 2021-01-14 00:51:13 +00:00
Principals.h
Printf.h
ProfilingCategory.h
ProfilingFrameIterator.h
ProfilingStack.h Bug 1668056 - Bailout profiler markers should be text markers. r=jandem,gerald 2020-09-30 12:19:54 +00:00
Promise.h No Bug - Fix spelling error in Promise.h r=caroline DONTBUILD DONTBUILD 2020-08-25 20:44:46 +00:00
PropertyDescriptor.h
PropertySpec.h Bug 1663365 - Move |JSJitInfo| out of jsfriendapi.h to its own experimental header. r=jandem 2020-09-08 22:52:34 +00:00
ProtoKey.h Bug 1335652 - wasm exceptions part 10: add WebAssembly.RuntimeException r=rhunt 2021-02-03 04:21:07 +00:00
Proxy.h Bug 1694040 - Use JSObject::is<ProxyObject> in more places. r=jandem 2021-02-22 13:12:29 +00:00
Realm.h Bug 1659885 - Define |JS::shadow::Realm| in public shadow API in its own minimal header. r=jonco 2020-08-20 19:23:08 +00:00
RealmOptions.h Bug 1688190 - Part 6: Make JS::RealmBehaviorsRef return const reference. r=tcampbell 2021-01-22 21:52:30 +00:00
RefCounted.h
RegExp.h
RegExpFlags.h
RequiredDefines.h
Result.h Bug 1667019 - Simplify moving of Results for PackingStrategy NullIsOk. r=emilio 2020-09-29 08:09:02 +00:00
RootingAPI.h Bug 1691894 - Fix EntryHandle to only work with DataType rather than wrapping UserDataType. r=xpcom-reviewers,necko-reviewers,nika,jonco,valentin 2021-02-12 15:25:40 +00:00
SavedFrameAPI.h
ScalarType.h Bug 1675602 - Use WebAssembly's type system for TypedObject. r=lth 2020-12-13 01:13:56 +00:00
SharedArrayBuffer.h Bug 1674777 part 6 - Change SharedArrayBuffer APIs to use size_t instead of uint32_t. r=lth 2021-02-04 16:09:24 +00:00
SliceBudget.h Bug 1689140 - Refactor SliceBudget API r=sfink 2021-01-28 19:11:42 +00:00
SourceText.h Bug 1684092 - Part 3: Remove unnecessary #includes of Attributes.h for MOZ_MUST_USE in js/src/. r=jandem 2021-02-12 04:09:24 +00:00
StableStringChars.h Bug 1684092 - Part 3: Remove unnecessary #includes of Attributes.h for MOZ_MUST_USE in js/src/. r=jandem 2021-02-12 04:09:24 +00:00
Stream.h Bug 1502355 - Rename |JS::InitAbortSignalHandling| to |JS::InitPipeToHandling|, because this embedder interface is going to get a lot more pipeTo-specific shortly... r=arai 2020-10-30 21:22:04 +00:00
String.h Bug 1684092 - Part 3: Remove unnecessary #includes of Attributes.h for MOZ_MUST_USE in js/src/. r=jandem 2021-02-12 04:09:24 +00:00
StructuredClone.h Bug 1684092 - Part 1: Replace MOZ_MUST_USE with [[nodiscard]] in js/src/. r=jandem 2021-02-12 04:09:22 +00:00
SweepingAPI.h
Symbol.h Bug 1678374 - Avoid including js/RootingAPI.h from header files. r=jandem 2020-11-23 16:12:12 +00:00
TraceKind.h Bug 1689394 - Simplify TraceKind definition to reduce code generated by switch statements r=sfink 2021-01-29 19:47:47 +00:00
TraceLoggerAPI.h
TracingAPI.h Bug 1694209 - Buffer GC things in the pre-write barrier and process them later r=sfink 2021-03-01 13:39:53 +00:00
Transcoding.h Bug 1693027 - Convert TranscodeResult to a strongly typed enum r=arai,kmag 2021-02-18 13:55:19 +00:00
TypeDecls.h Bug 1502355 - Declare |JSClass| in consistent fashion everywhere. r=arai 2020-08-18 20:50:07 +00:00
UbiNode.h Bug 1684092 - Part 2: Move [[nodiscard]] to the head of function declarations in js/src/. r=jandem 2021-02-12 04:09:23 +00:00
UbiNodeBreadthFirst.h
UbiNodeCensus.h Bug 1684092 - Part 2: Move [[nodiscard]] to the head of function declarations in js/src/. r=jandem 2021-02-12 04:09:23 +00:00
UbiNodeDominatorTree.h Bug 1684092 - Part 2: Move [[nodiscard]] to the head of function declarations in js/src/. r=jandem 2021-02-12 04:09:23 +00:00
UbiNodePostOrder.h Bug 1684092 - Part 1: Replace MOZ_MUST_USE with [[nodiscard]] in js/src/. r=jandem 2021-02-12 04:09:22 +00:00
UbiNodeShortestPaths.h Bug 1684092 - Part 1: Replace MOZ_MUST_USE with [[nodiscard]] in js/src/. r=jandem 2021-02-12 04:09:22 +00:00
UbiNodeUtils.h
UniquePtr.h
Utility.h Bug 1684092 - Part 1: Replace MOZ_MUST_USE with [[nodiscard]] in js/src/. r=jandem 2021-02-12 04:09:22 +00:00
Value.h Bug 1428742 - use Value::toGCCellPtr and delegating ctr of GCCellPtr. r=jonco 2021-02-03 20:13:10 +00:00
ValueArray.h Bug 1223932 - delete guard object uses from the tree; r=jwalden 2020-07-30 14:22:38 +00:00
Vector.h
Warnings.h
WasmModule.h
WeakMapPtr.h
Wrapper.h Bug 1691008 - Part 5: Remove Wrapper::NewSingleton. r=jandem 2021-02-05 14:15:41 +00:00