Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (181817 => 181818)
--- trunk/Source/_javascript_Core/ChangeLog 2015-03-20 23:26:26 UTC (rev 181817)
+++ trunk/Source/_javascript_Core/ChangeLog 2015-03-20 23:37:51 UTC (rev 181818)
@@ -1,3 +1,56 @@
+2015-03-20 Geoffrey Garen <gga...@apple.com>
+
+ FunctionBodyNode should known where its parameters started
+ https://bugs.webkit.org/show_bug.cgi?id=142926
+
+ Reviewed by Ryosuke Niwa.
+
+ This will allow us to re-parse parameters instead of keeping the
+ parameters piece of the AST around forever.
+
+ I also took the opportunity to initialize most FunctionBodyNode data
+ members at construction time, to help clarify that they are set right.
+
+ * parser/ASTBuilder.h:
+ (JSC::ASTBuilder::createFunctionExpr): No need to pass
+ functionKeywordStart here; we now provide it at FunctionBodyNode
+ creation time.
+
+ (JSC::ASTBuilder::createFunctionBody): Require everything we need at
+ construction time, including the start of our parameters.
+
+ (JSC::ASTBuilder::createGetterOrSetterProperty):
+ (JSC::ASTBuilder::createFuncDeclStatement): No need to pass
+ functionKeywordStart here; we now provide it at FunctionBodyNode
+ creation time.
+
+ (JSC::ASTBuilder::setFunctionNameStart): Deleted.
+
+ * parser/Nodes.cpp:
+ (JSC::FunctionBodyNode::FunctionBodyNode): Initialize everything at
+ construction time.
+
+ * parser/Nodes.h: Added a field for the location of our parameters.
+
+ * parser/Parser.cpp:
+ (JSC::Parser<LexerType>::parseFunctionBody):
+ (JSC::Parser<LexerType>::parseFunctionInfo):
+ (JSC::Parser<LexerType>::parseFunctionDeclaration):
+ (JSC::Parser<LexerType>::parseClass):
+ (JSC::Parser<LexerType>::parsePropertyMethod):
+ (JSC::Parser<LexerType>::parseGetterSetter):
+ (JSC::Parser<LexerType>::parsePrimaryExpression):
+ * parser/Parser.h: Refactored to match above interface changes.
+
+ * parser/SyntaxChecker.h:
+ (JSC::SyntaxChecker::createFunctionExpr):
+ (JSC::SyntaxChecker::createFunctionBody):
+ (JSC::SyntaxChecker::createFuncDeclStatement):
+ (JSC::SyntaxChecker::createGetterOrSetterProperty): Refactored to match
+ above interface changes.
+
+ (JSC::SyntaxChecker::setFunctionNameStart): Deleted.
+
2015-03-20 Filip Pizlo <fpi...@apple.com>
Observably effectful nodes in DFG IR should come last in their bytecode instruction (i.e. forExit section), except for Hint nodes
Modified: trunk/Source/_javascript_Core/parser/ASTBuilder.h (181817 => 181818)
--- trunk/Source/_javascript_Core/parser/ASTBuilder.h 2015-03-20 23:26:26 UTC (rev 181817)
+++ trunk/Source/_javascript_Core/parser/ASTBuilder.h 2015-03-20 23:37:51 UTC (rev 181818)
@@ -293,42 +293,41 @@
}
#endif
- ExpressionNode* createFunctionExpr(const JSTokenLocation& location, const ParserFunctionInfo<ASTBuilder>& info, unsigned functionKeywordStart)
+ ExpressionNode* createFunctionExpr(const JSTokenLocation& location, const ParserFunctionInfo<ASTBuilder>& info)
{
FuncExprNode* result = new (m_parserArena) FuncExprNode(location, *info.name, info.body,
m_sourceCode->subExpression(info.openBraceOffset, info.closeBraceOffset, info.bodyStartLine, info.bodyStartColumn), info.parameters);
info.body->setLoc(info.bodyStartLine, info.bodyEndLine, location.startOffset, location.lineStartOffset);
- info.body->setFunctionKeywordStart(functionKeywordStart);
return result;
}
- FunctionBodyNode* createFunctionBody(const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn, bool inStrictContext, ConstructorKind constructorKind)
+ FunctionBodyNode* createFunctionBody(
+ const JSTokenLocation& startLocation, const JSTokenLocation& endLocation,
+ unsigned startColumn, unsigned endColumn, int functionKeywordStart,
+ int functionNameStart, int parametersStart, bool inStrictContext,
+ ConstructorKind constructorKind)
{
- return new (m_parserArena) FunctionBodyNode(m_parserArena, startLocation, endLocation, startColumn, endColumn, inStrictContext, constructorKind);
+ return new (m_parserArena) FunctionBodyNode(
+ m_parserArena, startLocation, endLocation, startColumn, endColumn,
+ functionKeywordStart, functionNameStart, parametersStart,
+ inStrictContext, constructorKind);
}
- void setFunctionNameStart(FunctionBodyNode* body, int functionNameStart)
- {
- body->setFunctionNameStart(functionNameStart);
- }
-
NEVER_INLINE PropertyNode* createGetterOrSetterProperty(const JSTokenLocation& location, PropertyNode::Type type, bool,
- const Identifier* name, const ParserFunctionInfo<ASTBuilder>& info, unsigned getOrSetStartOffset, SuperBinding superBinding)
+ const Identifier* name, const ParserFunctionInfo<ASTBuilder>& info, SuperBinding superBinding)
{
ASSERT(name);
info.body->setLoc(info.bodyStartLine, info.bodyEndLine, location.startOffset, location.lineStartOffset);
info.body->setInferredName(*name);
- info.body->setFunctionKeywordStart(getOrSetStartOffset);
SourceCode source = m_sourceCode->subExpression(info.openBraceOffset, info.closeBraceOffset, info.bodyStartLine, info.bodyStartColumn);
FuncExprNode* funcExpr = new (m_parserArena) FuncExprNode(location, m_vm->propertyNames->nullIdentifier, info.body, source, info.parameters);
return new (m_parserArena) PropertyNode(*name, funcExpr, type, PropertyNode::Unknown, superBinding);
}
NEVER_INLINE PropertyNode* createGetterOrSetterProperty(VM* vm, ParserArena& parserArena, const JSTokenLocation& location, PropertyNode::Type type, bool,
- double name, const ParserFunctionInfo<ASTBuilder>& info, unsigned getOrSetStartOffset, SuperBinding superBinding)
+ double name, const ParserFunctionInfo<ASTBuilder>& info, SuperBinding superBinding)
{
info.body->setLoc(info.bodyStartLine, info.bodyEndLine, location.startOffset, location.lineStartOffset);
- info.body->setFunctionKeywordStart(getOrSetStartOffset);
const Identifier& ident = parserArena.identifierArena().makeNumericIdentifier(vm, name);
SourceCode source = m_sourceCode->subExpression(info.openBraceOffset, info.closeBraceOffset, info.bodyStartLine, info.bodyStartColumn);
FuncExprNode* funcExpr = new (m_parserArena) FuncExprNode(location, vm->propertyNames->nullIdentifier, info.body, source, info.parameters);
@@ -364,7 +363,7 @@
ClauseListNode* createClauseList(CaseClauseNode* clause) { return new (m_parserArena) ClauseListNode(clause); }
ClauseListNode* createClauseList(ClauseListNode* tail, CaseClauseNode* clause) { return new (m_parserArena) ClauseListNode(tail, clause); }
- StatementNode* createFuncDeclStatement(const JSTokenLocation& location, const ParserFunctionInfo<ASTBuilder>& info, unsigned functionKeywordStart)
+ StatementNode* createFuncDeclStatement(const JSTokenLocation& location, const ParserFunctionInfo<ASTBuilder>& info)
{
FuncDeclNode* decl = new (m_parserArena) FuncDeclNode(location, *info.name, info.body,
m_sourceCode->subExpression(info.openBraceOffset, info.closeBraceOffset, info.bodyStartLine, info.bodyStartColumn), info.parameters);
@@ -372,7 +371,6 @@
usesArguments();
m_scope.m_funcDeclarations.append(decl->body());
info.body->setLoc(info.bodyStartLine, info.bodyEndLine, location.startOffset, location.lineStartOffset);
- info.body->setFunctionKeywordStart(functionKeywordStart);
return decl;
}
Modified: trunk/Source/_javascript_Core/parser/Nodes.cpp (181817 => 181818)
--- trunk/Source/_javascript_Core/parser/Nodes.cpp 2015-03-20 23:26:26 UTC (rev 181817)
+++ trunk/Source/_javascript_Core/parser/Nodes.cpp 2015-03-20 23:37:51 UTC (rev 181818)
@@ -167,13 +167,20 @@
patterns()[i]->deref();
}
-FunctionBodyNode::FunctionBodyNode(ParserArena&, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn, bool isInStrictContext, ConstructorKind constructorKind)
- : StatementNode(endLocation)
- , m_startColumn(startColumn)
- , m_endColumn(endColumn)
- , m_startStartOffset(startLocation.startOffset)
- , m_isInStrictContext(isInStrictContext)
- , m_constructorKind(static_cast<unsigned>(constructorKind))
+FunctionBodyNode::FunctionBodyNode(
+ ParserArena&, const JSTokenLocation& startLocation,
+ const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn,
+ int functionKeywordStart, int functionNameStart, int parametersStart,
+ bool isInStrictContext, ConstructorKind constructorKind)
+ : StatementNode(endLocation)
+ , m_startColumn(startColumn)
+ , m_endColumn(endColumn)
+ , m_functionKeywordStart(functionKeywordStart)
+ , m_functionNameStart(functionNameStart)
+ , m_parametersStart(parametersStart)
+ , m_startStartOffset(startLocation.startOffset)
+ , m_isInStrictContext(isInStrictContext)
+ , m_constructorKind(static_cast<unsigned>(constructorKind))
{
ASSERT(m_constructorKind == static_cast<unsigned>(constructorKind));
}
Modified: trunk/Source/_javascript_Core/parser/Nodes.h (181817 => 181818)
--- trunk/Source/_javascript_Core/parser/Nodes.h 2015-03-20 23:26:26 UTC (rev 181817)
+++ trunk/Source/_javascript_Core/parser/Nodes.h 2015-03-20 23:37:51 UTC (rev 181818)
@@ -1560,7 +1560,11 @@
public:
using ParserArenaDeletable::operator new;
- FunctionBodyNode(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, bool isInStrictContext, ConstructorKind);
+ FunctionBodyNode(
+ ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end,
+ unsigned startColumn, unsigned endColumn, int functionKeywordStart,
+ int functionNameStart, int parametersStart, bool isInStrictContext,
+ ConstructorKind);
FunctionParameters* parameters() const { return m_parameters.get(); }
@@ -1575,9 +1579,7 @@
FunctionMode functionMode() { return m_functionMode; }
- void setFunctionNameStart(int functionNameStart) { m_functionNameStart = functionNameStart; }
int functionNameStart() const { return m_functionNameStart; }
- void setFunctionKeywordStart(int functionKeywordStart) { m_functionKeywordStart = functionKeywordStart; }
int functionKeywordStart() const { return m_functionKeywordStart; }
unsigned startColumn() const { return m_startColumn; }
unsigned endColumn() const { return m_endColumn; }
@@ -1595,10 +1597,11 @@
Identifier m_inferredName;
FunctionMode m_functionMode;
RefPtr<FunctionParameters> m_parameters;
- int m_functionNameStart;
- int m_functionKeywordStart;
unsigned m_startColumn;
unsigned m_endColumn;
+ int m_functionKeywordStart;
+ int m_functionNameStart;
+ int m_parametersStart;
SourceCode m_source;
int m_startStartOffset;
unsigned m_isInStrictContext : 1;
Modified: trunk/Source/_javascript_Core/parser/Parser.cpp (181817 => 181818)
--- trunk/Source/_javascript_Core/parser/Parser.cpp 2015-03-20 23:26:26 UTC (rev 181817)
+++ trunk/Source/_javascript_Core/parser/Parser.cpp 2015-03-20 23:37:51 UTC (rev 181818)
@@ -1260,7 +1260,9 @@
}
template <typename LexerType>
-template <class TreeBuilder> TreeFunctionBody Parser<LexerType>::parseFunctionBody(TreeBuilder& context, ConstructorKind constructorKind)
+template <class TreeBuilder> TreeFunctionBody Parser<LexerType>::parseFunctionBody(
+ TreeBuilder& context, int functionKeywordStart, int functionNameStart,
+ int parametersStart, ConstructorKind constructorKind)
{
JSTokenLocation startLocation(tokenLocation());
unsigned startColumn = tokenColumn();
@@ -1268,14 +1270,14 @@
if (match(CLOSEBRACE)) {
unsigned endColumn = tokenColumn();
- return context.createFunctionBody(startLocation, tokenLocation(), startColumn, endColumn, strictMode(), constructorKind);
+ return context.createFunctionBody(startLocation, tokenLocation(), startColumn, endColumn, functionKeywordStart, functionNameStart, parametersStart, strictMode(), constructorKind);
}
DepthManager statementDepth(&m_statementDepth);
m_statementDepth = 0;
typename TreeBuilder::FunctionBodyBuilder bodyBuilder(const_cast<VM*>(m_vm), m_lexer.get());
failIfFalse(parseSourceElements(bodyBuilder, CheckForStrictMode), "Cannot parse body of this function");
unsigned endColumn = tokenColumn();
- return context.createFunctionBody(startLocation, tokenLocation(), startColumn, endColumn, strictMode(), constructorKind);
+ return context.createFunctionBody(startLocation, tokenLocation(), startColumn, endColumn, functionKeywordStart, functionNameStart, parametersStart, strictMode(), constructorKind);
}
static const char* stringForFunctionMode(FunctionParseMode mode)
@@ -1296,7 +1298,7 @@
template <typename LexerType>
template <class TreeBuilder> bool Parser<LexerType>::parseFunctionInfo(TreeBuilder& context, FunctionRequirements requirements, FunctionParseMode mode,
- bool nameIsInContainingScope, ConstructorKind ownerClassKind, ParserFunctionInfo<TreeBuilder>& info)
+ bool nameIsInContainingScope, ConstructorKind ownerClassKind, int functionKeywordStart, ParserFunctionInfo<TreeBuilder>& info)
{
AutoPopScopeRef functionScope(this, pushScope());
functionScope->setIsFunction();
@@ -1316,6 +1318,7 @@
failDueToUnexpectedToken();
return false;
}
+ int parametersStart = m_token.m_location.startOffset;
if (!consume(OPENPAREN)) {
semanticFailureDueToKeyword(stringForFunctionMode(mode), " name");
failWithMessage("Expected an opening '(' before a ", stringForFunctionMode(mode), "'s parameter list");
@@ -1358,14 +1361,16 @@
endLocation.startOffset - endLocation.lineStartOffset;
unsigned currentLineStartOffset = m_token.m_location.lineStartOffset;
- info.body = context.createFunctionBody(startLocation, endLocation, info.bodyStartColumn, bodyEndColumn, cachedInfo->strictMode, constructorKind);
+ info.body = context.createFunctionBody(
+ startLocation, endLocation, info.bodyStartColumn, bodyEndColumn,
+ functionKeywordStart, functionNameStart, parametersStart,
+ cachedInfo->strictMode, constructorKind);
functionScope->restoreFromSourceProviderCache(cachedInfo);
failIfFalse(popScope(functionScope, TreeBuilder::NeedsFreeVariableInfo), "Parser error");
info.closeBraceOffset = cachedInfo->closeBraceOffset;
- context.setFunctionNameStart(info.body, functionNameStart);
m_token = cachedInfo->closeBraceToken();
if (endColumnIsOnStartLine)
m_token.m_location.lineStartOffset = currentLineStartOffset;
@@ -1381,7 +1386,7 @@
}
m_lastFunctionName = lastFunctionName;
ParserState oldState = saveState();
- info.body = parseFunctionBody(context, constructorKind);
+ info.body = parseFunctionBody(context, functionKeywordStart, functionNameStart, parametersStart, constructorKind);
restoreState(oldState);
failIfFalse(info.body, "Cannot parse the body of this ", stringForFunctionMode(mode));
context.setEndOffset(info.body, m_lexer->currentOffset());
@@ -1416,7 +1421,6 @@
newInfo = SourceProviderCacheItem::create(parameters);
}
- context.setFunctionNameStart(info.body, functionNameStart);
failIfFalse(popScope(functionScope, TreeBuilder::NeedsFreeVariableInfo), "Parser error");
matchOrFail(CLOSEBRACE, "Expected a closing '}' after a ", stringForFunctionMode(mode), " body");
@@ -1437,10 +1441,10 @@
unsigned functionKeywordStart = tokenStart();
next();
ParserFunctionInfo<TreeBuilder> info;
- failIfFalse((parseFunctionInfo(context, FunctionNeedsName, FunctionMode, true, ConstructorKind::None, info)), "Cannot parse this function");
+ failIfFalse((parseFunctionInfo(context, FunctionNeedsName, FunctionMode, true, ConstructorKind::None, functionKeywordStart, info)), "Cannot parse this function");
failIfFalse(info.name, "Function statements must have a name");
failIfFalseIfStrict(declareVariable(info.name), "Cannot declare a function named '", info.name->impl(), "' in strict mode");
- return context.createFuncDeclStatement(location, info, functionKeywordStart);
+ return context.createFuncDeclStatement(location, info);
}
#if ENABLE(ES6_CLASS_SYNTAX)
@@ -1525,7 +1529,7 @@
failIfFalse(property, "Cannot parse this method");
} else {
ParserFunctionInfo<TreeBuilder> methodInfo;
- failIfFalse((parseFunctionInfo(context, FunctionNeedsName, isStaticMethod ? FunctionMode : MethodMode, false, constructorKind, methodInfo)), "Cannot parse this method");
+ failIfFalse((parseFunctionInfo(context, FunctionNeedsName, isStaticMethod ? FunctionMode : MethodMode, false, constructorKind, methodStart, methodInfo)), "Cannot parse this method");
failIfFalse(methodInfo.name, "method must have a name");
failIfFalse(declareVariable(methodInfo.name), "Cannot declare a method named '", methodInfo.name->impl(), "'");
@@ -1533,7 +1537,7 @@
if (isConstructor)
methodInfo.name = className;
- TreeExpression method = context.createFunctionExpr(methodLocation, methodInfo, methodStart);
+ TreeExpression method = context.createFunctionExpr(methodLocation, methodInfo);
if (isConstructor) {
semanticFailIfTrue(constructor, "Cannot declare multiple constructors in a single class");
constructor = method;
@@ -2028,9 +2032,9 @@
JSTokenLocation methodLocation(tokenLocation());
unsigned methodStart = tokenStart();
ParserFunctionInfo<TreeBuilder> methodInfo;
- failIfFalse((parseFunctionInfo(context, FunctionNoRequirements, MethodMode, false, ConstructorKind::None, methodInfo)), "Cannot parse this method");
+ failIfFalse((parseFunctionInfo(context, FunctionNoRequirements, MethodMode, false, ConstructorKind::None, methodStart, methodInfo)), "Cannot parse this method");
methodInfo.name = methodName;
- return context.createFunctionExpr(methodLocation, methodInfo, methodStart);
+ return context.createFunctionExpr(methodLocation, methodInfo);
}
template <typename LexerType>
@@ -2050,14 +2054,14 @@
ParserFunctionInfo<TreeBuilder> info;
if (type == PropertyNode::Getter) {
failIfFalse(match(OPENPAREN), "Expected a parameter list for getter definition");
- failIfFalse((parseFunctionInfo(context, FunctionNoRequirements, GetterMode, false, constructorKind, info)), "Cannot parse getter definition");
+ failIfFalse((parseFunctionInfo(context, FunctionNoRequirements, GetterMode, false, constructorKind, getterOrSetterStartOffset, info)), "Cannot parse getter definition");
} else {
failIfFalse(match(OPENPAREN), "Expected a parameter list for setter definition");
- failIfFalse((parseFunctionInfo(context, FunctionNoRequirements, SetterMode, false, constructorKind, info)), "Cannot parse setter definition");
+ failIfFalse((parseFunctionInfo(context, FunctionNoRequirements, SetterMode, false, constructorKind, getterOrSetterStartOffset, info)), "Cannot parse setter definition");
}
if (stringPropertyName)
- return context.createGetterOrSetterProperty(location, type, strict, stringPropertyName, info, getterOrSetterStartOffset, superBinding);
- return context.createGetterOrSetterProperty(const_cast<VM*>(m_vm), m_parserArena, location, type, strict, numericPropertyName, info, getterOrSetterStartOffset, superBinding);
+ return context.createGetterOrSetterProperty(location, type, strict, stringPropertyName, info, superBinding);
+ return context.createGetterOrSetterProperty(const_cast<VM*>(m_vm), m_parserArena, location, type, strict, numericPropertyName, info, superBinding);
}
template <typename LexerType>
@@ -2242,8 +2246,8 @@
next();
ParserFunctionInfo<TreeBuilder> info;
info.name = &m_vm->propertyNames->nullIdentifier;
- failIfFalse((parseFunctionInfo(context, FunctionNoRequirements, FunctionMode, false, ConstructorKind::None, info)), "Cannot parse function _expression_");
- return context.createFunctionExpr(location, info, functionKeywordStart);
+ failIfFalse((parseFunctionInfo(context, FunctionNoRequirements, FunctionMode, false, ConstructorKind::None, functionKeywordStart, info)), "Cannot parse function _expression_");
+ return context.createFunctionExpr(location, info);
}
#if ENABLE(ES6_CLASS_SYNTAX)
case CLASSTOKEN:
Modified: trunk/Source/_javascript_Core/parser/Parser.h (181817 => 181818)
--- trunk/Source/_javascript_Core/parser/Parser.h 2015-03-20 23:26:26 UTC (rev 181817)
+++ trunk/Source/_javascript_Core/parser/Parser.h 2015-03-20 23:37:51 UTC (rev 181818)
@@ -762,7 +762,7 @@
template <class TreeBuilder> TreeProperty parseProperty(TreeBuilder&, bool strict);
template <class TreeBuilder> TreeExpression parsePropertyMethod(TreeBuilder& context, const Identifier* methodName);
template <class TreeBuilder> TreeProperty parseGetterSetter(TreeBuilder&, bool strict, PropertyNode::Type, unsigned getterOrSetterStartOffset, ConstructorKind = ConstructorKind::None, SuperBinding = SuperBinding::NotNeeded);
- template <class TreeBuilder> ALWAYS_INLINE TreeFunctionBody parseFunctionBody(TreeBuilder&, ConstructorKind);
+ template <class TreeBuilder> ALWAYS_INLINE TreeFunctionBody parseFunctionBody(TreeBuilder&, int functionKeywordStart, int functionNameStart, int parametersStart, ConstructorKind);
template <class TreeBuilder> ALWAYS_INLINE TreeFormalParameterList parseFormalParameters(TreeBuilder&);
enum VarDeclarationListContext { ForLoopContext, VarDeclarationContext };
template <class TreeBuilder> TreeExpression parseVarDeclarationList(TreeBuilder&, int& declarations, TreeDeconstructionPattern& lastPattern, TreeExpression& lastInitializer, JSTextPosition& identStart, JSTextPosition& initStart, JSTextPosition& initEnd, VarDeclarationListContext);
@@ -772,7 +772,7 @@
template <class TreeBuilder> NEVER_INLINE TreeDeconstructionPattern parseDeconstructionPattern(TreeBuilder&, DeconstructionKind, int depth = 0);
template <class TreeBuilder> NEVER_INLINE TreeDeconstructionPattern tryParseDeconstructionPatternExpression(TreeBuilder&);
- template <class TreeBuilder> NEVER_INLINE bool parseFunctionInfo(TreeBuilder&, FunctionRequirements, FunctionParseMode, bool nameIsInContainingScope, ConstructorKind, ParserFunctionInfo<TreeBuilder>&);
+ template <class TreeBuilder> NEVER_INLINE bool parseFunctionInfo(TreeBuilder&, FunctionRequirements, FunctionParseMode, bool nameIsInContainingScope, ConstructorKind, int functionKeywordStart, ParserFunctionInfo<TreeBuilder>&);
#if ENABLE(ES6_CLASS_SYNTAX)
template <class TreeBuilder> NEVER_INLINE TreeClassExpression parseClass(TreeBuilder&, FunctionRequirements);
#endif
Modified: trunk/Source/_javascript_Core/parser/SyntaxChecker.h (181817 => 181818)
--- trunk/Source/_javascript_Core/parser/SyntaxChecker.h 2015-03-20 23:26:26 UTC (rev 181817)
+++ trunk/Source/_javascript_Core/parser/SyntaxChecker.h 2015-03-20 23:37:51 UTC (rev 181818)
@@ -168,9 +168,8 @@
#if ENABLE(ES6_CLASS_SYNTAX)
ClassExpression createClassExpr(const JSTokenLocation&, const Identifier&, ExpressionType, ExpressionType, PropertyList, PropertyList) { return ClassExpr; }
#endif
- ExpressionType createFunctionExpr(const JSTokenLocation&, const ParserFunctionInfo<SyntaxChecker>&, int) { return FunctionExpr; }
- int createFunctionBody(const JSTokenLocation&, const JSTokenLocation&, int, int, bool, ConstructorKind) { return FunctionBodyResult; }
- void setFunctionNameStart(int, int) { }
+ ExpressionType createFunctionExpr(const JSTokenLocation&, const ParserFunctionInfo<SyntaxChecker>&) { return FunctionExpr; }
+ int createFunctionBody(const JSTokenLocation&, const JSTokenLocation&, int, int, bool, int, int, int, ConstructorKind) { return FunctionBodyResult; }
int createArguments() { return ArgumentsResult; }
int createArguments(int) { return ArgumentsResult; }
ExpressionType createSpreadExpression(const JSTokenLocation&, ExpressionType, int, int, int) { return SpreadExpr; }
@@ -202,7 +201,7 @@
int createClause(int, int) { return ClauseResult; }
int createClauseList(int) { return ClauseListResult; }
int createClauseList(int, int) { return ClauseListResult; }
- int createFuncDeclStatement(const JSTokenLocation&, const ParserFunctionInfo<SyntaxChecker>&, int) { return StatementResult; }
+ int createFuncDeclStatement(const JSTokenLocation&, const ParserFunctionInfo<SyntaxChecker>&) { return StatementResult; }
#if ENABLE(ES6_CLASS_SYNTAX)
int createClassDeclStatement(const JSTokenLocation&, ClassExpression,
const JSTextPosition&, const JSTextPosition&, int, int) { return StatementResult; }
@@ -231,14 +230,14 @@
int createDebugger(const JSTokenLocation&, int, int) { return StatementResult; }
int createConstStatement(const JSTokenLocation&, int, int, int) { return StatementResult; }
int appendConstDecl(const JSTokenLocation&, int, const Identifier*, int) { return StatementResult; }
- Property createGetterOrSetterProperty(const JSTokenLocation&, PropertyNode::Type type, bool strict, const Identifier* name, const ParserFunctionInfo<SyntaxChecker>&, unsigned, SuperBinding)
+ Property createGetterOrSetterProperty(const JSTokenLocation&, PropertyNode::Type type, bool strict, const Identifier* name, const ParserFunctionInfo<SyntaxChecker>&, SuperBinding)
{
ASSERT(name);
if (!strict)
return Property(type);
return Property(name, type);
}
- Property createGetterOrSetterProperty(VM* vm, ParserArena& parserArena, const JSTokenLocation&, PropertyNode::Type type, bool strict, double name, const ParserFunctionInfo<SyntaxChecker>&, unsigned, SuperBinding)
+ Property createGetterOrSetterProperty(VM* vm, ParserArena& parserArena, const JSTokenLocation&, PropertyNode::Type type, bool strict, double name, const ParserFunctionInfo<SyntaxChecker>&, SuperBinding)
{
if (!strict)
return Property(type);