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

Side by Side Diff: tests/corelib/src/IndexedListAccessTest.dart

Issue 10244009: test rename overhaul: step 7 - corelib tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 7 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
(Empty)
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
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.
4
5 // Check that indexed access to lists throws correct exception if index
6 // is not int.
7
8 main() {
9 checkList(new List(10));
10 var growable = new List();
11 growable.add(1);
12 growable.add(1);
13 checkList(growable);
14 }
15
16
17 checkList(var list) {
18 // Check unoptimized.
19 Expect.isFalse(checkCatch(getIt, list, 1));
20 Expect.isTrue(checkCatch(getIt, list, "hi"));
21 Expect.isFalse(checkCatch(putIt, list, 1));
22 Expect.isTrue(checkCatch(putIt, list, "hi"));
23 // Optimize 'getIt' and 'putIt'.
24 for (int i = 0; i < 2000; i++) {
25 putIt(list, 1);
26 getIt(list, 1);
27 }
28 Expect.isTrue(checkCatch(getIt, list, "hi"));
29 Expect.isTrue(checkCatch(putIt, list, "hi"));
30 }
31
32 checkCatch(var f, var list, var index) {
33 try {
34 f(list, index);
35 } catch (IllegalArgumentException e) {
36 return true;
37 } catch (TypeError t) {
38 return true; // thrown in type checked mode.
39 }
40 return false;
41 }
42
43
44 getIt(var a, var i) {
45 return a[i];
46 }
47
48
49 putIt(var a, var i) {
50 a[i] = null;
51 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698