Index: pkg/kernel/testcases/closures/capture_this.dart |
diff --git a/pkg/kernel/testcases/closures/capture_this.dart b/pkg/kernel/testcases/closures/capture_this.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bde384dec1f82e4bccda37eb83a0d4075ecef36e |
--- /dev/null |
+++ b/pkg/kernel/testcases/closures/capture_this.dart |
@@ -0,0 +1,18 @@ |
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE.md file. |
+ |
+class C { |
+ var x; |
+ m() => (v) => x = v; |
+ f() => () => () => x; |
+} |
+ |
+main() { |
+ C c = new C(); |
+ c.x = 41; |
+ c.m()(42); |
+ if (42 != c.x) throw "Unexpected value in c.x: ${c.x}"; |
+ var result = c.f()()(); |
+ if (42 != result) throw "Unexpected value from c.f()()(): $result"; |
+} |