| 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..08eb6ac2ce8013e15aa957e79e02cb4563b46634
|
| --- /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';
|
| +@lazy import 'deferred_function_library.dart';
|
| +
|
| +const lazy = const DeferredLibrary('deferred_function_library');
|
| +
|
| +isNoSuchMethodError(e) => e is NoSuchMethodError;
|
| +
|
| +main() {
|
| + print('unittest-suite-wait-for-done');
|
| +
|
| + Expect.throws(() { foo('a'); }, isNoSuchMethodError);
|
| + int counter = 0;
|
| + lazy.load().then((bool didLoad) {
|
| + Expect.isTrue(didLoad);
|
| + Expect.equals(1, ++counter);
|
| + print('lazy was loaded');
|
| + Expect.equals(42, foo('b'));
|
| + });
|
| + Expect.equals(0, counter);
|
| + lazy.load().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);
|
| +}
|
|
|