Bug 1424946 - Move GeneralParser::processExport into a baser class. r=arai

This commit is contained in:
Jeff Walden 2017-12-12 15:21:00 -06:00
parent d616d92792
commit be245e98db
2 changed files with 9 additions and 15 deletions

View File

@ -5383,28 +5383,22 @@ GeneralParser<ParseHandler, CharT>::checkExportedNameForClass(Node node)
{
return asFinalParser()->checkExportedNameForClass(node);
}
template<typename CharT>
bool
Parser<FullParseHandler, CharT>::processExport(ParseNode* node)
template<>
inline bool
PerHandlerParser<FullParseHandler>::processExport(ParseNode* node)
{
return pc->sc()->asModuleContext()->builder.processExport(node);
}
template<typename CharT>
template<>
inline bool
Parser<SyntaxParseHandler, CharT>::processExport(Node node)
PerHandlerParser<SyntaxParseHandler>::processExport(Node node)
{
MOZ_ALWAYS_FALSE(abortIfSyntaxParser());
return false;
}
template<class ParseHandler, typename CharT>
inline bool
GeneralParser<ParseHandler, CharT>::processExport(Node node)
{
return asFinalParser()->processExport(node);
}
template<typename CharT>
bool
Parser<FullParseHandler, CharT>::processExportFrom(ParseNode* node)

View File

@ -350,6 +350,8 @@ class PerHandlerParser
Node newThisName();
Node newDotGeneratorName();
inline bool processExport(Node node);
// If ParseHandler is SyntaxParseHandler:
// Do nothing.
// If ParseHandler is FullParseHandler:
@ -542,6 +544,7 @@ class GeneralParser
using Base::noteDestructuredPositionalFormalParameter;
using Base::noteUsedName;
using Base::prefixAccessorName;
using Base::processExport;
private:
inline FinalParser* asFinalParser();
@ -847,7 +850,6 @@ class GeneralParser
Node lexicalDeclaration(YieldHandling yieldHandling, DeclarationKind kind);
inline Node importDeclaration();
inline bool processExport(Node node);
inline bool processExportFrom(Node node);
Node exportFrom(uint32_t begin, Node specList);
@ -1176,7 +1178,6 @@ class Parser<SyntaxParseHandler, CharT> final
Node moduleBody(ModuleSharedContext* modulesc);
inline Node importDeclaration();
inline bool processExport(Node node);
inline bool processExportFrom(Node node);
inline bool checkLocalExportNames(Node node);
inline bool checkExportedName(JSAtom* exportName);
@ -1291,7 +1292,6 @@ class Parser<FullParseHandler, CharT> final
Node moduleBody(ModuleSharedContext* modulesc);
Node importDeclaration();
bool processExport(Node node);
bool processExportFrom(Node node);
bool checkLocalExportNames(Node node);
bool checkExportedName(JSAtom* exportName);