Chromium Code Reviews| Index: dart/tests/compiler/dart2js_extra/deferred/deferred_function_test.dart |
| diff --git a/dart/tests/compiler/dart2js_extra/deferred/deferred_function_test.dart b/dart/tests/compiler/dart2js_extra/deferred/deferred_function_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..64893f911c260dd1aa9e25027264aff12a6f0939 |
| --- /dev/null |
| +++ b/dart/tests/compiler/dart2js_extra/deferred/deferred_function_test.dart |
| @@ -0,0 +1,36 @@ |
| +// 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. |
| + |
| +// Test that loading of a library (with top-level functions only) can |
| +// be deferred. |
| + |
| +import 'dart:async'; |
| + |
| +@DeferLoad('deferred_function_library') |
|
kasperl
2013/02/05 08:30:53
If we had support for it, would it make sense to m
ahe
2013/02/05 13:54:22
Not sure about the "didLoad" parameter below. I th
|
| +import 'deferred_function_library.dart'; |
| + |
| +isNoSuchMethodError(e) => e is NoSuchMethodError; |
| + |
| +main() { |
| + print('unittest-suite-wait-for-done'); |
| + |
| + Expect.throws(() { foo('a'); }, isNoSuchMethodError); |
| + int counter = 0; |
| + load('deferred_function_library').then((bool didLoad) { |
| + Expect.isTrue(didLoad); |
| + Expect.equals(1, ++counter); |
| + print('lazy was loaded'); |
| + Expect.equals(42, foo('b')); |
| + }); |
| + Expect.equals(0, counter); |
| + load('deferred_function_library').then((bool didLoad) { |
| + Expect.isFalse(didLoad); |
| + Expect.equals(2, ++counter); |
| + print('lazy was loaded'); |
| + Expect.equals(42, foo('b')); |
| + print('unittest-suite-success'); |
| + }); |
| + Expect.equals(0, counter); |
| + Expect.throws(() { foo('a'); }, isNoSuchMethodError); |
| +} |