diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-05-21 15:10:45 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-05-21 18:03:47 +0200 |
commit | 3e716029ae61bf4c7bb33643ac331156e70e34f1 (patch) | |
tree | 2a2692dbaf49d87518c4b0da30078e177e8dd5c3 /src/qml/parser | |
parent | 9e919489c4e6b0c110281fda139fff84c1c71995 (diff) |
Don't add local for anonymous function's "name"
Instead, populate their "name" property directly from the surrounding
object pattern if applicable, without adding locals. This fixes some
ecmascript tests where functions were assigned to the key "eval" in an
object. The JS engine then rejected that because you shouldn't use eval
in strict mode. That should be close enough to test for regressions.
Fixes: QTBUG-75880
Change-Id: Iacc45a3f7b0eb90cddc6ecf6d2bada616d2cf355
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/parser')
-rw-r--r-- | src/qml/parser/qqmljs.g | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index 8ae51a795f..27f23a6fa7 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -1773,10 +1773,6 @@ PropertyDefinition: PropertyName T_COLON AssignmentExpression_In; /. case $rule_number: { AST::PatternProperty *node = new (pool) AST::PatternProperty(sym(1).PropertyName, sym(3).Expression); - if (auto *f = asAnonymousFunctionDefinition(sym(3).Expression)) { - if (!AST::cast<AST::ComputedPropertyName *>(sym(1).PropertyName)) - f->name = driver->newStringRef(sym(1).PropertyName->asString()); - } if (auto *c = asAnonymousClassDefinition(sym(3).Expression)) { if (!AST::cast<AST::ComputedPropertyName *>(sym(1).PropertyName)) c->name = driver->newStringRef(sym(1).PropertyName->asString()); |