| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'package:expect/expect.dart'; | 5 import 'package:expect/expect.dart'; |
| 6 import 'package:async_helper/async_helper.dart'; | 6 import 'package:async_helper/async_helper.dart'; |
| 7 | 7 |
| 8 import "deferred_global_lib.dart" deferred as lib; | 8 import "deferred_global_lib.dart" deferred as lib; |
| 9 | 9 |
| 10 var nonDeferredGlobal = const {}; |
| 11 |
| 10 void main() { | 12 void main() { |
| 13 nonDeferredGlobal = null; |
| 11 asyncStart(); | 14 asyncStart(); |
| 12 lib.loadLibrary().then((_) { | 15 lib.loadLibrary().then((_) { |
| 16 // Ensure non-deferred globals are not reset when loading a deferred |
| 17 // library. |
| 18 Expect.equals(null, nonDeferredGlobal); |
| 19 |
| 13 Expect.equals("finalConstGlobal", lib.finalConstGlobal); | 20 Expect.equals("finalConstGlobal", lib.finalConstGlobal); |
| 14 Expect.equals(0, lib.sideEffectCounter); | 21 Expect.equals(0, lib.sideEffectCounter); |
| 15 Expect.equals("finalNonConstGlobal", lib.finalNonConstGlobal); | 22 Expect.equals("finalNonConstGlobal", lib.finalNonConstGlobal); |
| 16 Expect.equals(1, lib.sideEffectCounter); | 23 Expect.equals(1, lib.sideEffectCounter); |
| 17 Expect.equals("finalConstGlobal", lib.finalConstGlobal); | 24 Expect.equals("finalConstGlobal", lib.finalConstGlobal); |
| 18 Expect.equals("finalNonConstGlobal", lib.finalNonConstGlobal); | 25 Expect.equals("finalNonConstGlobal", lib.finalNonConstGlobal); |
| 19 Expect.equals("lazyConstGlobal", lib.lazyConstGlobal); | 26 Expect.equals("lazyConstGlobal", lib.lazyConstGlobal); |
| 20 Expect.equals(1, lib.sideEffectCounter); | 27 Expect.equals(1, lib.sideEffectCounter); |
| 21 Expect.equals("lazyNonConstGlobal", lib.lazyNonConstGlobal); | 28 Expect.equals("lazyNonConstGlobal", lib.lazyNonConstGlobal); |
| 22 Expect.equals(2, lib.sideEffectCounter); | 29 Expect.equals(2, lib.sideEffectCounter); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 33 Expect.equals("lazyNonConstGlobal_mutated", lib.readLazyNonConstGlobal()); | 40 Expect.equals("lazyNonConstGlobal_mutated", lib.readLazyNonConstGlobal()); |
| 34 Expect.equals(2, lib.sideEffectCounter); | 41 Expect.equals(2, lib.sideEffectCounter); |
| 35 | 42 |
| 36 lib.writeLazyConstGlobal("lazyConstGlobal_mutated2"); | 43 lib.writeLazyConstGlobal("lazyConstGlobal_mutated2"); |
| 37 lib.writeLazyNonConstGlobal("lazyNonConstGlobal_mutated2"); | 44 lib.writeLazyNonConstGlobal("lazyNonConstGlobal_mutated2"); |
| 38 Expect.equals("lazyConstGlobal_mutated2", lib.lazyConstGlobal); | 45 Expect.equals("lazyConstGlobal_mutated2", lib.lazyConstGlobal); |
| 39 Expect.equals("lazyNonConstGlobal_mutated2", lib.lazyNonConstGlobal); | 46 Expect.equals("lazyNonConstGlobal_mutated2", lib.lazyNonConstGlobal); |
| 40 Expect.equals("lazyConstGlobal_mutated2", lib.readLazyConstGlobal()); | 47 Expect.equals("lazyConstGlobal_mutated2", lib.readLazyConstGlobal()); |
| 41 Expect.equals("lazyNonConstGlobal_mutated2", lib.readLazyNonConstGlobal()); | 48 Expect.equals("lazyNonConstGlobal_mutated2", lib.readLazyNonConstGlobal()); |
| 42 | 49 |
| 50 Expect.mapEquals({}, lib.lazyConstGlobal2); |
| 51 lib.const1Global = 0; |
| 43 Expect.equals(2, lib.sideEffectCounter); | 52 Expect.equals(2, lib.sideEffectCounter); |
| 44 asyncEnd(); | 53 Expect.equals(0, lib.const1Global); |
| 54 // Try loading the deferred library again, should not reset the globals. |
| 55 lib.loadLibrary().then((_) { |
| 56 Expect.equals(0, lib.const1Global); |
| 57 asyncEnd(); |
| 58 }); |
| 45 }); | 59 }); |
| 46 } | 60 } |
| OLD | NEW |