mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 17:55:50 +00:00
Bug 1424946
- Move various GeneralParser::newName-style functions into a baser class. r=arai
This commit is contained in:
parent
811d1f7fd6
commit
7aac997a48
@ -2335,9 +2335,9 @@ PerHandlerParser<ParseHandler>::declareFunctionThis()
|
||||
return true;
|
||||
}
|
||||
|
||||
template <class ParseHandler, typename CharT>
|
||||
template <class ParseHandler>
|
||||
typename ParseHandler::Node
|
||||
GeneralParser<ParseHandler, CharT>::newInternalDotName(HandlePropertyName name)
|
||||
PerHandlerParser<ParseHandler>::newInternalDotName(HandlePropertyName name)
|
||||
{
|
||||
Node nameNode = newName(name);
|
||||
if (!nameNode)
|
||||
@ -2347,16 +2347,16 @@ GeneralParser<ParseHandler, CharT>::newInternalDotName(HandlePropertyName name)
|
||||
return nameNode;
|
||||
}
|
||||
|
||||
template <class ParseHandler, typename CharT>
|
||||
template <class ParseHandler>
|
||||
typename ParseHandler::Node
|
||||
GeneralParser<ParseHandler, CharT>::newThisName()
|
||||
PerHandlerParser<ParseHandler>::newThisName()
|
||||
{
|
||||
return newInternalDotName(context->names().dotThis);
|
||||
}
|
||||
|
||||
template <class ParseHandler, typename CharT>
|
||||
template <class ParseHandler>
|
||||
typename ParseHandler::Node
|
||||
GeneralParser<ParseHandler, CharT>::newDotGeneratorName()
|
||||
PerHandlerParser<ParseHandler>::newDotGeneratorName()
|
||||
{
|
||||
return newInternalDotName(context->names().dotGenerator);
|
||||
}
|
||||
@ -8764,16 +8764,16 @@ GeneralParser<ParseHandler, CharT>::memberExpr(YieldHandling yieldHandling,
|
||||
return lhs;
|
||||
}
|
||||
|
||||
template <class ParseHandler, typename CharT>
|
||||
typename ParseHandler::Node
|
||||
GeneralParser<ParseHandler, CharT>::newName(PropertyName* name)
|
||||
template <class ParseHandler>
|
||||
inline typename ParseHandler::Node
|
||||
PerHandlerParser<ParseHandler>::newName(PropertyName* name)
|
||||
{
|
||||
return newName(name, pos());
|
||||
}
|
||||
|
||||
template <class ParseHandler, typename CharT>
|
||||
typename ParseHandler::Node
|
||||
GeneralParser<ParseHandler, CharT>::newName(PropertyName* name, TokenPos pos)
|
||||
template <class ParseHandler>
|
||||
inline typename ParseHandler::Node
|
||||
PerHandlerParser<ParseHandler>::newName(PropertyName* name, TokenPos pos)
|
||||
{
|
||||
return handler.newName(name, pos, context);
|
||||
}
|
||||
|
@ -291,6 +291,8 @@ class PerHandlerParser
|
||||
/* State specific to the kind of parse being performed. */
|
||||
ParseHandler handler;
|
||||
|
||||
static Node null() { return ParseHandler::null(); }
|
||||
|
||||
const char* nameIsArgumentsOrEval(Node node);
|
||||
|
||||
bool noteDestructuredPositionalFormalParameter(Node fn, Node destruct);
|
||||
@ -310,6 +312,13 @@ class PerHandlerParser
|
||||
|
||||
bool declareFunctionThis();
|
||||
|
||||
inline Node newName(PropertyName* name);
|
||||
inline Node newName(PropertyName* name, TokenPos pos);
|
||||
|
||||
Node newInternalDotName(HandlePropertyName name);
|
||||
Node newThisName();
|
||||
Node newDotGeneratorName();
|
||||
|
||||
public:
|
||||
bool isValidSimpleAssignmentTarget(Node node,
|
||||
FunctionCallBehavior behavior = ForbidAssignmentToFunctionCalls);
|
||||
@ -374,6 +383,8 @@ class GeneralParser
|
||||
using Base::nameIsArgumentsOrEval;
|
||||
using Base::newFunction;
|
||||
using Base::newFunctionBox;
|
||||
using Base::newName;
|
||||
using Base::null;
|
||||
using Base::options;
|
||||
using Base::pos;
|
||||
using Base::propagateFreeNamesAndMarkClosedOverBindings;
|
||||
@ -392,6 +403,9 @@ class GeneralParser
|
||||
private:
|
||||
using Base::declareFunctionThis;
|
||||
using Base::hasUsedName;
|
||||
using Base::newDotGeneratorName;
|
||||
using Base::newInternalDotName;
|
||||
using Base::newThisName;
|
||||
using Base::noteDestructuredPositionalFormalParameter;
|
||||
using Base::noteUsedName;
|
||||
|
||||
@ -872,9 +886,6 @@ class GeneralParser
|
||||
bool matchInOrOf(bool* isForInp, bool* isForOfp);
|
||||
|
||||
bool declareFunctionArgumentsObject();
|
||||
Node newInternalDotName(HandlePropertyName name);
|
||||
Node newThisName();
|
||||
Node newDotGeneratorName();
|
||||
bool declareDotGeneratorName();
|
||||
|
||||
inline bool finishFunction(bool isStandaloneFunction = false);
|
||||
@ -933,13 +944,8 @@ class GeneralParser
|
||||
}
|
||||
|
||||
protected:
|
||||
static Node null() { return ParseHandler::null(); }
|
||||
|
||||
Node stringLiteral();
|
||||
|
||||
inline Node newName(PropertyName* name);
|
||||
inline Node newName(PropertyName* name, TokenPos pos);
|
||||
|
||||
// Match the current token against the BindingIdentifier production with
|
||||
// the given Yield parameter. If there is no match, report a syntax
|
||||
// error.
|
||||
|
Loading…
Reference in New Issue
Block a user