summaryrefslogtreecommitdiff
path: root/src/qml/compiler/qv4compilerscanfunctions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/compiler/qv4compilerscanfunctions.cpp')
-rw-r--r--src/qml/compiler/qv4compilerscanfunctions.cpp30
1 files changed, 13 insertions, 17 deletions
diff --git a/src/qml/compiler/qv4compilerscanfunctions.cpp b/src/qml/compiler/qv4compilerscanfunctions.cpp
index b2a5e7ca79..217c077dc0 100644
--- a/src/qml/compiler/qv4compilerscanfunctions.cpp
+++ b/src/qml/compiler/qv4compilerscanfunctions.cpp
@@ -178,7 +178,7 @@ bool ScanFunctions::visit(NewMemberExpression *ast)
bool ScanFunctions::visit(ArrayPattern *ast)
{
int index = 0;
- for (ElementList *it = ast->elements; it; it = it->next) {
+ for (PatternElementList *it = ast->elements; it; it = it->next) {
for (Elision *elision = it->elision; elision; elision = elision->next)
++index;
++index;
@@ -270,31 +270,27 @@ void ScanFunctions::endVisit(FunctionExpression *)
bool ScanFunctions::visit(ObjectPattern *ast)
{
- int argc = 0;
- for (PropertyDefinitionList *it = ast->properties; it; it = it->next) {
- QString key = it->assignment->name->asString();
- if (QV4::String::toArrayIndex(key) != UINT_MAX)
- ++argc;
- ++argc;
- if (AST::cast<AST::PropertyGetterSetter *>(it->assignment))
- ++argc;
- }
- _context->maxNumberOfArguments = qMax(_context->maxNumberOfArguments, argc);
-
TemporaryBoolAssignment allowFuncDecls(_allowFuncDecls, true);
Node::accept(ast->properties, this);
return false;
}
-bool ScanFunctions::visit(PropertyGetterSetter *ast)
+bool ScanFunctions::visit(PatternProperty *ast)
{
- TemporaryBoolAssignment allowFuncDecls(_allowFuncDecls, true);
- return enterFunction(ast, QString(), ast->formals, ast->functionBody, /*enterName */ false);
+ Q_UNUSED(ast);
+ // ### Shouldn't be required anymore
+// if (ast->type == PatternProperty::Getter || ast->type == PatternProperty::Setter) {
+// TemporaryBoolAssignment allowFuncDecls(_allowFuncDecls, true);
+// return enterFunction(ast, QString(), ast->formals, ast->functionBody, /*enterName */ false);
+// }
+ return true;
}
-void ScanFunctions::endVisit(PropertyGetterSetter *)
+void ScanFunctions::endVisit(PatternProperty *)
{
- leaveEnvironment();
+ // ###
+// if (ast->type == PatternProperty::Getter || ast->type == PatternProperty::Setter)
+// leaveEnvironment();
}
bool ScanFunctions::visit(FunctionDeclaration *ast)