aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4codegen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/compiler/qv4codegen.cpp')
-rw-r--r--src/qml/compiler/qv4codegen.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp
index d71d36845b..b3b522e661 100644
--- a/src/qml/compiler/qv4codegen.cpp
+++ b/src/qml/compiler/qv4codegen.cpp
@@ -484,6 +484,7 @@ Codegen::Reference Codegen::targetForPatternElement(AST::PatternElement *p)
void Codegen::initializeAndDestructureBindingElement(AST::PatternElement *e, const Reference &base)
{
+ Q_ASSERT(e->type == AST::PatternElement::Binding || e->type == AST::PatternElement::RestElement);
RegisterScope scope(this);
Reference baseRef = (base.isAccumulator()) ? base.storeOnStack() : base;
Reference varToStore = targetForPatternElement(e);
@@ -619,12 +620,10 @@ void Codegen::destructureElementList(const Codegen::Reference &array, PatternEle
bool last = !p->next || (!p->next->elision && !p->next->element);
if (last)
iteratorDone.storeConsumeAccumulator();
- if (e->type != PatternElement::RestElement) {
- initializeAndDestructureBindingElement(e, iteratorValue);
- if (hasError) {
- end.link();
- return;
- }
+ initializeAndDestructureBindingElement(e, iteratorValue);
+ if (hasError) {
+ end.link();
+ return;
}
}
}