| Index: tests/language/closure_side_effect_test.dart
|
| ===================================================================
|
| --- tests/language/closure_side_effect_test.dart (revision 0)
|
| +++ tests/language/closure_side_effect_test.dart (revision 0)
|
| @@ -0,0 +1,43 @@
|
| +// Copyright (c) 2013, 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 file.
|
| +
|
| +import "package:expect/expect.dart";
|
| +
|
| +var b;
|
| +var a = () {
|
| + b = 42;
|
| +};
|
| +
|
| +var c = [new C()];
|
| +
|
| +class C {
|
| + nonInlinable1() {
|
| + a();
|
| + }
|
| +
|
| + nonInlinable2() {
|
| + var a = () { b = 42; };
|
| + a();
|
| + }
|
| +}
|
| +
|
| +testClosureInStaticField() {
|
| + var temp = c[0];
|
| + Expect.isNull(b);
|
| + temp.nonInlinable1();
|
| + Expect.equals(42, b);
|
| + b = null;
|
| +}
|
| +
|
| +testLocalClosure() {
|
| + var temp = c[0];
|
| + Expect.isNull(b);
|
| + temp.nonInlinable2();
|
| + Expect.equals(42, b);
|
| +}
|
| +
|
| +main() {
|
| + testClosureInStaticField();
|
| + testLocalClosure();
|
| +}
|
|
|