Index: tests/compiler/dart2js/closure/data/captured_variable.dart |
diff --git a/tests/compiler/dart2js/closure/data/captured_variable.dart b/tests/compiler/dart2js/closure/data/captured_variable.dart |
index e47acc53fea826d74068c5e1042190abe55bf5c8..7546c25148ba87d50285758a3bf4452bd15608c5 100644 |
--- a/tests/compiler/dart2js/closure/data/captured_variable.dart |
+++ b/tests/compiler/dart2js/closure/data/captured_variable.dart |
@@ -2,12 +2,24 @@ |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
+/*readParameterInAnonymousClosure:*/ |
+readParameterInAnonymousClosure(/**/ parameter) { |
+ return /*captured=[parameter],free=[parameter]*/ () => parameter; |
+} |
+ |
/*readParameterInClosure:*/ |
readParameterInClosure(/**/ parameter) { |
/*captured=[parameter],free=[parameter]*/ func() => parameter; |
return func; |
} |
+/*writeParameterInAnonymousClosure:boxed=[parameter],captured=[parameter],requiresBox*/ |
+writeParameterInAnonymousClosure(/*boxed*/ parameter) { |
+ return /*boxed=[parameter],captured=[parameter],free=[box,parameter]*/ () { |
+ parameter = 42; |
+ }; |
+} |
+ |
/*writeParameterInClosure:boxed=[parameter],captured=[parameter],requiresBox*/ |
writeParameterInClosure(/*boxed*/ parameter) { |
/*boxed=[parameter],captured=[parameter],free=[box,parameter]*/ func() { |
@@ -17,6 +29,12 @@ writeParameterInClosure(/*boxed*/ parameter) { |
return func; |
} |
+/*readLocalInAnonymousClosure:*/ |
+readLocalInAnonymousClosure(/**/ parameter) { |
+ var /**/ local = parameter; |
+ return /*captured=[local],free=[local]*/ () => local; |
+} |
+ |
/*readLocalInClosure:*/ |
readLocalInClosure(/**/ parameter) { |
var /**/ local = parameter; |
@@ -24,6 +42,15 @@ readLocalInClosure(/**/ parameter) { |
return func; |
} |
+/*writeLocalInAnonymousClosure:boxed=[local],captured=[local],requiresBox*/ |
+writeLocalInAnonymousClosure(/**/ parameter) { |
+ // ignore: UNUSED_LOCAL_VARIABLE |
+ var /*boxed*/ local = parameter; |
+ return /*boxed=[local],captured=[local],free=[box,local]*/ () { |
+ local = 42; |
+ }; |
+} |
+ |
/*writeLocalInClosure:boxed=[local],captured=[local],requiresBox*/ |
writeLocalInClosure(/**/ parameter) { |
// ignore: UNUSED_LOCAL_VARIABLE |
@@ -36,8 +63,12 @@ writeLocalInClosure(/**/ parameter) { |
} |
main() { |
+ readParameterInAnonymousClosure(null); |
readParameterInClosure(null); |
+ writeParameterInAnonymousClosure(null); |
writeParameterInClosure(null); |
+ readLocalInAnonymousClosure(null); |
readLocalInClosure(null); |
+ writeLocalInAnonymousClosure(null); |
writeLocalInClosure(null); |
} |