Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Side by Side Diff: tests/compiler/dart2js_extra/deferred/deferred_class_test.dart

Issue 232563006: Insert checks before deferred calls and accesses. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Correct update to co19 Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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:async_helper/async_helper.dart'; 5 import 'package:async_helper/async_helper.dart';
6 import 'package:expect/expect.dart'; 6 import 'package:expect/expect.dart';
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 9
10 @lazy import 'deferred_class_library.dart' as lib; 10 @lazy import 'deferred_class_library.dart' as lib;
11 11
12 const lazy = const DeferredLibrary('deferred_class_library'); 12 const lazy = const DeferredLibrary('deferred_class_library');
13 13
14 isNoSuchMethodError(e) => e is NoSuchMethodError; 14 isError(e) => e is Error;
15 15
16 main() { 16 main() {
17 var x; 17 var x;
18 Expect.throws(() { x = new lib.MyClass(); }, isNoSuchMethodError); 18 Expect.throws(() { x = new lib.MyClass(); }, isError);
19 Expect.isNull(x); 19 Expect.isNull(x);
20 int counter = 0; 20 int counter = 0;
21 asyncStart(); 21 asyncStart();
22 lazy.load().then((_) { 22 lazy.load().then((_) {
23 Expect.equals(1, ++counter); 23 Expect.equals(1, ++counter);
24 print('deferred_class_library was loaded'); 24 print('deferred_class_library was loaded');
25 x = new lib.MyClass(); 25 x = new lib.MyClass();
26 Expect.equals(42, x.foo(87)); 26 Expect.equals(42, x.foo(87));
27 asyncEnd(); 27 asyncEnd();
28 }); 28 });
29 Expect.equals(0, counter); 29 Expect.equals(0, counter);
30 Expect.isNull(x); 30 Expect.isNull(x);
31 asyncStart(); 31 asyncStart();
32 lazy.load().then((_) { 32 lazy.load().then((_) {
33 Expect.equals(2, ++counter); 33 Expect.equals(2, ++counter);
34 print('deferred_class_library was loaded'); 34 print('deferred_class_library was loaded');
35 x = new lib.MyClass(); 35 x = new lib.MyClass();
36 Expect.equals(42, x.foo(87)); 36 Expect.equals(42, x.foo(87));
37 asyncEnd(); 37 asyncEnd();
38 }); 38 });
39 Expect.equals(0, counter); 39 Expect.equals(0, counter);
40 Expect.isNull(x); 40 Expect.isNull(x);
41 Expect.throws(() { x = new lib.MyClass(); }, isNoSuchMethodError); 41 Expect.throws(() { x = new lib.MyClass(); }, isError);
42 Expect.isNull(x); 42 Expect.isNull(x);
43 } 43 }
OLDNEW
« no previous file with comments | « tests/co19/co19-dart2js.status ('k') | tests/compiler/dart2js_extra/deferred/deferred_function_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698