diff --git a/js/src/gc/AllocKind.h b/js/src/gc/AllocKind.h index 8c7755f85e3a..178976a7c070 100644 --- a/js/src/gc/AllocKind.h +++ b/js/src/gc/AllocKind.h @@ -66,7 +66,7 @@ namespace gc { D(FAT_INLINE_ATOM, String, js::FatInlineAtom, js::FatInlineAtom, true, false, true) \ D(ATOM, String, js::NormalAtom, js::NormalAtom, true, false, true) \ D(SYMBOL, Symbol, JS::Symbol, JS::Symbol, true, false, false) \ - D(BIGINT, BigInt, JS::BigInt, JS::BigInt, true, false, false) \ + D(BIGINT, BigInt, JS::BigInt, JS::BigInt, true, false, true) \ D(JITCODE, JitCode, js::jit::JitCode, js::jit::JitCode, false, false, false) \ D(SCOPE, Scope, js::Scope, js::Scope, true, false, true) \ D(REGEXP_SHARED, RegExpShared, js::RegExpShared, js::RegExpShared, true, false, true) diff --git a/js/src/gc/GC.cpp b/js/src/gc/GC.cpp index efdc8d1c18e6..8b2933bc2636 100644 --- a/js/src/gc/GC.cpp +++ b/js/src/gc/GC.cpp @@ -2453,6 +2453,7 @@ void MovingTracer::onScopeEdge(Scope** scopep) { updateEdge(scopep); } void MovingTracer::onRegExpSharedEdge(RegExpShared** sharedp) { updateEdge(sharedp); } +void MovingTracer::onBigIntEdge(BigInt** bip) { updateEdge(bip); } void Zone::prepareForCompacting() { FreeOp* fop = runtimeFromMainThread()->defaultFreeOp(); diff --git a/js/src/gc/GCInternals.h b/js/src/gc/GCInternals.h index c95d49c2a0aa..484cc65dccd6 100644 --- a/js/src/gc/GCInternals.h +++ b/js/src/gc/GCInternals.h @@ -161,6 +161,7 @@ struct MovingTracer : JS::CallbackTracer { void onBaseShapeEdge(BaseShape** basep) override; void onScopeEdge(Scope** basep) override; void onRegExpSharedEdge(RegExpShared** sharedp) override; + void onBigIntEdge(BigInt** bip) override; void onChild(const JS::GCCellPtr& thing) override { MOZ_ASSERT(!thing.asCell()->isForwarded()); } diff --git a/js/src/gc/Marking-inl.h b/js/src/gc/Marking-inl.h index 83fb0fb18b8a..0d3adab6cc89 100644 --- a/js/src/gc/Marking-inl.h +++ b/js/src/gc/Marking-inl.h @@ -62,6 +62,7 @@ struct MightBeForwarded { mozilla::IsBaseOf::value || mozilla::IsBaseOf::value || mozilla::IsBaseOf::value || + mozilla::IsBaseOf::value || mozilla::IsBaseOf::value || mozilla::IsBaseOf::value || mozilla::IsBaseOf::value ||