mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
Bug 1684944 - Add base template class for each *Scope::ParserData. r=nbp
Depends on D100741 Differential Revision: https://phabricator.services.mozilla.com/D100742
This commit is contained in:
parent
2d32594bf6
commit
fad39da87c
@ -496,6 +496,16 @@ using MaybeRootedScopeData = std::conditional_t<
|
|||||||
MaybeRooted<UniquePtr<typename ScopeT::RuntimeData>, AllowGC::CanGC>,
|
MaybeRooted<UniquePtr<typename ScopeT::RuntimeData>, AllowGC::CanGC>,
|
||||||
MaybeRooted<AbstractScopeData<ScopeT, AtomT>*, AllowGC::NoGC>>;
|
MaybeRooted<AbstractScopeData<ScopeT, AtomT>*, AllowGC::NoGC>>;
|
||||||
|
|
||||||
|
template <typename SlotInfo>
|
||||||
|
struct ParserScopeData
|
||||||
|
: public AbstractBaseScopeData<frontend::TaggedParserAtomIndex> {
|
||||||
|
SlotInfo slotInfo;
|
||||||
|
AbstractTrailingNamesArray<frontend::TaggedParserAtomIndex> trailingNames;
|
||||||
|
|
||||||
|
explicit ParserScopeData(size_t nameCount) : trailingNames(nameCount) {}
|
||||||
|
ParserScopeData() = delete;
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// A lexical scope that holds let and const bindings. There are 4 kinds of
|
// A lexical scope that holds let and const bindings. There are 4 kinds of
|
||||||
// LexicalScopes.
|
// LexicalScopes.
|
||||||
@ -548,14 +558,7 @@ class LexicalScope : public Scope {
|
|||||||
void trace(JSTracer* trc);
|
void trace(JSTracer* trc);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ParserData
|
using ParserData = ParserScopeData<SlotInfo>;
|
||||||
: public AbstractBaseScopeData<frontend::TaggedParserAtomIndex> {
|
|
||||||
SlotInfo slotInfo;
|
|
||||||
AbstractTrailingNamesArray<frontend::TaggedParserAtomIndex> trailingNames;
|
|
||||||
|
|
||||||
explicit ParserData(size_t nameCount) : trailingNames(nameCount) {}
|
|
||||||
ParserData() = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename NameT>
|
template <typename NameT>
|
||||||
using AbstractData =
|
using AbstractData =
|
||||||
@ -691,14 +694,7 @@ class FunctionScope : public Scope {
|
|||||||
void trace(JSTracer* trc);
|
void trace(JSTracer* trc);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ParserData
|
using ParserData = ParserScopeData<SlotInfo>;
|
||||||
: public AbstractBaseScopeData<frontend::TaggedParserAtomIndex> {
|
|
||||||
SlotInfo slotInfo;
|
|
||||||
AbstractTrailingNamesArray<frontend::TaggedParserAtomIndex> trailingNames;
|
|
||||||
|
|
||||||
explicit ParserData(size_t nameCount) : trailingNames(nameCount) {}
|
|
||||||
ParserData() = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename NameT>
|
template <typename NameT>
|
||||||
using AbstractData =
|
using AbstractData =
|
||||||
@ -788,14 +784,7 @@ class VarScope : public Scope {
|
|||||||
void trace(JSTracer* trc);
|
void trace(JSTracer* trc);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ParserData
|
using ParserData = ParserScopeData<SlotInfo>;
|
||||||
: public AbstractBaseScopeData<frontend::TaggedParserAtomIndex> {
|
|
||||||
SlotInfo slotInfo;
|
|
||||||
AbstractTrailingNamesArray<frontend::TaggedParserAtomIndex> trailingNames;
|
|
||||||
|
|
||||||
explicit ParserData(size_t nameCount) : trailingNames(nameCount) {}
|
|
||||||
ParserData() = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename NameT>
|
template <typename NameT>
|
||||||
using AbstractData =
|
using AbstractData =
|
||||||
@ -882,14 +871,7 @@ class GlobalScope : public Scope {
|
|||||||
void trace(JSTracer* trc);
|
void trace(JSTracer* trc);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ParserData
|
using ParserData = ParserScopeData<SlotInfo>;
|
||||||
: public AbstractBaseScopeData<frontend::TaggedParserAtomIndex> {
|
|
||||||
SlotInfo slotInfo;
|
|
||||||
AbstractTrailingNamesArray<frontend::TaggedParserAtomIndex> trailingNames;
|
|
||||||
|
|
||||||
explicit ParserData(size_t nameCount) : trailingNames(nameCount) {}
|
|
||||||
ParserData() = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename NameT>
|
template <typename NameT>
|
||||||
using AbstractData =
|
using AbstractData =
|
||||||
@ -994,14 +976,7 @@ class EvalScope : public Scope {
|
|||||||
void trace(JSTracer* trc);
|
void trace(JSTracer* trc);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ParserData
|
using ParserData = ParserScopeData<SlotInfo>;
|
||||||
: public AbstractBaseScopeData<frontend::TaggedParserAtomIndex> {
|
|
||||||
SlotInfo slotInfo;
|
|
||||||
AbstractTrailingNamesArray<frontend::TaggedParserAtomIndex> trailingNames;
|
|
||||||
|
|
||||||
explicit ParserData(size_t nameCount) : trailingNames(nameCount) {}
|
|
||||||
ParserData() = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename NameT>
|
template <typename NameT>
|
||||||
using AbstractData =
|
using AbstractData =
|
||||||
@ -1100,14 +1075,7 @@ class ModuleScope : public Scope {
|
|||||||
void trace(JSTracer* trc);
|
void trace(JSTracer* trc);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ParserData
|
using ParserData = ParserScopeData<SlotInfo>;
|
||||||
: public AbstractBaseScopeData<frontend::TaggedParserAtomIndex> {
|
|
||||||
SlotInfo slotInfo;
|
|
||||||
AbstractTrailingNamesArray<frontend::TaggedParserAtomIndex> trailingNames;
|
|
||||||
|
|
||||||
explicit ParserData(size_t nameCount) : trailingNames(nameCount) {}
|
|
||||||
ParserData() = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename NameT>
|
template <typename NameT>
|
||||||
using AbstractData =
|
using AbstractData =
|
||||||
@ -1179,14 +1147,7 @@ class WasmInstanceScope : public Scope {
|
|||||||
void trace(JSTracer* trc);
|
void trace(JSTracer* trc);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ParserData
|
using ParserData = ParserScopeData<SlotInfo>;
|
||||||
: public AbstractBaseScopeData<frontend::TaggedParserAtomIndex> {
|
|
||||||
SlotInfo slotInfo;
|
|
||||||
AbstractTrailingNamesArray<frontend::TaggedParserAtomIndex> trailingNames;
|
|
||||||
|
|
||||||
explicit ParserData(size_t nameCount) : trailingNames(nameCount) {}
|
|
||||||
ParserData() = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename NameT>
|
template <typename NameT>
|
||||||
using AbstractData =
|
using AbstractData =
|
||||||
@ -1245,14 +1206,7 @@ class WasmFunctionScope : public Scope {
|
|||||||
void trace(JSTracer* trc);
|
void trace(JSTracer* trc);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ParserData
|
using ParserData = ParserScopeData<SlotInfo>;
|
||||||
: public AbstractBaseScopeData<frontend::TaggedParserAtomIndex> {
|
|
||||||
SlotInfo slotInfo;
|
|
||||||
AbstractTrailingNamesArray<frontend::TaggedParserAtomIndex> trailingNames;
|
|
||||||
|
|
||||||
explicit ParserData(size_t nameCount) : trailingNames(nameCount) {}
|
|
||||||
ParserData() = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename NameT>
|
template <typename NameT>
|
||||||
using AbstractData =
|
using AbstractData =
|
||||||
|
Loading…
Reference in New Issue
Block a user