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:
Tooru Fujisawa 2021-01-05 17:41:43 +00:00
parent 2d32594bf6
commit fad39da87c

View File

@ -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 =