| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 // VMOptions=--optimization_counter_threshold=10 --no-background-compilation | 4 // VMOptions=--optimization_counter_threshold=10 --no-background-compilation | 
| 5 | 5 | 
| 6 // Library tag to be able to run in html test framework. | 6 // Library tag to be able to run in html test framework. | 
| 7 library byte_array_test; | 7 library byte_array_test; | 
| 8 | 8 | 
| 9 import "package:expect/expect.dart"; | 9 import "package:expect/expect.dart"; | 
| 10 import 'dart:typed_data'; | 10 import 'dart:typed_data'; | 
| 11 | 11 | 
| 12 // This test exercises optimized [] and []= operators | 12 // This test exercises optimized [] and []= operators | 
| 13 // on byte array views. | 13 // on byte array views. | 
| 14 class OptimizedByteArrayTest { | 14 class OptimizedByteArrayTest { | 
| 15   static testInt8ListImpl(Int8List array) { | 15   static testInt8ListImpl(Int8List array) { | 
| 16     Expect.isTrue(array is List<int>); | 16     Expect.isTrue(array is List<int>); | 
| 17     Expect.equals(10, array.length); | 17     Expect.equals(10, array.length); | 
| 18     Expect.equals(1, array.elementSizeInBytes); | 18     Expect.equals(1, array.elementSizeInBytes); | 
| 19     Expect.equals(10, array.lengthInBytes); | 19     Expect.equals(10, array.lengthInBytes); | 
| 20     Expect.listEquals([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], array); | 20     Expect.listEquals([0, 0, 0, 0, 0, | 
| 21     Expect.throws(() { | 21                        0, 0, 0, 0, 0], | 
| 22       array[-1] = 0; | 22                       array); | 
| 23     }, (e) { | 23     Expect.throws(() { array[-1] = 0; }, | 
| 24       return e is RangeError; | 24                   (e) { return e is RangeError; }); | 
| 25     }); | 25     Expect.throws(() { return array[-1]; }, | 
| 26     Expect.throws(() { | 26                   (e) { return e is RangeError; }); | 
| 27       return array[-1]; | 27     Expect.throws(() { array[10]; }, | 
| 28     }, (e) { | 28                   (e) { return e is RangeError; }); | 
| 29       return e is RangeError; | 29     Expect.throws(() { array[10] = 0; }, | 
| 30     }); | 30                   (e) { return e is RangeError; }); | 
| 31     Expect.throws(() { | 31     Expect.throws(() { array.add(0); }, | 
| 32       array[10]; | 32                   (e) { return e is UnsupportedError; }); | 
| 33     }, (e) { | 33     Expect.throws(() { array.addAll([0]); }, | 
| 34       return e is RangeError; | 34                   (e) { return e is UnsupportedError; }); | 
| 35     }); | 35     Expect.throws(() { array.clear(); }, | 
| 36     Expect.throws(() { | 36                   (e) { return e is UnsupportedError; }); | 
| 37       array[10] = 0; | 37     Expect.throws(() { array.length = 0; }, | 
| 38     }, (e) { | 38                   (e) { return e is UnsupportedError; }); | 
| 39       return e is RangeError; | 39     Expect.throws(() { array.removeLast(); }, | 
| 40     }); | 40                   (e) { return e is UnsupportedError; }); | 
| 41     Expect.throws(() { | 41     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 42       array.add(0); | 42                   (e) { return e is UnsupportedError; }); | 
| 43     }, (e) { |  | 
| 44       return e is UnsupportedError; |  | 
| 45     }); |  | 
| 46     Expect.throws(() { |  | 
| 47       array.addAll([0]); |  | 
| 48     }, (e) { |  | 
| 49       return e is UnsupportedError; |  | 
| 50     }); |  | 
| 51     Expect.throws(() { |  | 
| 52       array.clear(); |  | 
| 53     }, (e) { |  | 
| 54       return e is UnsupportedError; |  | 
| 55     }); |  | 
| 56     Expect.throws(() { |  | 
| 57       array.length = 0; |  | 
| 58     }, (e) { |  | 
| 59       return e is UnsupportedError; |  | 
| 60     }); |  | 
| 61     Expect.throws(() { |  | 
| 62       array.removeLast(); |  | 
| 63     }, (e) { |  | 
| 64       return e is UnsupportedError; |  | 
| 65     }); |  | 
| 66     Expect.throws(() { |  | 
| 67       array.removeRange(0, array.length - 1); |  | 
| 68     }, (e) { |  | 
| 69       return e is UnsupportedError; |  | 
| 70     }); |  | 
| 71     for (int i = 0; i < array.length; ++i) { | 43     for (int i = 0; i < array.length; ++i) { | 
| 72       array[i] = 1 + i; | 44       array[i] = 1 + i; | 
| 73     } | 45     } | 
| 74     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], array); | 46     Expect.listEquals([1, 2, 3, 4, 5, | 
|  | 47                        6, 7, 8, 9, 10], | 
|  | 48                       array); | 
| 75     for (int i = 0; i < array.length; ++i) { | 49     for (int i = 0; i < array.length; ++i) { | 
| 76       array[i] = 0x100 + i; | 50       array[i] = 0x100 + i; | 
| 77     } | 51     } | 
| 78     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], array); | 52     Expect.listEquals([0, 1, 2, 3, 4, | 
|  | 53                        5, 6, 7, 8, 9], | 
|  | 54                       array); | 
| 79     for (int i = 0; i < array.length; ++i) { | 55     for (int i = 0; i < array.length; ++i) { | 
| 80       array[i] = -10 + i; | 56       array[i] = -10 + i; | 
| 81     } | 57     } | 
| 82     Expect.listEquals([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1], array); | 58     Expect.listEquals([-10, -9, -8, -7, -6, | 
|  | 59                         -5, -4, -3, -2, -1], | 
|  | 60                       array); | 
| 83     for (int i = 0; i < array.length; ++i) { | 61     for (int i = 0; i < array.length; ++i) { | 
| 84       array[i] = 0x7F - i; | 62       array[i] = 0x7F - i; | 
| 85     } | 63     } | 
| 86     Expect | 64     Expect.listEquals([127, 126, 125, 124, 123, | 
| 87         .listEquals([127, 126, 125, 124, 123, 122, 121, 120, 119, 118], array); | 65                        122, 121, 120, 119, 118], | 
|  | 66                       array); | 
| 88     for (int i = 0; i < array.length; ++i) { | 67     for (int i = 0; i < array.length; ++i) { | 
| 89       array[i] = -0x80 + i; | 68       array[i] = -0x80 + i; | 
| 90     } | 69     } | 
| 91     Expect.listEquals( | 70     Expect.listEquals([-128, -127, -126, -125, -124, | 
| 92         [-128, -127, -126, -125, -124, -123, -122, -121, -120, -119], array); | 71                        -123, -122, -121, -120, -119], | 
|  | 72                       array); | 
| 93     for (int i = 0; i < array.length; ++i) { | 73     for (int i = 0; i < array.length; ++i) { | 
| 94       array[i] = i; | 74       array[i] = i; | 
| 95     } | 75     } | 
| 96     var copy = array.sublist(0, array.length); | 76     var copy = array.sublist(0, array.length); | 
| 97     Expect.isFalse(identical(copy, array)); | 77     Expect.isFalse(identical(copy, array)); | 
| 98     Expect.isTrue(copy is Int8List); | 78     Expect.isTrue(copy is Int8List); | 
| 99     Expect.equals(10, copy.length); | 79     Expect.equals(10, copy.length); | 
| 100     Expect.listEquals(array, copy); | 80     Expect.listEquals(array, copy); | 
| 101     var empty = array.sublist(array.length, array.length); | 81     var empty = array.sublist(array.length, array.length); | 
| 102     Expect.equals(0, empty.length); | 82     Expect.equals(0, empty.length); | 
| 103     var region = array.sublist(3, array.length - 3); | 83     var region = array.sublist(3, array.length - 3); | 
| 104     Expect.isTrue(copy is Int8List); | 84     Expect.isTrue(copy is Int8List); | 
| 105     Expect.equals(4, region.length); | 85     Expect.equals(4, region.length); | 
| 106     Expect.listEquals([3, 4, 5, 6], region); | 86     Expect.listEquals([3, 4, 5, 6], region); | 
| 107     array.setRange(3, 7, [-128, 0, 1, 127]); | 87     array.setRange(3, 7, [-128, 0, 1, 127]); | 
| 108     Expect.listEquals([0, 1, 2, -128, 0, 1, 127, 7, 8, 9], array); | 88     Expect.listEquals([0, 1, 2, -128, 0, 1, 127, 7, 8, 9], | 
|  | 89                       array); | 
| 109   } | 90   } | 
| 110 |  | 
| 111   static testInt8List() { | 91   static testInt8List() { | 
| 112     Expect.throws(() { | 92     Expect.throws(() { new Int8List(-1); }, | 
| 113       new Int8List(-1); | 93                   (e) { return e is ArgumentError; }); | 
| 114     }, (e) { |  | 
| 115       return e is ArgumentError; |  | 
| 116     }); |  | 
| 117     var array = new Int8List(10); | 94     var array = new Int8List(10); | 
| 118     testInt8ListImpl(array); | 95     testInt8ListImpl(array); | 
| 119   } | 96   } | 
| 120 | 97 | 
| 121   static testUint8ListImpl(Uint8List array) { | 98   static testUint8ListImpl(Uint8List array) { | 
| 122     Expect.isTrue(array is List<int>); | 99     Expect.isTrue(array is List<int>); | 
| 123     Expect.equals(10, array.length); | 100     Expect.equals(10, array.length); | 
| 124     Expect.equals(1, array.elementSizeInBytes); | 101     Expect.equals(1, array.elementSizeInBytes); | 
| 125     Expect.equals(10, array.lengthInBytes); | 102     Expect.equals(10, array.lengthInBytes); | 
| 126     Expect.listEquals([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], array); | 103     Expect.listEquals([0, 0, 0, 0, 0, | 
| 127     Expect.throws(() { | 104                        0, 0, 0, 0, 0], | 
| 128       array[-1] = 0; | 105                       array); | 
| 129     }, (e) { | 106     Expect.throws(() { array[-1] = 0; }, | 
| 130       return e is RangeError; | 107                   (e) { return e is RangeError; }); | 
| 131     }); | 108     Expect.throws(() { return array[-1]; }, | 
| 132     Expect.throws(() { | 109                   (e) { return e is RangeError; }); | 
| 133       return array[-1]; | 110     Expect.throws(() { array[10]; }, | 
| 134     }, (e) { | 111                   (e) { return e is RangeError; }); | 
| 135       return e is RangeError; | 112     Expect.throws(() { array[10] = 0; }, | 
| 136     }); | 113                   (e) { return e is RangeError; }); | 
| 137     Expect.throws(() { | 114     Expect.throws(() { array.add(0); }, | 
| 138       array[10]; | 115                   (e) { return e is UnsupportedError; }); | 
| 139     }, (e) { | 116     Expect.throws(() { array.addAll([0]); }, | 
| 140       return e is RangeError; | 117                   (e) { return e is UnsupportedError; }); | 
| 141     }); | 118     Expect.throws(() { array.clear(); }, | 
| 142     Expect.throws(() { | 119                   (e) { return e is UnsupportedError; }); | 
| 143       array[10] = 0; | 120     Expect.throws(() { array.length = 0; }, | 
| 144     }, (e) { | 121                   (e) { return e is UnsupportedError; }); | 
| 145       return e is RangeError; | 122     Expect.throws(() { array.removeLast(); }, | 
| 146     }); | 123                   (e) { return e is UnsupportedError; }); | 
| 147     Expect.throws(() { | 124     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 148       array.add(0); | 125                   (e) { return e is UnsupportedError; }); | 
| 149     }, (e) { |  | 
| 150       return e is UnsupportedError; |  | 
| 151     }); |  | 
| 152     Expect.throws(() { |  | 
| 153       array.addAll([0]); |  | 
| 154     }, (e) { |  | 
| 155       return e is UnsupportedError; |  | 
| 156     }); |  | 
| 157     Expect.throws(() { |  | 
| 158       array.clear(); |  | 
| 159     }, (e) { |  | 
| 160       return e is UnsupportedError; |  | 
| 161     }); |  | 
| 162     Expect.throws(() { |  | 
| 163       array.length = 0; |  | 
| 164     }, (e) { |  | 
| 165       return e is UnsupportedError; |  | 
| 166     }); |  | 
| 167     Expect.throws(() { |  | 
| 168       array.removeLast(); |  | 
| 169     }, (e) { |  | 
| 170       return e is UnsupportedError; |  | 
| 171     }); |  | 
| 172     Expect.throws(() { |  | 
| 173       array.removeRange(0, array.length - 1); |  | 
| 174     }, (e) { |  | 
| 175       return e is UnsupportedError; |  | 
| 176     }); |  | 
| 177     for (int i = 0; i < array.length; ++i) { | 126     for (int i = 0; i < array.length; ++i) { | 
| 178       array[i] = 1 + i; | 127       array[i] = 1 + i; | 
| 179     } | 128     } | 
| 180     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], array); | 129     Expect.listEquals([1, 2, 3, 4, 5, | 
|  | 130                        6, 7, 8, 9, 10], | 
|  | 131                       array); | 
| 181     for (int i = 0; i < array.length; ++i) { | 132     for (int i = 0; i < array.length; ++i) { | 
| 182       array[i] = 0x100 + i; | 133       array[i] = 0x100 + i; | 
| 183     } | 134     } | 
| 184     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], array); | 135     Expect.listEquals([0, 1, 2, 3, 4, | 
|  | 136                        5, 6, 7, 8, 9], | 
|  | 137                       array); | 
| 185     for (int i = 0; i < array.length; ++i) { | 138     for (int i = 0; i < array.length; ++i) { | 
| 186       array[i] = 0xFF - i; | 139       array[i] = 0xFF - i; | 
| 187     } | 140     } | 
| 188     Expect.listEquals( | 141     Expect.listEquals([0xFF, 0xFE, 0xFD, 0xFC, 0xFB, | 
| 189         [0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6], array); | 142                        0xFA, 0xF9, 0xF8, 0xF7, 0xF6], | 
|  | 143                       array); | 
| 190     for (int i = 0; i < array.length; ++i) { | 144     for (int i = 0; i < array.length; ++i) { | 
| 191       array[i] = i; | 145       array[i] = i; | 
| 192     } | 146     } | 
| 193     var copy = array.sublist(0, array.length); | 147     var copy = array.sublist(0, array.length); | 
| 194     Expect.isFalse(identical(copy, array)); | 148     Expect.isFalse(identical(copy, array)); | 
| 195     Expect.isTrue(copy is Uint8List); | 149     Expect.isTrue(copy is Uint8List); | 
| 196     Expect.equals(10, copy.length); | 150     Expect.equals(10, copy.length); | 
| 197     Expect.listEquals(array, copy); | 151     Expect.listEquals(array, copy); | 
| 198     var empty = array.sublist(array.length, array.length); | 152     var empty = array.sublist(array.length, array.length); | 
| 199     Expect.equals(0, empty.length); | 153     Expect.equals(0, empty.length); | 
| 200     var region = array.sublist(3, array.length - 3); | 154     var region = array.sublist(3, array.length - 3); | 
| 201     Expect.isTrue(copy is Uint8List); | 155     Expect.isTrue(copy is Uint8List); | 
| 202     Expect.equals(4, region.length); | 156     Expect.equals(4, region.length); | 
| 203     Expect.listEquals([3, 4, 5, 6], region); | 157     Expect.listEquals([3, 4, 5, 6], region); | 
| 204     array.setRange(3, 7, [257, 0, 1, 255]); | 158     array.setRange(3, 7, [257, 0, 1, 255]); | 
| 205     Expect.listEquals([0, 1, 2, 1, 0, 1, 255, 7, 8, 9], array); | 159     Expect.listEquals([0, 1, 2, 1, 0, 1, 255, 7, 8, 9], | 
|  | 160                       array); | 
| 206   } | 161   } | 
| 207 | 162 | 
| 208   static testUint8List() { | 163   static testUint8List() { | 
| 209     Expect.throws(() { | 164     Expect.throws(() { new Uint8List(-1); }, | 
| 210       new Uint8List(-1); | 165                   (e) { return e is ArgumentError; }); | 
| 211     }, (e) { |  | 
| 212       return e is ArgumentError; |  | 
| 213     }); |  | 
| 214     var array = new Uint8List(10); | 166     var array = new Uint8List(10); | 
| 215     testUint8ListImpl(array); | 167     testUint8ListImpl(array); | 
| 216   } | 168   } | 
| 217 | 169 | 
| 218   static testInt16ListImpl(Int16List array) { | 170   static testInt16ListImpl(Int16List array) { | 
| 219     Expect.isTrue(array is List<int>); | 171     Expect.isTrue(array is List<int>); | 
| 220     Expect.equals(10, array.length); | 172     Expect.equals(10, array.length); | 
| 221     Expect.equals(2, array.elementSizeInBytes); | 173     Expect.equals(2, array.elementSizeInBytes); | 
| 222     Expect.equals(20, array.lengthInBytes); | 174     Expect.equals(20, array.lengthInBytes); | 
| 223     Expect.listEquals([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], array); | 175     Expect.listEquals([0, 0, 0, 0, 0, | 
| 224     Expect.throws(() { | 176                        0, 0, 0, 0, 0], | 
| 225       array[-1] = 0; | 177                       array); | 
| 226     }, (e) { | 178     Expect.throws(() { array[-1] = 0; }, | 
| 227       return e is RangeError; | 179                   (e) { return e is RangeError; }); | 
| 228     }); | 180     Expect.throws(() { return array[-1]; }, | 
| 229     Expect.throws(() { | 181                   (e) { return e is RangeError; }); | 
| 230       return array[-1]; | 182     Expect.throws(() { array[10]; }, | 
| 231     }, (e) { | 183                   (e) { return e is RangeError; }); | 
| 232       return e is RangeError; | 184     Expect.throws(() { array[10] = 0; }, | 
| 233     }); | 185                   (e) { return e is RangeError; }); | 
| 234     Expect.throws(() { | 186     Expect.throws(() { array.add(0); }, | 
| 235       array[10]; | 187                   (e) { return e is UnsupportedError; }); | 
| 236     }, (e) { | 188     Expect.throws(() { array.addAll([0]); }, | 
| 237       return e is RangeError; | 189                   (e) { return e is UnsupportedError; }); | 
| 238     }); | 190     Expect.throws(() { array.clear(); }, | 
| 239     Expect.throws(() { | 191                   (e) { return e is UnsupportedError; }); | 
| 240       array[10] = 0; | 192     Expect.throws(() { array.length = 0; }, | 
| 241     }, (e) { | 193                   (e) { return e is UnsupportedError; }); | 
| 242       return e is RangeError; | 194     Expect.throws(() { array.removeLast(); }, | 
| 243     }); | 195                   (e) { return e is UnsupportedError; }); | 
| 244     Expect.throws(() { | 196     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 245       array.add(0); | 197                   (e) { return e is UnsupportedError; }); | 
| 246     }, (e) { |  | 
| 247       return e is UnsupportedError; |  | 
| 248     }); |  | 
| 249     Expect.throws(() { |  | 
| 250       array.addAll([0]); |  | 
| 251     }, (e) { |  | 
| 252       return e is UnsupportedError; |  | 
| 253     }); |  | 
| 254     Expect.throws(() { |  | 
| 255       array.clear(); |  | 
| 256     }, (e) { |  | 
| 257       return e is UnsupportedError; |  | 
| 258     }); |  | 
| 259     Expect.throws(() { |  | 
| 260       array.length = 0; |  | 
| 261     }, (e) { |  | 
| 262       return e is UnsupportedError; |  | 
| 263     }); |  | 
| 264     Expect.throws(() { |  | 
| 265       array.removeLast(); |  | 
| 266     }, (e) { |  | 
| 267       return e is UnsupportedError; |  | 
| 268     }); |  | 
| 269     Expect.throws(() { |  | 
| 270       array.removeRange(0, array.length - 1); |  | 
| 271     }, (e) { |  | 
| 272       return e is UnsupportedError; |  | 
| 273     }); |  | 
| 274     for (int i = 0; i < array.length; ++i) { | 198     for (int i = 0; i < array.length; ++i) { | 
| 275       array[i] = 1 + i; | 199       array[i] = 1 + i; | 
| 276     } | 200     } | 
| 277     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], array); | 201     Expect.listEquals([1, 2, 3, 4, 5, | 
|  | 202                        6, 7, 8, 9, 10], | 
|  | 203                       array); | 
| 278     for (int i = 0; i < array.length; ++i) { | 204     for (int i = 0; i < array.length; ++i) { | 
| 279       array[i] = 0x10000 + i; | 205       array[i] = 0x10000 + i; | 
| 280     } | 206     } | 
| 281     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], array); | 207     Expect.listEquals([0, 1, 2, 3, 4, | 
|  | 208                        5, 6, 7, 8, 9], | 
|  | 209                       array); | 
| 282     for (int i = 0; i < array.length; ++i) { | 210     for (int i = 0; i < array.length; ++i) { | 
| 283       array[i] = -10 + i; | 211       array[i] = -10 + i; | 
| 284     } | 212     } | 
| 285     Expect.listEquals([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1], array); | 213     Expect.listEquals([-10, -9, -8, -7, -6, | 
|  | 214                         -5, -4, -3, -2, -1], | 
|  | 215                       array); | 
| 286     for (int i = 0; i < array.length; ++i) { | 216     for (int i = 0; i < array.length; ++i) { | 
| 287       array[i] = 0x7FFF - i; | 217       array[i] = 0x7FFF - i; | 
| 288     } | 218     } | 
| 289     Expect.listEquals([ | 219     Expect.listEquals([0x7FFF, 0x7FFE, 0x7FFD, 0x7FFC, 0x7FFB, | 
| 290       0x7FFF, | 220                        0x7FFA, 0x7FF9, 0x7FF8, 0x7FF7, 0x7FF6], | 
| 291       0x7FFE, | 221                       array); | 
| 292       0x7FFD, |  | 
| 293       0x7FFC, |  | 
| 294       0x7FFB, |  | 
| 295       0x7FFA, |  | 
| 296       0x7FF9, |  | 
| 297       0x7FF8, |  | 
| 298       0x7FF7, |  | 
| 299       0x7FF6 |  | 
| 300     ], array); |  | 
| 301     for (int i = 0; i < array.length; ++i) { | 222     for (int i = 0; i < array.length; ++i) { | 
| 302       array[i] = -0x8000 + i; | 223       array[i] = -0x8000 + i; | 
| 303     } | 224     } | 
| 304     Expect.listEquals([ | 225     Expect.listEquals([-0x8000, -0x7FFF, -0x7FFE, -0x7FFD, -0x7FFC, | 
| 305       -0x8000, | 226                        -0x7FFB, -0x7FFA, -0x7FF9, -0x7FF8, -0x7FF7], | 
| 306       -0x7FFF, | 227                       array); | 
| 307       -0x7FFE, |  | 
| 308       -0x7FFD, |  | 
| 309       -0x7FFC, |  | 
| 310       -0x7FFB, |  | 
| 311       -0x7FFA, |  | 
| 312       -0x7FF9, |  | 
| 313       -0x7FF8, |  | 
| 314       -0x7FF7 |  | 
| 315     ], array); |  | 
| 316     for (int i = 0; i < array.length; ++i) { | 228     for (int i = 0; i < array.length; ++i) { | 
| 317       array[i] = i; | 229       array[i] = i; | 
| 318     } | 230     } | 
| 319     var copy = array.sublist(0, array.length); | 231     var copy = array.sublist(0, array.length); | 
| 320     Expect.isFalse(identical(copy, array)); | 232     Expect.isFalse(identical(copy, array)); | 
| 321     Expect.isTrue(copy is Int16List); | 233     Expect.isTrue(copy is Int16List); | 
| 322     Expect.equals(10, copy.length); | 234     Expect.equals(10, copy.length); | 
| 323     Expect.listEquals(array, copy); | 235     Expect.listEquals(array, copy); | 
| 324     var empty = array.sublist(array.length, array.length); | 236     var empty = array.sublist(array.length, array.length); | 
| 325     Expect.equals(0, empty.length); | 237     Expect.equals(0, empty.length); | 
| 326     var region = array.sublist(3, array.length - 3); | 238     var region = array.sublist(3, array.length - 3); | 
| 327     Expect.isTrue(copy is Int16List); | 239     Expect.isTrue(copy is Int16List); | 
| 328     Expect.equals(4, region.length); | 240     Expect.equals(4, region.length); | 
| 329     Expect.listEquals([3, 4, 5, 6], region); | 241     Expect.listEquals([3, 4, 5, 6], region); | 
| 330     array.setRange(3, 7, [-32768, 0, 1, 32767]); | 242     array.setRange(3, 7, [-32768, 0, 1, 32767]); | 
| 331     Expect.listEquals([0, 1, 2, -32768, 0, 1, 32767, 7, 8, 9], array); | 243     Expect.listEquals([0, 1, 2, -32768, 0, 1, 32767, 7, 8, 9], | 
|  | 244                       array); | 
| 332   } | 245   } | 
| 333 | 246 | 
| 334   static testInt16List() { | 247   static testInt16List() { | 
| 335     Expect.throws(() { | 248     Expect.throws(() { new Int16List(-1); }, | 
| 336       new Int16List(-1); | 249                   (e) { return e is ArgumentError; }); | 
| 337     }, (e) { |  | 
| 338       return e is ArgumentError; |  | 
| 339     }); |  | 
| 340     var array = new Int16List(10); | 250     var array = new Int16List(10); | 
| 341     testInt16ListImpl(array); | 251     testInt16ListImpl(array); | 
| 342   } | 252   } | 
| 343 | 253 | 
| 344   static testUint16ListImpl(Uint16List array) { | 254   static testUint16ListImpl(Uint16List array) { | 
| 345     Expect.isTrue(array is List<int>); | 255     Expect.isTrue(array is List<int>); | 
| 346     Expect.equals(10, array.length); | 256     Expect.equals(10, array.length); | 
| 347     Expect.equals(2, array.elementSizeInBytes); | 257     Expect.equals(2, array.elementSizeInBytes); | 
| 348     Expect.equals(20, array.lengthInBytes); | 258     Expect.equals(20, array.lengthInBytes); | 
| 349     Expect.listEquals([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], array); | 259     Expect.listEquals([0, 0, 0, 0, 0, | 
| 350     Expect.throws(() { | 260                        0, 0, 0, 0, 0], | 
| 351       array[-1] = 0; | 261                       array); | 
| 352     }, (e) { | 262     Expect.throws(() { array[-1] = 0; }, | 
| 353       return e is RangeError; | 263                   (e) { return e is RangeError; }); | 
| 354     }); | 264     Expect.throws(() { return array[-1]; }, | 
| 355     Expect.throws(() { | 265                   (e) { return e is RangeError; }); | 
| 356       return array[-1]; | 266     Expect.throws(() { array[10]; }, | 
| 357     }, (e) { | 267                   (e) { return e is RangeError; }); | 
| 358       return e is RangeError; | 268     Expect.throws(() { array[10] = 0; }, | 
| 359     }); | 269                   (e) { return e is RangeError; }); | 
| 360     Expect.throws(() { | 270     Expect.throws(() { array.add(0); }, | 
| 361       array[10]; | 271                   (e) { return e is UnsupportedError; }); | 
| 362     }, (e) { | 272     Expect.throws(() { array.addAll([0]); }, | 
| 363       return e is RangeError; | 273                   (e) { return e is UnsupportedError; }); | 
| 364     }); | 274     Expect.throws(() { array.clear(); }, | 
| 365     Expect.throws(() { | 275                   (e) { return e is UnsupportedError; }); | 
| 366       array[10] = 0; | 276     Expect.throws(() { array.length = 0; }, | 
| 367     }, (e) { | 277                   (e) { return e is UnsupportedError; }); | 
| 368       return e is RangeError; | 278     Expect.throws(() { array.removeLast(); }, | 
| 369     }); | 279                   (e) { return e is UnsupportedError; }); | 
| 370     Expect.throws(() { | 280     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 371       array.add(0); | 281                   (e) { return e is UnsupportedError; }); | 
| 372     }, (e) { |  | 
| 373       return e is UnsupportedError; |  | 
| 374     }); |  | 
| 375     Expect.throws(() { |  | 
| 376       array.addAll([0]); |  | 
| 377     }, (e) { |  | 
| 378       return e is UnsupportedError; |  | 
| 379     }); |  | 
| 380     Expect.throws(() { |  | 
| 381       array.clear(); |  | 
| 382     }, (e) { |  | 
| 383       return e is UnsupportedError; |  | 
| 384     }); |  | 
| 385     Expect.throws(() { |  | 
| 386       array.length = 0; |  | 
| 387     }, (e) { |  | 
| 388       return e is UnsupportedError; |  | 
| 389     }); |  | 
| 390     Expect.throws(() { |  | 
| 391       array.removeLast(); |  | 
| 392     }, (e) { |  | 
| 393       return e is UnsupportedError; |  | 
| 394     }); |  | 
| 395     Expect.throws(() { |  | 
| 396       array.removeRange(0, array.length - 1); |  | 
| 397     }, (e) { |  | 
| 398       return e is UnsupportedError; |  | 
| 399     }); |  | 
| 400     for (int i = 0; i < array.length; ++i) { | 282     for (int i = 0; i < array.length; ++i) { | 
| 401       array[i] = 1 + i; | 283       array[i] = 1 + i; | 
| 402     } | 284     } | 
| 403     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], array); | 285     Expect.listEquals([1, 2, 3, 4, 5, | 
|  | 286                        6, 7, 8, 9, 10], | 
|  | 287                       array); | 
| 404     for (int i = 0; i < array.length; ++i) { | 288     for (int i = 0; i < array.length; ++i) { | 
| 405       array[i] = 0x10000 + i; | 289       array[i] = 0x10000 + i; | 
| 406     } | 290     } | 
| 407     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], array); | 291     Expect.listEquals([0, 1, 2, 3, 4, | 
|  | 292                        5, 6, 7, 8, 9], | 
|  | 293                       array); | 
| 408     for (int i = 0; i < array.length; ++i) { | 294     for (int i = 0; i < array.length; ++i) { | 
| 409       array[i] = 0xFFFF - i; | 295       array[i] = 0xFFFF - i; | 
| 410     } | 296     } | 
| 411     Expect.listEquals([ | 297     Expect.listEquals([0xFFFF, 0xFFFE, 0xFFFD, 0xFFFC, 0xFFFB, | 
| 412       0xFFFF, | 298                        0xFFFA, 0xFFF9, 0xFFF8, 0xFFF7, 0xFFF6], | 
| 413       0xFFFE, | 299                       array); | 
| 414       0xFFFD, |  | 
| 415       0xFFFC, |  | 
| 416       0xFFFB, |  | 
| 417       0xFFFA, |  | 
| 418       0xFFF9, |  | 
| 419       0xFFF8, |  | 
| 420       0xFFF7, |  | 
| 421       0xFFF6 |  | 
| 422     ], array); |  | 
| 423     for (int i = 0; i < array.length; ++i) { | 300     for (int i = 0; i < array.length; ++i) { | 
| 424       array[i] = i; | 301       array[i] = i; | 
| 425     } | 302     } | 
| 426     var copy = array.sublist(0, array.length); | 303     var copy = array.sublist(0, array.length); | 
| 427     Expect.isFalse(identical(copy, array)); | 304     Expect.isFalse(identical(copy, array)); | 
| 428     Expect.isTrue(copy is Uint16List); | 305     Expect.isTrue(copy is Uint16List); | 
| 429     Expect.equals(10, copy.length); | 306     Expect.equals(10, copy.length); | 
| 430     Expect.listEquals(array, copy); | 307     Expect.listEquals(array, copy); | 
| 431     var empty = array.sublist(array.length, array.length); | 308     var empty = array.sublist(array.length, array.length); | 
| 432     Expect.equals(0, empty.length); | 309     Expect.equals(0, empty.length); | 
| 433     var region = array.sublist(3, array.length - 3); | 310     var region = array.sublist(3, array.length - 3); | 
| 434     Expect.isTrue(copy is Uint16List); | 311     Expect.isTrue(copy is Uint16List); | 
| 435     Expect.equals(4, region.length); | 312     Expect.equals(4, region.length); | 
| 436     Expect.listEquals([3, 4, 5, 6], region); | 313     Expect.listEquals([3, 4, 5, 6], region); | 
| 437     array.setRange(3, 7, [0x10001, 0, 1, 0xFFFF]); | 314     array.setRange(3, 7, [0x10001, 0, 1, 0xFFFF]); | 
| 438     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFF, 7, 8, 9], array); | 315     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFF, 7, 8, 9], | 
|  | 316                       array); | 
| 439   } | 317   } | 
| 440 | 318 | 
| 441   static testUint16List() { | 319   static testUint16List() { | 
| 442     Expect.throws(() { | 320     Expect.throws(() { new Uint16List(-1); }, | 
| 443       new Uint16List(-1); | 321                   (e) { return e is ArgumentError; }); | 
| 444     }, (e) { |  | 
| 445       return e is ArgumentError; |  | 
| 446     }); |  | 
| 447     var array = new Uint16List(10); | 322     var array = new Uint16List(10); | 
| 448     testUint16ListImpl(array); | 323     testUint16ListImpl(array); | 
| 449   } | 324   } | 
| 450 | 325 | 
| 451   static testInt32ListImpl(Int32List array) { | 326   static testInt32ListImpl(Int32List array) { | 
| 452     Expect.isTrue(array is List<int>); | 327     Expect.isTrue(array is List<int>); | 
| 453     Expect.equals(10, array.length); | 328     Expect.equals(10, array.length); | 
| 454     Expect.equals(4, array.elementSizeInBytes); | 329     Expect.equals(4, array.elementSizeInBytes); | 
| 455     Expect.equals(40, array.lengthInBytes); | 330     Expect.equals(40, array.lengthInBytes); | 
| 456     Expect.listEquals([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], array); | 331     Expect.listEquals([0, 0, 0, 0, 0, | 
| 457     Expect.throws(() { | 332                        0, 0, 0, 0, 0], | 
| 458       array[-1] = 0; | 333                       array); | 
| 459     }, (e) { | 334     Expect.throws(() { array[-1] = 0; }, | 
| 460       return e is RangeError; | 335                   (e) { return e is RangeError; }); | 
| 461     }); | 336     Expect.throws(() { return array[-1]; }, | 
| 462     Expect.throws(() { | 337                   (e) { return e is RangeError; }); | 
| 463       return array[-1]; | 338     Expect.throws(() { array[10]; }, | 
| 464     }, (e) { | 339                   (e) { return e is RangeError; }); | 
| 465       return e is RangeError; | 340     Expect.throws(() { array[10] = 0; }, | 
| 466     }); | 341                   (e) { return e is RangeError; }); | 
| 467     Expect.throws(() { | 342     Expect.throws(() { array.add(0); }, | 
| 468       array[10]; | 343                   (e) { return e is UnsupportedError; }); | 
| 469     }, (e) { | 344     Expect.throws(() { array.addAll([0]); }, | 
| 470       return e is RangeError; | 345                   (e) { return e is UnsupportedError; }); | 
| 471     }); | 346     Expect.throws(() { array.clear(); }, | 
| 472     Expect.throws(() { | 347                   (e) { return e is UnsupportedError; }); | 
| 473       array[10] = 0; | 348     Expect.throws(() { array.length = 0; }, | 
| 474     }, (e) { | 349                   (e) { return e is UnsupportedError; }); | 
| 475       return e is RangeError; | 350     Expect.throws(() { array.removeLast(); }, | 
| 476     }); | 351                   (e) { return e is UnsupportedError; }); | 
| 477     Expect.throws(() { | 352     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 478       array.add(0); | 353                   (e) { return e is UnsupportedError; }); | 
| 479     }, (e) { |  | 
| 480       return e is UnsupportedError; |  | 
| 481     }); |  | 
| 482     Expect.throws(() { |  | 
| 483       array.addAll([0]); |  | 
| 484     }, (e) { |  | 
| 485       return e is UnsupportedError; |  | 
| 486     }); |  | 
| 487     Expect.throws(() { |  | 
| 488       array.clear(); |  | 
| 489     }, (e) { |  | 
| 490       return e is UnsupportedError; |  | 
| 491     }); |  | 
| 492     Expect.throws(() { |  | 
| 493       array.length = 0; |  | 
| 494     }, (e) { |  | 
| 495       return e is UnsupportedError; |  | 
| 496     }); |  | 
| 497     Expect.throws(() { |  | 
| 498       array.removeLast(); |  | 
| 499     }, (e) { |  | 
| 500       return e is UnsupportedError; |  | 
| 501     }); |  | 
| 502     Expect.throws(() { |  | 
| 503       array.removeRange(0, array.length - 1); |  | 
| 504     }, (e) { |  | 
| 505       return e is UnsupportedError; |  | 
| 506     }); |  | 
| 507     for (int i = 0; i < array.length; ++i) { | 354     for (int i = 0; i < array.length; ++i) { | 
| 508       array[i] = 1 + i; | 355       array[i] = 1 + i; | 
| 509     } | 356     } | 
| 510     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], array); | 357     Expect.listEquals([1, 2, 3, 4, 5, | 
|  | 358                        6, 7, 8, 9, 10], | 
|  | 359                       array); | 
| 511     for (int i = 0; i < array.length; ++i) { | 360     for (int i = 0; i < array.length; ++i) { | 
| 512       array[i] = 0x100000000 + i; | 361       array[i] = 0x100000000 + i; | 
| 513     } | 362     } | 
| 514     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], array); | 363     Expect.listEquals([0, 1, 2, 3, 4, | 
|  | 364                        5, 6, 7, 8, 9], | 
|  | 365                       array); | 
| 515     for (int i = 0; i < array.length; ++i) { | 366     for (int i = 0; i < array.length; ++i) { | 
| 516       array[i] = -10 + i; | 367       array[i] = -10 + i; | 
| 517     } | 368     } | 
| 518     Expect.listEquals([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1], array); | 369     Expect.listEquals([-10, -9, -8, -7, -6, | 
|  | 370                         -5, -4, -3, -2, -1], | 
|  | 371                       array); | 
| 519     for (int i = 0; i < array.length; ++i) { | 372     for (int i = 0; i < array.length; ++i) { | 
| 520       array[i] = 0x7FFFFFFF - i; | 373       array[i] = 0x7FFFFFFF - i; | 
| 521     } | 374     } | 
| 522     Expect.listEquals([ | 375     Expect.listEquals([0x7FFFFFFF, 0x7FFFFFFE, | 
| 523       0x7FFFFFFF, | 376                        0x7FFFFFFD, 0x7FFFFFFC, | 
| 524       0x7FFFFFFE, | 377                        0x7FFFFFFB, 0x7FFFFFFA, | 
| 525       0x7FFFFFFD, | 378                        0x7FFFFFF9, 0x7FFFFFF8, | 
| 526       0x7FFFFFFC, | 379                        0x7FFFFFF7, 0x7FFFFFF6], | 
| 527       0x7FFFFFFB, | 380         array); | 
| 528       0x7FFFFFFA, |  | 
| 529       0x7FFFFFF9, |  | 
| 530       0x7FFFFFF8, |  | 
| 531       0x7FFFFFF7, |  | 
| 532       0x7FFFFFF6 |  | 
| 533     ], array); |  | 
| 534     for (int i = 0; i < array.length; ++i) { | 381     for (int i = 0; i < array.length; ++i) { | 
| 535       array[i] = -0x80000000 + i; | 382       array[i] = -0x80000000 + i; | 
| 536     } | 383     } | 
| 537     Expect.listEquals([ | 384     Expect.listEquals([-0x80000000, -0x7FFFFFFF, | 
| 538       -0x80000000, | 385                        -0x7FFFFFFE, -0x7FFFFFFD, | 
| 539       -0x7FFFFFFF, | 386                        -0x7FFFFFFC, -0x7FFFFFFB, | 
| 540       -0x7FFFFFFE, | 387                        -0x7FFFFFFA, -0x7FFFFFF9, | 
| 541       -0x7FFFFFFD, | 388                        -0x7FFFFFF8, -0x7FFFFFF7], | 
| 542       -0x7FFFFFFC, | 389         array); | 
| 543       -0x7FFFFFFB, |  | 
| 544       -0x7FFFFFFA, |  | 
| 545       -0x7FFFFFF9, |  | 
| 546       -0x7FFFFFF8, |  | 
| 547       -0x7FFFFFF7 |  | 
| 548     ], array); |  | 
| 549     for (int i = 0; i < array.length; ++i) { | 390     for (int i = 0; i < array.length; ++i) { | 
| 550       array[i] = i; | 391       array[i] = i; | 
| 551     } | 392     } | 
| 552     var copy = array.sublist(0, array.length); | 393     var copy = array.sublist(0, array.length); | 
| 553     Expect.isFalse(identical(copy, array)); | 394     Expect.isFalse(identical(copy, array)); | 
| 554     Expect.isTrue(copy is Int32List); | 395     Expect.isTrue(copy is Int32List); | 
| 555     Expect.equals(10, copy.length); | 396     Expect.equals(10, copy.length); | 
| 556     Expect.listEquals(array, copy); | 397     Expect.listEquals(array, copy); | 
| 557     var empty = array.sublist(array.length, array.length); | 398     var empty = array.sublist(array.length, array.length); | 
| 558     Expect.equals(0, empty.length); | 399     Expect.equals(0, empty.length); | 
| 559     var region = array.sublist(3, array.length - 3); | 400     var region = array.sublist(3, array.length - 3); | 
| 560     Expect.isTrue(copy is Int32List); | 401     Expect.isTrue(copy is Int32List); | 
| 561     Expect.equals(4, region.length); | 402     Expect.equals(4, region.length); | 
| 562     Expect.listEquals([3, 4, 5, 6], region); | 403     Expect.listEquals([3, 4, 5, 6], region); | 
| 563     array.setRange(3, 7, [-0x80000000, 0, 1, 0x7FFFFFFF]); | 404     array.setRange(3, 7, [-0x80000000, 0, 1, 0x7FFFFFFF]); | 
| 564     Expect.listEquals([0, 1, 2, -0x80000000, 0, 1, 0x7FFFFFFF, 7, 8, 9], array); | 405     Expect.listEquals([0, 1, 2, -0x80000000, 0, 1, 0x7FFFFFFF, 7, 8, 9], | 
|  | 406                       array); | 
| 565   } | 407   } | 
| 566 | 408 | 
| 567   static testInt32List() { | 409   static testInt32List() { | 
| 568     Expect.throws(() { | 410     Expect.throws(() { new Int32List(-1); }, | 
| 569       new Int32List(-1); | 411                   (e) { return e is ArgumentError; }); | 
| 570     }, (e) { |  | 
| 571       return e is ArgumentError; |  | 
| 572     }); |  | 
| 573     var array = new Int32List(10); | 412     var array = new Int32List(10); | 
| 574     testInt32ListImpl(array); | 413     testInt32ListImpl(array); | 
| 575   } | 414   } | 
| 576 | 415 | 
| 577   static testUint32ListImpl(Uint32List array) { | 416   static testUint32ListImpl(Uint32List array) { | 
| 578     Expect.isTrue(array is List<int>); | 417     Expect.isTrue(array is List<int>); | 
| 579     Expect.equals(10, array.length); | 418     Expect.equals(10, array.length); | 
| 580     Expect.equals(4, array.elementSizeInBytes); | 419     Expect.equals(4, array.elementSizeInBytes); | 
| 581     Expect.equals(40, array.lengthInBytes); | 420     Expect.equals(40, array.lengthInBytes); | 
| 582     Expect.listEquals([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], array); | 421     Expect.listEquals([0, 0, 0, 0, 0, | 
| 583     Expect.throws(() { | 422                        0, 0, 0, 0, 0], | 
| 584       array[-1] = 0; | 423                       array); | 
| 585     }, (e) { | 424     Expect.throws(() { array[-1] = 0; }, | 
| 586       return e is RangeError; | 425                   (e) { return e is RangeError; }); | 
| 587     }); | 426     Expect.throws(() { return array[-1]; }, | 
| 588     Expect.throws(() { | 427                   (e) { return e is RangeError; }); | 
| 589       return array[-1]; | 428     Expect.throws(() { array[10]; }, | 
| 590     }, (e) { | 429                   (e) { return e is RangeError; }); | 
| 591       return e is RangeError; | 430     Expect.throws(() { array[10] = 0; }, | 
| 592     }); | 431                   (e) { return e is RangeError; }); | 
| 593     Expect.throws(() { | 432     Expect.throws(() { array.add(0); }, | 
| 594       array[10]; | 433                   (e) { return e is UnsupportedError; }); | 
| 595     }, (e) { | 434     Expect.throws(() { array.addAll([0]); }, | 
| 596       return e is RangeError; | 435                   (e) { return e is UnsupportedError; }); | 
| 597     }); | 436     Expect.throws(() { array.clear(); }, | 
| 598     Expect.throws(() { | 437                   (e) { return e is UnsupportedError; }); | 
| 599       array[10] = 0; | 438     Expect.throws(() { array.length = 0; }, | 
| 600     }, (e) { | 439                   (e) { return e is UnsupportedError; }); | 
| 601       return e is RangeError; | 440     Expect.throws(() { array.removeLast(); }, | 
| 602     }); | 441                   (e) { return e is UnsupportedError; }); | 
| 603     Expect.throws(() { | 442     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 604       array.add(0); | 443                   (e) { return e is UnsupportedError; }); | 
| 605     }, (e) { |  | 
| 606       return e is UnsupportedError; |  | 
| 607     }); |  | 
| 608     Expect.throws(() { |  | 
| 609       array.addAll([0]); |  | 
| 610     }, (e) { |  | 
| 611       return e is UnsupportedError; |  | 
| 612     }); |  | 
| 613     Expect.throws(() { |  | 
| 614       array.clear(); |  | 
| 615     }, (e) { |  | 
| 616       return e is UnsupportedError; |  | 
| 617     }); |  | 
| 618     Expect.throws(() { |  | 
| 619       array.length = 0; |  | 
| 620     }, (e) { |  | 
| 621       return e is UnsupportedError; |  | 
| 622     }); |  | 
| 623     Expect.throws(() { |  | 
| 624       array.removeLast(); |  | 
| 625     }, (e) { |  | 
| 626       return e is UnsupportedError; |  | 
| 627     }); |  | 
| 628     Expect.throws(() { |  | 
| 629       array.removeRange(0, array.length - 1); |  | 
| 630     }, (e) { |  | 
| 631       return e is UnsupportedError; |  | 
| 632     }); |  | 
| 633     for (int i = 0; i < array.length; ++i) { | 444     for (int i = 0; i < array.length; ++i) { | 
| 634       array[i] = 1 + i; | 445       array[i] = 1 + i; | 
| 635     } | 446     } | 
| 636     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], array); | 447     Expect.listEquals([1, 2, 3, 4, 5, | 
|  | 448                        6, 7, 8, 9, 10], | 
|  | 449                       array); | 
| 637     for (int i = 0; i < array.length; ++i) { | 450     for (int i = 0; i < array.length; ++i) { | 
| 638       array[i] = 0x100000000 + i; | 451       array[i] = 0x100000000 + i; | 
| 639     } | 452     } | 
| 640     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], array); | 453     Expect.listEquals([0, 1, 2, 3, 4, | 
|  | 454                        5, 6, 7, 8, 9], | 
|  | 455                       array); | 
| 641     for (int i = 0; i < array.length; ++i) { | 456     for (int i = 0; i < array.length; ++i) { | 
| 642       array[i] = 0xFFFFFFFF - i; | 457       array[i] = 0xFFFFFFFF - i; | 
| 643     } | 458     } | 
| 644     Expect.listEquals([ | 459     Expect.listEquals([0xFFFFFFFF, 0xFFFFFFFE, | 
| 645       0xFFFFFFFF, | 460                        0xFFFFFFFD, 0xFFFFFFFC, | 
| 646       0xFFFFFFFE, | 461                        0xFFFFFFFB, 0xFFFFFFFA, | 
| 647       0xFFFFFFFD, | 462                        0xFFFFFFF9, 0xFFFFFFF8, | 
| 648       0xFFFFFFFC, | 463                        0xFFFFFFF7, 0xFFFFFFF6], | 
| 649       0xFFFFFFFB, | 464         array); | 
| 650       0xFFFFFFFA, |  | 
| 651       0xFFFFFFF9, |  | 
| 652       0xFFFFFFF8, |  | 
| 653       0xFFFFFFF7, |  | 
| 654       0xFFFFFFF6 |  | 
| 655     ], array); |  | 
| 656     for (int i = 0; i < array.length; ++i) { | 465     for (int i = 0; i < array.length; ++i) { | 
| 657       array[i] = i; | 466       array[i] = i; | 
| 658     } | 467     } | 
| 659     var copy = array.sublist(0, array.length); | 468     var copy = array.sublist(0, array.length); | 
| 660     Expect.isFalse(identical(copy, array)); | 469     Expect.isFalse(identical(copy, array)); | 
| 661     Expect.isTrue(copy is Uint32List); | 470     Expect.isTrue(copy is Uint32List); | 
| 662     Expect.equals(10, copy.length); | 471     Expect.equals(10, copy.length); | 
| 663     Expect.listEquals(array, copy); | 472     Expect.listEquals(array, copy); | 
| 664     var empty = array.sublist(array.length, array.length); | 473     var empty = array.sublist(array.length, array.length); | 
| 665     Expect.equals(0, empty.length); | 474     Expect.equals(0, empty.length); | 
| 666     var region = array.sublist(3, array.length - 3); | 475     var region = array.sublist(3, array.length - 3); | 
| 667     Expect.isTrue(copy is Uint32List); | 476     Expect.isTrue(copy is Uint32List); | 
| 668     Expect.equals(4, region.length); | 477     Expect.equals(4, region.length); | 
| 669     Expect.listEquals([3, 4, 5, 6], region); | 478     Expect.listEquals([3, 4, 5, 6], region); | 
| 670     array.setRange(3, 7, [0x100000001, 0, 1, 0xFFFFFFFF]); | 479     array.setRange(3, 7, [0x100000001, 0, 1, 0xFFFFFFFF]); | 
| 671     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFFFFFF, 7, 8, 9], array); | 480     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFFFFFF, 7, 8, 9], | 
|  | 481                       array); | 
| 672   } | 482   } | 
| 673 | 483 | 
| 674   static testUint32List() { | 484   static testUint32List() { | 
| 675     Expect.throws(() { | 485     Expect.throws(() { new Uint32List(-1); }, | 
| 676       new Uint32List(-1); | 486                   (e) { return e is ArgumentError; }); | 
| 677     }, (e) { | 487     Expect.throws(() { new Uint32List(-1); }, | 
| 678       return e is ArgumentError; | 488                   (e) { return e is ArgumentError; }); | 
| 679     }); |  | 
| 680     Expect.throws(() { |  | 
| 681       new Uint32List(-1); |  | 
| 682     }, (e) { |  | 
| 683       return e is ArgumentError; |  | 
| 684     }); |  | 
| 685     var array = new Uint32List(10); | 489     var array = new Uint32List(10); | 
| 686     testUint32ListImpl(array); | 490     testUint32ListImpl(array); | 
|  | 491 | 
| 687   } | 492   } | 
| 688 | 493 | 
| 689   static testInt64ListImpl(Int64List array) { | 494   static testInt64ListImpl(Int64List array) { | 
| 690     Expect.isTrue(array is List<int>); | 495     Expect.isTrue(array is List<int>); | 
| 691     Expect.equals(10, array.length); | 496     Expect.equals(10, array.length); | 
| 692     Expect.equals(8, array.elementSizeInBytes); | 497     Expect.equals(8, array.elementSizeInBytes); | 
| 693     Expect.equals(80, array.lengthInBytes); | 498     Expect.equals(80, array.lengthInBytes); | 
| 694     Expect.listEquals([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], array); | 499     Expect.listEquals([0, 0, 0, 0, 0, | 
| 695     Expect.throws(() { | 500                        0, 0, 0, 0, 0], | 
| 696       array[-1] = 0; | 501                       array); | 
| 697     }, (e) { | 502     Expect.throws(() { array[-1] = 0; }, | 
| 698       return e is RangeError; | 503                   (e) { return e is RangeError; }); | 
| 699     }); | 504     Expect.throws(() { return array[-1]; }, | 
| 700     Expect.throws(() { | 505                   (e) { return e is RangeError; }); | 
| 701       return array[-1]; | 506     Expect.throws(() { array[10]; }, | 
| 702     }, (e) { | 507                   (e) { return e is RangeError; }); | 
| 703       return e is RangeError; | 508     Expect.throws(() { array[10] = 0; }, | 
| 704     }); | 509                   (e) { return e is RangeError; }); | 
| 705     Expect.throws(() { | 510     Expect.throws(() { array.add(0); }, | 
| 706       array[10]; | 511                   (e) { return e is UnsupportedError; }); | 
| 707     }, (e) { | 512     Expect.throws(() { array.addAll([0]); }, | 
| 708       return e is RangeError; | 513                   (e) { return e is UnsupportedError; }); | 
| 709     }); | 514     Expect.throws(() { array.clear(); }, | 
| 710     Expect.throws(() { | 515                   (e) { return e is UnsupportedError; }); | 
| 711       array[10] = 0; | 516     Expect.throws(() { array.length = 0; }, | 
| 712     }, (e) { | 517                   (e) { return e is UnsupportedError; }); | 
| 713       return e is RangeError; | 518     Expect.throws(() { array.removeLast(); }, | 
| 714     }); | 519                   (e) { return e is UnsupportedError; }); | 
| 715     Expect.throws(() { | 520     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 716       array.add(0); | 521                   (e) { return e is UnsupportedError; }); | 
| 717     }, (e) { |  | 
| 718       return e is UnsupportedError; |  | 
| 719     }); |  | 
| 720     Expect.throws(() { |  | 
| 721       array.addAll([0]); |  | 
| 722     }, (e) { |  | 
| 723       return e is UnsupportedError; |  | 
| 724     }); |  | 
| 725     Expect.throws(() { |  | 
| 726       array.clear(); |  | 
| 727     }, (e) { |  | 
| 728       return e is UnsupportedError; |  | 
| 729     }); |  | 
| 730     Expect.throws(() { |  | 
| 731       array.length = 0; |  | 
| 732     }, (e) { |  | 
| 733       return e is UnsupportedError; |  | 
| 734     }); |  | 
| 735     Expect.throws(() { |  | 
| 736       array.removeLast(); |  | 
| 737     }, (e) { |  | 
| 738       return e is UnsupportedError; |  | 
| 739     }); |  | 
| 740     Expect.throws(() { |  | 
| 741       array.removeRange(0, array.length - 1); |  | 
| 742     }, (e) { |  | 
| 743       return e is UnsupportedError; |  | 
| 744     }); |  | 
| 745     for (int i = 0; i < array.length; ++i) { | 522     for (int i = 0; i < array.length; ++i) { | 
| 746       array[i] = 1 + i; | 523       array[i] = 1 + i; | 
| 747     } | 524     } | 
| 748     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], array); | 525     Expect.listEquals([1, 2, 3, 4, 5, | 
|  | 526                        6, 7, 8, 9, 10], | 
|  | 527                       array); | 
| 749     for (int i = 0; i < array.length; ++i) { | 528     for (int i = 0; i < array.length; ++i) { | 
| 750       array[i] = 0x10000000000000000 + i; | 529       array[i] = 0x10000000000000000 + i; | 
| 751     } | 530     } | 
| 752     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], array); | 531     Expect.listEquals([0, 1, 2, 3, 4, | 
|  | 532                        5, 6, 7, 8, 9], | 
|  | 533                       array); | 
| 753     for (int i = 0; i < array.length; ++i) { | 534     for (int i = 0; i < array.length; ++i) { | 
| 754       array[i] = -10 + i; | 535       array[i] = -10 + i; | 
| 755     } | 536     } | 
| 756     Expect.listEquals([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1], array); | 537     Expect.listEquals([-10, -9, -8, -7, -6, | 
|  | 538                         -5, -4, -3, -2, -1], | 
|  | 539                       array); | 
| 757     for (int i = 0; i < array.length; ++i) { | 540     for (int i = 0; i < array.length; ++i) { | 
| 758       array[i] = 0x7FFFFFFFFFFFFFFF - i; | 541       array[i] = 0x7FFFFFFFFFFFFFFF - i; | 
| 759     } | 542     } | 
| 760     Expect.listEquals([ | 543     Expect.listEquals([0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFE, | 
| 761       0x7FFFFFFFFFFFFFFF, | 544                        0x7FFFFFFFFFFFFFFD, 0x7FFFFFFFFFFFFFFC, | 
| 762       0x7FFFFFFFFFFFFFFE, | 545                        0x7FFFFFFFFFFFFFFB, 0x7FFFFFFFFFFFFFFA, | 
| 763       0x7FFFFFFFFFFFFFFD, | 546                        0x7FFFFFFFFFFFFFF9, 0x7FFFFFFFFFFFFFF8, | 
| 764       0x7FFFFFFFFFFFFFFC, | 547                        0x7FFFFFFFFFFFFFF7, 0x7FFFFFFFFFFFFFF6], | 
| 765       0x7FFFFFFFFFFFFFFB, | 548         array); | 
| 766       0x7FFFFFFFFFFFFFFA, |  | 
| 767       0x7FFFFFFFFFFFFFF9, |  | 
| 768       0x7FFFFFFFFFFFFFF8, |  | 
| 769       0x7FFFFFFFFFFFFFF7, |  | 
| 770       0x7FFFFFFFFFFFFFF6 |  | 
| 771     ], array); |  | 
| 772     for (int i = 0; i < array.length; ++i) { | 549     for (int i = 0; i < array.length; ++i) { | 
| 773       array[i] = -0x8000000000000000 + i; | 550       array[i] = -0x8000000000000000 + i; | 
| 774     } | 551     } | 
| 775     Expect.listEquals([ | 552     Expect.listEquals([-0x8000000000000000, -0x7FFFFFFFFFFFFFFF, | 
| 776       -0x8000000000000000, | 553                        -0x7FFFFFFFFFFFFFFE, -0x7FFFFFFFFFFFFFFD, | 
| 777       -0x7FFFFFFFFFFFFFFF, | 554                        -0x7FFFFFFFFFFFFFFC, -0x7FFFFFFFFFFFFFFB, | 
| 778       -0x7FFFFFFFFFFFFFFE, | 555                        -0x7FFFFFFFFFFFFFFA, -0x7FFFFFFFFFFFFFF9, | 
| 779       -0x7FFFFFFFFFFFFFFD, | 556                        -0x7FFFFFFFFFFFFFF8, -0x7FFFFFFFFFFFFFF7], | 
| 780       -0x7FFFFFFFFFFFFFFC, | 557         array); | 
| 781       -0x7FFFFFFFFFFFFFFB, |  | 
| 782       -0x7FFFFFFFFFFFFFFA, |  | 
| 783       -0x7FFFFFFFFFFFFFF9, |  | 
| 784       -0x7FFFFFFFFFFFFFF8, |  | 
| 785       -0x7FFFFFFFFFFFFFF7 |  | 
| 786     ], array); |  | 
| 787     for (int i = 0; i < array.length; ++i) { | 558     for (int i = 0; i < array.length; ++i) { | 
| 788       array[i] = i; | 559       array[i] = i; | 
| 789     } | 560     } | 
| 790     var copy = array.sublist(0, array.length); | 561     var copy = array.sublist(0, array.length); | 
| 791     Expect.isFalse(identical(copy, array)); | 562     Expect.isFalse(identical(copy, array)); | 
| 792     Expect.isTrue(copy is Int64List); | 563     Expect.isTrue(copy is Int64List); | 
| 793     Expect.equals(10, copy.length); | 564     Expect.equals(10, copy.length); | 
| 794     Expect.listEquals(array, copy); | 565     Expect.listEquals(array, copy); | 
| 795     var empty = array.sublist(array.length, array.length); | 566     var empty = array.sublist(array.length, array.length); | 
| 796     Expect.equals(0, empty.length); | 567     Expect.equals(0, empty.length); | 
| 797     var region = array.sublist(3, array.length - 3); | 568     var region = array.sublist(3, array.length - 3); | 
| 798     Expect.isTrue(copy is Int64List); | 569     Expect.isTrue(copy is Int64List); | 
| 799     Expect.equals(4, region.length); | 570     Expect.equals(4, region.length); | 
| 800     Expect.listEquals([3, 4, 5, 6], region); | 571     Expect.listEquals([3, 4, 5, 6], region); | 
| 801     array.setRange(3, 7, [-0x8000000000000000, 0, 1, 0x7FFFFFFFFFFFFFFF]); | 572     array.setRange(3, 7, [-0x8000000000000000, 0, 1, 0x7FFFFFFFFFFFFFFF]); | 
| 802     Expect.listEquals( | 573     Expect.listEquals([0, 1, 2, -0x8000000000000000, 0, | 
| 803         [0, 1, 2, -0x8000000000000000, 0, 1, 0x7FFFFFFFFFFFFFFF, 7, 8, 9], | 574                        1, 0x7FFFFFFFFFFFFFFF, 7, 8, 9], | 
| 804         array); | 575                       array); | 
| 805   } | 576   } | 
| 806 | 577 | 
| 807   static testInt64List() { | 578   static testInt64List() { | 
| 808     Expect.throws(() { | 579     Expect.throws(() { new Int64List(-1); }, | 
| 809       new Int64List(-1); | 580                   (e) { return e is ArgumentError; }); | 
| 810     }, (e) { |  | 
| 811       return e is ArgumentError; |  | 
| 812     }); |  | 
| 813     var array = new Int64List(10); | 581     var array = new Int64List(10); | 
| 814     testInt64ListImpl(array); | 582     testInt64ListImpl(array); | 
| 815   } | 583   } | 
| 816 | 584 | 
| 817   static testUint64ListImpl(Uint64List array) { | 585   static testUint64ListImpl(Uint64List array) { | 
| 818     Expect.isTrue(array is List<int>); | 586     Expect.isTrue(array is List<int>); | 
| 819     Expect.equals(10, array.length); | 587     Expect.equals(10, array.length); | 
| 820     Expect.equals(8, array.elementSizeInBytes); | 588     Expect.equals(8, array.elementSizeInBytes); | 
| 821     Expect.equals(80, array.lengthInBytes); | 589     Expect.equals(80, array.lengthInBytes); | 
| 822     Expect.listEquals([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], array); | 590     Expect.listEquals([0, 0, 0, 0, 0, | 
| 823     Expect.throws(() { | 591                        0, 0, 0, 0, 0], | 
| 824       array[-1] = 0; | 592                       array); | 
| 825     }, (e) { | 593     Expect.throws(() { array[-1] = 0; }, | 
| 826       return e is RangeError; | 594                   (e) { return e is RangeError; }); | 
| 827     }); | 595     Expect.throws(() { return array[-1]; }, | 
| 828     Expect.throws(() { | 596                   (e) { return e is RangeError; }); | 
| 829       return array[-1]; | 597     Expect.throws(() { array[10]; }, | 
| 830     }, (e) { | 598                   (e) { return e is RangeError; }); | 
| 831       return e is RangeError; | 599     Expect.throws(() { array[10] = 0; }, | 
| 832     }); | 600                   (e) { return e is RangeError; }); | 
| 833     Expect.throws(() { | 601     Expect.throws(() { array.add(0); }, | 
| 834       array[10]; | 602                   (e) { return e is UnsupportedError; }); | 
| 835     }, (e) { | 603     Expect.throws(() { array.addAll([0]); }, | 
| 836       return e is RangeError; | 604                   (e) { return e is UnsupportedError; }); | 
| 837     }); | 605     Expect.throws(() { array.clear(); }, | 
| 838     Expect.throws(() { | 606                   (e) { return e is UnsupportedError; }); | 
| 839       array[10] = 0; | 607     Expect.throws(() { array.length = 0; }, | 
| 840     }, (e) { | 608                   (e) { return e is UnsupportedError; }); | 
| 841       return e is RangeError; | 609     Expect.throws(() { array.removeLast(); }, | 
| 842     }); | 610                   (e) { return e is UnsupportedError; }); | 
| 843     Expect.throws(() { | 611     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 844       array.add(0); | 612                   (e) { return e is UnsupportedError; }); | 
| 845     }, (e) { |  | 
| 846       return e is UnsupportedError; |  | 
| 847     }); |  | 
| 848     Expect.throws(() { |  | 
| 849       array.addAll([0]); |  | 
| 850     }, (e) { |  | 
| 851       return e is UnsupportedError; |  | 
| 852     }); |  | 
| 853     Expect.throws(() { |  | 
| 854       array.clear(); |  | 
| 855     }, (e) { |  | 
| 856       return e is UnsupportedError; |  | 
| 857     }); |  | 
| 858     Expect.throws(() { |  | 
| 859       array.length = 0; |  | 
| 860     }, (e) { |  | 
| 861       return e is UnsupportedError; |  | 
| 862     }); |  | 
| 863     Expect.throws(() { |  | 
| 864       array.removeLast(); |  | 
| 865     }, (e) { |  | 
| 866       return e is UnsupportedError; |  | 
| 867     }); |  | 
| 868     Expect.throws(() { |  | 
| 869       array.removeRange(0, array.length - 1); |  | 
| 870     }, (e) { |  | 
| 871       return e is UnsupportedError; |  | 
| 872     }); |  | 
| 873     for (int i = 0; i < array.length; ++i) { | 613     for (int i = 0; i < array.length; ++i) { | 
| 874       array[i] = 1 + i; | 614       array[i] = 1 + i; | 
| 875     } | 615     } | 
| 876     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], array); | 616     Expect.listEquals([1, 2, 3, 4, 5, | 
|  | 617                        6, 7, 8, 9, 10], | 
|  | 618                       array); | 
| 877     for (int i = 0; i < array.length; ++i) { | 619     for (int i = 0; i < array.length; ++i) { | 
| 878       array[i] = 0x10000000000000000 + i; | 620       array[i] = 0x10000000000000000 + i; | 
| 879     } | 621     } | 
| 880     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], array); | 622     Expect.listEquals([0, 1, 2, 3, 4, | 
|  | 623                        5, 6, 7, 8, 9], | 
|  | 624                       array); | 
| 881     for (int i = 0; i < array.length; ++i) { | 625     for (int i = 0; i < array.length; ++i) { | 
| 882       array[i] = 0xFFFFFFFFFFFFFFFF - i; | 626       array[i] = 0xFFFFFFFFFFFFFFFF - i; | 
| 883     } | 627     } | 
| 884     Expect.listEquals([ | 628     Expect.listEquals([0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFE, | 
| 885       0xFFFFFFFFFFFFFFFF, | 629                        0xFFFFFFFFFFFFFFFD, 0xFFFFFFFFFFFFFFFC, | 
| 886       0xFFFFFFFFFFFFFFFE, | 630                        0xFFFFFFFFFFFFFFFB, 0xFFFFFFFFFFFFFFFA, | 
| 887       0xFFFFFFFFFFFFFFFD, | 631                        0xFFFFFFFFFFFFFFF9, 0xFFFFFFFFFFFFFFF8, | 
| 888       0xFFFFFFFFFFFFFFFC, | 632                        0xFFFFFFFFFFFFFFF7, 0xFFFFFFFFFFFFFFF6], | 
| 889       0xFFFFFFFFFFFFFFFB, | 633         array); | 
| 890       0xFFFFFFFFFFFFFFFA, |  | 
| 891       0xFFFFFFFFFFFFFFF9, |  | 
| 892       0xFFFFFFFFFFFFFFF8, |  | 
| 893       0xFFFFFFFFFFFFFFF7, |  | 
| 894       0xFFFFFFFFFFFFFFF6 |  | 
| 895     ], array); |  | 
| 896     for (int i = 0; i < array.length; ++i) { | 634     for (int i = 0; i < array.length; ++i) { | 
| 897       array[i] = i; | 635       array[i] = i; | 
| 898     } | 636     } | 
| 899     var copy = array.sublist(0, array.length); | 637     var copy = array.sublist(0, array.length); | 
| 900     Expect.isFalse(identical(copy, array)); | 638     Expect.isFalse(identical(copy, array)); | 
| 901     Expect.isTrue(copy is Uint64List); | 639     Expect.isTrue(copy is Uint64List); | 
| 902     Expect.equals(10, copy.length); | 640     Expect.equals(10, copy.length); | 
| 903     Expect.listEquals(array, copy); | 641     Expect.listEquals(array, copy); | 
| 904     var empty = array.sublist(array.length, array.length); | 642     var empty = array.sublist(array.length, array.length); | 
| 905     Expect.equals(0, empty.length); | 643     Expect.equals(0, empty.length); | 
| 906     var region = array.sublist(3, array.length - 3); | 644     var region = array.sublist(3, array.length - 3); | 
| 907     Expect.isTrue(copy is Uint64List); | 645     Expect.isTrue(copy is Uint64List); | 
| 908     Expect.equals(4, region.length); | 646     Expect.equals(4, region.length); | 
| 909     Expect.listEquals([3, 4, 5, 6], region); | 647     Expect.listEquals([3, 4, 5, 6], region); | 
| 910     array.setRange(3, 7, [0x10000000000000001, 0, 1, 0xFFFFFFFFFFFFFFFF]); | 648     array.setRange(3, 7, [0x10000000000000001, 0, 1, 0xFFFFFFFFFFFFFFFF]); | 
| 911     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFFFFFFFFFFFFFF, 7, 8, 9], array); | 649     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFFFFFFFFFFFFFF, 7, 8, 9], | 
|  | 650                       array); | 
| 912   } | 651   } | 
| 913 | 652 | 
| 914   static testUint64List() { | 653   static testUint64List() { | 
| 915     Expect.throws(() { | 654     Expect.throws(() { new Uint64List(-1); }, | 
| 916       new Uint64List(-1); | 655                   (e) { return e is ArgumentError; }); | 
| 917     }, (e) { |  | 
| 918       return e is ArgumentError; |  | 
| 919     }); |  | 
| 920     var array = new Uint64List(10); | 656     var array = new Uint64List(10); | 
| 921     testUint64ListImpl(array); | 657     testUint64ListImpl(array); | 
| 922   } | 658   } | 
| 923 | 659 | 
| 924   static testFloat32ListImpl(Float32List array) { | 660   static testFloat32ListImpl(Float32List array) { | 
| 925     Expect.isTrue(array is List<double>); | 661     Expect.isTrue(array is List<double>); | 
| 926     Expect.equals(10, array.length); | 662     Expect.equals(10, array.length); | 
| 927     Expect.equals(4, array.elementSizeInBytes); | 663     Expect.equals(4, array.elementSizeInBytes); | 
| 928     Expect.equals(40, array.lengthInBytes); | 664     Expect.equals(40, array.lengthInBytes); | 
| 929     Expect | 665     Expect.listEquals([0.0, 0.0, 0.0, 0.0, 0.0, | 
| 930         .listEquals([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], array); | 666                        0.0, 0.0, 0.0, 0.0, 0.0], | 
| 931     Expect.throws(() { | 667                       array); | 
| 932       array[-1] = 0.0; | 668     Expect.throws(() { array[-1] = 0.0; }, | 
| 933     }, (e) { | 669                   (e) { return e is RangeError; }); | 
| 934       return e is RangeError; | 670     Expect.throws(() { return array[-1]; }, | 
| 935     }); | 671                   (e) { return e is RangeError; }); | 
| 936     Expect.throws(() { | 672     Expect.throws(() { array[10]; }, | 
| 937       return array[-1]; | 673                   (e) { return e is RangeError; }); | 
| 938     }, (e) { | 674     Expect.throws(() { array[10] = 0.0; }, | 
| 939       return e is RangeError; | 675                   (e) { return e is RangeError; }); | 
| 940     }); | 676     Expect.throws(() { array.add(0.0); }, | 
| 941     Expect.throws(() { | 677                   (e) { return e is UnsupportedError; }); | 
| 942       array[10]; | 678     Expect.throws(() { array.addAll([0]); }, | 
| 943     }, (e) { | 679                   (e) { return e is UnsupportedError; }); | 
| 944       return e is RangeError; | 680     Expect.throws(() { array.clear(); }, | 
| 945     }); | 681                   (e) { return e is UnsupportedError; }); | 
| 946     Expect.throws(() { | 682     Expect.throws(() { array.length = 0; }, | 
| 947       array[10] = 0.0; | 683                   (e) { return e is UnsupportedError; }); | 
| 948     }, (e) { | 684     Expect.throws(() { array.removeLast(); }, | 
| 949       return e is RangeError; | 685                   (e) { return e is UnsupportedError; }); | 
| 950     }); | 686     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 951     Expect.throws(() { | 687                   (e) { return e is UnsupportedError; }); | 
| 952       array.add(0.0); |  | 
| 953     }, (e) { |  | 
| 954       return e is UnsupportedError; |  | 
| 955     }); |  | 
| 956     Expect.throws(() { |  | 
| 957       array.addAll([0]); |  | 
| 958     }, (e) { |  | 
| 959       return e is UnsupportedError; |  | 
| 960     }); |  | 
| 961     Expect.throws(() { |  | 
| 962       array.clear(); |  | 
| 963     }, (e) { |  | 
| 964       return e is UnsupportedError; |  | 
| 965     }); |  | 
| 966     Expect.throws(() { |  | 
| 967       array.length = 0; |  | 
| 968     }, (e) { |  | 
| 969       return e is UnsupportedError; |  | 
| 970     }); |  | 
| 971     Expect.throws(() { |  | 
| 972       array.removeLast(); |  | 
| 973     }, (e) { |  | 
| 974       return e is UnsupportedError; |  | 
| 975     }); |  | 
| 976     Expect.throws(() { |  | 
| 977       array.removeRange(0, array.length - 1); |  | 
| 978     }, (e) { |  | 
| 979       return e is UnsupportedError; |  | 
| 980     }); |  | 
| 981     for (int i = 0; i < array.length; ++i) { | 688     for (int i = 0; i < array.length; ++i) { | 
| 982       array[i] = 1.0 + i; | 689       array[i] = 1.0 + i; | 
| 983     } | 690     } | 
| 984     Expect | 691     Expect.listEquals([1.0, 2.0, 3.0, 4.0, 5.0, | 
| 985         .listEquals([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0], array); | 692                        6.0, 7.0, 8.0, 9.0, 10.0], | 
|  | 693                       array); | 
| 986     // TODO: min, max, and round | 694     // TODO: min, max, and round | 
| 987     for (int i = 0; i < array.length; ++i) { | 695     for (int i = 0; i < array.length; ++i) { | 
| 988       array[i] = i * 1.0; | 696       array[i] = i * 1.0; | 
| 989     } | 697     } | 
| 990     var copy = array.sublist(0, array.length); | 698     var copy = array.sublist(0, array.length); | 
| 991     Expect.isFalse(identical(copy, array)); | 699     Expect.isFalse(identical(copy, array)); | 
| 992     Expect.isTrue(copy is Float32List); | 700     Expect.isTrue(copy is Float32List); | 
| 993     Expect.equals(10, copy.length); | 701     Expect.equals(10, copy.length); | 
| 994     Expect.listEquals(array, copy); | 702     Expect.listEquals(array, copy); | 
| 995     var empty = array.sublist(array.length, array.length); | 703     var empty = array.sublist(array.length, array.length); | 
| 996     Expect.equals(0, empty.length); | 704     Expect.equals(0, empty.length); | 
| 997     var region = array.sublist(3, array.length - 3); | 705     var region = array.sublist(3, array.length - 3); | 
| 998     Expect.isTrue(copy is Float32List); | 706     Expect.isTrue(copy is Float32List); | 
| 999     Expect.equals(4, region.length); | 707     Expect.equals(4, region.length); | 
| 1000     Expect.listEquals([3.0, 4.0, 5.0, 6.0], region); | 708     Expect.listEquals([3.0, 4.0, 5.0, 6.0], region); | 
| 1001     array.setRange(3, 7, [double.NEGATIVE_INFINITY, 0.0, 1.0, double.INFINITY]); | 709     array.setRange(3, 7, [double.NEGATIVE_INFINITY, 0.0, 1.0, double.INFINITY]); | 
| 1002     Expect.listEquals([ | 710     Expect.listEquals([0.0, 1.0, 2.0, double.NEGATIVE_INFINITY, 0.0, | 
| 1003       0.0, | 711                        1.0, double.INFINITY, 7.0, 8.0, 9.0], | 
| 1004       1.0, | 712                       array); | 
| 1005       2.0, |  | 
| 1006       double.NEGATIVE_INFINITY, |  | 
| 1007       0.0, |  | 
| 1008       1.0, |  | 
| 1009       double.INFINITY, |  | 
| 1010       7.0, |  | 
| 1011       8.0, |  | 
| 1012       9.0 |  | 
| 1013     ], array); |  | 
| 1014   } | 713   } | 
| 1015 | 714 | 
| 1016   static testFloat32List() { | 715   static testFloat32List() { | 
| 1017     Expect.throws(() { | 716     Expect.throws(() { new Float32List(-1); }, | 
| 1018       new Float32List(-1); | 717                   (e) { return e is ArgumentError; }); | 
| 1019     }, (e) { |  | 
| 1020       return e is ArgumentError; |  | 
| 1021     }); |  | 
| 1022     var array = new Float32List(10); | 718     var array = new Float32List(10); | 
| 1023     testFloat32ListImpl(array); | 719     testFloat32ListImpl(array); | 
| 1024   } | 720   } | 
| 1025 | 721 | 
| 1026   static testFloat64ListImpl(Float64List array) { | 722   static testFloat64ListImpl(Float64List array) { | 
| 1027     Expect.isTrue(array is List<double>); | 723     Expect.isTrue(array is List<double>); | 
| 1028     Expect.equals(10, array.length); | 724     Expect.equals(10, array.length); | 
| 1029     Expect.equals(8, array.elementSizeInBytes); | 725     Expect.equals(8, array.elementSizeInBytes); | 
| 1030     Expect.equals(80, array.lengthInBytes); | 726     Expect.equals(80, array.lengthInBytes); | 
| 1031     Expect | 727     Expect.listEquals([0.0, 0.0, 0.0, 0.0, 0.0, | 
| 1032         .listEquals([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], array); | 728                        0.0, 0.0, 0.0, 0.0, 0.0], | 
| 1033     Expect.throws(() { | 729                       array); | 
| 1034       array[-1] = 0.0; | 730     Expect.throws(() { array[-1] = 0.0; }, | 
| 1035     }, (e) { | 731                   (e) { return e is RangeError; }); | 
| 1036       return e is RangeError; | 732     Expect.throws(() { return array[-1]; }, | 
| 1037     }); | 733                   (e) { return e is RangeError; }); | 
| 1038     Expect.throws(() { | 734     Expect.throws(() { array[10]; }, | 
| 1039       return array[-1]; | 735                   (e) { return e is RangeError; }); | 
| 1040     }, (e) { | 736     Expect.throws(() { array[10] = 0.0; }, | 
| 1041       return e is RangeError; | 737                   (e) { return e is RangeError; }); | 
| 1042     }); | 738     Expect.throws(() { array.add(0.0); }, | 
| 1043     Expect.throws(() { | 739                   (e) { return e is UnsupportedError; }); | 
| 1044       array[10]; | 740     Expect.throws(() { array.addAll([0]); }, | 
| 1045     }, (e) { | 741                   (e) { return e is UnsupportedError; }); | 
| 1046       return e is RangeError; | 742     Expect.throws(() { array.clear(); }, | 
| 1047     }); | 743                   (e) { return e is UnsupportedError; }); | 
| 1048     Expect.throws(() { | 744     Expect.throws(() { array.length = 0; }, | 
| 1049       array[10] = 0.0; | 745                   (e) { return e is UnsupportedError; }); | 
| 1050     }, (e) { | 746     Expect.throws(() { array.removeLast(); }, | 
| 1051       return e is RangeError; | 747                   (e) { return e is UnsupportedError; }); | 
| 1052     }); | 748     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 1053     Expect.throws(() { | 749                   (e) { return e is UnsupportedError; }); | 
| 1054       array.add(0.0); |  | 
| 1055     }, (e) { |  | 
| 1056       return e is UnsupportedError; |  | 
| 1057     }); |  | 
| 1058     Expect.throws(() { |  | 
| 1059       array.addAll([0]); |  | 
| 1060     }, (e) { |  | 
| 1061       return e is UnsupportedError; |  | 
| 1062     }); |  | 
| 1063     Expect.throws(() { |  | 
| 1064       array.clear(); |  | 
| 1065     }, (e) { |  | 
| 1066       return e is UnsupportedError; |  | 
| 1067     }); |  | 
| 1068     Expect.throws(() { |  | 
| 1069       array.length = 0; |  | 
| 1070     }, (e) { |  | 
| 1071       return e is UnsupportedError; |  | 
| 1072     }); |  | 
| 1073     Expect.throws(() { |  | 
| 1074       array.removeLast(); |  | 
| 1075     }, (e) { |  | 
| 1076       return e is UnsupportedError; |  | 
| 1077     }); |  | 
| 1078     Expect.throws(() { |  | 
| 1079       array.removeRange(0, array.length - 1); |  | 
| 1080     }, (e) { |  | 
| 1081       return e is UnsupportedError; |  | 
| 1082     }); |  | 
| 1083     for (int i = 0; i < array.length; ++i) { | 750     for (int i = 0; i < array.length; ++i) { | 
| 1084       array[i] = 1.0 + i; | 751       array[i] = 1.0 + i; | 
| 1085     } | 752     } | 
| 1086     Expect | 753     Expect.listEquals([1.0, 2.0, 3.0, 4.0, 5.0, | 
| 1087         .listEquals([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0], array); | 754                        6.0, 7.0, 8.0, 9.0, 10.0], | 
|  | 755                       array); | 
| 1088     // TODO: min, max | 756     // TODO: min, max | 
| 1089     for (int i = 0; i < array.length; ++i) { | 757     for (int i = 0; i < array.length; ++i) { | 
| 1090       array[i] = i * 1.0; | 758       array[i] = i * 1.0; | 
| 1091     } | 759     } | 
| 1092     var copy = array.sublist(0, array.length); | 760     var copy = array.sublist(0, array.length); | 
| 1093     Expect.isFalse(identical(copy, array)); | 761     Expect.isFalse(identical(copy, array)); | 
| 1094     Expect.isTrue(copy is Float64List); | 762     Expect.isTrue(copy is Float64List); | 
| 1095     Expect.equals(10, copy.length); | 763     Expect.equals(10, copy.length); | 
| 1096     Expect.listEquals(array, copy); | 764     Expect.listEquals(array, copy); | 
| 1097     var empty = array.sublist(array.length, array.length); | 765     var empty = array.sublist(array.length, array.length); | 
| 1098     Expect.equals(0, empty.length); | 766     Expect.equals(0, empty.length); | 
| 1099     var region = array.sublist(3, array.length - 3); | 767     var region = array.sublist(3, array.length - 3); | 
| 1100     Expect.isTrue(copy is Float64List); | 768     Expect.isTrue(copy is Float64List); | 
| 1101     Expect.equals(4, region.length); | 769     Expect.equals(4, region.length); | 
| 1102     Expect.listEquals([3.0, 4.0, 5.0, 6.0], region); | 770     Expect.listEquals([3.0, 4.0, 5.0, 6.0], region); | 
| 1103     array.setRange(3, 7, [double.NEGATIVE_INFINITY, 0.0, 1.0, double.INFINITY]); | 771     array.setRange(3, 7, [double.NEGATIVE_INFINITY, 0.0, 1.0, double.INFINITY]); | 
| 1104     Expect.listEquals([ | 772     Expect.listEquals([0.0, 1.0, 2.0, double.NEGATIVE_INFINITY, 0.0, | 
| 1105       0.0, | 773                        1.0, double.INFINITY, 7.0, 8.0, 9.0], | 
| 1106       1.0, | 774                       array); | 
| 1107       2.0, |  | 
| 1108       double.NEGATIVE_INFINITY, |  | 
| 1109       0.0, |  | 
| 1110       1.0, |  | 
| 1111       double.INFINITY, |  | 
| 1112       7.0, |  | 
| 1113       8.0, |  | 
| 1114       9.0 |  | 
| 1115     ], array); |  | 
| 1116   } | 775   } | 
| 1117 | 776 | 
| 1118   static testFloat64List() { | 777   static testFloat64List() { | 
| 1119     Expect.throws(() { | 778     Expect.throws(() { new Float64List(-1); }, | 
| 1120       new Float64List(-1); | 779                   (e) { return e is ArgumentError; }); | 
| 1121     }, (e) { |  | 
| 1122       return e is ArgumentError; |  | 
| 1123     }); |  | 
| 1124     var array = new Float64List(10); | 780     var array = new Float64List(10); | 
| 1125     testFloat64ListImpl(array); | 781     testFloat64ListImpl(array); | 
| 1126   } | 782   } | 
| 1127 | 783 | 
| 1128   static testInt8ListViewImpl(var array) { | 784   static testInt8ListViewImpl(var array) { | 
| 1129     Expect.equals(12, array.length); | 785     Expect.equals(12, array.length); | 
| 1130     Expect.equals(1, array.elementSizeInBytes); | 786     Expect.equals(1, array.elementSizeInBytes); | 
| 1131     Expect.equals(12, array.lengthInBytes); | 787     Expect.equals(12, array.lengthInBytes); | 
| 1132     for (int i = 0; i < array.length; ++i) { | 788     for (int i = 0; i < array.length; ++i) { | 
| 1133       array[i] = 0xFF; | 789       array[i] = 0xFF; | 
| 1134     } | 790     } | 
| 1135     Expect.throws(() { | 791     Expect.throws(() { new Int8List.view(array.buffer, -1); }, | 
| 1136       new Int8List.view(array.buffer, -1); | 792                   (e) { return e is RangeError; }); | 
| 1137     }, (e) { | 793     Expect.throws(() { new Int8List.view(array.buffer, 0, -1); }, | 
| 1138       return e is RangeError; | 794                   (e) { return e is RangeError; }); | 
| 1139     }); | 795     Expect.throws(() { new Int8List.view(array.buffer, | 
| 1140     Expect.throws(() { | 796                                          array.lengthInBytes + 1); }, | 
| 1141       new Int8List.view(array.buffer, 0, -1); | 797                   (e) { return e is RangeError; }); | 
| 1142     }, (e) { | 798     Expect.throws(() { new Int8List.view(array.buffer, | 
| 1143       return e is RangeError; | 799                                          0, array.length + 1); }, | 
| 1144     }); | 800                   (e) { return e is RangeError; }); | 
| 1145     Expect.throws(() { | 801     Expect.throws(() { new Int8List.view(array.buffer, | 
| 1146       new Int8List.view(array.buffer, array.lengthInBytes + 1); | 802                                          array.length - 1, 2); }, | 
| 1147     }, (e) { | 803                   (e) { return e is RangeError; }); | 
| 1148       return e is RangeError; | 804     var empty = new Int8List.view(array.buffer, | 
| 1149     }); | 805                                   array.lengthInBytes); | 
| 1150     Expect.throws(() { |  | 
| 1151       new Int8List.view(array.buffer, 0, array.length + 1); |  | 
| 1152     }, (e) { |  | 
| 1153       return e is RangeError; |  | 
| 1154     }); |  | 
| 1155     Expect.throws(() { |  | 
| 1156       new Int8List.view(array.buffer, array.length - 1, 2); |  | 
| 1157     }, (e) { |  | 
| 1158       return e is RangeError; |  | 
| 1159     }); |  | 
| 1160     var empty = new Int8List.view(array.buffer, array.lengthInBytes); |  | 
| 1161     Expect.isTrue(empty is List<int>); | 806     Expect.isTrue(empty is List<int>); | 
| 1162     Expect.isTrue(empty is Int8List); | 807     Expect.isTrue(empty is Int8List); | 
| 1163     Expect.equals(0, empty.length); | 808     Expect.equals(0, empty.length); | 
| 1164     var whole = new Int8List.view(array.buffer); | 809     var whole = new Int8List.view(array.buffer); | 
| 1165     Expect.isTrue(whole is List<int>); | 810     Expect.isTrue(whole is List<int>); | 
| 1166     Expect.isTrue(whole is Int8List); | 811     Expect.isTrue(whole is Int8List); | 
| 1167     Expect.equals(12, whole.length); | 812     Expect.equals(12, whole.length); | 
| 1168     var view = new Int8List.view(array.buffer, 1, array.length - 2); | 813     var view = new Int8List.view(array.buffer, 1, array.length - 2); | 
| 1169     Expect.isTrue(view is List<int>); | 814     Expect.isTrue(view is List<int>); | 
| 1170     Expect.isTrue(view is Int8List); | 815     Expect.isTrue(view is Int8List); | 
| 1171     Expect.equals(10, view.length); | 816     Expect.equals(10, view.length); | 
| 1172     Expect.equals(1, view.elementSizeInBytes); | 817     Expect.equals(1, view.elementSizeInBytes); | 
| 1173     Expect.equals(10, view.lengthInBytes); | 818     Expect.equals(10, view.lengthInBytes); | 
| 1174     Expect.listEquals([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1], view); | 819     Expect.listEquals([-1, -1, -1, -1, -1, | 
| 1175     Expect.throws(() { | 820                        -1, -1, -1, -1, -1], | 
| 1176       view[-1] = 0; | 821                       view); | 
| 1177     }, (e) { | 822     Expect.throws(() { view[-1] = 0; }, | 
| 1178       return e is RangeError; | 823                   (e) { return e is RangeError; }); | 
| 1179     }); | 824     Expect.throws(() { return view[-1]; }, | 
| 1180     Expect.throws(() { | 825                   (e) { return e is RangeError; }); | 
| 1181       return view[-1]; | 826     Expect.throws(() { view[view.length]; }, | 
| 1182     }, (e) { | 827                   (e) { return e is RangeError; }); | 
| 1183       return e is RangeError; | 828     Expect.throws(() { view[10] = 0; }, | 
| 1184     }); | 829                   (e) { return e is RangeError; }); | 
| 1185     Expect.throws(() { | 830     Expect.throws(() { view.add(0); }, | 
| 1186       view[view.length]; | 831                   (e) { return e is UnsupportedError; }); | 
| 1187     }, (e) { | 832     Expect.throws(() { view.addAll([0]); }, | 
| 1188       return e is RangeError; | 833                   (e) { return e is UnsupportedError; }); | 
| 1189     }); | 834     Expect.throws(() { view.clear(); }, | 
| 1190     Expect.throws(() { | 835                   (e) { return e is UnsupportedError; }); | 
| 1191       view[10] = 0; | 836     Expect.throws(() { view.length = 0; }, | 
| 1192     }, (e) { | 837                   (e) { return e is UnsupportedError; }); | 
| 1193       return e is RangeError; | 838     Expect.throws(() { view.removeLast(); }, | 
| 1194     }); | 839                   (e) { return e is UnsupportedError; }); | 
| 1195     Expect.throws(() { | 840     Expect.throws(() { view.removeRange(0, view.length - 1); }, | 
| 1196       view.add(0); | 841                   (e) { return e is UnsupportedError; }); | 
| 1197     }, (e) { |  | 
| 1198       return e is UnsupportedError; |  | 
| 1199     }); |  | 
| 1200     Expect.throws(() { |  | 
| 1201       view.addAll([0]); |  | 
| 1202     }, (e) { |  | 
| 1203       return e is UnsupportedError; |  | 
| 1204     }); |  | 
| 1205     Expect.throws(() { |  | 
| 1206       view.clear(); |  | 
| 1207     }, (e) { |  | 
| 1208       return e is UnsupportedError; |  | 
| 1209     }); |  | 
| 1210     Expect.throws(() { |  | 
| 1211       view.length = 0; |  | 
| 1212     }, (e) { |  | 
| 1213       return e is UnsupportedError; |  | 
| 1214     }); |  | 
| 1215     Expect.throws(() { |  | 
| 1216       view.removeLast(); |  | 
| 1217     }, (e) { |  | 
| 1218       return e is UnsupportedError; |  | 
| 1219     }); |  | 
| 1220     Expect.throws(() { |  | 
| 1221       view.removeRange(0, view.length - 1); |  | 
| 1222     }, (e) { |  | 
| 1223       return e is UnsupportedError; |  | 
| 1224     }); |  | 
| 1225     for (int i = 0; i < view.length; ++i) { | 842     for (int i = 0; i < view.length; ++i) { | 
| 1226       view[i] = 1 + i; | 843       view[i] = 1 + i; | 
| 1227     } | 844     } | 
| 1228     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], view); | 845     Expect.listEquals([1, 2, 3, 4, 5, | 
| 1229     Expect.listEquals([0xFF, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0xFF], array); | 846                        6, 7, 8, 9, 10], | 
|  | 847                       view); | 
|  | 848     Expect.listEquals([0xFF, 1, 2, 3, 4, 5, | 
|  | 849                        6, 7, 8, 9, 10, 0xFF], | 
|  | 850                       array); | 
| 1230     for (int i = 0; i < view.length; ++i) { | 851     for (int i = 0; i < view.length; ++i) { | 
| 1231       view[i] = 0x100 + i; | 852       view[i] = 0x100 + i; | 
| 1232     } | 853     } | 
| 1233     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], view); | 854     Expect.listEquals([0, 1, 2, 3, 4, | 
| 1234     Expect.listEquals([0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xFF], array); | 855                        5, 6, 7, 8, 9], | 
|  | 856                       view); | 
|  | 857     Expect.listEquals([0xFF, 0, 1, 2, 3, 4, | 
|  | 858                        5, 6, 7, 8, 9, 0xFF], | 
|  | 859                       array); | 
| 1235     for (int i = 0; i < view.length; ++i) { | 860     for (int i = 0; i < view.length; ++i) { | 
| 1236       view[i] = -10 + i; | 861       view[i] = -10 + i; | 
| 1237     } | 862     } | 
| 1238     Expect.listEquals([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1], view); | 863     Expect.listEquals([-10, -9, -8, -7, -6, | 
| 1239     Expect.listEquals([ | 864                         -5, -4, -3, -2, -1], | 
| 1240       0xFF, | 865                       view); | 
| 1241       0xF6, | 866     Expect.listEquals([0xFF, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, | 
| 1242       0xF7, | 867                        0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0xFF], | 
| 1243       0xF8, | 868                       array); | 
| 1244       0xF9, |  | 
| 1245       0xFA, |  | 
| 1246       0xFB, |  | 
| 1247       0xFC, |  | 
| 1248       0xFD, |  | 
| 1249       0xFE, |  | 
| 1250       0xFF, |  | 
| 1251       0xFF |  | 
| 1252     ], array); |  | 
| 1253     for (int i = 0; i < view.length; ++i) { | 869     for (int i = 0; i < view.length; ++i) { | 
| 1254       view[i] = 0x7F - i; | 870       view[i] = 0x7F - i; | 
| 1255     } | 871     } | 
| 1256     Expect.listEquals([127, 126, 125, 124, 123, 122, 121, 120, 119, 118], view); | 872     Expect.listEquals([127, 126, 125, 124, 123, | 
| 1257     Expect.listEquals( | 873                        122, 121, 120, 119, 118], | 
| 1258         [0xFF, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 0xFF], array); | 874                       view); | 
|  | 875     Expect.listEquals([0xFF, 127, 126, 125, 124, 123, | 
|  | 876                        122, 121, 120, 119, 118, 0xFF], | 
|  | 877                       array); | 
| 1259     for (int i = 0; i < view.length; ++i) { | 878     for (int i = 0; i < view.length; ++i) { | 
| 1260       view[i] = -0x80 + i; | 879       view[i] = -0x80 + i; | 
| 1261     } | 880     } | 
| 1262     Expect.listEquals( | 881     Expect.listEquals([-128, -127, -126, -125, -124, | 
| 1263         [-128, -127, -126, -125, -124, -123, -122, -121, -120, -119], view); | 882                        -123, -122, -121, -120, -119], | 
| 1264     Expect.listEquals([ | 883                       view); | 
| 1265       0xFF, | 884     Expect.listEquals([0xFF, 0x80, 0x81, 0x82, 0x83, 0x84, | 
| 1266       0x80, | 885                        0x85, 0x86, 0x87, 0x88, 0x89, 0xFF], | 
| 1267       0x81, | 886                       array); | 
| 1268       0x82, |  | 
| 1269       0x83, |  | 
| 1270       0x84, |  | 
| 1271       0x85, |  | 
| 1272       0x86, |  | 
| 1273       0x87, |  | 
| 1274       0x88, |  | 
| 1275       0x89, |  | 
| 1276       0xFF |  | 
| 1277     ], array); |  | 
| 1278     for (int i = 0; i < view.length; ++i) { | 887     for (int i = 0; i < view.length; ++i) { | 
| 1279       view[i] = i; | 888       view[i] = i; | 
| 1280     } | 889     } | 
| 1281     var copy = view.sublist(0, view.length); | 890     var copy = view.sublist(0, view.length); | 
| 1282     Expect.isFalse(identical(copy, view)); | 891     Expect.isFalse(identical(copy, view)); | 
| 1283     Expect.isTrue(copy is Int8List); | 892     Expect.isTrue(copy is Int8List); | 
| 1284     Expect.equals(10, copy.length); | 893     Expect.equals(10, copy.length); | 
| 1285     Expect.listEquals(view, copy); | 894     Expect.listEquals(view, copy); | 
| 1286     var region = view.sublist(3, view.length - 3); | 895     var region = view.sublist(3, view.length - 3); | 
| 1287     Expect.isTrue(copy is Int8List); | 896     Expect.isTrue(copy is Int8List); | 
| 1288     Expect.equals(4, region.length); | 897     Expect.equals(4, region.length); | 
| 1289     Expect.listEquals([3, 4, 5, 6], region); | 898     Expect.listEquals([3, 4, 5, 6], region); | 
| 1290     view.setRange(3, 7, [-128, 0, 1, 127]); | 899     view.setRange(3, 7, [-128, 0, 1, 127]); | 
| 1291     Expect.listEquals([0, 1, 2, -128, 0, 1, 127, 7, 8, 9], view); | 900     Expect.listEquals([0, 1, 2, -128, 0, 1, 127, 7, 8, 9], | 
| 1292     Expect.listEquals([0xFF, 0, 1, 2, 128, 0, 1, 127, 7, 8, 9, 0xFF], array); | 901                       view); | 
|  | 902     Expect.listEquals([0xFF, 0, 1, 2, 128, 0, 1, 127, 7, 8, 9, 0xFF], | 
|  | 903                       array); | 
| 1293   } | 904   } | 
| 1294 |  | 
| 1295   static testInt8ListView() { | 905   static testInt8ListView() { | 
| 1296     var array = new Uint8List(12); | 906     var array = new Uint8List(12); | 
| 1297     testInt8ListViewImpl(array); | 907     testInt8ListViewImpl(array); | 
| 1298   } | 908   } | 
| 1299 | 909 | 
| 1300   static testUint8ListViewImpl(var array) { | 910   static testUint8ListViewImpl(var array) { | 
| 1301     Expect.isTrue(array is List<int>); | 911     Expect.isTrue(array is List<int>); | 
| 1302     Expect.equals(12, array.length); | 912     Expect.equals(12, array.length); | 
| 1303     Expect.equals(1, array.elementSizeInBytes); | 913     Expect.equals(1, array.elementSizeInBytes); | 
| 1304     Expect.equals(12, array.lengthInBytes); | 914     Expect.equals(12, array.lengthInBytes); | 
| 1305     for (int i = 0; i < array.length; ++i) { | 915     for (int i = 0; i < array.length; ++i) { | 
| 1306       array[i] = -1; | 916       array[i] = -1; | 
| 1307     } | 917     } | 
| 1308     Expect.throws(() { | 918     Expect.throws(() { new Uint8List.view(array.buffer, -1); }, | 
| 1309       new Uint8List.view(array.buffer, -1); | 919                   (e) { return e is RangeError; }); | 
| 1310     }, (e) { | 920     Expect.throws(() { new Uint8List.view(array.buffer, 0, -1); }, | 
| 1311       return e is RangeError; | 921                   (e) { return e is RangeError; }); | 
| 1312     }); | 922     Expect.throws(() { new Uint8List.view(array.buffer, | 
| 1313     Expect.throws(() { | 923                                           array.lengthInBytes + 1); }, | 
| 1314       new Uint8List.view(array.buffer, 0, -1); | 924                   (e) { return e is RangeError; }); | 
| 1315     }, (e) { | 925     Expect.throws(() { new Uint8List.view(array.buffer, | 
| 1316       return e is RangeError; | 926                                           0, array.length + 1); }, | 
| 1317     }); | 927                   (e) { return e is RangeError; }); | 
| 1318     Expect.throws(() { | 928     Expect.throws(() { new Uint8List.view(array.buffer, | 
| 1319       new Uint8List.view(array.buffer, array.lengthInBytes + 1); | 929                                           array.length - 1, 2); }, | 
| 1320     }, (e) { | 930                   (e) { return e is RangeError; }); | 
| 1321       return e is RangeError; | 931     var empty = new Uint8List.view(array.buffer, | 
| 1322     }); | 932                                    array.lengthInBytes); | 
| 1323     Expect.throws(() { |  | 
| 1324       new Uint8List.view(array.buffer, 0, array.length + 1); |  | 
| 1325     }, (e) { |  | 
| 1326       return e is RangeError; |  | 
| 1327     }); |  | 
| 1328     Expect.throws(() { |  | 
| 1329       new Uint8List.view(array.buffer, array.length - 1, 2); |  | 
| 1330     }, (e) { |  | 
| 1331       return e is RangeError; |  | 
| 1332     }); |  | 
| 1333     var empty = new Uint8List.view(array.buffer, array.lengthInBytes); |  | 
| 1334     Expect.isTrue(empty is List<int>); | 933     Expect.isTrue(empty is List<int>); | 
| 1335     Expect.isTrue(empty is Uint8List); | 934     Expect.isTrue(empty is Uint8List); | 
| 1336     Expect.equals(0, empty.length); | 935     Expect.equals(0, empty.length); | 
| 1337     var whole = new Uint8List.view(array.buffer); | 936     var whole = new Uint8List.view(array.buffer); | 
| 1338     Expect.isTrue(whole is List<int>); | 937     Expect.isTrue(whole is List<int>); | 
| 1339     Expect.isTrue(whole is Uint8List); | 938     Expect.isTrue(whole is Uint8List); | 
| 1340     Expect.equals(12, whole.length); | 939     Expect.equals(12, whole.length); | 
| 1341     var view = new Uint8List.view(array.buffer, 1, array.length - 2); | 940     var view = new Uint8List.view(array.buffer, 1, array.length - 2); | 
| 1342     Expect.isTrue(view is List<int>); | 941     Expect.isTrue(view is List<int>); | 
| 1343     Expect.isTrue(view is Uint8List); | 942     Expect.isTrue(view is Uint8List); | 
| 1344     Expect.equals(10, view.length); | 943     Expect.equals(10, view.length); | 
| 1345     Expect.equals(1, view.elementSizeInBytes); | 944     Expect.equals(1, view.elementSizeInBytes); | 
| 1346     Expect.equals(10, view.lengthInBytes); | 945     Expect.equals(10, view.lengthInBytes); | 
| 1347     Expect.listEquals( | 946     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 1348         [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF], view); | 947                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 1349     Expect.throws(() { | 948                       view); | 
| 1350       view[-1] = 0; | 949     Expect.throws(() { view[-1] = 0; }, | 
| 1351     }, (e) { | 950                   (e) { return e is RangeError; }); | 
| 1352       return e is RangeError; | 951     Expect.throws(() { return view[-1]; }, | 
| 1353     }); | 952                   (e) { return e is RangeError; }); | 
| 1354     Expect.throws(() { | 953     Expect.throws(() { view[view.length]; }, | 
| 1355       return view[-1]; | 954                   (e) { return e is RangeError; }); | 
| 1356     }, (e) { | 955     Expect.throws(() { view[view.length] = 0; }, | 
| 1357       return e is RangeError; | 956                   (e) { return e is RangeError; }); | 
| 1358     }); | 957     Expect.throws(() { view.add(0); }, | 
| 1359     Expect.throws(() { | 958                   (e) { return e is UnsupportedError; }); | 
| 1360       view[view.length]; | 959     Expect.throws(() { view.addAll([0]); }, | 
| 1361     }, (e) { | 960                   (e) { return e is UnsupportedError; }); | 
| 1362       return e is RangeError; | 961     Expect.throws(() { view.clear(); }, | 
| 1363     }); | 962                   (e) { return e is UnsupportedError; }); | 
| 1364     Expect.throws(() { | 963     Expect.throws(() { view.length = 0; }, | 
| 1365       view[view.length] = 0; | 964                   (e) { return e is UnsupportedError; }); | 
| 1366     }, (e) { | 965     Expect.throws(() { view.removeLast(); }, | 
| 1367       return e is RangeError; | 966                   (e) { return e is UnsupportedError; }); | 
| 1368     }); | 967     Expect.throws(() { view.removeRange(0, view.length - 1); }, | 
| 1369     Expect.throws(() { | 968                   (e) { return e is UnsupportedError; }); | 
| 1370       view.add(0); |  | 
| 1371     }, (e) { |  | 
| 1372       return e is UnsupportedError; |  | 
| 1373     }); |  | 
| 1374     Expect.throws(() { |  | 
| 1375       view.addAll([0]); |  | 
| 1376     }, (e) { |  | 
| 1377       return e is UnsupportedError; |  | 
| 1378     }); |  | 
| 1379     Expect.throws(() { |  | 
| 1380       view.clear(); |  | 
| 1381     }, (e) { |  | 
| 1382       return e is UnsupportedError; |  | 
| 1383     }); |  | 
| 1384     Expect.throws(() { |  | 
| 1385       view.length = 0; |  | 
| 1386     }, (e) { |  | 
| 1387       return e is UnsupportedError; |  | 
| 1388     }); |  | 
| 1389     Expect.throws(() { |  | 
| 1390       view.removeLast(); |  | 
| 1391     }, (e) { |  | 
| 1392       return e is UnsupportedError; |  | 
| 1393     }); |  | 
| 1394     Expect.throws(() { |  | 
| 1395       view.removeRange(0, view.length - 1); |  | 
| 1396     }, (e) { |  | 
| 1397       return e is UnsupportedError; |  | 
| 1398     }); |  | 
| 1399     for (int i = 0; i < view.length; ++i) { | 969     for (int i = 0; i < view.length; ++i) { | 
| 1400       view[i] = 1 + i; | 970       view[i] = 1 + i; | 
| 1401     } | 971     } | 
| 1402     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], view); | 972     Expect.listEquals([1, 2, 3, 4, 5, | 
| 1403     Expect.listEquals([-1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -1], array); | 973                        6, 7, 8, 9, 10], | 
|  | 974                       view); | 
|  | 975     Expect.listEquals([-1, 1, 2, 3, 4, 5, | 
|  | 976                        6, 7, 8, 9, 10, -1], | 
|  | 977                       array); | 
| 1404     for (int i = 0; i < view.length; ++i) { | 978     for (int i = 0; i < view.length; ++i) { | 
| 1405       view[i] = 0x100 + i; | 979       view[i] = 0x100 + i; | 
| 1406     } | 980     } | 
| 1407     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], view); | 981     Expect.listEquals([0, 1, 2, 3, 4, | 
| 1408     Expect.listEquals([-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1], array); | 982                        5, 6, 7, 8, 9], | 
|  | 983                       view); | 
|  | 984     Expect.listEquals([-1, 0, 1, 2, 3, 4, | 
|  | 985                        5, 6, 7, 8, 9, -1], | 
|  | 986                       array); | 
| 1409     for (int i = 0; i < view.length; ++i) { | 987     for (int i = 0; i < view.length; ++i) { | 
| 1410       view[i] = 0xFF - i; | 988       view[i] = 0xFF - i; | 
| 1411     } | 989     } | 
| 1412     Expect.listEquals( | 990     Expect.listEquals([0xFF, 0xFE, 0xFD, 0xFC, 0xFB, | 
| 1413         [0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6], view); | 991                        0xFA, 0xF9, 0xF8, 0xF7, 0xF6], | 
| 1414     Expect.listEquals([-1, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -1], array); | 992                       view); | 
|  | 993     Expect.listEquals([-1, -1, -2, -3, -4, -5, | 
|  | 994                        -6, -7, -8, -9, -10, -1], | 
|  | 995                       array); | 
| 1415     for (int i = 0; i < view.length; ++i) { | 996     for (int i = 0; i < view.length; ++i) { | 
| 1416       view[i] = i; | 997       view[i] = i; | 
| 1417     } | 998     } | 
| 1418     var copy = view.sublist(0, view.length); | 999     var copy = view.sublist(0, view.length); | 
| 1419     Expect.isFalse(identical(copy, view)); | 1000     Expect.isFalse(identical(copy, view)); | 
| 1420     Expect.isTrue(copy is Uint8List); | 1001     Expect.isTrue(copy is Uint8List); | 
| 1421     Expect.equals(10, copy.length); | 1002     Expect.equals(10, copy.length); | 
| 1422     Expect.listEquals(view, copy); | 1003     Expect.listEquals(view, copy); | 
| 1423     var region = view.sublist(3, view.length - 3); | 1004     var region = view.sublist(3, view.length - 3); | 
| 1424     Expect.isTrue(copy is Uint8List); | 1005     Expect.isTrue(copy is Uint8List); | 
| 1425     Expect.equals(4, region.length); | 1006     Expect.equals(4, region.length); | 
| 1426     Expect.listEquals([3, 4, 5, 6], region); | 1007     Expect.listEquals([3, 4, 5, 6], region); | 
| 1427     view.setRange(3, 7, [257, 0, 1, 255]); | 1008     view.setRange(3, 7, [257, 0, 1, 255]); | 
| 1428     Expect.listEquals([0, 1, 2, 1, 0, 1, 255, 7, 8, 9], view); | 1009     Expect.listEquals([0, 1, 2, 1, 0, 1, 255, 7, 8, 9], | 
|  | 1010                       view); | 
| 1429   } | 1011   } | 
| 1430 | 1012 | 
| 1431   static testUint8ListView() { | 1013   static testUint8ListView() { | 
| 1432     var array = new Int8List(12); | 1014     var array = new Int8List(12); | 
| 1433     testUint8ListViewImpl(array); | 1015     testUint8ListViewImpl(array); | 
| 1434   } | 1016   } | 
| 1435 | 1017 | 
| 1436   static testInt16ListViewImpl(var array) { | 1018   static testInt16ListViewImpl(var array) { | 
| 1437     Expect.equals(24, array.length); | 1019     Expect.equals(24, array.length); | 
| 1438     Expect.equals(1, array.elementSizeInBytes); | 1020     Expect.equals(1, array.elementSizeInBytes); | 
| 1439     Expect.equals(24, array.lengthInBytes); | 1021     Expect.equals(24, array.lengthInBytes); | 
| 1440     for (int i = 0; i < array.length; ++i) { | 1022     for (int i = 0; i < array.length; ++i) { | 
| 1441       array[i] = 0xFF; | 1023       array[i] = 0xFF; | 
| 1442     } | 1024     } | 
| 1443     Expect.throws(() { | 1025     Expect.throws(() { new Int16List.view(array.buffer, -1); }, | 
| 1444       new Int16List.view(array.buffer, -1); | 1026                   (e) { return e is RangeError; }); | 
| 1445     }, (e) { | 1027     Expect.throws(() { new Int16List.view(array.buffer, 0, -1); }, | 
| 1446       return e is RangeError; | 1028                   (e) { return e is RangeError; }); | 
| 1447     }); | 1029     Expect.throws(() { new Int16List.view(array.buffer, | 
| 1448     Expect.throws(() { | 1030                                           array.lengthInBytes + 1); }, | 
| 1449       new Int16List.view(array.buffer, 0, -1); | 1031                   (e) { return e is RangeError; }); | 
| 1450     }, (e) { | 1032     Expect.throws(() { new Int16List.view(array.buffer, | 
| 1451       return e is RangeError; | 1033                                            0, array.length + 1); }, | 
| 1452     }); | 1034                   (e) { return e is RangeError; }); | 
| 1453     Expect.throws(() { | 1035     Expect.throws(() { new Int16List.view(array.buffer, | 
| 1454       new Int16List.view(array.buffer, array.lengthInBytes + 1); | 1036                                            array.length - 1, 2); }, | 
| 1455     }, (e) { | 1037                   (e) { return e is RangeError; }); | 
| 1456       return e is RangeError; | 1038     var empty = new Int16List.view(array.buffer, | 
| 1457     }); | 1039                                    array.lengthInBytes); | 
| 1458     Expect.throws(() { |  | 
| 1459       new Int16List.view(array.buffer, 0, array.length + 1); |  | 
| 1460     }, (e) { |  | 
| 1461       return e is RangeError; |  | 
| 1462     }); |  | 
| 1463     Expect.throws(() { |  | 
| 1464       new Int16List.view(array.buffer, array.length - 1, 2); |  | 
| 1465     }, (e) { |  | 
| 1466       return e is RangeError; |  | 
| 1467     }); |  | 
| 1468     var empty = new Int16List.view(array.buffer, array.lengthInBytes); |  | 
| 1469     Expect.isTrue(empty is List<int>); | 1040     Expect.isTrue(empty is List<int>); | 
| 1470     Expect.isTrue(empty is Int16List); | 1041     Expect.isTrue(empty is Int16List); | 
| 1471     Expect.equals(0, empty.length); | 1042     Expect.equals(0, empty.length); | 
| 1472     var whole = new Int16List.view(array.buffer); | 1043     var whole = new Int16List.view(array.buffer); | 
| 1473     Expect.isTrue(whole is List<int>); | 1044     Expect.isTrue(whole is List<int>); | 
| 1474     Expect.isTrue(whole is Int16List); | 1045     Expect.isTrue(whole is Int16List); | 
| 1475     Expect.equals(12, whole.length); | 1046     Expect.equals(12, whole.length); | 
| 1476     var view = new Int16List.view(array.buffer, 2, 10); | 1047     var view = new Int16List.view(array.buffer, 2, 10); | 
| 1477     Expect.isTrue(view is List<int>); | 1048     Expect.isTrue(view is List<int>); | 
| 1478     Expect.isTrue(view is Int16List); | 1049     Expect.isTrue(view is Int16List); | 
| 1479     Expect.equals(10, view.length); | 1050     Expect.equals(10, view.length); | 
| 1480     Expect.equals(2, view.elementSizeInBytes); | 1051     Expect.equals(2, view.elementSizeInBytes); | 
| 1481     Expect.equals(20, view.lengthInBytes); | 1052     Expect.equals(20, view.lengthInBytes); | 
| 1482     Expect.listEquals([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1], view); | 1053     Expect.listEquals([-1, -1, -1, -1, -1, | 
| 1483     Expect.throws(() { | 1054                        -1, -1, -1, -1, -1], | 
| 1484       view[-1] = 0; | 1055                       view); | 
| 1485     }, (e) { | 1056     Expect.throws(() { view[-1] = 0; }, | 
| 1486       return e is RangeError; | 1057                   (e) { return e is RangeError; }); | 
| 1487     }); | 1058     Expect.throws(() { return view[-1]; }, | 
| 1488     Expect.throws(() { | 1059                   (e) { return e is RangeError; }); | 
| 1489       return view[-1]; | 1060     Expect.throws(() { view[view.length]; }, | 
| 1490     }, (e) { | 1061                   (e) { return e is RangeError; }); | 
| 1491       return e is RangeError; | 1062     Expect.throws(() { view[10] = 0; }, | 
| 1492     }); | 1063                   (e) { return e is RangeError; }); | 
| 1493     Expect.throws(() { | 1064     Expect.throws(() { view.add(0); }, | 
| 1494       view[view.length]; | 1065                   (e) { return e is UnsupportedError; }); | 
| 1495     }, (e) { | 1066     Expect.throws(() { view.addAll([0]); }, | 
| 1496       return e is RangeError; | 1067                   (e) { return e is UnsupportedError; }); | 
| 1497     }); | 1068     Expect.throws(() { view.clear(); }, | 
| 1498     Expect.throws(() { | 1069                   (e) { return e is UnsupportedError; }); | 
| 1499       view[10] = 0; | 1070     Expect.throws(() { view.length = 0; }, | 
| 1500     }, (e) { | 1071                   (e) { return e is UnsupportedError; }); | 
| 1501       return e is RangeError; | 1072     Expect.throws(() { view.removeLast(); }, | 
| 1502     }); | 1073                   (e) { return e is UnsupportedError; }); | 
| 1503     Expect.throws(() { | 1074     Expect.throws(() { view.removeRange(0, view.length - 1); }, | 
| 1504       view.add(0); | 1075                   (e) { return e is UnsupportedError; }); | 
| 1505     }, (e) { |  | 
| 1506       return e is UnsupportedError; |  | 
| 1507     }); |  | 
| 1508     Expect.throws(() { |  | 
| 1509       view.addAll([0]); |  | 
| 1510     }, (e) { |  | 
| 1511       return e is UnsupportedError; |  | 
| 1512     }); |  | 
| 1513     Expect.throws(() { |  | 
| 1514       view.clear(); |  | 
| 1515     }, (e) { |  | 
| 1516       return e is UnsupportedError; |  | 
| 1517     }); |  | 
| 1518     Expect.throws(() { |  | 
| 1519       view.length = 0; |  | 
| 1520     }, (e) { |  | 
| 1521       return e is UnsupportedError; |  | 
| 1522     }); |  | 
| 1523     Expect.throws(() { |  | 
| 1524       view.removeLast(); |  | 
| 1525     }, (e) { |  | 
| 1526       return e is UnsupportedError; |  | 
| 1527     }); |  | 
| 1528     Expect.throws(() { |  | 
| 1529       view.removeRange(0, view.length - 1); |  | 
| 1530     }, (e) { |  | 
| 1531       return e is UnsupportedError; |  | 
| 1532     }); |  | 
| 1533     for (int i = 0; i < view.length; ++i) { | 1076     for (int i = 0; i < view.length; ++i) { | 
| 1534       view[i] = 1 + i; | 1077       view[i] = 1 + i; | 
| 1535     } | 1078     } | 
| 1536     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], view); | 1079     Expect.listEquals([1, 2, 3, 4, 5, | 
| 1537     Expect.listEquals([ | 1080                        6, 7, 8, 9, 10], | 
| 1538       0xFF, | 1081                       view); | 
| 1539       0xFF, | 1082     Expect.listEquals([0xFF, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, | 
| 1540       0x01, | 1083                        0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, | 
| 1541       0x00, | 1084                        0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0xFF, 0xFF], | 
| 1542       0x02, | 1085                       array); | 
| 1543       0x00, |  | 
| 1544       0x03, |  | 
| 1545       0x00, |  | 
| 1546       0x04, |  | 
| 1547       0x00, |  | 
| 1548       0x05, |  | 
| 1549       0x00, |  | 
| 1550       0x06, |  | 
| 1551       0x00, |  | 
| 1552       0x07, |  | 
| 1553       0x00, |  | 
| 1554       0x08, |  | 
| 1555       0x00, |  | 
| 1556       0x09, |  | 
| 1557       0x00, |  | 
| 1558       0x0A, |  | 
| 1559       0x00, |  | 
| 1560       0xFF, |  | 
| 1561       0xFF |  | 
| 1562     ], array); |  | 
| 1563     for (int i = 0; i < view.length; ++i) { | 1086     for (int i = 0; i < view.length; ++i) { | 
| 1564       view[i] = 0x10000 + i; | 1087       view[i] = 0x10000 + i; | 
| 1565     } | 1088     } | 
| 1566     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], view); | 1089     Expect.listEquals([0, 1, 2, 3, 4, | 
| 1567     Expect.listEquals([ | 1090                        5, 6, 7, 8, 9], | 
| 1568       0xFF, | 1091                       view); | 
| 1569       0xFF, | 1092     Expect.listEquals([0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, | 
| 1570       0x00, | 1093                        0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, | 
| 1571       0x00, | 1094                        0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0xFF, 0xFF], | 
| 1572       0x01, | 1095                       array); | 
| 1573       0x00, |  | 
| 1574       0x02, |  | 
| 1575       0x00, |  | 
| 1576       0x03, |  | 
| 1577       0x00, |  | 
| 1578       0x04, |  | 
| 1579       0x00, |  | 
| 1580       0x05, |  | 
| 1581       0x00, |  | 
| 1582       0x06, |  | 
| 1583       0x00, |  | 
| 1584       0x07, |  | 
| 1585       0x00, |  | 
| 1586       0x08, |  | 
| 1587       0x00, |  | 
| 1588       0x09, |  | 
| 1589       0x00, |  | 
| 1590       0xFF, |  | 
| 1591       0xFF |  | 
| 1592     ], array); |  | 
| 1593     for (int i = 0; i < view.length; ++i) { | 1096     for (int i = 0; i < view.length; ++i) { | 
| 1594       view[i] = -10 + i; | 1097       view[i] = -10 + i; | 
| 1595     } | 1098     } | 
| 1596     Expect.listEquals([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1], view); | 1099     Expect.listEquals([-10, -9, -8, -7, -6, | 
| 1597     Expect.listEquals([ | 1100                         -5, -4, -3, -2, -1], | 
| 1598       0xFF, | 1101                       view); | 
| 1599       0xFF, | 1102     Expect.listEquals([0xFF, 0xFF, 0xF6, 0xFF, 0xF7, 0xFF, 0xF8, 0xFF, | 
| 1600       0xF6, | 1103                        0xF9, 0xFF, 0xFA, 0xFF, 0xFB, 0xFF, 0xFC, 0xFF, | 
| 1601       0xFF, | 1104                        0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 1602       0xF7, | 1105                       array); | 
| 1603       0xFF, |  | 
| 1604       0xF8, |  | 
| 1605       0xFF, |  | 
| 1606       0xF9, |  | 
| 1607       0xFF, |  | 
| 1608       0xFA, |  | 
| 1609       0xFF, |  | 
| 1610       0xFB, |  | 
| 1611       0xFF, |  | 
| 1612       0xFC, |  | 
| 1613       0xFF, |  | 
| 1614       0xFD, |  | 
| 1615       0xFF, |  | 
| 1616       0xFE, |  | 
| 1617       0xFF, |  | 
| 1618       0xFF, |  | 
| 1619       0xFF, |  | 
| 1620       0xFF, |  | 
| 1621       0xFF |  | 
| 1622     ], array); |  | 
| 1623     for (int i = 0; i < view.length; ++i) { | 1106     for (int i = 0; i < view.length; ++i) { | 
| 1624       view[i] = 0x7FFF - i; | 1107       view[i] = 0x7FFF - i; | 
| 1625     } | 1108     } | 
| 1626     Expect.listEquals([ | 1109     Expect.listEquals([0x7FFF, 0x7FFE, 0x7FFD, 0x7FFC, 0x7FFB, | 
| 1627       0x7FFF, | 1110                        0x7FFA, 0x7FF9, 0x7FF8, 0x7FF7, 0x7FF6], | 
| 1628       0x7FFE, | 1111                       view); | 
| 1629       0x7FFD, | 1112     Expect.listEquals([0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFD, 0x7F, | 
| 1630       0x7FFC, | 1113                        0xFC, 0x7F, 0xFB, 0x7F, 0xFA, 0x7F, 0xF9, 0x7F, | 
| 1631       0x7FFB, | 1114                        0xF8, 0x7F, 0xF7, 0x7F, 0xF6, 0x7F, 0xFF, 0xFF], | 
| 1632       0x7FFA, | 1115                       array); | 
| 1633       0x7FF9, |  | 
| 1634       0x7FF8, |  | 
| 1635       0x7FF7, |  | 
| 1636       0x7FF6 |  | 
| 1637     ], view); |  | 
| 1638     Expect.listEquals([ |  | 
| 1639       0xFF, |  | 
| 1640       0xFF, |  | 
| 1641       0xFF, |  | 
| 1642       0x7F, |  | 
| 1643       0xFE, |  | 
| 1644       0x7F, |  | 
| 1645       0xFD, |  | 
| 1646       0x7F, |  | 
| 1647       0xFC, |  | 
| 1648       0x7F, |  | 
| 1649       0xFB, |  | 
| 1650       0x7F, |  | 
| 1651       0xFA, |  | 
| 1652       0x7F, |  | 
| 1653       0xF9, |  | 
| 1654       0x7F, |  | 
| 1655       0xF8, |  | 
| 1656       0x7F, |  | 
| 1657       0xF7, |  | 
| 1658       0x7F, |  | 
| 1659       0xF6, |  | 
| 1660       0x7F, |  | 
| 1661       0xFF, |  | 
| 1662       0xFF |  | 
| 1663     ], array); |  | 
| 1664     for (int i = 0; i < view.length; ++i) { | 1116     for (int i = 0; i < view.length; ++i) { | 
| 1665       view[i] = -0x8000 + i; | 1117       view[i] = -0x8000 + i; | 
| 1666     } | 1118     } | 
| 1667     Expect.listEquals([ | 1119     Expect.listEquals([-0x8000, -0x7FFF, -0x7FFE, -0x7FFD, -0x7FFC, | 
| 1668       -0x8000, | 1120                        -0x7FFB, -0x7FFA, -0x7FF9, -0x7FF8, -0x7FF7], | 
| 1669       -0x7FFF, | 1121                       view); | 
| 1670       -0x7FFE, | 1122     Expect.listEquals([0xFF, 0xFF, 0x00, 0x80, 0x01, 0x80, 0x02, 0x80, | 
| 1671       -0x7FFD, | 1123                        0x03, 0x80, 0x04, 0x80, 0x05, 0x80, 0x06, 0x80, | 
| 1672       -0x7FFC, | 1124                        0x07, 0x80, 0x08, 0x80, 0x09, 0x80, 0xFF, 0xFF], | 
| 1673       -0x7FFB, | 1125                       array); | 
| 1674       -0x7FFA, |  | 
| 1675       -0x7FF9, |  | 
| 1676       -0x7FF8, |  | 
| 1677       -0x7FF7 |  | 
| 1678     ], view); |  | 
| 1679     Expect.listEquals([ |  | 
| 1680       0xFF, |  | 
| 1681       0xFF, |  | 
| 1682       0x00, |  | 
| 1683       0x80, |  | 
| 1684       0x01, |  | 
| 1685       0x80, |  | 
| 1686       0x02, |  | 
| 1687       0x80, |  | 
| 1688       0x03, |  | 
| 1689       0x80, |  | 
| 1690       0x04, |  | 
| 1691       0x80, |  | 
| 1692       0x05, |  | 
| 1693       0x80, |  | 
| 1694       0x06, |  | 
| 1695       0x80, |  | 
| 1696       0x07, |  | 
| 1697       0x80, |  | 
| 1698       0x08, |  | 
| 1699       0x80, |  | 
| 1700       0x09, |  | 
| 1701       0x80, |  | 
| 1702       0xFF, |  | 
| 1703       0xFF |  | 
| 1704     ], array); |  | 
| 1705     for (int i = 0; i < view.length; ++i) { | 1126     for (int i = 0; i < view.length; ++i) { | 
| 1706       view[i] = i; | 1127       view[i] = i; | 
| 1707     } | 1128     } | 
| 1708     var copy = view.sublist(0, view.length); | 1129     var copy = view.sublist(0, view.length); | 
| 1709     Expect.isFalse(identical(copy, view)); | 1130     Expect.isFalse(identical(copy, view)); | 
| 1710     Expect.isTrue(copy is Int16List); | 1131     Expect.isTrue(copy is Int16List); | 
| 1711     Expect.equals(10, copy.length); | 1132     Expect.equals(10, copy.length); | 
| 1712     Expect.listEquals(view, copy); | 1133     Expect.listEquals(view, copy); | 
| 1713     var region = view.sublist(3, view.length - 3); | 1134     var region = view.sublist(3, view.length - 3); | 
| 1714     Expect.isTrue(copy is Int16List); | 1135     Expect.isTrue(copy is Int16List); | 
| 1715     Expect.equals(4, region.length); | 1136     Expect.equals(4, region.length); | 
| 1716     Expect.listEquals([3, 4, 5, 6], region); | 1137     Expect.listEquals([3, 4, 5, 6], region); | 
| 1717     view.setRange(3, 7, [-32768, 0, 1, 32767]); | 1138     view.setRange(3, 7, [-32768, 0, 1, 32767]); | 
| 1718     Expect.listEquals([0, 1, 2, -32768, 0, 1, 32767, 7, 8, 9], view); | 1139     Expect.listEquals([0, 1, 2, -32768, 0, 1, 32767, 7, 8, 9], | 
| 1719     Expect.listEquals([ | 1140                       view); | 
| 1720       0xFF, | 1141     Expect.listEquals([0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, | 
| 1721       0xFF, | 1142                        0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0xFF, 0x7F, | 
| 1722       0x00, | 1143                        0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0xFF, 0xFF], | 
| 1723       0x00, | 1144                       array); | 
| 1724       0x01, |  | 
| 1725       0x00, |  | 
| 1726       0x02, |  | 
| 1727       0x00, |  | 
| 1728       0x00, |  | 
| 1729       0x80, |  | 
| 1730       0x00, |  | 
| 1731       0x00, |  | 
| 1732       0x01, |  | 
| 1733       0x00, |  | 
| 1734       0xFF, |  | 
| 1735       0x7F, |  | 
| 1736       0x07, |  | 
| 1737       0x00, |  | 
| 1738       0x08, |  | 
| 1739       0x00, |  | 
| 1740       0x09, |  | 
| 1741       0x00, |  | 
| 1742       0xFF, |  | 
| 1743       0xFF |  | 
| 1744     ], array); |  | 
| 1745   } | 1145   } | 
| 1746 | 1146 | 
| 1747   static testInt16ListView() { | 1147   static testInt16ListView() { | 
| 1748     var array = new Uint8List(24); | 1148     var array = new Uint8List(24); | 
| 1749     testInt16ListViewImpl(array); | 1149     testInt16ListViewImpl(array); | 
| 1750   } | 1150   } | 
| 1751 | 1151 | 
| 1752   static testUint16ListViewImpl(var array) { | 1152   static testUint16ListViewImpl(var array) { | 
| 1753     Expect.isTrue(array is List<int>); | 1153     Expect.isTrue(array is List<int>); | 
| 1754     Expect.equals(24, array.length); | 1154     Expect.equals(24, array.length); | 
| 1755     Expect.equals(1, array.elementSizeInBytes); | 1155     Expect.equals(1, array.elementSizeInBytes); | 
| 1756     Expect.equals(24, array.lengthInBytes); | 1156     Expect.equals(24, array.lengthInBytes); | 
| 1757     for (int i = 0; i < array.length; ++i) { | 1157     for (int i = 0; i < array.length; ++i) { | 
| 1758       array[i] = -1; | 1158       array[i] = -1; | 
| 1759     } | 1159     } | 
| 1760     Expect.throws(() { | 1160     Expect.throws(() { new Uint16List.view(array.buffer, -1); }, | 
| 1761       new Uint16List.view(array.buffer, -1); | 1161                   (e) { return e is RangeError; }); | 
| 1762     }, (e) { | 1162     Expect.throws(() { new Uint16List.view(array.buffer, 0, -1); }, | 
| 1763       return e is RangeError; | 1163                   (e) { return e is RangeError; }); | 
| 1764     }); | 1164     Expect.throws(() { new Uint16List.view(array.buffer, | 
| 1765     Expect.throws(() { | 1165                                            array.lengthInBytes + 1); }, | 
| 1766       new Uint16List.view(array.buffer, 0, -1); | 1166                   (e) { return e is RangeError; }); | 
| 1767     }, (e) { | 1167     Expect.throws(() { new Uint16List.view(array.buffer, | 
| 1768       return e is RangeError; | 1168                                            0, array.length + 1); }, | 
| 1769     }); | 1169                   (e) { return e is RangeError; }); | 
| 1770     Expect.throws(() { | 1170     Expect.throws(() { new Uint16List.view(array.buffer, | 
| 1771       new Uint16List.view(array.buffer, array.lengthInBytes + 1); | 1171                                            array.length - 1, 2); }, | 
| 1772     }, (e) { | 1172                   (e) { return e is RangeError; }); | 
| 1773       return e is RangeError; | 1173     var empty = new Uint16List.view(array.buffer, | 
| 1774     }); | 1174                                     array.lengthInBytes); | 
| 1775     Expect.throws(() { |  | 
| 1776       new Uint16List.view(array.buffer, 0, array.length + 1); |  | 
| 1777     }, (e) { |  | 
| 1778       return e is RangeError; |  | 
| 1779     }); |  | 
| 1780     Expect.throws(() { |  | 
| 1781       new Uint16List.view(array.buffer, array.length - 1, 2); |  | 
| 1782     }, (e) { |  | 
| 1783       return e is RangeError; |  | 
| 1784     }); |  | 
| 1785     var empty = new Uint16List.view(array.buffer, array.lengthInBytes); |  | 
| 1786     Expect.isTrue(empty is List<int>); | 1175     Expect.isTrue(empty is List<int>); | 
| 1787     Expect.isTrue(empty is Uint16List); | 1176     Expect.isTrue(empty is Uint16List); | 
| 1788     Expect.equals(0, empty.length); | 1177     Expect.equals(0, empty.length); | 
| 1789     var whole = new Uint16List.view(array.buffer); | 1178     var whole = new Uint16List.view(array.buffer); | 
| 1790     Expect.isTrue(whole is List<int>); | 1179     Expect.isTrue(whole is List<int>); | 
| 1791     Expect.isTrue(whole is Uint16List); | 1180     Expect.isTrue(whole is Uint16List); | 
| 1792     Expect.equals(12, whole.length); | 1181     Expect.equals(12, whole.length); | 
| 1793     var view = new Uint16List.view(array.buffer, 2, 10); | 1182     var view = new Uint16List.view(array.buffer, 2, 10); | 
| 1794     Expect.isTrue(view is List<int>); | 1183     Expect.isTrue(view is List<int>); | 
| 1795     Expect.isTrue(view is Uint16List); | 1184     Expect.isTrue(view is Uint16List); | 
| 1796     Expect.equals(10, view.length); | 1185     Expect.equals(10, view.length); | 
| 1797     Expect.equals(2, view.elementSizeInBytes); | 1186     Expect.equals(2, view.elementSizeInBytes); | 
| 1798     Expect.equals(20, view.lengthInBytes); | 1187     Expect.equals(20, view.lengthInBytes); | 
| 1799     Expect.listEquals([ | 1188     Expect.listEquals([0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, | 
| 1800       0xFFFF, | 1189                        0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF], | 
| 1801       0xFFFF, | 1190                       view); | 
| 1802       0xFFFF, | 1191     Expect.throws(() { view[-1] = 0; }, | 
| 1803       0xFFFF, | 1192                   (e) { return e is RangeError; }); | 
| 1804       0xFFFF, | 1193     Expect.throws(() { return view[-1]; }, | 
| 1805       0xFFFF, | 1194                   (e) { return e is RangeError; }); | 
| 1806       0xFFFF, | 1195     Expect.throws(() { view[view.length]; }, | 
| 1807       0xFFFF, | 1196                   (e) { return e is RangeError; }); | 
| 1808       0xFFFF, | 1197     Expect.throws(() { view[view.length] = 0; }, | 
| 1809       0xFFFF | 1198                   (e) { return e is RangeError; }); | 
| 1810     ], view); | 1199     Expect.throws(() { view.add(0); }, | 
| 1811     Expect.throws(() { | 1200                   (e) { return e is UnsupportedError; }); | 
| 1812       view[-1] = 0; | 1201     Expect.throws(() { view.addAll([0]); }, | 
| 1813     }, (e) { | 1202                   (e) { return e is UnsupportedError; }); | 
| 1814       return e is RangeError; | 1203     Expect.throws(() { view.clear(); }, | 
| 1815     }); | 1204                   (e) { return e is UnsupportedError; }); | 
| 1816     Expect.throws(() { | 1205     Expect.throws(() { view.length = 0; }, | 
| 1817       return view[-1]; | 1206                   (e) { return e is UnsupportedError; }); | 
| 1818     }, (e) { | 1207     Expect.throws(() { view.removeLast(); }, | 
| 1819       return e is RangeError; | 1208                   (e) { return e is UnsupportedError; }); | 
| 1820     }); | 1209     Expect.throws(() { view.removeRange(0, view.length - 1); }, | 
| 1821     Expect.throws(() { | 1210                   (e) { return e is UnsupportedError; }); | 
| 1822       view[view.length]; |  | 
| 1823     }, (e) { |  | 
| 1824       return e is RangeError; |  | 
| 1825     }); |  | 
| 1826     Expect.throws(() { |  | 
| 1827       view[view.length] = 0; |  | 
| 1828     }, (e) { |  | 
| 1829       return e is RangeError; |  | 
| 1830     }); |  | 
| 1831     Expect.throws(() { |  | 
| 1832       view.add(0); |  | 
| 1833     }, (e) { |  | 
| 1834       return e is UnsupportedError; |  | 
| 1835     }); |  | 
| 1836     Expect.throws(() { |  | 
| 1837       view.addAll([0]); |  | 
| 1838     }, (e) { |  | 
| 1839       return e is UnsupportedError; |  | 
| 1840     }); |  | 
| 1841     Expect.throws(() { |  | 
| 1842       view.clear(); |  | 
| 1843     }, (e) { |  | 
| 1844       return e is UnsupportedError; |  | 
| 1845     }); |  | 
| 1846     Expect.throws(() { |  | 
| 1847       view.length = 0; |  | 
| 1848     }, (e) { |  | 
| 1849       return e is UnsupportedError; |  | 
| 1850     }); |  | 
| 1851     Expect.throws(() { |  | 
| 1852       view.removeLast(); |  | 
| 1853     }, (e) { |  | 
| 1854       return e is UnsupportedError; |  | 
| 1855     }); |  | 
| 1856     Expect.throws(() { |  | 
| 1857       view.removeRange(0, view.length - 1); |  | 
| 1858     }, (e) { |  | 
| 1859       return e is UnsupportedError; |  | 
| 1860     }); |  | 
| 1861     for (int i = 0; i < view.length; ++i) { | 1211     for (int i = 0; i < view.length; ++i) { | 
| 1862       view[i] = 1 + i; | 1212       view[i] = 1 + i; | 
| 1863     } | 1213     } | 
| 1864     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], view); | 1214     Expect.listEquals([1, 2, 3, 4, 5, | 
| 1865     Expect.listEquals([ | 1215                        6, 7, 8, 9, 10], | 
| 1866       -1, | 1216                       view); | 
| 1867       -1, | 1217     Expect.listEquals([-1, -1, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, | 
| 1868       1, | 1218                        6, 0, 7, 0, 8, 0, 9, 0, 10, 0, -1, -1], | 
| 1869       0, | 1219                       array); | 
| 1870       2, |  | 
| 1871       0, |  | 
| 1872       3, |  | 
| 1873       0, |  | 
| 1874       4, |  | 
| 1875       0, |  | 
| 1876       5, |  | 
| 1877       0, |  | 
| 1878       6, |  | 
| 1879       0, |  | 
| 1880       7, |  | 
| 1881       0, |  | 
| 1882       8, |  | 
| 1883       0, |  | 
| 1884       9, |  | 
| 1885       0, |  | 
| 1886       10, |  | 
| 1887       0, |  | 
| 1888       -1, |  | 
| 1889       -1 |  | 
| 1890     ], array); |  | 
| 1891     for (int i = 0; i < view.length; ++i) { | 1220     for (int i = 0; i < view.length; ++i) { | 
| 1892       view[i] = 0x10000 + i; | 1221       view[i] = 0x10000 + i; | 
| 1893     } | 1222     } | 
| 1894     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], view); | 1223     Expect.listEquals([0, 1, 2, 3, 4, | 
| 1895     Expect.listEquals([ | 1224                        5, 6, 7, 8, 9], | 
| 1896       -1, | 1225                       view); | 
| 1897       -1, | 1226     Expect.listEquals([-1, -1, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, | 
| 1898       0, | 1227                         5, 0, 6, 0, 7, 0, 8, 0, 9, 0, -1, -1], | 
| 1899       0, | 1228                       array); | 
| 1900       1, |  | 
| 1901       0, |  | 
| 1902       2, |  | 
| 1903       0, |  | 
| 1904       3, |  | 
| 1905       0, |  | 
| 1906       4, |  | 
| 1907       0, |  | 
| 1908       5, |  | 
| 1909       0, |  | 
| 1910       6, |  | 
| 1911       0, |  | 
| 1912       7, |  | 
| 1913       0, |  | 
| 1914       8, |  | 
| 1915       0, |  | 
| 1916       9, |  | 
| 1917       0, |  | 
| 1918       -1, |  | 
| 1919       -1 |  | 
| 1920     ], array); |  | 
| 1921     for (int i = 0; i < view.length; ++i) { | 1229     for (int i = 0; i < view.length; ++i) { | 
| 1922       view[i] = 0xFFFF - i; | 1230       view[i] = 0xFFFF - i; | 
| 1923     } | 1231     } | 
| 1924     Expect.listEquals([ | 1232     Expect.listEquals([0xFFFF, 0xFFFE, 0xFFFD, 0xFFFC, 0xFFFB, | 
| 1925       0xFFFF, | 1233                        0xFFFA, 0xFFF9, 0xFFF8, 0xFFF7, 0xFFF6], | 
| 1926       0xFFFE, | 1234                       view); | 
| 1927       0xFFFD, | 1235     Expect.listEquals([-1, -1, -1, -1, -2, -1, -3, -1, | 
| 1928       0xFFFC, | 1236                        -4, -1, -5, -1, -6, -1, -7, -1, | 
| 1929       0xFFFB, | 1237                        -8, -1, -9, -1, -10, -1, -1, -1], | 
| 1930       0xFFFA, | 1238                       array); | 
| 1931       0xFFF9, |  | 
| 1932       0xFFF8, |  | 
| 1933       0xFFF7, |  | 
| 1934       0xFFF6 |  | 
| 1935     ], view); |  | 
| 1936     Expect.listEquals([ |  | 
| 1937       -1, |  | 
| 1938       -1, |  | 
| 1939       -1, |  | 
| 1940       -1, |  | 
| 1941       -2, |  | 
| 1942       -1, |  | 
| 1943       -3, |  | 
| 1944       -1, |  | 
| 1945       -4, |  | 
| 1946       -1, |  | 
| 1947       -5, |  | 
| 1948       -1, |  | 
| 1949       -6, |  | 
| 1950       -1, |  | 
| 1951       -7, |  | 
| 1952       -1, |  | 
| 1953       -8, |  | 
| 1954       -1, |  | 
| 1955       -9, |  | 
| 1956       -1, |  | 
| 1957       -10, |  | 
| 1958       -1, |  | 
| 1959       -1, |  | 
| 1960       -1 |  | 
| 1961     ], array); |  | 
| 1962     for (int i = 0; i < view.length; ++i) { | 1239     for (int i = 0; i < view.length; ++i) { | 
| 1963       view[i] = i; | 1240       view[i] = i; | 
| 1964     } | 1241     } | 
| 1965     var copy = view.sublist(0, view.length); | 1242     var copy = view.sublist(0, view.length); | 
| 1966     Expect.isFalse(identical(copy, view)); | 1243     Expect.isFalse(identical(copy, view)); | 
| 1967     Expect.isTrue(copy is Uint16List); | 1244     Expect.isTrue(copy is Uint16List); | 
| 1968     Expect.equals(10, copy.length); | 1245     Expect.equals(10, copy.length); | 
| 1969     Expect.listEquals(view, copy); | 1246     Expect.listEquals(view, copy); | 
| 1970     var region = view.sublist(3, view.length - 3); | 1247     var region = view.sublist(3, view.length - 3); | 
| 1971     Expect.isTrue(copy is Uint16List); | 1248     Expect.isTrue(copy is Uint16List); | 
| 1972     Expect.equals(4, region.length); | 1249     Expect.equals(4, region.length); | 
| 1973     Expect.listEquals([3, 4, 5, 6], region); | 1250     Expect.listEquals([3, 4, 5, 6], region); | 
| 1974     view.setRange(3, 7, [0x10001, 0, 1, 0xFFFF]); | 1251     view.setRange(3, 7, [0x10001, 0, 1, 0xFFFF]); | 
| 1975     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFF, 7, 8, 9], view); | 1252     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFF, 7, 8, 9], | 
| 1976     Expect.listEquals([ | 1253                       view); | 
| 1977       -1, | 1254     Expect.listEquals([-1, -1, 0, 0, 1, 0, 2, 0, | 
| 1978       -1, | 1255                        1, 0, 0, 0, 1, 0, -1, -1, | 
| 1979       0, | 1256                        7, 0, 8, 0, 9, 0, -1, -1], | 
| 1980       0, | 1257                       array); | 
| 1981       1, |  | 
| 1982       0, |  | 
| 1983       2, |  | 
| 1984       0, |  | 
| 1985       1, |  | 
| 1986       0, |  | 
| 1987       0, |  | 
| 1988       0, |  | 
| 1989       1, |  | 
| 1990       0, |  | 
| 1991       -1, |  | 
| 1992       -1, |  | 
| 1993       7, |  | 
| 1994       0, |  | 
| 1995       8, |  | 
| 1996       0, |  | 
| 1997       9, |  | 
| 1998       0, |  | 
| 1999       -1, |  | 
| 2000       -1 |  | 
| 2001     ], array); |  | 
| 2002   } | 1258   } | 
| 2003 | 1259 | 
| 2004   static testUint16ListView() { | 1260   static testUint16ListView() { | 
| 2005     var array = new Int8List(24); | 1261     var array = new Int8List(24); | 
| 2006     testUint16ListViewImpl(array); | 1262     testUint16ListViewImpl(array); | 
| 2007   } | 1263   } | 
| 2008 | 1264 | 
| 2009   static testInt32ListView() { | 1265   static testInt32ListView() { | 
| 2010     var array = new Uint8List(48); | 1266     var array = new Uint8List(48); | 
| 2011     Expect.equals(48, array.length); | 1267     Expect.equals(48, array.length); | 
| 2012     Expect.equals(1, array.elementSizeInBytes); | 1268     Expect.equals(1, array.elementSizeInBytes); | 
| 2013     Expect.equals(48, array.lengthInBytes); | 1269     Expect.equals(48, array.lengthInBytes); | 
| 2014     for (int i = 0; i < array.length; ++i) { | 1270     for (int i = 0; i < array.length; ++i) { | 
| 2015       array[i] = 0xFF; | 1271       array[i] = 0xFF; | 
| 2016     } | 1272     } | 
| 2017     Expect.throws(() { | 1273     Expect.throws(() { new Int32List.view(array.buffer, -1); }, | 
| 2018       new Int32List.view(array.buffer, -1); | 1274                   (e) { return e is RangeError; }); | 
| 2019     }, (e) { | 1275     Expect.throws(() { new Int32List.view(array.buffer, 0, -1); }, | 
| 2020       return e is RangeError; | 1276                   (e) { return e is RangeError; }); | 
| 2021     }); | 1277     Expect.throws(() { new Int32List.view(array.buffer, | 
| 2022     Expect.throws(() { | 1278                                           array.lengthInBytes + 1); }, | 
| 2023       new Int32List.view(array.buffer, 0, -1); | 1279                   (e) { return e is RangeError; }); | 
| 2024     }, (e) { | 1280     Expect.throws(() { new Int32List.view(array.buffer, | 
| 2025       return e is RangeError; | 1281                                           0, array.length + 1); }, | 
| 2026     }); | 1282                   (e) { return e is RangeError; }); | 
| 2027     Expect.throws(() { | 1283     Expect.throws(() { new Int32List.view(array.buffer, | 
| 2028       new Int32List.view(array.buffer, array.lengthInBytes + 1); | 1284                                           array.length - 1, 2); }, | 
| 2029     }, (e) { | 1285                   (e) { return e is RangeError; }); | 
| 2030       return e is RangeError; | 1286     var empty = new Int32List.view(array.buffer, | 
| 2031     }); | 1287                                    array.lengthInBytes); | 
| 2032     Expect.throws(() { |  | 
| 2033       new Int32List.view(array.buffer, 0, array.length + 1); |  | 
| 2034     }, (e) { |  | 
| 2035       return e is RangeError; |  | 
| 2036     }); |  | 
| 2037     Expect.throws(() { |  | 
| 2038       new Int32List.view(array.buffer, array.length - 1, 2); |  | 
| 2039     }, (e) { |  | 
| 2040       return e is RangeError; |  | 
| 2041     }); |  | 
| 2042     var empty = new Int32List.view(array.buffer, array.lengthInBytes); |  | 
| 2043     Expect.isTrue(empty is List<int>); | 1288     Expect.isTrue(empty is List<int>); | 
| 2044     Expect.isTrue(empty is Int32List); | 1289     Expect.isTrue(empty is Int32List); | 
| 2045     Expect.equals(0, empty.length); | 1290     Expect.equals(0, empty.length); | 
| 2046     var whole = new Int32List.view(array.buffer); | 1291     var whole = new Int32List.view(array.buffer); | 
| 2047     Expect.isTrue(whole is List<int>); | 1292     Expect.isTrue(whole is List<int>); | 
| 2048     Expect.isTrue(whole is Int32List); | 1293     Expect.isTrue(whole is Int32List); | 
| 2049     Expect.equals(12, whole.length); | 1294     Expect.equals(12, whole.length); | 
| 2050     var view = new Int32List.view(array.buffer, 4, 10); | 1295     var view = new Int32List.view(array.buffer, 4, 10); | 
| 2051     Expect.isTrue(view is List<int>); | 1296     Expect.isTrue(view is List<int>); | 
| 2052     Expect.isTrue(view is Int32List); | 1297     Expect.isTrue(view is Int32List); | 
| 2053     Expect.equals(10, view.length); | 1298     Expect.equals(10, view.length); | 
| 2054     Expect.equals(4, view.elementSizeInBytes); | 1299     Expect.equals(4, view.elementSizeInBytes); | 
| 2055     Expect.equals(40, view.lengthInBytes); | 1300     Expect.equals(40, view.lengthInBytes); | 
| 2056     Expect.listEquals([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1], view); | 1301     Expect.listEquals([-1, -1, -1, -1, -1, | 
| 2057     Expect.throws(() { | 1302                        -1, -1, -1, -1, -1], | 
| 2058       view[-1] = 0; | 1303                       view); | 
| 2059     }, (e) { | 1304     Expect.throws(() { view[-1] = 0; }, | 
| 2060       return e is RangeError; | 1305                   (e) { return e is RangeError; }); | 
| 2061     }); | 1306     Expect.throws(() { return view[-1]; }, | 
| 2062     Expect.throws(() { | 1307                   (e) { return e is RangeError; }); | 
| 2063       return view[-1]; | 1308     Expect.throws(() { view[view.length]; }, | 
| 2064     }, (e) { | 1309                   (e) { return e is RangeError; }); | 
| 2065       return e is RangeError; | 1310     Expect.throws(() { view[10] = 0; }, | 
| 2066     }); | 1311                   (e) { return e is RangeError; }); | 
| 2067     Expect.throws(() { | 1312     Expect.throws(() { view.add(0); }, | 
| 2068       view[view.length]; | 1313                   (e) { return e is UnsupportedError; }); | 
| 2069     }, (e) { | 1314     Expect.throws(() { view.addAll([0]); }, | 
| 2070       return e is RangeError; | 1315                   (e) { return e is UnsupportedError; }); | 
| 2071     }); | 1316     Expect.throws(() { view.clear(); }, | 
| 2072     Expect.throws(() { | 1317                   (e) { return e is UnsupportedError; }); | 
| 2073       view[10] = 0; | 1318     Expect.throws(() { view.length = 0; }, | 
| 2074     }, (e) { | 1319                   (e) { return e is UnsupportedError; }); | 
| 2075       return e is RangeError; | 1320     Expect.throws(() { view.removeLast(); }, | 
| 2076     }); | 1321                   (e) { return e is UnsupportedError; }); | 
| 2077     Expect.throws(() { | 1322     Expect.throws(() { view.removeRange(0, view.length - 1); }, | 
| 2078       view.add(0); | 1323                   (e) { return e is UnsupportedError; }); | 
| 2079     }, (e) { |  | 
| 2080       return e is UnsupportedError; |  | 
| 2081     }); |  | 
| 2082     Expect.throws(() { |  | 
| 2083       view.addAll([0]); |  | 
| 2084     }, (e) { |  | 
| 2085       return e is UnsupportedError; |  | 
| 2086     }); |  | 
| 2087     Expect.throws(() { |  | 
| 2088       view.clear(); |  | 
| 2089     }, (e) { |  | 
| 2090       return e is UnsupportedError; |  | 
| 2091     }); |  | 
| 2092     Expect.throws(() { |  | 
| 2093       view.length = 0; |  | 
| 2094     }, (e) { |  | 
| 2095       return e is UnsupportedError; |  | 
| 2096     }); |  | 
| 2097     Expect.throws(() { |  | 
| 2098       view.removeLast(); |  | 
| 2099     }, (e) { |  | 
| 2100       return e is UnsupportedError; |  | 
| 2101     }); |  | 
| 2102     Expect.throws(() { |  | 
| 2103       view.removeRange(0, view.length - 1); |  | 
| 2104     }, (e) { |  | 
| 2105       return e is UnsupportedError; |  | 
| 2106     }); |  | 
| 2107     for (int i = 0; i < view.length; ++i) { | 1324     for (int i = 0; i < view.length; ++i) { | 
| 2108       view[i] = 1 + i; | 1325       view[i] = 1 + i; | 
| 2109     } | 1326     } | 
| 2110     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], view); | 1327     Expect.listEquals([1, 2, 3, 4, 5, | 
| 2111     Expect.listEquals([ | 1328                        6, 7, 8, 9, 10], | 
| 2112       0xFF, | 1329                       view); | 
| 2113       0xFF, | 1330     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, | 
| 2114       0xFF, | 1331                        0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, | 
| 2115       0xFF, | 1332                        0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, | 
| 2116       0x01, | 1333                        0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, | 
| 2117       0x00, | 1334                        0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, | 
| 2118       0x00, | 1335                        0x0A, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 2119       0x00, | 1336                       array); | 
| 2120       0x02, |  | 
| 2121       0x00, |  | 
| 2122       0x00, |  | 
| 2123       0x00, |  | 
| 2124       0x03, |  | 
| 2125       0x00, |  | 
| 2126       0x00, |  | 
| 2127       0x00, |  | 
| 2128       0x04, |  | 
| 2129       0x00, |  | 
| 2130       0x00, |  | 
| 2131       0x00, |  | 
| 2132       0x05, |  | 
| 2133       0x00, |  | 
| 2134       0x00, |  | 
| 2135       0x00, |  | 
| 2136       0x06, |  | 
| 2137       0x00, |  | 
| 2138       0x00, |  | 
| 2139       0x00, |  | 
| 2140       0x07, |  | 
| 2141       0x00, |  | 
| 2142       0x00, |  | 
| 2143       0x00, |  | 
| 2144       0x08, |  | 
| 2145       0x00, |  | 
| 2146       0x00, |  | 
| 2147       0x00, |  | 
| 2148       0x09, |  | 
| 2149       0x00, |  | 
| 2150       0x00, |  | 
| 2151       0x00, |  | 
| 2152       0x0A, |  | 
| 2153       0x00, |  | 
| 2154       0x00, |  | 
| 2155       0x00, |  | 
| 2156       0xFF, |  | 
| 2157       0xFF, |  | 
| 2158       0xFF, |  | 
| 2159       0xFF |  | 
| 2160     ], array); |  | 
| 2161     for (int i = 0; i < view.length; ++i) { | 1337     for (int i = 0; i < view.length; ++i) { | 
| 2162       view[i] = 0x100000000 + i; | 1338       view[i] = 0x100000000 + i; | 
| 2163     } | 1339     } | 
| 2164     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], view); | 1340     Expect.listEquals([0, 1, 2, 3, 4, | 
| 2165     Expect.listEquals([ | 1341                        5, 6, 7, 8, 9], | 
| 2166       0xFF, | 1342                       view); | 
| 2167       0xFF, | 1343     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, | 
| 2168       0xFF, | 1344                        0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, | 
| 2169       0xFF, | 1345                        0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, | 
| 2170       0x00, | 1346                        0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, | 
| 2171       0x00, | 1347                        0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, | 
| 2172       0x00, | 1348                        0x09, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 2173       0x00, | 1349                       array); | 
| 2174       0x01, |  | 
| 2175       0x00, |  | 
| 2176       0x00, |  | 
| 2177       0x00, |  | 
| 2178       0x02, |  | 
| 2179       0x00, |  | 
| 2180       0x00, |  | 
| 2181       0x00, |  | 
| 2182       0x03, |  | 
| 2183       0x00, |  | 
| 2184       0x00, |  | 
| 2185       0x00, |  | 
| 2186       0x04, |  | 
| 2187       0x00, |  | 
| 2188       0x00, |  | 
| 2189       0x00, |  | 
| 2190       0x05, |  | 
| 2191       0x00, |  | 
| 2192       0x00, |  | 
| 2193       0x00, |  | 
| 2194       0x06, |  | 
| 2195       0x00, |  | 
| 2196       0x00, |  | 
| 2197       0x00, |  | 
| 2198       0x07, |  | 
| 2199       0x00, |  | 
| 2200       0x00, |  | 
| 2201       0x00, |  | 
| 2202       0x08, |  | 
| 2203       0x00, |  | 
| 2204       0x00, |  | 
| 2205       0x00, |  | 
| 2206       0x09, |  | 
| 2207       0x00, |  | 
| 2208       0x00, |  | 
| 2209       0x00, |  | 
| 2210       0xFF, |  | 
| 2211       0xFF, |  | 
| 2212       0xFF, |  | 
| 2213       0xFF |  | 
| 2214     ], array); |  | 
| 2215     for (int i = 0; i < view.length; ++i) { | 1350     for (int i = 0; i < view.length; ++i) { | 
| 2216       view[i] = -10 + i; | 1351       view[i] = -10 + i; | 
| 2217     } | 1352     } | 
| 2218     Expect.listEquals([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1], view); | 1353     Expect.listEquals([-10, -9, -8, -7, -6, | 
| 2219     Expect.listEquals([ | 1354                         -5, -4, -3, -2, -1], | 
| 2220       0xFF, | 1355                       view); | 
| 2221       0xFF, | 1356     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, | 
| 2222       0xFF, | 1357                        0xF7, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, | 
| 2223       0xFF, | 1358                        0xF9, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF, | 
| 2224       0xF6, | 1359                        0xFB, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, | 
| 2225       0xFF, | 1360                        0xFD, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, | 
| 2226       0xFF, | 1361                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 2227       0xFF, | 1362                       array); | 
| 2228       0xF7, |  | 
| 2229       0xFF, |  | 
| 2230       0xFF, |  | 
| 2231       0xFF, |  | 
| 2232       0xF8, |  | 
| 2233       0xFF, |  | 
| 2234       0xFF, |  | 
| 2235       0xFF, |  | 
| 2236       0xF9, |  | 
| 2237       0xFF, |  | 
| 2238       0xFF, |  | 
| 2239       0xFF, |  | 
| 2240       0xFA, |  | 
| 2241       0xFF, |  | 
| 2242       0xFF, |  | 
| 2243       0xFF, |  | 
| 2244       0xFB, |  | 
| 2245       0xFF, |  | 
| 2246       0xFF, |  | 
| 2247       0xFF, |  | 
| 2248       0xFC, |  | 
| 2249       0xFF, |  | 
| 2250       0xFF, |  | 
| 2251       0xFF, |  | 
| 2252       0xFD, |  | 
| 2253       0xFF, |  | 
| 2254       0xFF, |  | 
| 2255       0xFF, |  | 
| 2256       0xFE, |  | 
| 2257       0xFF, |  | 
| 2258       0xFF, |  | 
| 2259       0xFF, |  | 
| 2260       0xFF, |  | 
| 2261       0xFF, |  | 
| 2262       0xFF, |  | 
| 2263       0xFF, |  | 
| 2264       0xFF, |  | 
| 2265       0xFF, |  | 
| 2266       0xFF, |  | 
| 2267       0xFF |  | 
| 2268     ], array); |  | 
| 2269     for (int i = 0; i < view.length; ++i) { | 1363     for (int i = 0; i < view.length; ++i) { | 
| 2270       view[i] = 0x7FFFFFFF - i; | 1364       view[i] = 0x7FFFFFFF - i; | 
| 2271     } | 1365     } | 
| 2272     Expect.listEquals([ | 1366     Expect.listEquals([0x7FFFFFFF, 0x7FFFFFFE, | 
| 2273       0x7FFFFFFF, | 1367                        0x7FFFFFFD, 0x7FFFFFFC, | 
| 2274       0x7FFFFFFE, | 1368                        0x7FFFFFFB, 0x7FFFFFFA, | 
| 2275       0x7FFFFFFD, | 1369                        0x7FFFFFF9, 0x7FFFFFF8, | 
| 2276       0x7FFFFFFC, | 1370                        0x7FFFFFF7, 0x7FFFFFF6], | 
| 2277       0x7FFFFFFB, | 1371                       view); | 
| 2278       0x7FFFFFFA, | 1372     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 2279       0x7FFFFFF9, | 1373                        0xFE, 0xFF, 0xFF, 0x7F, 0xFD, 0xFF, 0xFF, 0x7F, | 
| 2280       0x7FFFFFF8, | 1374                        0xFC, 0xFF, 0xFF, 0x7F, 0xFB, 0xFF, 0xFF, 0x7F, | 
| 2281       0x7FFFFFF7, | 1375                        0xFA, 0xFF, 0xFF, 0x7F, 0xF9, 0xFF, 0xFF, 0x7F, | 
| 2282       0x7FFFFFF6 | 1376                        0xF8, 0xFF, 0xFF, 0x7F, 0xF7, 0xFF, 0xFF, 0x7F, | 
| 2283     ], view); | 1377                        0xF6, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 2284     Expect.listEquals([ | 1378                       array); | 
| 2285       0xFF, |  | 
| 2286       0xFF, |  | 
| 2287       0xFF, |  | 
| 2288       0xFF, |  | 
| 2289       0xFF, |  | 
| 2290       0xFF, |  | 
| 2291       0xFF, |  | 
| 2292       0x7F, |  | 
| 2293       0xFE, |  | 
| 2294       0xFF, |  | 
| 2295       0xFF, |  | 
| 2296       0x7F, |  | 
| 2297       0xFD, |  | 
| 2298       0xFF, |  | 
| 2299       0xFF, |  | 
| 2300       0x7F, |  | 
| 2301       0xFC, |  | 
| 2302       0xFF, |  | 
| 2303       0xFF, |  | 
| 2304       0x7F, |  | 
| 2305       0xFB, |  | 
| 2306       0xFF, |  | 
| 2307       0xFF, |  | 
| 2308       0x7F, |  | 
| 2309       0xFA, |  | 
| 2310       0xFF, |  | 
| 2311       0xFF, |  | 
| 2312       0x7F, |  | 
| 2313       0xF9, |  | 
| 2314       0xFF, |  | 
| 2315       0xFF, |  | 
| 2316       0x7F, |  | 
| 2317       0xF8, |  | 
| 2318       0xFF, |  | 
| 2319       0xFF, |  | 
| 2320       0x7F, |  | 
| 2321       0xF7, |  | 
| 2322       0xFF, |  | 
| 2323       0xFF, |  | 
| 2324       0x7F, |  | 
| 2325       0xF6, |  | 
| 2326       0xFF, |  | 
| 2327       0xFF, |  | 
| 2328       0x7F, |  | 
| 2329       0xFF, |  | 
| 2330       0xFF, |  | 
| 2331       0xFF, |  | 
| 2332       0xFF |  | 
| 2333     ], array); |  | 
| 2334     for (int i = 0; i < view.length; ++i) { | 1379     for (int i = 0; i < view.length; ++i) { | 
| 2335       view[i] = -0x80000000 + i; | 1380       view[i] = -0x80000000 + i; | 
| 2336     } | 1381     } | 
| 2337     Expect.listEquals([ | 1382     Expect.listEquals([-0x80000000, -0x7FFFFFFF, | 
| 2338       -0x80000000, | 1383                        -0x7FFFFFFE, -0x7FFFFFFD, | 
| 2339       -0x7FFFFFFF, | 1384                        -0x7FFFFFFC, -0x7FFFFFFB, | 
| 2340       -0x7FFFFFFE, | 1385                        -0x7FFFFFFA, -0x7FFFFFF9, | 
| 2341       -0x7FFFFFFD, | 1386                        -0x7FFFFFF8, -0x7FFFFFF7], | 
| 2342       -0x7FFFFFFC, | 1387                       view); | 
| 2343       -0x7FFFFFFB, | 1388     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, | 
| 2344       -0x7FFFFFFA, | 1389                        0x01, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x80, | 
| 2345       -0x7FFFFFF9, | 1390                        0x03, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x80, | 
| 2346       -0x7FFFFFF8, | 1391                        0x05, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0x80, | 
| 2347       -0x7FFFFFF7 | 1392                        0x07, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, | 
| 2348     ], view); | 1393                        0x09, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 2349     Expect.listEquals([ | 1394                       array); | 
| 2350       0xFF, |  | 
| 2351       0xFF, |  | 
| 2352       0xFF, |  | 
| 2353       0xFF, |  | 
| 2354       0x00, |  | 
| 2355       0x00, |  | 
| 2356       0x00, |  | 
| 2357       0x80, |  | 
| 2358       0x01, |  | 
| 2359       0x00, |  | 
| 2360       0x00, |  | 
| 2361       0x80, |  | 
| 2362       0x02, |  | 
| 2363       0x00, |  | 
| 2364       0x00, |  | 
| 2365       0x80, |  | 
| 2366       0x03, |  | 
| 2367       0x00, |  | 
| 2368       0x00, |  | 
| 2369       0x80, |  | 
| 2370       0x04, |  | 
| 2371       0x00, |  | 
| 2372       0x00, |  | 
| 2373       0x80, |  | 
| 2374       0x05, |  | 
| 2375       0x00, |  | 
| 2376       0x00, |  | 
| 2377       0x80, |  | 
| 2378       0x06, |  | 
| 2379       0x00, |  | 
| 2380       0x00, |  | 
| 2381       0x80, |  | 
| 2382       0x07, |  | 
| 2383       0x00, |  | 
| 2384       0x00, |  | 
| 2385       0x80, |  | 
| 2386       0x08, |  | 
| 2387       0x00, |  | 
| 2388       0x00, |  | 
| 2389       0x80, |  | 
| 2390       0x09, |  | 
| 2391       0x00, |  | 
| 2392       0x00, |  | 
| 2393       0x80, |  | 
| 2394       0xFF, |  | 
| 2395       0xFF, |  | 
| 2396       0xFF, |  | 
| 2397       0xFF |  | 
| 2398     ], array); |  | 
| 2399     for (int i = 0; i < view.length; ++i) { | 1395     for (int i = 0; i < view.length; ++i) { | 
| 2400       view[i] = i; | 1396       view[i] = i; | 
| 2401     } | 1397     } | 
| 2402     var copy = view.sublist(0, view.length); | 1398     var copy = view.sublist(0, view.length); | 
| 2403     Expect.isFalse(identical(copy, view)); | 1399     Expect.isFalse(identical(copy, view)); | 
| 2404     Expect.isTrue(copy is Int32List); | 1400     Expect.isTrue(copy is Int32List); | 
| 2405     Expect.equals(10, copy.length); | 1401     Expect.equals(10, copy.length); | 
| 2406     Expect.listEquals(view, copy); | 1402     Expect.listEquals(view, copy); | 
| 2407     var region = view.sublist(3, view.length - 3); | 1403     var region = view.sublist(3, view.length - 3); | 
| 2408     Expect.isTrue(copy is Int32List); | 1404     Expect.isTrue(copy is Int32List); | 
| 2409     Expect.equals(4, region.length); | 1405     Expect.equals(4, region.length); | 
| 2410     Expect.listEquals([3, 4, 5, 6], region); | 1406     Expect.listEquals([3, 4, 5, 6], region); | 
| 2411     view.setRange(3, 7, [-0x80000000, 0, 1, 0x7FFFFFFF]); | 1407     view.setRange(3, 7, [-0x80000000, 0, 1, 0x7FFFFFFF]); | 
| 2412     Expect.listEquals([0, 1, 2, -0x80000000, 0, 1, 0x7FFFFFFF, 7, 8, 9], view); | 1408     Expect.listEquals([0, 1, 2, -0x80000000, 0, 1, 0x7FFFFFFF, 7, 8, 9], | 
| 2413     Expect.listEquals([ | 1409                       view); | 
| 2414       0xFF, | 1410     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, | 
| 2415       0xFF, | 1411                        0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, | 
| 2416       0xFF, | 1412                        0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, | 
| 2417       0xFF, | 1413                        0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 2418       0x00, | 1414                        0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, | 
| 2419       0x00, | 1415                        0x09, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 2420       0x00, | 1416                       array); | 
| 2421       0x00, |  | 
| 2422       0x01, |  | 
| 2423       0x00, |  | 
| 2424       0x00, |  | 
| 2425       0x00, |  | 
| 2426       0x02, |  | 
| 2427       0x00, |  | 
| 2428       0x00, |  | 
| 2429       0x00, |  | 
| 2430       0x00, |  | 
| 2431       0x00, |  | 
| 2432       0x00, |  | 
| 2433       0x80, |  | 
| 2434       0x00, |  | 
| 2435       0x00, |  | 
| 2436       0x00, |  | 
| 2437       0x00, |  | 
| 2438       0x01, |  | 
| 2439       0x00, |  | 
| 2440       0x00, |  | 
| 2441       0x00, |  | 
| 2442       0xFF, |  | 
| 2443       0xFF, |  | 
| 2444       0xFF, |  | 
| 2445       0x7F, |  | 
| 2446       0x07, |  | 
| 2447       0x00, |  | 
| 2448       0x00, |  | 
| 2449       0x00, |  | 
| 2450       0x08, |  | 
| 2451       0x00, |  | 
| 2452       0x00, |  | 
| 2453       0x00, |  | 
| 2454       0x09, |  | 
| 2455       0x00, |  | 
| 2456       0x00, |  | 
| 2457       0x00, |  | 
| 2458       0xFF, |  | 
| 2459       0xFF, |  | 
| 2460       0xFF, |  | 
| 2461       0xFF |  | 
| 2462     ], array); |  | 
| 2463   } | 1417   } | 
| 2464 | 1418 | 
| 2465   static testUint32ListViewImpl(var array) { | 1419   static testUint32ListViewImpl(var array) { | 
| 2466     Expect.isTrue(array is List<int>); | 1420     Expect.isTrue(array is List<int>); | 
| 2467     Expect.equals(48, array.length); | 1421     Expect.equals(48, array.length); | 
| 2468     Expect.equals(1, array.elementSizeInBytes); | 1422     Expect.equals(1, array.elementSizeInBytes); | 
| 2469     Expect.equals(48, array.lengthInBytes); | 1423     Expect.equals(48, array.lengthInBytes); | 
| 2470     for (int i = 0; i < array.length; ++i) { | 1424     for (int i = 0; i < array.length; ++i) { | 
| 2471       array[i] = -1; | 1425       array[i] = -1; | 
| 2472     } | 1426     } | 
| 2473     Expect.throws(() { | 1427     Expect.throws(() { new Uint32List.view(array.buffer, -1); }, | 
| 2474       new Uint32List.view(array.buffer, -1); | 1428                   (e) { return e is RangeError; }); | 
| 2475     }, (e) { | 1429     Expect.throws(() { new Uint32List.view(array.buffer, 0, -1); }, | 
| 2476       return e is RangeError; | 1430                   (e) { return e is RangeError; }); | 
| 2477     }); | 1431     Expect.throws(() { new Uint32List.view(array.buffer, | 
| 2478     Expect.throws(() { | 1432                                            array.lengthInBytes + 1); }, | 
| 2479       new Uint32List.view(array.buffer, 0, -1); | 1433                   (e) { return e is RangeError; }); | 
| 2480     }, (e) { | 1434     Expect.throws(() { new Uint32List.view(array.buffer, | 
| 2481       return e is RangeError; | 1435                                            0, array.length + 1); }, | 
| 2482     }); | 1436                   (e) { return e is RangeError; }); | 
| 2483     Expect.throws(() { | 1437     Expect.throws(() { new Uint32List.view(array.buffer, | 
| 2484       new Uint32List.view(array.buffer, array.lengthInBytes + 1); | 1438                                            array.length - 1, 2); }, | 
| 2485     }, (e) { | 1439                   (e) { return e is RangeError; }); | 
| 2486       return e is RangeError; | 1440     var empty = new Uint32List.view(array.buffer, | 
| 2487     }); | 1441                                     array.lengthInBytes); | 
| 2488     Expect.throws(() { |  | 
| 2489       new Uint32List.view(array.buffer, 0, array.length + 1); |  | 
| 2490     }, (e) { |  | 
| 2491       return e is RangeError; |  | 
| 2492     }); |  | 
| 2493     Expect.throws(() { |  | 
| 2494       new Uint32List.view(array.buffer, array.length - 1, 2); |  | 
| 2495     }, (e) { |  | 
| 2496       return e is RangeError; |  | 
| 2497     }); |  | 
| 2498     var empty = new Uint32List.view(array.buffer, array.lengthInBytes); |  | 
| 2499     Expect.isTrue(empty is List<int>); | 1442     Expect.isTrue(empty is List<int>); | 
| 2500     Expect.isTrue(empty is Uint32List); | 1443     Expect.isTrue(empty is Uint32List); | 
| 2501     Expect.equals(0, empty.length); | 1444     Expect.equals(0, empty.length); | 
| 2502     var whole = new Uint32List.view(array.buffer); | 1445     var whole = new Uint32List.view(array.buffer); | 
| 2503     Expect.isTrue(whole is List<int>); | 1446     Expect.isTrue(whole is List<int>); | 
| 2504     Expect.isTrue(whole is Uint32List); | 1447     Expect.isTrue(whole is Uint32List); | 
| 2505     Expect.equals(12, whole.length); | 1448     Expect.equals(12, whole.length); | 
| 2506     var view = new Uint32List.view(array.buffer, 4, 10); | 1449     var view = new Uint32List.view(array.buffer, 4, 10); | 
| 2507     Expect.isTrue(view is List<int>); | 1450     Expect.isTrue(view is List<int>); | 
| 2508     Expect.isTrue(view is Uint32List); | 1451     Expect.isTrue(view is Uint32List); | 
| 2509     Expect.equals(10, view.length); | 1452     Expect.equals(10, view.length); | 
| 2510     Expect.equals(4, view.elementSizeInBytes); | 1453     Expect.equals(4, view.elementSizeInBytes); | 
| 2511     Expect.equals(40, view.lengthInBytes); | 1454     Expect.equals(40, view.lengthInBytes); | 
| 2512     Expect.listEquals([ | 1455     Expect.listEquals([0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF
      F, | 
| 2513       0xFFFFFFFF, | 1456                        0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF
      F], | 
| 2514       0xFFFFFFFF, | 1457                       view); | 
| 2515       0xFFFFFFFF, | 1458     Expect.throws(() { view[-1] = 0; }, | 
| 2516       0xFFFFFFFF, | 1459                   (e) { return e is RangeError; }); | 
| 2517       0xFFFFFFFF, | 1460     Expect.throws(() { return view[-1]; }, | 
| 2518       0xFFFFFFFF, | 1461                   (e) { return e is RangeError; }); | 
| 2519       0xFFFFFFFF, | 1462     Expect.throws(() { view[view.length]; }, | 
| 2520       0xFFFFFFFF, | 1463                   (e) { return e is RangeError; }); | 
| 2521       0xFFFFFFFF, | 1464     Expect.throws(() { view[view.length] = 0; }, | 
| 2522       0xFFFFFFFF | 1465                   (e) { return e is RangeError; }); | 
| 2523     ], view); | 1466     Expect.throws(() { view.add(0); }, | 
| 2524     Expect.throws(() { | 1467                   (e) { return e is UnsupportedError; }); | 
| 2525       view[-1] = 0; | 1468     Expect.throws(() { view.addAll([0]); }, | 
| 2526     }, (e) { | 1469                   (e) { return e is UnsupportedError; }); | 
| 2527       return e is RangeError; | 1470     Expect.throws(() { view.clear(); }, | 
| 2528     }); | 1471                   (e) { return e is UnsupportedError; }); | 
| 2529     Expect.throws(() { | 1472     Expect.throws(() { view.length = 0; }, | 
| 2530       return view[-1]; | 1473                   (e) { return e is UnsupportedError; }); | 
| 2531     }, (e) { | 1474     Expect.throws(() { view.removeLast(); }, | 
| 2532       return e is RangeError; | 1475                   (e) { return e is UnsupportedError; }); | 
| 2533     }); | 1476     Expect.throws(() { view.removeRange(0, view.length - 1); }, | 
| 2534     Expect.throws(() { | 1477                   (e) { return e is UnsupportedError; }); | 
| 2535       view[view.length]; |  | 
| 2536     }, (e) { |  | 
| 2537       return e is RangeError; |  | 
| 2538     }); |  | 
| 2539     Expect.throws(() { |  | 
| 2540       view[view.length] = 0; |  | 
| 2541     }, (e) { |  | 
| 2542       return e is RangeError; |  | 
| 2543     }); |  | 
| 2544     Expect.throws(() { |  | 
| 2545       view.add(0); |  | 
| 2546     }, (e) { |  | 
| 2547       return e is UnsupportedError; |  | 
| 2548     }); |  | 
| 2549     Expect.throws(() { |  | 
| 2550       view.addAll([0]); |  | 
| 2551     }, (e) { |  | 
| 2552       return e is UnsupportedError; |  | 
| 2553     }); |  | 
| 2554     Expect.throws(() { |  | 
| 2555       view.clear(); |  | 
| 2556     }, (e) { |  | 
| 2557       return e is UnsupportedError; |  | 
| 2558     }); |  | 
| 2559     Expect.throws(() { |  | 
| 2560       view.length = 0; |  | 
| 2561     }, (e) { |  | 
| 2562       return e is UnsupportedError; |  | 
| 2563     }); |  | 
| 2564     Expect.throws(() { |  | 
| 2565       view.removeLast(); |  | 
| 2566     }, (e) { |  | 
| 2567       return e is UnsupportedError; |  | 
| 2568     }); |  | 
| 2569     Expect.throws(() { |  | 
| 2570       view.removeRange(0, view.length - 1); |  | 
| 2571     }, (e) { |  | 
| 2572       return e is UnsupportedError; |  | 
| 2573     }); |  | 
| 2574     for (int i = 0; i < view.length; ++i) { | 1478     for (int i = 0; i < view.length; ++i) { | 
| 2575       view[i] = 1 + i; | 1479       view[i] = 1 + i; | 
| 2576     } | 1480     } | 
| 2577     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], view); | 1481     Expect.listEquals([1, 2, 3, 4, 5, | 
| 2578     Expect.listEquals([ | 1482                        6, 7, 8, 9, 10], | 
| 2579       -1, | 1483                       view); | 
| 2580       -1, | 1484     Expect.listEquals([-1, -1, -1, -1, 1, 0, 0, 0, | 
| 2581       -1, | 1485                        2, 0, 0, 0, 3, 0, 0, 0, | 
| 2582       -1, | 1486                        4, 0, 0, 0, 5, 0, 0, 0, | 
| 2583       1, | 1487                        6, 0, 0, 0, 7, 0, 0, 0, | 
| 2584       0, | 1488                        8, 0, 0, 0, 9, 0, 0, 0, | 
| 2585       0, | 1489                        10, 0, 0, 0, -1, -1, -1, -1], | 
| 2586       0, | 1490                       array); | 
| 2587       2, |  | 
| 2588       0, |  | 
| 2589       0, |  | 
| 2590       0, |  | 
| 2591       3, |  | 
| 2592       0, |  | 
| 2593       0, |  | 
| 2594       0, |  | 
| 2595       4, |  | 
| 2596       0, |  | 
| 2597       0, |  | 
| 2598       0, |  | 
| 2599       5, |  | 
| 2600       0, |  | 
| 2601       0, |  | 
| 2602       0, |  | 
| 2603       6, |  | 
| 2604       0, |  | 
| 2605       0, |  | 
| 2606       0, |  | 
| 2607       7, |  | 
| 2608       0, |  | 
| 2609       0, |  | 
| 2610       0, |  | 
| 2611       8, |  | 
| 2612       0, |  | 
| 2613       0, |  | 
| 2614       0, |  | 
| 2615       9, |  | 
| 2616       0, |  | 
| 2617       0, |  | 
| 2618       0, |  | 
| 2619       10, |  | 
| 2620       0, |  | 
| 2621       0, |  | 
| 2622       0, |  | 
| 2623       -1, |  | 
| 2624       -1, |  | 
| 2625       -1, |  | 
| 2626       -1 |  | 
| 2627     ], array); |  | 
| 2628     for (int i = 0; i < view.length; ++i) { | 1491     for (int i = 0; i < view.length; ++i) { | 
| 2629       view[i] = 0x100000000 + i; | 1492       view[i] = 0x100000000 + i; | 
| 2630     } | 1493     } | 
| 2631     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], view); | 1494     Expect.listEquals([0, 1, 2, 3, 4, | 
| 2632     Expect.listEquals([ | 1495                        5, 6, 7, 8, 9], | 
| 2633       -1, | 1496                       view); | 
| 2634       -1, | 1497     Expect.listEquals([-1, -1, -1, -1, 0, 0, 0, 0, | 
| 2635       -1, | 1498                        1, 0, 0, 0, 2, 0, 0, 0, | 
| 2636       -1, | 1499                        3, 0, 0, 0, 4, 0, 0, 0, | 
| 2637       0, | 1500                        5, 0, 0, 0, 6, 0, 0, 0, | 
| 2638       0, | 1501                        7, 0, 0, 0, 8, 0, 0, 0, | 
| 2639       0, | 1502                        9, 0, 0, 0, -1, -1, -1, -1], | 
| 2640       0, | 1503                       array); | 
| 2641       1, |  | 
| 2642       0, |  | 
| 2643       0, |  | 
| 2644       0, |  | 
| 2645       2, |  | 
| 2646       0, |  | 
| 2647       0, |  | 
| 2648       0, |  | 
| 2649       3, |  | 
| 2650       0, |  | 
| 2651       0, |  | 
| 2652       0, |  | 
| 2653       4, |  | 
| 2654       0, |  | 
| 2655       0, |  | 
| 2656       0, |  | 
| 2657       5, |  | 
| 2658       0, |  | 
| 2659       0, |  | 
| 2660       0, |  | 
| 2661       6, |  | 
| 2662       0, |  | 
| 2663       0, |  | 
| 2664       0, |  | 
| 2665       7, |  | 
| 2666       0, |  | 
| 2667       0, |  | 
| 2668       0, |  | 
| 2669       8, |  | 
| 2670       0, |  | 
| 2671       0, |  | 
| 2672       0, |  | 
| 2673       9, |  | 
| 2674       0, |  | 
| 2675       0, |  | 
| 2676       0, |  | 
| 2677       -1, |  | 
| 2678       -1, |  | 
| 2679       -1, |  | 
| 2680       -1 |  | 
| 2681     ], array); |  | 
| 2682     for (int i = 0; i < view.length; ++i) { | 1504     for (int i = 0; i < view.length; ++i) { | 
| 2683       view[i] = 0xFFFFFFFF - i; | 1505       view[i] = 0xFFFFFFFF - i; | 
| 2684     } | 1506     } | 
| 2685     Expect.listEquals([ | 1507     Expect.listEquals([0xFFFFFFFF, 0xFFFFFFFE, | 
| 2686       0xFFFFFFFF, | 1508                        0xFFFFFFFD, 0xFFFFFFFC, | 
| 2687       0xFFFFFFFE, | 1509                        0xFFFFFFFB, 0xFFFFFFFA, | 
| 2688       0xFFFFFFFD, | 1510                        0xFFFFFFF9, 0xFFFFFFF8, | 
| 2689       0xFFFFFFFC, | 1511                        0xFFFFFFF7, 0xFFFFFFF6], | 
| 2690       0xFFFFFFFB, | 1512                       view); | 
| 2691       0xFFFFFFFA, | 1513     Expect.listEquals([-1, -1, -1, -1, -1, -1, -1, -1, | 
| 2692       0xFFFFFFF9, | 1514                        -2, -1, -1, -1, -3, -1, -1, -1, | 
| 2693       0xFFFFFFF8, | 1515                        -4, -1, -1, -1, -5, -1, -1, -1, | 
| 2694       0xFFFFFFF7, | 1516                        -6, -1, -1, -1, -7, -1, -1, -1, | 
| 2695       0xFFFFFFF6 | 1517                        -8, -1, -1, -1, -9, -1, -1, -1, | 
| 2696     ], view); | 1518                        -10, -1, -1, -1, -1, -1, -1, -1], | 
| 2697     Expect.listEquals([ | 1519                       array); | 
| 2698       -1, |  | 
| 2699       -1, |  | 
| 2700       -1, |  | 
| 2701       -1, |  | 
| 2702       -1, |  | 
| 2703       -1, |  | 
| 2704       -1, |  | 
| 2705       -1, |  | 
| 2706       -2, |  | 
| 2707       -1, |  | 
| 2708       -1, |  | 
| 2709       -1, |  | 
| 2710       -3, |  | 
| 2711       -1, |  | 
| 2712       -1, |  | 
| 2713       -1, |  | 
| 2714       -4, |  | 
| 2715       -1, |  | 
| 2716       -1, |  | 
| 2717       -1, |  | 
| 2718       -5, |  | 
| 2719       -1, |  | 
| 2720       -1, |  | 
| 2721       -1, |  | 
| 2722       -6, |  | 
| 2723       -1, |  | 
| 2724       -1, |  | 
| 2725       -1, |  | 
| 2726       -7, |  | 
| 2727       -1, |  | 
| 2728       -1, |  | 
| 2729       -1, |  | 
| 2730       -8, |  | 
| 2731       -1, |  | 
| 2732       -1, |  | 
| 2733       -1, |  | 
| 2734       -9, |  | 
| 2735       -1, |  | 
| 2736       -1, |  | 
| 2737       -1, |  | 
| 2738       -10, |  | 
| 2739       -1, |  | 
| 2740       -1, |  | 
| 2741       -1, |  | 
| 2742       -1, |  | 
| 2743       -1, |  | 
| 2744       -1, |  | 
| 2745       -1 |  | 
| 2746     ], array); |  | 
| 2747     for (int i = 0; i < view.length; ++i) { | 1520     for (int i = 0; i < view.length; ++i) { | 
| 2748       view[i] = i; | 1521       view[i] = i; | 
| 2749     } | 1522     } | 
| 2750     var copy = view.sublist(0, view.length); | 1523     var copy = view.sublist(0, view.length); | 
| 2751     Expect.isFalse(identical(copy, view)); | 1524     Expect.isFalse(identical(copy, view)); | 
| 2752     Expect.isTrue(copy is Uint32List); | 1525     Expect.isTrue(copy is Uint32List); | 
| 2753     Expect.equals(10, copy.length); | 1526     Expect.equals(10, copy.length); | 
| 2754     Expect.listEquals(view, copy); | 1527     Expect.listEquals(view, copy); | 
| 2755     var region = view.sublist(3, view.length - 3); | 1528     var region = view.sublist(3, view.length - 3); | 
| 2756     Expect.isTrue(copy is Uint32List); | 1529     Expect.isTrue(copy is Uint32List); | 
| 2757     Expect.equals(4, region.length); | 1530     Expect.equals(4, region.length); | 
| 2758     Expect.listEquals([3, 4, 5, 6], region); | 1531     Expect.listEquals([3, 4, 5, 6], region); | 
| 2759     view.setRange(3, 7, [0x100000001, 0, 1, 0xFFFFFFFF]); | 1532     view.setRange(3, 7, [0x100000001, 0, 1, 0xFFFFFFFF]); | 
| 2760     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFFFFFF, 7, 8, 9], view); | 1533     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFFFFFF, 7, 8, 9], | 
| 2761     Expect.listEquals([ | 1534                       view); | 
| 2762       -1, | 1535     Expect.listEquals([-1, -1, -1, -1, 0, 0, 0, 0, | 
| 2763       -1, | 1536                        1, 0, 0, 0, 2, 0, 0, 0, | 
| 2764       -1, | 1537                        1, 0, 0, 0, 0, 0, 0, 0, | 
| 2765       -1, | 1538                        1, 0, 0, 0, -1, -1, -1, -1, | 
| 2766       0, | 1539                        7, 0, 0, 0, 8, 0, 0, 0, | 
| 2767       0, | 1540                        9, 0, 0, 0, -1, -1, -1, -1], | 
| 2768       0, | 1541                       array); | 
| 2769       0, |  | 
| 2770       1, |  | 
| 2771       0, |  | 
| 2772       0, |  | 
| 2773       0, |  | 
| 2774       2, |  | 
| 2775       0, |  | 
| 2776       0, |  | 
| 2777       0, |  | 
| 2778       1, |  | 
| 2779       0, |  | 
| 2780       0, |  | 
| 2781       0, |  | 
| 2782       0, |  | 
| 2783       0, |  | 
| 2784       0, |  | 
| 2785       0, |  | 
| 2786       1, |  | 
| 2787       0, |  | 
| 2788       0, |  | 
| 2789       0, |  | 
| 2790       -1, |  | 
| 2791       -1, |  | 
| 2792       -1, |  | 
| 2793       -1, |  | 
| 2794       7, |  | 
| 2795       0, |  | 
| 2796       0, |  | 
| 2797       0, |  | 
| 2798       8, |  | 
| 2799       0, |  | 
| 2800       0, |  | 
| 2801       0, |  | 
| 2802       9, |  | 
| 2803       0, |  | 
| 2804       0, |  | 
| 2805       0, |  | 
| 2806       -1, |  | 
| 2807       -1, |  | 
| 2808       -1, |  | 
| 2809       -1 |  | 
| 2810     ], array); |  | 
| 2811   } | 1542   } | 
| 2812 | 1543 | 
| 2813   static testUint32ListView() { | 1544   static testUint32ListView() { | 
| 2814     var array = new Int8List(48); | 1545     var array = new Int8List(48); | 
| 2815     testUint32ListViewImpl(array); | 1546     testUint32ListViewImpl(array); | 
| 2816   } | 1547   } | 
| 2817 | 1548 | 
| 2818   static testInt64ListViewImpl(var array) { | 1549   static testInt64ListViewImpl(var array) { | 
| 2819     Expect.equals(96, array.length); | 1550     Expect.equals(96, array.length); | 
| 2820     Expect.equals(1, array.elementSizeInBytes); | 1551     Expect.equals(1, array.elementSizeInBytes); | 
| 2821     Expect.equals(96, array.lengthInBytes); | 1552     Expect.equals(96, array.lengthInBytes); | 
| 2822     for (int i = 0; i < array.length; ++i) { | 1553     for (int i = 0; i < array.length; ++i) { | 
| 2823       array[i] = 0xFF; | 1554       array[i] = 0xFF; | 
| 2824     } | 1555     } | 
| 2825     Expect.throws(() { | 1556     Expect.throws(() { new Int64List.view(array.buffer, -1); }, | 
| 2826       new Int64List.view(array.buffer, -1); | 1557                   (e) { return e is RangeError; }); | 
| 2827     }, (e) { | 1558     Expect.throws(() { new Int64List.view(array.buffer, 0, -1); }, | 
| 2828       return e is RangeError; | 1559                   (e) { return e is RangeError; }); | 
| 2829     }); | 1560     Expect.throws(() { new Int64List.view(array.buffer, | 
| 2830     Expect.throws(() { | 1561                                           array.lengthInBytes + 1); }, | 
| 2831       new Int64List.view(array.buffer, 0, -1); | 1562                   (e) { return e is RangeError; }); | 
| 2832     }, (e) { | 1563     Expect.throws(() { new Int64List.view(array.buffer, | 
| 2833       return e is RangeError; | 1564                                           0, array.length + 1); }, | 
| 2834     }); | 1565                   (e) { return e is RangeError; }); | 
| 2835     Expect.throws(() { | 1566     Expect.throws(() { new Int64List.view(array.buffer, | 
| 2836       new Int64List.view(array.buffer, array.lengthInBytes + 1); | 1567                                           array.length - 1, 2); }, | 
| 2837     }, (e) { | 1568                   (e) { return e is RangeError; }); | 
| 2838       return e is RangeError; | 1569     var empty = new Int64List.view(array.buffer, | 
| 2839     }); | 1570                                    array.lengthInBytes); | 
| 2840     Expect.throws(() { |  | 
| 2841       new Int64List.view(array.buffer, 0, array.length + 1); |  | 
| 2842     }, (e) { |  | 
| 2843       return e is RangeError; |  | 
| 2844     }); |  | 
| 2845     Expect.throws(() { |  | 
| 2846       new Int64List.view(array.buffer, array.length - 1, 2); |  | 
| 2847     }, (e) { |  | 
| 2848       return e is RangeError; |  | 
| 2849     }); |  | 
| 2850     var empty = new Int64List.view(array.buffer, array.lengthInBytes); |  | 
| 2851     Expect.isTrue(empty is List<int>); | 1571     Expect.isTrue(empty is List<int>); | 
| 2852     Expect.isTrue(empty is Int64List); | 1572     Expect.isTrue(empty is Int64List); | 
| 2853     Expect.equals(0, empty.length); | 1573     Expect.equals(0, empty.length); | 
| 2854     var whole = new Int64List.view(array.buffer); | 1574     var whole = new Int64List.view(array.buffer); | 
| 2855     Expect.isTrue(whole is List<int>); | 1575     Expect.isTrue(whole is List<int>); | 
| 2856     Expect.isTrue(whole is Int64List); | 1576     Expect.isTrue(whole is Int64List); | 
| 2857     Expect.equals(12, whole.length); | 1577     Expect.equals(12, whole.length); | 
| 2858     var view = new Int64List.view(array.buffer, 8, 10); | 1578     var view = new Int64List.view(array.buffer, 8, 10); | 
| 2859     Expect.isTrue(view is List<int>); | 1579     Expect.isTrue(view is List<int>); | 
| 2860     Expect.isTrue(view is Int64List); | 1580     Expect.isTrue(view is Int64List); | 
| 2861     Expect.equals(10, view.length); | 1581     Expect.equals(10, view.length); | 
| 2862     Expect.equals(8, view.elementSizeInBytes); | 1582     Expect.equals(8, view.elementSizeInBytes); | 
| 2863     Expect.equals(80, view.lengthInBytes); | 1583     Expect.equals(80, view.lengthInBytes); | 
| 2864     Expect.listEquals([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1], view); | 1584     Expect.listEquals([-1, -1, -1, -1, -1, | 
| 2865     Expect.throws(() { | 1585                        -1, -1, -1, -1, -1], | 
| 2866       view[-1] = 0; | 1586                       view); | 
| 2867     }, (e) { | 1587     Expect.throws(() { view[-1] = 0; }, | 
| 2868       return e is RangeError; | 1588                   (e) { return e is RangeError; }); | 
| 2869     }); | 1589     Expect.throws(() { return view[-1]; }, | 
| 2870     Expect.throws(() { | 1590                   (e) { return e is RangeError; }); | 
| 2871       return view[-1]; | 1591     Expect.throws(() { view[view.length]; }, | 
| 2872     }, (e) { | 1592                   (e) { return e is RangeError; }); | 
| 2873       return e is RangeError; | 1593     Expect.throws(() { view[10] = 0; }, | 
| 2874     }); | 1594                   (e) { return e is RangeError; }); | 
| 2875     Expect.throws(() { | 1595     Expect.throws(() { view.add(0); }, | 
| 2876       view[view.length]; | 1596                   (e) { return e is UnsupportedError; }); | 
| 2877     }, (e) { | 1597     Expect.throws(() { view.addAll([0]); }, | 
| 2878       return e is RangeError; | 1598                   (e) { return e is UnsupportedError; }); | 
| 2879     }); | 1599     Expect.throws(() { view.clear(); }, | 
| 2880     Expect.throws(() { | 1600                   (e) { return e is UnsupportedError; }); | 
| 2881       view[10] = 0; | 1601     Expect.throws(() { view.length = 0; }, | 
| 2882     }, (e) { | 1602                   (e) { return e is UnsupportedError; }); | 
| 2883       return e is RangeError; | 1603     Expect.throws(() { view.removeLast(); }, | 
| 2884     }); | 1604                   (e) { return e is UnsupportedError; }); | 
| 2885     Expect.throws(() { | 1605     Expect.throws(() { view.removeRange(0, view.length - 1); }, | 
| 2886       view.add(0); | 1606                   (e) { return e is UnsupportedError; }); | 
| 2887     }, (e) { |  | 
| 2888       return e is UnsupportedError; |  | 
| 2889     }); |  | 
| 2890     Expect.throws(() { |  | 
| 2891       view.addAll([0]); |  | 
| 2892     }, (e) { |  | 
| 2893       return e is UnsupportedError; |  | 
| 2894     }); |  | 
| 2895     Expect.throws(() { |  | 
| 2896       view.clear(); |  | 
| 2897     }, (e) { |  | 
| 2898       return e is UnsupportedError; |  | 
| 2899     }); |  | 
| 2900     Expect.throws(() { |  | 
| 2901       view.length = 0; |  | 
| 2902     }, (e) { |  | 
| 2903       return e is UnsupportedError; |  | 
| 2904     }); |  | 
| 2905     Expect.throws(() { |  | 
| 2906       view.removeLast(); |  | 
| 2907     }, (e) { |  | 
| 2908       return e is UnsupportedError; |  | 
| 2909     }); |  | 
| 2910     Expect.throws(() { |  | 
| 2911       view.removeRange(0, view.length - 1); |  | 
| 2912     }, (e) { |  | 
| 2913       return e is UnsupportedError; |  | 
| 2914     }); |  | 
| 2915     for (int i = 0; i < view.length; ++i) { | 1607     for (int i = 0; i < view.length; ++i) { | 
| 2916       view[i] = 1 + i; | 1608       view[i] = 1 + i; | 
| 2917     } | 1609     } | 
| 2918     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], view); | 1610     Expect.listEquals([1, 2, 3, 4, 5, | 
| 2919     Expect.listEquals([ | 1611                        6, 7, 8, 9, 10], | 
| 2920       0xFF, | 1612                       view); | 
| 2921       0xFF, | 1613     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 2922       0xFF, | 1614                        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2923       0xFF, | 1615                        0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2924       0xFF, | 1616                        0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2925       0xFF, | 1617                        0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2926       0xFF, | 1618                        0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2927       0xFF, | 1619                        0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2928       0x01, | 1620                        0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2929       0x00, | 1621                        0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2930       0x00, | 1622                        0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2931       0x00, | 1623                        0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 2932       0x00, | 1624                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 2933       0x00, | 1625                       array); | 
| 2934       0x00, |  | 
| 2935       0x00, |  | 
| 2936       0x02, |  | 
| 2937       0x00, |  | 
| 2938       0x00, |  | 
| 2939       0x00, |  | 
| 2940       0x00, |  | 
| 2941       0x00, |  | 
| 2942       0x00, |  | 
| 2943       0x00, |  | 
| 2944       0x03, |  | 
| 2945       0x00, |  | 
| 2946       0x00, |  | 
| 2947       0x00, |  | 
| 2948       0x00, |  | 
| 2949       0x00, |  | 
| 2950       0x00, |  | 
| 2951       0x00, |  | 
| 2952       0x04, |  | 
| 2953       0x00, |  | 
| 2954       0x00, |  | 
| 2955       0x00, |  | 
| 2956       0x00, |  | 
| 2957       0x00, |  | 
| 2958       0x00, |  | 
| 2959       0x00, |  | 
| 2960       0x05, |  | 
| 2961       0x00, |  | 
| 2962       0x00, |  | 
| 2963       0x00, |  | 
| 2964       0x00, |  | 
| 2965       0x00, |  | 
| 2966       0x00, |  | 
| 2967       0x00, |  | 
| 2968       0x06, |  | 
| 2969       0x00, |  | 
| 2970       0x00, |  | 
| 2971       0x00, |  | 
| 2972       0x00, |  | 
| 2973       0x00, |  | 
| 2974       0x00, |  | 
| 2975       0x00, |  | 
| 2976       0x07, |  | 
| 2977       0x00, |  | 
| 2978       0x00, |  | 
| 2979       0x00, |  | 
| 2980       0x00, |  | 
| 2981       0x00, |  | 
| 2982       0x00, |  | 
| 2983       0x00, |  | 
| 2984       0x08, |  | 
| 2985       0x00, |  | 
| 2986       0x00, |  | 
| 2987       0x00, |  | 
| 2988       0x00, |  | 
| 2989       0x00, |  | 
| 2990       0x00, |  | 
| 2991       0x00, |  | 
| 2992       0x09, |  | 
| 2993       0x00, |  | 
| 2994       0x00, |  | 
| 2995       0x00, |  | 
| 2996       0x00, |  | 
| 2997       0x00, |  | 
| 2998       0x00, |  | 
| 2999       0x00, |  | 
| 3000       0x0A, |  | 
| 3001       0x00, |  | 
| 3002       0x00, |  | 
| 3003       0x00, |  | 
| 3004       0x00, |  | 
| 3005       0x00, |  | 
| 3006       0x00, |  | 
| 3007       0x00, |  | 
| 3008       0xFF, |  | 
| 3009       0xFF, |  | 
| 3010       0xFF, |  | 
| 3011       0xFF, |  | 
| 3012       0xFF, |  | 
| 3013       0xFF, |  | 
| 3014       0xFF, |  | 
| 3015       0xFF |  | 
| 3016     ], array); |  | 
| 3017     for (int i = 0; i < view.length; ++i) { | 1626     for (int i = 0; i < view.length; ++i) { | 
| 3018       view[i] = 0x10000000000000000 + i; | 1627       view[i] = 0x10000000000000000 + i; | 
| 3019     } | 1628     } | 
| 3020     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], view); | 1629     Expect.listEquals([0, 1, 2, 3, 4, | 
| 3021     Expect.listEquals([ | 1630                        5, 6, 7, 8, 9], | 
| 3022       0xFF, | 1631                       view); | 
| 3023       0xFF, | 1632     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3024       0xFF, | 1633                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3025       0xFF, | 1634                        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3026       0xFF, | 1635                        0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3027       0xFF, | 1636                        0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3028       0xFF, | 1637                        0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3029       0xFF, | 1638                        0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3030       0x00, | 1639                        0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3031       0x00, | 1640                        0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3032       0x00, | 1641                        0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3033       0x00, | 1642                        0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3034       0x00, | 1643                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 3035       0x00, | 1644                       array); | 
| 3036       0x00, |  | 
| 3037       0x00, |  | 
| 3038       0x01, |  | 
| 3039       0x00, |  | 
| 3040       0x00, |  | 
| 3041       0x00, |  | 
| 3042       0x00, |  | 
| 3043       0x00, |  | 
| 3044       0x00, |  | 
| 3045       0x00, |  | 
| 3046       0x02, |  | 
| 3047       0x00, |  | 
| 3048       0x00, |  | 
| 3049       0x00, |  | 
| 3050       0x00, |  | 
| 3051       0x00, |  | 
| 3052       0x00, |  | 
| 3053       0x00, |  | 
| 3054       0x03, |  | 
| 3055       0x00, |  | 
| 3056       0x00, |  | 
| 3057       0x00, |  | 
| 3058       0x00, |  | 
| 3059       0x00, |  | 
| 3060       0x00, |  | 
| 3061       0x00, |  | 
| 3062       0x04, |  | 
| 3063       0x00, |  | 
| 3064       0x00, |  | 
| 3065       0x00, |  | 
| 3066       0x00, |  | 
| 3067       0x00, |  | 
| 3068       0x00, |  | 
| 3069       0x00, |  | 
| 3070       0x05, |  | 
| 3071       0x00, |  | 
| 3072       0x00, |  | 
| 3073       0x00, |  | 
| 3074       0x00, |  | 
| 3075       0x00, |  | 
| 3076       0x00, |  | 
| 3077       0x00, |  | 
| 3078       0x06, |  | 
| 3079       0x00, |  | 
| 3080       0x00, |  | 
| 3081       0x00, |  | 
| 3082       0x00, |  | 
| 3083       0x00, |  | 
| 3084       0x00, |  | 
| 3085       0x00, |  | 
| 3086       0x07, |  | 
| 3087       0x00, |  | 
| 3088       0x00, |  | 
| 3089       0x00, |  | 
| 3090       0x00, |  | 
| 3091       0x00, |  | 
| 3092       0x00, |  | 
| 3093       0x00, |  | 
| 3094       0x08, |  | 
| 3095       0x00, |  | 
| 3096       0x00, |  | 
| 3097       0x00, |  | 
| 3098       0x00, |  | 
| 3099       0x00, |  | 
| 3100       0x00, |  | 
| 3101       0x00, |  | 
| 3102       0x09, |  | 
| 3103       0x00, |  | 
| 3104       0x00, |  | 
| 3105       0x00, |  | 
| 3106       0x00, |  | 
| 3107       0x00, |  | 
| 3108       0x00, |  | 
| 3109       0x00, |  | 
| 3110       0xFF, |  | 
| 3111       0xFF, |  | 
| 3112       0xFF, |  | 
| 3113       0xFF, |  | 
| 3114       0xFF, |  | 
| 3115       0xFF, |  | 
| 3116       0xFF, |  | 
| 3117       0xFF |  | 
| 3118     ], array); |  | 
| 3119     for (int i = 0; i < view.length; ++i) { | 1645     for (int i = 0; i < view.length; ++i) { | 
| 3120       view[i] = -10 + i; | 1646       view[i] = -10 + i; | 
| 3121     } | 1647     } | 
| 3122     Expect.listEquals([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1], view); | 1648     Expect.listEquals([-10, -9, -8, -7, -6, | 
| 3123     Expect.listEquals([ | 1649                         -5, -4, -3, -2, -1], | 
| 3124       0xFF, | 1650                       view); | 
| 3125       0xFF, | 1651     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3126       0xFF, | 1652                        0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3127       0xFF, | 1653                        0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3128       0xFF, | 1654                        0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3129       0xFF, | 1655                        0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3130       0xFF, | 1656                        0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3131       0xFF, | 1657                        0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3132       0xF6, | 1658                        0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3133       0xFF, | 1659                        0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3134       0xFF, | 1660                        0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3135       0xFF, | 1661                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3136       0xFF, | 1662                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 3137       0xFF, | 1663                       array); | 
| 3138       0xFF, |  | 
| 3139       0xFF, |  | 
| 3140       0xF7, |  | 
| 3141       0xFF, |  | 
| 3142       0xFF, |  | 
| 3143       0xFF, |  | 
| 3144       0xFF, |  | 
| 3145       0xFF, |  | 
| 3146       0xFF, |  | 
| 3147       0xFF, |  | 
| 3148       0xF8, |  | 
| 3149       0xFF, |  | 
| 3150       0xFF, |  | 
| 3151       0xFF, |  | 
| 3152       0xFF, |  | 
| 3153       0xFF, |  | 
| 3154       0xFF, |  | 
| 3155       0xFF, |  | 
| 3156       0xF9, |  | 
| 3157       0xFF, |  | 
| 3158       0xFF, |  | 
| 3159       0xFF, |  | 
| 3160       0xFF, |  | 
| 3161       0xFF, |  | 
| 3162       0xFF, |  | 
| 3163       0xFF, |  | 
| 3164       0xFA, |  | 
| 3165       0xFF, |  | 
| 3166       0xFF, |  | 
| 3167       0xFF, |  | 
| 3168       0xFF, |  | 
| 3169       0xFF, |  | 
| 3170       0xFF, |  | 
| 3171       0xFF, |  | 
| 3172       0xFB, |  | 
| 3173       0xFF, |  | 
| 3174       0xFF, |  | 
| 3175       0xFF, |  | 
| 3176       0xFF, |  | 
| 3177       0xFF, |  | 
| 3178       0xFF, |  | 
| 3179       0xFF, |  | 
| 3180       0xFC, |  | 
| 3181       0xFF, |  | 
| 3182       0xFF, |  | 
| 3183       0xFF, |  | 
| 3184       0xFF, |  | 
| 3185       0xFF, |  | 
| 3186       0xFF, |  | 
| 3187       0xFF, |  | 
| 3188       0xFD, |  | 
| 3189       0xFF, |  | 
| 3190       0xFF, |  | 
| 3191       0xFF, |  | 
| 3192       0xFF, |  | 
| 3193       0xFF, |  | 
| 3194       0xFF, |  | 
| 3195       0xFF, |  | 
| 3196       0xFE, |  | 
| 3197       0xFF, |  | 
| 3198       0xFF, |  | 
| 3199       0xFF, |  | 
| 3200       0xFF, |  | 
| 3201       0xFF, |  | 
| 3202       0xFF, |  | 
| 3203       0xFF, |  | 
| 3204       0xFF, |  | 
| 3205       0xFF, |  | 
| 3206       0xFF, |  | 
| 3207       0xFF, |  | 
| 3208       0xFF, |  | 
| 3209       0xFF, |  | 
| 3210       0xFF, |  | 
| 3211       0xFF, |  | 
| 3212       0xFF, |  | 
| 3213       0xFF, |  | 
| 3214       0xFF, |  | 
| 3215       0xFF, |  | 
| 3216       0xFF, |  | 
| 3217       0xFF, |  | 
| 3218       0xFF, |  | 
| 3219       0xFF |  | 
| 3220     ], array); |  | 
| 3221     for (int i = 0; i < view.length; ++i) { | 1664     for (int i = 0; i < view.length; ++i) { | 
| 3222       view[i] = 0x7FFFFFFFFFFFFFFF - i; | 1665       view[i] = 0x7FFFFFFFFFFFFFFF - i; | 
| 3223     } | 1666     } | 
| 3224     Expect.listEquals([ | 1667     Expect.listEquals([0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFE, | 
| 3225       0x7FFFFFFFFFFFFFFF, | 1668                        0x7FFFFFFFFFFFFFFD, 0x7FFFFFFFFFFFFFFC, | 
| 3226       0x7FFFFFFFFFFFFFFE, | 1669                        0x7FFFFFFFFFFFFFFB, 0x7FFFFFFFFFFFFFFA, | 
| 3227       0x7FFFFFFFFFFFFFFD, | 1670                        0x7FFFFFFFFFFFFFF9, 0x7FFFFFFFFFFFFFF8, | 
| 3228       0x7FFFFFFFFFFFFFFC, | 1671                        0x7FFFFFFFFFFFFFF7, 0x7FFFFFFFFFFFFFF6], | 
| 3229       0x7FFFFFFFFFFFFFFB, | 1672                       view); | 
| 3230       0x7FFFFFFFFFFFFFFA, | 1673     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3231       0x7FFFFFFFFFFFFFF9, | 1674                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3232       0x7FFFFFFFFFFFFFF8, | 1675                        0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3233       0x7FFFFFFFFFFFFFF7, | 1676                        0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3234       0x7FFFFFFFFFFFFFF6 | 1677                        0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3235     ], view); | 1678                        0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3236     Expect.listEquals([ | 1679                        0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3237       0xFF, | 1680                        0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3238       0xFF, | 1681                        0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3239       0xFF, | 1682                        0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3240       0xFF, | 1683                        0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3241       0xFF, | 1684                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 3242       0xFF, | 1685                       array); | 
| 3243       0xFF, |  | 
| 3244       0xFF, |  | 
| 3245       0xFF, |  | 
| 3246       0xFF, |  | 
| 3247       0xFF, |  | 
| 3248       0xFF, |  | 
| 3249       0xFF, |  | 
| 3250       0xFF, |  | 
| 3251       0xFF, |  | 
| 3252       0x7F, |  | 
| 3253       0xFE, |  | 
| 3254       0xFF, |  | 
| 3255       0xFF, |  | 
| 3256       0xFF, |  | 
| 3257       0xFF, |  | 
| 3258       0xFF, |  | 
| 3259       0xFF, |  | 
| 3260       0x7F, |  | 
| 3261       0xFD, |  | 
| 3262       0xFF, |  | 
| 3263       0xFF, |  | 
| 3264       0xFF, |  | 
| 3265       0xFF, |  | 
| 3266       0xFF, |  | 
| 3267       0xFF, |  | 
| 3268       0x7F, |  | 
| 3269       0xFC, |  | 
| 3270       0xFF, |  | 
| 3271       0xFF, |  | 
| 3272       0xFF, |  | 
| 3273       0xFF, |  | 
| 3274       0xFF, |  | 
| 3275       0xFF, |  | 
| 3276       0x7F, |  | 
| 3277       0xFB, |  | 
| 3278       0xFF, |  | 
| 3279       0xFF, |  | 
| 3280       0xFF, |  | 
| 3281       0xFF, |  | 
| 3282       0xFF, |  | 
| 3283       0xFF, |  | 
| 3284       0x7F, |  | 
| 3285       0xFA, |  | 
| 3286       0xFF, |  | 
| 3287       0xFF, |  | 
| 3288       0xFF, |  | 
| 3289       0xFF, |  | 
| 3290       0xFF, |  | 
| 3291       0xFF, |  | 
| 3292       0x7F, |  | 
| 3293       0xF9, |  | 
| 3294       0xFF, |  | 
| 3295       0xFF, |  | 
| 3296       0xFF, |  | 
| 3297       0xFF, |  | 
| 3298       0xFF, |  | 
| 3299       0xFF, |  | 
| 3300       0x7F, |  | 
| 3301       0xF8, |  | 
| 3302       0xFF, |  | 
| 3303       0xFF, |  | 
| 3304       0xFF, |  | 
| 3305       0xFF, |  | 
| 3306       0xFF, |  | 
| 3307       0xFF, |  | 
| 3308       0x7F, |  | 
| 3309       0xF7, |  | 
| 3310       0xFF, |  | 
| 3311       0xFF, |  | 
| 3312       0xFF, |  | 
| 3313       0xFF, |  | 
| 3314       0xFF, |  | 
| 3315       0xFF, |  | 
| 3316       0x7F, |  | 
| 3317       0xF6, |  | 
| 3318       0xFF, |  | 
| 3319       0xFF, |  | 
| 3320       0xFF, |  | 
| 3321       0xFF, |  | 
| 3322       0xFF, |  | 
| 3323       0xFF, |  | 
| 3324       0x7F, |  | 
| 3325       0xFF, |  | 
| 3326       0xFF, |  | 
| 3327       0xFF, |  | 
| 3328       0xFF, |  | 
| 3329       0xFF, |  | 
| 3330       0xFF, |  | 
| 3331       0xFF, |  | 
| 3332       0xFF |  | 
| 3333     ], array); |  | 
| 3334     for (int i = 0; i < view.length; ++i) { | 1686     for (int i = 0; i < view.length; ++i) { | 
| 3335       view[i] = -0x8000000000000000 + i; | 1687       view[i] = -0x8000000000000000 + i; | 
| 3336     } | 1688     } | 
| 3337     Expect.listEquals([ | 1689     Expect.listEquals([-0x8000000000000000, -0x7FFFFFFFFFFFFFFF, | 
| 3338       -0x8000000000000000, | 1690                        -0x7FFFFFFFFFFFFFFE, -0x7FFFFFFFFFFFFFFD, | 
| 3339       -0x7FFFFFFFFFFFFFFF, | 1691                        -0x7FFFFFFFFFFFFFFC, -0x7FFFFFFFFFFFFFFB, | 
| 3340       -0x7FFFFFFFFFFFFFFE, | 1692                        -0x7FFFFFFFFFFFFFFA, -0x7FFFFFFFFFFFFFF9, | 
| 3341       -0x7FFFFFFFFFFFFFFD, | 1693                        -0x7FFFFFFFFFFFFFF8, -0x7FFFFFFFFFFFFFF7], | 
| 3342       -0x7FFFFFFFFFFFFFFC, | 1694                       view); | 
| 3343       -0x7FFFFFFFFFFFFFFB, | 1695     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3344       -0x7FFFFFFFFFFFFFFA, | 1696                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3345       -0x7FFFFFFFFFFFFFF9, | 1697                        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3346       -0x7FFFFFFFFFFFFFF8, | 1698                        0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3347       -0x7FFFFFFFFFFFFFF7 | 1699                        0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3348     ], view); | 1700                        0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3349     Expect.listEquals([ | 1701                        0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3350       0xFF, | 1702                        0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3351       0xFF, | 1703                        0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3352       0xFF, | 1704                        0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3353       0xFF, | 1705                        0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3354       0xFF, | 1706                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 3355       0xFF, | 1707                       array); | 
| 3356       0xFF, |  | 
| 3357       0xFF, |  | 
| 3358       0x00, |  | 
| 3359       0x00, |  | 
| 3360       0x00, |  | 
| 3361       0x00, |  | 
| 3362       0x00, |  | 
| 3363       0x00, |  | 
| 3364       0x00, |  | 
| 3365       0x80, |  | 
| 3366       0x01, |  | 
| 3367       0x00, |  | 
| 3368       0x00, |  | 
| 3369       0x00, |  | 
| 3370       0x00, |  | 
| 3371       0x00, |  | 
| 3372       0x00, |  | 
| 3373       0x80, |  | 
| 3374       0x02, |  | 
| 3375       0x00, |  | 
| 3376       0x00, |  | 
| 3377       0x00, |  | 
| 3378       0x00, |  | 
| 3379       0x00, |  | 
| 3380       0x00, |  | 
| 3381       0x80, |  | 
| 3382       0x03, |  | 
| 3383       0x00, |  | 
| 3384       0x00, |  | 
| 3385       0x00, |  | 
| 3386       0x00, |  | 
| 3387       0x00, |  | 
| 3388       0x00, |  | 
| 3389       0x80, |  | 
| 3390       0x04, |  | 
| 3391       0x00, |  | 
| 3392       0x00, |  | 
| 3393       0x00, |  | 
| 3394       0x00, |  | 
| 3395       0x00, |  | 
| 3396       0x00, |  | 
| 3397       0x80, |  | 
| 3398       0x05, |  | 
| 3399       0x00, |  | 
| 3400       0x00, |  | 
| 3401       0x00, |  | 
| 3402       0x00, |  | 
| 3403       0x00, |  | 
| 3404       0x00, |  | 
| 3405       0x80, |  | 
| 3406       0x06, |  | 
| 3407       0x00, |  | 
| 3408       0x00, |  | 
| 3409       0x00, |  | 
| 3410       0x00, |  | 
| 3411       0x00, |  | 
| 3412       0x00, |  | 
| 3413       0x80, |  | 
| 3414       0x07, |  | 
| 3415       0x00, |  | 
| 3416       0x00, |  | 
| 3417       0x00, |  | 
| 3418       0x00, |  | 
| 3419       0x00, |  | 
| 3420       0x00, |  | 
| 3421       0x80, |  | 
| 3422       0x08, |  | 
| 3423       0x00, |  | 
| 3424       0x00, |  | 
| 3425       0x00, |  | 
| 3426       0x00, |  | 
| 3427       0x00, |  | 
| 3428       0x00, |  | 
| 3429       0x80, |  | 
| 3430       0x09, |  | 
| 3431       0x00, |  | 
| 3432       0x00, |  | 
| 3433       0x00, |  | 
| 3434       0x00, |  | 
| 3435       0x00, |  | 
| 3436       0x00, |  | 
| 3437       0x80, |  | 
| 3438       0xFF, |  | 
| 3439       0xFF, |  | 
| 3440       0xFF, |  | 
| 3441       0xFF, |  | 
| 3442       0xFF, |  | 
| 3443       0xFF, |  | 
| 3444       0xFF, |  | 
| 3445       0xFF |  | 
| 3446     ], array); |  | 
| 3447     for (int i = 0; i < view.length; ++i) { | 1708     for (int i = 0; i < view.length; ++i) { | 
| 3448       view[i] = i; | 1709       view[i] = i; | 
| 3449     } | 1710     } | 
| 3450     var copy = view.sublist(0, view.length); | 1711     var copy = view.sublist(0, view.length); | 
| 3451     Expect.isFalse(identical(copy, view)); | 1712     Expect.isFalse(identical(copy, view)); | 
| 3452     Expect.isTrue(copy is Int64List); | 1713     Expect.isTrue(copy is Int64List); | 
| 3453     Expect.equals(10, copy.length); | 1714     Expect.equals(10, copy.length); | 
| 3454     Expect.listEquals(view, copy); | 1715     Expect.listEquals(view, copy); | 
| 3455     var region = view.sublist(3, view.length - 3); | 1716     var region = view.sublist(3, view.length - 3); | 
| 3456     Expect.isTrue(copy is Int64List); | 1717     Expect.isTrue(copy is Int64List); | 
| 3457     Expect.equals(4, region.length); | 1718     Expect.equals(4, region.length); | 
| 3458     Expect.listEquals([3, 4, 5, 6], region); | 1719     Expect.listEquals([3, 4, 5, 6], region); | 
| 3459     view.setRange(3, 7, [-0x8000000000000000, 0, 1, 0x7FFFFFFFFFFFFFFF]); | 1720     view.setRange(3, 7, [-0x8000000000000000, 0, 1, 0x7FFFFFFFFFFFFFFF]); | 
| 3460     Expect.listEquals( | 1721     Expect.listEquals([0, 1, 2, -0x8000000000000000, 0, | 
| 3461         [0, 1, 2, -0x8000000000000000, 0, 1, 0x7FFFFFFFFFFFFFFF, 7, 8, 9], | 1722                        1, 0x7FFFFFFFFFFFFFFF, 7, 8, 9], | 
| 3462         view); | 1723                       view); | 
| 3463     Expect.listEquals([ | 1724     Expect.listEquals([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | 
| 3464       0xFF, | 1725                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3465       0xFF, | 1726                        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3466       0xFF, | 1727                        0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3467       0xFF, | 1728                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 
| 3468       0xFF, | 1729                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3469       0xFF, | 1730                        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3470       0xFF, | 1731                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, | 
| 3471       0xFF, | 1732                        0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3472       0x00, | 1733                        0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3473       0x00, | 1734                        0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
| 3474       0x00, | 1735                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF], | 
| 3475       0x00, | 1736                       array); | 
| 3476       0x00, |  | 
| 3477       0x00, |  | 
| 3478       0x00, |  | 
| 3479       0x00, |  | 
| 3480       0x01, |  | 
| 3481       0x00, |  | 
| 3482       0x00, |  | 
| 3483       0x00, |  | 
| 3484       0x00, |  | 
| 3485       0x00, |  | 
| 3486       0x00, |  | 
| 3487       0x00, |  | 
| 3488       0x02, |  | 
| 3489       0x00, |  | 
| 3490       0x00, |  | 
| 3491       0x00, |  | 
| 3492       0x00, |  | 
| 3493       0x00, |  | 
| 3494       0x00, |  | 
| 3495       0x00, |  | 
| 3496       0x00, |  | 
| 3497       0x00, |  | 
| 3498       0x00, |  | 
| 3499       0x00, |  | 
| 3500       0x00, |  | 
| 3501       0x00, |  | 
| 3502       0x00, |  | 
| 3503       0x80, |  | 
| 3504       0x00, |  | 
| 3505       0x00, |  | 
| 3506       0x00, |  | 
| 3507       0x00, |  | 
| 3508       0x00, |  | 
| 3509       0x00, |  | 
| 3510       0x00, |  | 
| 3511       0x00, |  | 
| 3512       0x01, |  | 
| 3513       0x00, |  | 
| 3514       0x00, |  | 
| 3515       0x00, |  | 
| 3516       0x00, |  | 
| 3517       0x00, |  | 
| 3518       0x00, |  | 
| 3519       0x00, |  | 
| 3520       0xFF, |  | 
| 3521       0xFF, |  | 
| 3522       0xFF, |  | 
| 3523       0xFF, |  | 
| 3524       0xFF, |  | 
| 3525       0xFF, |  | 
| 3526       0xFF, |  | 
| 3527       0x7F, |  | 
| 3528       0x07, |  | 
| 3529       0x00, |  | 
| 3530       0x00, |  | 
| 3531       0x00, |  | 
| 3532       0x00, |  | 
| 3533       0x00, |  | 
| 3534       0x00, |  | 
| 3535       0x00, |  | 
| 3536       0x08, |  | 
| 3537       0x00, |  | 
| 3538       0x00, |  | 
| 3539       0x00, |  | 
| 3540       0x00, |  | 
| 3541       0x00, |  | 
| 3542       0x00, |  | 
| 3543       0x00, |  | 
| 3544       0x09, |  | 
| 3545       0x00, |  | 
| 3546       0x00, |  | 
| 3547       0x00, |  | 
| 3548       0x00, |  | 
| 3549       0x00, |  | 
| 3550       0x00, |  | 
| 3551       0x00, |  | 
| 3552       0xFF, |  | 
| 3553       0xFF, |  | 
| 3554       0xFF, |  | 
| 3555       0xFF, |  | 
| 3556       0xFF, |  | 
| 3557       0xFF, |  | 
| 3558       0xFF, |  | 
| 3559       0xFF |  | 
| 3560     ], array); |  | 
| 3561   } | 1737   } | 
| 3562 | 1738 | 
| 3563   static testInt64ListView() { | 1739   static testInt64ListView() { | 
| 3564     var array = new Uint8List(96); | 1740     var array = new Uint8List(96); | 
| 3565     testInt64ListViewImpl(array); | 1741     testInt64ListViewImpl(array); | 
| 3566   } | 1742   } | 
| 3567 | 1743 | 
| 3568   static testUint64ListViewImpl(var array) { | 1744   static testUint64ListViewImpl(var array) { | 
| 3569     Expect.isTrue(array is List<int>); | 1745     Expect.isTrue(array is List<int>); | 
| 3570     Expect.equals(96, array.length); | 1746     Expect.equals(96, array.length); | 
| 3571     Expect.equals(1, array.elementSizeInBytes); | 1747     Expect.equals(1, array.elementSizeInBytes); | 
| 3572     Expect.equals(96, array.lengthInBytes); | 1748     Expect.equals(96, array.lengthInBytes); | 
| 3573     for (int i = 0; i < array.length; ++i) { | 1749     for (int i = 0; i < array.length; ++i) { | 
| 3574       array[i] = -1; | 1750       array[i] = -1; | 
| 3575     } | 1751     } | 
| 3576     Expect.throws(() { | 1752     Expect.throws(() { new Uint64List.view(array.buffer, -1); }, | 
| 3577       new Uint64List.view(array.buffer, -1); | 1753                   (e) { return e is RangeError; }); | 
| 3578     }, (e) { | 1754     Expect.throws(() { new Uint64List.view(array.buffer, 0, -1); }, | 
| 3579       return e is RangeError; | 1755                   (e) { return e is RangeError; }); | 
| 3580     }); | 1756     Expect.throws(() { new Uint64List.view(array.buffer, | 
| 3581     Expect.throws(() { | 1757                                            array.lengthInBytes + 1); }, | 
| 3582       new Uint64List.view(array.buffer, 0, -1); | 1758                   (e) { return e is RangeError; }); | 
| 3583     }, (e) { | 1759     Expect.throws(() { new Uint64List.view(array.buffer, | 
| 3584       return e is RangeError; | 1760                                            0, array.length + 1); }, | 
| 3585     }); | 1761                   (e) { return e is RangeError; }); | 
| 3586     Expect.throws(() { | 1762     Expect.throws(() { new Uint64List.view(array.buffer, | 
| 3587       new Uint64List.view(array.buffer, array.lengthInBytes + 1); | 1763                                            array.length - 1, 2); }, | 
| 3588     }, (e) { | 1764                   (e) { return e is RangeError; }); | 
| 3589       return e is RangeError; | 1765     var empty = new Uint64List.view(array.buffer, | 
| 3590     }); | 1766                                     array.lengthInBytes); | 
| 3591     Expect.throws(() { |  | 
| 3592       new Uint64List.view(array.buffer, 0, array.length + 1); |  | 
| 3593     }, (e) { |  | 
| 3594       return e is RangeError; |  | 
| 3595     }); |  | 
| 3596     Expect.throws(() { |  | 
| 3597       new Uint64List.view(array.buffer, array.length - 1, 2); |  | 
| 3598     }, (e) { |  | 
| 3599       return e is RangeError; |  | 
| 3600     }); |  | 
| 3601     var empty = new Uint64List.view(array.buffer, array.lengthInBytes); |  | 
| 3602     Expect.isTrue(empty is List<int>); | 1767     Expect.isTrue(empty is List<int>); | 
| 3603     Expect.isTrue(empty is Uint64List); | 1768     Expect.isTrue(empty is Uint64List); | 
| 3604     Expect.equals(0, empty.length); | 1769     Expect.equals(0, empty.length); | 
| 3605     var whole = new Uint64List.view(array.buffer); | 1770     var whole = new Uint64List.view(array.buffer); | 
| 3606     Expect.isTrue(whole is List<int>); | 1771     Expect.isTrue(whole is List<int>); | 
| 3607     Expect.isTrue(whole is Uint64List); | 1772     Expect.isTrue(whole is Uint64List); | 
| 3608     Expect.equals(12, whole.length); | 1773     Expect.equals(12, whole.length); | 
| 3609     var view = new Uint64List.view(array.buffer, 8, 10); | 1774     var view = new Uint64List.view(array.buffer, 8, 10); | 
| 3610     Expect.isTrue(view is List<int>); | 1775     Expect.isTrue(view is List<int>); | 
| 3611     Expect.isTrue(view is Uint64List); | 1776     Expect.isTrue(view is Uint64List); | 
| 3612     Expect.equals(10, view.length); | 1777     Expect.equals(10, view.length); | 
| 3613     Expect.equals(8, view.elementSizeInBytes); | 1778     Expect.equals(8, view.elementSizeInBytes); | 
| 3614     Expect.equals(80, view.lengthInBytes); | 1779     Expect.equals(80, view.lengthInBytes); | 
| 3615     Expect.listEquals([ | 1780     Expect.listEquals([0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, | 
| 3616       0xFFFFFFFFFFFFFFFF, | 1781                        0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, | 
| 3617       0xFFFFFFFFFFFFFFFF, | 1782                        0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, | 
| 3618       0xFFFFFFFFFFFFFFFF, | 1783                        0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, | 
| 3619       0xFFFFFFFFFFFFFFFF, | 1784                        0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF], | 
| 3620       0xFFFFFFFFFFFFFFFF, | 1785                       view); | 
| 3621       0xFFFFFFFFFFFFFFFF, | 1786     Expect.throws(() { view[-1] = 0; }, | 
| 3622       0xFFFFFFFFFFFFFFFF, | 1787                   (e) { return e is RangeError; }); | 
| 3623       0xFFFFFFFFFFFFFFFF, | 1788     Expect.throws(() { return view[-1]; }, | 
| 3624       0xFFFFFFFFFFFFFFFF, | 1789                   (e) { return e is RangeError; }); | 
| 3625       0xFFFFFFFFFFFFFFFF | 1790     Expect.throws(() { view[view.length]; }, | 
| 3626     ], view); | 1791                   (e) { return e is RangeError; }); | 
| 3627     Expect.throws(() { | 1792     Expect.throws(() { view[view.length] = 0; }, | 
| 3628       view[-1] = 0; | 1793                   (e) { return e is RangeError; }); | 
| 3629     }, (e) { | 1794     Expect.throws(() { view.add(0); }, | 
| 3630       return e is RangeError; | 1795                   (e) { return e is UnsupportedError; }); | 
| 3631     }); | 1796     Expect.throws(() { view.addAll([0]); }, | 
| 3632     Expect.throws(() { | 1797                   (e) { return e is UnsupportedError; }); | 
| 3633       return view[-1]; | 1798     Expect.throws(() { view.clear(); }, | 
| 3634     }, (e) { | 1799                   (e) { return e is UnsupportedError; }); | 
| 3635       return e is RangeError; | 1800     Expect.throws(() { view.length = 0; }, | 
| 3636     }); | 1801                   (e) { return e is UnsupportedError; }); | 
| 3637     Expect.throws(() { | 1802     Expect.throws(() { view.removeLast(); }, | 
| 3638       view[view.length]; | 1803                   (e) { return e is UnsupportedError; }); | 
| 3639     }, (e) { | 1804     Expect.throws(() { view.removeRange(0, view.length - 1); }, | 
| 3640       return e is RangeError; | 1805                   (e) { return e is UnsupportedError; }); | 
| 3641     }); |  | 
| 3642     Expect.throws(() { |  | 
| 3643       view[view.length] = 0; |  | 
| 3644     }, (e) { |  | 
| 3645       return e is RangeError; |  | 
| 3646     }); |  | 
| 3647     Expect.throws(() { |  | 
| 3648       view.add(0); |  | 
| 3649     }, (e) { |  | 
| 3650       return e is UnsupportedError; |  | 
| 3651     }); |  | 
| 3652     Expect.throws(() { |  | 
| 3653       view.addAll([0]); |  | 
| 3654     }, (e) { |  | 
| 3655       return e is UnsupportedError; |  | 
| 3656     }); |  | 
| 3657     Expect.throws(() { |  | 
| 3658       view.clear(); |  | 
| 3659     }, (e) { |  | 
| 3660       return e is UnsupportedError; |  | 
| 3661     }); |  | 
| 3662     Expect.throws(() { |  | 
| 3663       view.length = 0; |  | 
| 3664     }, (e) { |  | 
| 3665       return e is UnsupportedError; |  | 
| 3666     }); |  | 
| 3667     Expect.throws(() { |  | 
| 3668       view.removeLast(); |  | 
| 3669     }, (e) { |  | 
| 3670       return e is UnsupportedError; |  | 
| 3671     }); |  | 
| 3672     Expect.throws(() { |  | 
| 3673       view.removeRange(0, view.length - 1); |  | 
| 3674     }, (e) { |  | 
| 3675       return e is UnsupportedError; |  | 
| 3676     }); |  | 
| 3677     for (int i = 0; i < view.length; ++i) { | 1806     for (int i = 0; i < view.length; ++i) { | 
| 3678       view[i] = 1 + i; | 1807       view[i] = 1 + i; | 
| 3679     } | 1808     } | 
| 3680     Expect.listEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], view); | 1809     Expect.listEquals([1, 2, 3, 4, 5, | 
| 3681     Expect.listEquals([ | 1810                        6, 7, 8, 9, 10], | 
| 3682       -1, | 1811                       view); | 
| 3683       -1, | 1812     Expect.listEquals([-1, -1, -1, -1, -1, -1, -1, -1, | 
| 3684       -1, | 1813                        1, 0, 0, 0, 0, 0, 0, 0, | 
| 3685       -1, | 1814                        2, 0, 0, 0, 0, 0, 0, 0, | 
| 3686       -1, | 1815                        3, 0, 0, 0, 0, 0, 0, 0, | 
| 3687       -1, | 1816                        4, 0, 0, 0, 0, 0, 0, 0, | 
| 3688       -1, | 1817                        5, 0, 0, 0, 0, 0, 0, 0, | 
| 3689       -1, | 1818                        6, 0, 0, 0, 0, 0, 0, 0, | 
| 3690       1, | 1819                        7, 0, 0, 0, 0, 0, 0, 0, | 
| 3691       0, | 1820                        8, 0, 0, 0, 0, 0, 0, 0, | 
| 3692       0, | 1821                        9, 0, 0, 0, 0, 0, 0, 0, | 
| 3693       0, | 1822                        10, 0, 0, 0, 0, 0, 0, 0, | 
| 3694       0, | 1823                        -1, -1, -1, -1, -1, -1, -1, -1], | 
| 3695       0, | 1824                       array); | 
| 3696       0, |  | 
| 3697       0, |  | 
| 3698       2, |  | 
| 3699       0, |  | 
| 3700       0, |  | 
| 3701       0, |  | 
| 3702       0, |  | 
| 3703       0, |  | 
| 3704       0, |  | 
| 3705       0, |  | 
| 3706       3, |  | 
| 3707       0, |  | 
| 3708       0, |  | 
| 3709       0, |  | 
| 3710       0, |  | 
| 3711       0, |  | 
| 3712       0, |  | 
| 3713       0, |  | 
| 3714       4, |  | 
| 3715       0, |  | 
| 3716       0, |  | 
| 3717       0, |  | 
| 3718       0, |  | 
| 3719       0, |  | 
| 3720       0, |  | 
| 3721       0, |  | 
| 3722       5, |  | 
| 3723       0, |  | 
| 3724       0, |  | 
| 3725       0, |  | 
| 3726       0, |  | 
| 3727       0, |  | 
| 3728       0, |  | 
| 3729       0, |  | 
| 3730       6, |  | 
| 3731       0, |  | 
| 3732       0, |  | 
| 3733       0, |  | 
| 3734       0, |  | 
| 3735       0, |  | 
| 3736       0, |  | 
| 3737       0, |  | 
| 3738       7, |  | 
| 3739       0, |  | 
| 3740       0, |  | 
| 3741       0, |  | 
| 3742       0, |  | 
| 3743       0, |  | 
| 3744       0, |  | 
| 3745       0, |  | 
| 3746       8, |  | 
| 3747       0, |  | 
| 3748       0, |  | 
| 3749       0, |  | 
| 3750       0, |  | 
| 3751       0, |  | 
| 3752       0, |  | 
| 3753       0, |  | 
| 3754       9, |  | 
| 3755       0, |  | 
| 3756       0, |  | 
| 3757       0, |  | 
| 3758       0, |  | 
| 3759       0, |  | 
| 3760       0, |  | 
| 3761       0, |  | 
| 3762       10, |  | 
| 3763       0, |  | 
| 3764       0, |  | 
| 3765       0, |  | 
| 3766       0, |  | 
| 3767       0, |  | 
| 3768       0, |  | 
| 3769       0, |  | 
| 3770       -1, |  | 
| 3771       -1, |  | 
| 3772       -1, |  | 
| 3773       -1, |  | 
| 3774       -1, |  | 
| 3775       -1, |  | 
| 3776       -1, |  | 
| 3777       -1 |  | 
| 3778     ], array); |  | 
| 3779     for (int i = 0; i < view.length; ++i) { | 1825     for (int i = 0; i < view.length; ++i) { | 
| 3780       view[i] = 0x10000000000000000 + i; | 1826       view[i] = 0x10000000000000000 + i; | 
| 3781     } | 1827     } | 
| 3782     Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], view); | 1828     Expect.listEquals([0, 1, 2, 3, 4, | 
| 3783     Expect.listEquals([ | 1829                        5, 6, 7, 8, 9], | 
| 3784       -1, | 1830                       view); | 
| 3785       -1, | 1831     Expect.listEquals([-1, -1, -1, -1, -1, -1, -1, -1, | 
| 3786       -1, | 1832                        0, 0, 0, 0, 0, 0, 0, 0, | 
| 3787       -1, | 1833                        1, 0, 0, 0, 0, 0, 0, 0, | 
| 3788       -1, | 1834                        2, 0, 0, 0, 0, 0, 0, 0, | 
| 3789       -1, | 1835                        3, 0, 0, 0, 0, 0, 0, 0, | 
| 3790       -1, | 1836                        4, 0, 0, 0, 0, 0, 0, 0, | 
| 3791       -1, | 1837                        5, 0, 0, 0, 0, 0, 0, 0, | 
| 3792       0, | 1838                        6, 0, 0, 0, 0, 0, 0, 0, | 
| 3793       0, | 1839                        7, 0, 0, 0, 0, 0, 0, 0, | 
| 3794       0, | 1840                        8, 0, 0, 0, 0, 0, 0, 0, | 
| 3795       0, | 1841                        9, 0, 0, 0, 0, 0, 0, 0, | 
| 3796       0, | 1842                        -1, -1, -1, -1, -1, -1, -1, -1], | 
| 3797       0, | 1843                       array); | 
| 3798       0, |  | 
| 3799       0, |  | 
| 3800       1, |  | 
| 3801       0, |  | 
| 3802       0, |  | 
| 3803       0, |  | 
| 3804       0, |  | 
| 3805       0, |  | 
| 3806       0, |  | 
| 3807       0, |  | 
| 3808       2, |  | 
| 3809       0, |  | 
| 3810       0, |  | 
| 3811       0, |  | 
| 3812       0, |  | 
| 3813       0, |  | 
| 3814       0, |  | 
| 3815       0, |  | 
| 3816       3, |  | 
| 3817       0, |  | 
| 3818       0, |  | 
| 3819       0, |  | 
| 3820       0, |  | 
| 3821       0, |  | 
| 3822       0, |  | 
| 3823       0, |  | 
| 3824       4, |  | 
| 3825       0, |  | 
| 3826       0, |  | 
| 3827       0, |  | 
| 3828       0, |  | 
| 3829       0, |  | 
| 3830       0, |  | 
| 3831       0, |  | 
| 3832       5, |  | 
| 3833       0, |  | 
| 3834       0, |  | 
| 3835       0, |  | 
| 3836       0, |  | 
| 3837       0, |  | 
| 3838       0, |  | 
| 3839       0, |  | 
| 3840       6, |  | 
| 3841       0, |  | 
| 3842       0, |  | 
| 3843       0, |  | 
| 3844       0, |  | 
| 3845       0, |  | 
| 3846       0, |  | 
| 3847       0, |  | 
| 3848       7, |  | 
| 3849       0, |  | 
| 3850       0, |  | 
| 3851       0, |  | 
| 3852       0, |  | 
| 3853       0, |  | 
| 3854       0, |  | 
| 3855       0, |  | 
| 3856       8, |  | 
| 3857       0, |  | 
| 3858       0, |  | 
| 3859       0, |  | 
| 3860       0, |  | 
| 3861       0, |  | 
| 3862       0, |  | 
| 3863       0, |  | 
| 3864       9, |  | 
| 3865       0, |  | 
| 3866       0, |  | 
| 3867       0, |  | 
| 3868       0, |  | 
| 3869       0, |  | 
| 3870       0, |  | 
| 3871       0, |  | 
| 3872       -1, |  | 
| 3873       -1, |  | 
| 3874       -1, |  | 
| 3875       -1, |  | 
| 3876       -1, |  | 
| 3877       -1, |  | 
| 3878       -1, |  | 
| 3879       -1 |  | 
| 3880     ], array); |  | 
| 3881     for (int i = 0; i < view.length; ++i) { | 1844     for (int i = 0; i < view.length; ++i) { | 
| 3882       view[i] = 0xFFFFFFFFFFFFFFFF - i; | 1845       view[i] = 0xFFFFFFFFFFFFFFFF - i; | 
| 3883     } | 1846     } | 
| 3884     Expect.listEquals([ | 1847     Expect.listEquals([0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFE, | 
| 3885       0xFFFFFFFFFFFFFFFF, | 1848                        0xFFFFFFFFFFFFFFFD, 0xFFFFFFFFFFFFFFFC, | 
| 3886       0xFFFFFFFFFFFFFFFE, | 1849                        0xFFFFFFFFFFFFFFFB, 0xFFFFFFFFFFFFFFFA, | 
| 3887       0xFFFFFFFFFFFFFFFD, | 1850                        0xFFFFFFFFFFFFFFF9, 0xFFFFFFFFFFFFFFF8, | 
| 3888       0xFFFFFFFFFFFFFFFC, | 1851                        0xFFFFFFFFFFFFFFF7, 0xFFFFFFFFFFFFFFF6], | 
| 3889       0xFFFFFFFFFFFFFFFB, | 1852                       view); | 
| 3890       0xFFFFFFFFFFFFFFFA, | 1853     Expect.listEquals([-1, -1, -1, -1, -1, -1, -1, -1, | 
| 3891       0xFFFFFFFFFFFFFFF9, | 1854                        -1, -1, -1, -1, -1, -1, -1, -1, | 
| 3892       0xFFFFFFFFFFFFFFF8, | 1855                        -2, -1, -1, -1, -1, -1, -1, -1, | 
| 3893       0xFFFFFFFFFFFFFFF7, | 1856                        -3, -1, -1, -1, -1, -1, -1, -1, | 
| 3894       0xFFFFFFFFFFFFFFF6 | 1857                        -4, -1, -1, -1, -1, -1, -1, -1, | 
| 3895     ], view); | 1858                        -5, -1, -1, -1, -1, -1, -1, -1, | 
| 3896     Expect.listEquals([ | 1859                        -6, -1, -1, -1, -1, -1, -1, -1, | 
| 3897       -1, | 1860                        -7, -1, -1, -1, -1, -1, -1, -1, | 
| 3898       -1, | 1861                        -8, -1, -1, -1, -1, -1, -1, -1, | 
| 3899       -1, | 1862                        -9, -1, -1, -1, -1, -1, -1, -1, | 
| 3900       -1, | 1863                        -10, -1, -1, -1, -1, -1, -1, -1, | 
| 3901       -1, | 1864                        -1, -1, -1, -1, -1, -1, -1, -1], | 
| 3902       -1, | 1865                       array); | 
| 3903       -1, |  | 
| 3904       -1, |  | 
| 3905       -1, |  | 
| 3906       -1, |  | 
| 3907       -1, |  | 
| 3908       -1, |  | 
| 3909       -1, |  | 
| 3910       -1, |  | 
| 3911       -1, |  | 
| 3912       -1, |  | 
| 3913       -2, |  | 
| 3914       -1, |  | 
| 3915       -1, |  | 
| 3916       -1, |  | 
| 3917       -1, |  | 
| 3918       -1, |  | 
| 3919       -1, |  | 
| 3920       -1, |  | 
| 3921       -3, |  | 
| 3922       -1, |  | 
| 3923       -1, |  | 
| 3924       -1, |  | 
| 3925       -1, |  | 
| 3926       -1, |  | 
| 3927       -1, |  | 
| 3928       -1, |  | 
| 3929       -4, |  | 
| 3930       -1, |  | 
| 3931       -1, |  | 
| 3932       -1, |  | 
| 3933       -1, |  | 
| 3934       -1, |  | 
| 3935       -1, |  | 
| 3936       -1, |  | 
| 3937       -5, |  | 
| 3938       -1, |  | 
| 3939       -1, |  | 
| 3940       -1, |  | 
| 3941       -1, |  | 
| 3942       -1, |  | 
| 3943       -1, |  | 
| 3944       -1, |  | 
| 3945       -6, |  | 
| 3946       -1, |  | 
| 3947       -1, |  | 
| 3948       -1, |  | 
| 3949       -1, |  | 
| 3950       -1, |  | 
| 3951       -1, |  | 
| 3952       -1, |  | 
| 3953       -7, |  | 
| 3954       -1, |  | 
| 3955       -1, |  | 
| 3956       -1, |  | 
| 3957       -1, |  | 
| 3958       -1, |  | 
| 3959       -1, |  | 
| 3960       -1, |  | 
| 3961       -8, |  | 
| 3962       -1, |  | 
| 3963       -1, |  | 
| 3964       -1, |  | 
| 3965       -1, |  | 
| 3966       -1, |  | 
| 3967       -1, |  | 
| 3968       -1, |  | 
| 3969       -9, |  | 
| 3970       -1, |  | 
| 3971       -1, |  | 
| 3972       -1, |  | 
| 3973       -1, |  | 
| 3974       -1, |  | 
| 3975       -1, |  | 
| 3976       -1, |  | 
| 3977       -10, |  | 
| 3978       -1, |  | 
| 3979       -1, |  | 
| 3980       -1, |  | 
| 3981       -1, |  | 
| 3982       -1, |  | 
| 3983       -1, |  | 
| 3984       -1, |  | 
| 3985       -1, |  | 
| 3986       -1, |  | 
| 3987       -1, |  | 
| 3988       -1, |  | 
| 3989       -1, |  | 
| 3990       -1, |  | 
| 3991       -1, |  | 
| 3992       -1 |  | 
| 3993     ], array); |  | 
| 3994     for (int i = 0; i < view.length; ++i) { | 1866     for (int i = 0; i < view.length; ++i) { | 
| 3995       view[i] = i; | 1867       view[i] = i; | 
| 3996     } | 1868     } | 
| 3997     var copy = view.sublist(0, view.length); | 1869     var copy = view.sublist(0, view.length); | 
| 3998     Expect.isFalse(identical(copy, view)); | 1870     Expect.isFalse(identical(copy, view)); | 
| 3999     Expect.isTrue(copy is Uint64List); | 1871     Expect.isTrue(copy is Uint64List); | 
| 4000     Expect.equals(10, copy.length); | 1872     Expect.equals(10, copy.length); | 
| 4001     Expect.listEquals(view, copy); | 1873     Expect.listEquals(view, copy); | 
| 4002     var region = view.sublist(3, view.length - 3); | 1874     var region = view.sublist(3, view.length - 3); | 
| 4003     Expect.isTrue(copy is Uint64List); | 1875     Expect.isTrue(copy is Uint64List); | 
| 4004     Expect.equals(4, region.length); | 1876     Expect.equals(4, region.length); | 
| 4005     Expect.listEquals([3, 4, 5, 6], region); | 1877     Expect.listEquals([3, 4, 5, 6], region); | 
| 4006     view.setRange(3, 7, [0x10000000000000001, 0, 1, 0xFFFFFFFFFFFFFFFF]); | 1878     view.setRange(3, 7, [0x10000000000000001, 0, 1, 0xFFFFFFFFFFFFFFFF]); | 
| 4007     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFFFFFFFFFFFFFF, 7, 8, 9], view); | 1879     Expect.listEquals([0, 1, 2, 1, 0, 1, 0xFFFFFFFFFFFFFFFF, 7, 8, 9], | 
| 4008     Expect.listEquals([ | 1880                       view); | 
| 4009       -1, | 1881     Expect.listEquals([-1, -1, -1, -1, -1, -1, -1, -1, | 
| 4010       -1, | 1882                        0, 0, 0, 0, 0, 0, 0, 0, | 
| 4011       -1, | 1883                        1, 0, 0, 0, 0, 0, 0, 0, | 
| 4012       -1, | 1884                        2, 0, 0, 0, 0, 0, 0, 0, | 
| 4013       -1, | 1885                        1, 0, 0, 0, 0, 0, 0, 0, | 
| 4014       -1, | 1886                        0, 0, 0, 0, 0, 0, 0, 0, | 
| 4015       -1, | 1887                        1, 0, 0, 0, 0, 0, 0, 0, | 
| 4016       -1, | 1888                        -1, -1, -1, -1, -1, -1, -1, -1, | 
| 4017       0, | 1889                        7, 0, 0, 0, 0, 0, 0, 0, | 
| 4018       0, | 1890                        8, 0, 0, 0, 0, 0, 0, 0, | 
| 4019       0, | 1891                        9, 0, 0, 0, 0, 0, 0, 0, | 
| 4020       0, | 1892                        -1, -1, -1, -1, -1, -1, -1, -1], | 
| 4021       0, | 1893                       array); | 
| 4022       0, |  | 
| 4023       0, |  | 
| 4024       0, |  | 
| 4025       1, |  | 
| 4026       0, |  | 
| 4027       0, |  | 
| 4028       0, |  | 
| 4029       0, |  | 
| 4030       0, |  | 
| 4031       0, |  | 
| 4032       0, |  | 
| 4033       2, |  | 
| 4034       0, |  | 
| 4035       0, |  | 
| 4036       0, |  | 
| 4037       0, |  | 
| 4038       0, |  | 
| 4039       0, |  | 
| 4040       0, |  | 
| 4041       1, |  | 
| 4042       0, |  | 
| 4043       0, |  | 
| 4044       0, |  | 
| 4045       0, |  | 
| 4046       0, |  | 
| 4047       0, |  | 
| 4048       0, |  | 
| 4049       0, |  | 
| 4050       0, |  | 
| 4051       0, |  | 
| 4052       0, |  | 
| 4053       0, |  | 
| 4054       0, |  | 
| 4055       0, |  | 
| 4056       0, |  | 
| 4057       1, |  | 
| 4058       0, |  | 
| 4059       0, |  | 
| 4060       0, |  | 
| 4061       0, |  | 
| 4062       0, |  | 
| 4063       0, |  | 
| 4064       0, |  | 
| 4065       -1, |  | 
| 4066       -1, |  | 
| 4067       -1, |  | 
| 4068       -1, |  | 
| 4069       -1, |  | 
| 4070       -1, |  | 
| 4071       -1, |  | 
| 4072       -1, |  | 
| 4073       7, |  | 
| 4074       0, |  | 
| 4075       0, |  | 
| 4076       0, |  | 
| 4077       0, |  | 
| 4078       0, |  | 
| 4079       0, |  | 
| 4080       0, |  | 
| 4081       8, |  | 
| 4082       0, |  | 
| 4083       0, |  | 
| 4084       0, |  | 
| 4085       0, |  | 
| 4086       0, |  | 
| 4087       0, |  | 
| 4088       0, |  | 
| 4089       9, |  | 
| 4090       0, |  | 
| 4091       0, |  | 
| 4092       0, |  | 
| 4093       0, |  | 
| 4094       0, |  | 
| 4095       0, |  | 
| 4096       0, |  | 
| 4097       -1, |  | 
| 4098       -1, |  | 
| 4099       -1, |  | 
| 4100       -1, |  | 
| 4101       -1, |  | 
| 4102       -1, |  | 
| 4103       -1, |  | 
| 4104       -1 |  | 
| 4105     ], array); |  | 
| 4106   } | 1894   } | 
| 4107 | 1895 | 
| 4108   static testUint64ListView() { | 1896   static testUint64ListView() { | 
| 4109     var array = new Int8List(96); | 1897     var array = new Int8List(96); | 
| 4110     testUint64ListViewImpl(array); | 1898     testUint64ListViewImpl(array); | 
| 4111   } | 1899   } | 
| 4112 | 1900 | 
| 4113   static testFloat32ListViewImpl(var array) { | 1901   static testFloat32ListViewImpl(var array) { | 
| 4114     Expect.isTrue(array is List<int>); | 1902     Expect.isTrue(array is List<int>); | 
| 4115     Expect.equals(12, array.length); | 1903     Expect.equals(12, array.length); | 
| 4116     Expect.equals(4, array.elementSizeInBytes); | 1904     Expect.equals(4, array.elementSizeInBytes); | 
| 4117     Expect.equals(48, array.lengthInBytes); | 1905     Expect.equals(48, array.lengthInBytes); | 
| 4118     for (int i = 0; i < array.length; ++i) { | 1906     for (int i = 0; i < array.length; ++i) { | 
| 4119       array[i] = 0xBF800000; | 1907       array[i] = 0xBF800000; | 
| 4120     } | 1908     } | 
| 4121     Expect.throws(() { | 1909     Expect.throws(() { new Float32List.view(array.buffer, -1); }, | 
| 4122       new Float32List.view(array.buffer, -1); | 1910                   (e) { return e is RangeError; }); | 
| 4123     }, (e) { | 1911     Expect.throws(() { new Float32List.view(array.buffer, 0, -1); }, | 
| 4124       return e is RangeError; | 1912                   (e) { return e is RangeError; }); | 
| 4125     }); | 1913     Expect.throws(() { new Float32List.view(array.buffer, | 
| 4126     Expect.throws(() { | 1914                                             array.lengthInBytes + 1); }, | 
| 4127       new Float32List.view(array.buffer, 0, -1); | 1915                   (e) { return e is RangeError; }); | 
| 4128     }, (e) { | 1916     Expect.throws(() { new Float32List.view(array.buffer, | 
| 4129       return e is RangeError; | 1917                                             0, array.lengthInBytes + 1); }, | 
| 4130     }); | 1918                   (e) { return e is RangeError; }); | 
| 4131     Expect.throws(() { | 1919     Expect.throws(() { new Float32List.view(array.buffer, | 
| 4132       new Float32List.view(array.buffer, array.lengthInBytes + 1); | 1920                                             array.lengthInBytes - 1, 2); }, | 
| 4133     }, (e) { | 1921                   (e) { return e is RangeError; }); | 
| 4134       return e is RangeError; | 1922     var empty = new Float32List.view(array.buffer, | 
| 4135     }); | 1923                                      array.lengthInBytes); | 
| 4136     Expect.throws(() { |  | 
| 4137       new Float32List.view(array.buffer, 0, array.lengthInBytes + 1); |  | 
| 4138     }, (e) { |  | 
| 4139       return e is RangeError; |  | 
| 4140     }); |  | 
| 4141     Expect.throws(() { |  | 
| 4142       new Float32List.view(array.buffer, array.lengthInBytes - 1, 2); |  | 
| 4143     }, (e) { |  | 
| 4144       return e is RangeError; |  | 
| 4145     }); |  | 
| 4146     var empty = new Float32List.view(array.buffer, array.lengthInBytes); |  | 
| 4147     Expect.isTrue(empty is List<double>); | 1924     Expect.isTrue(empty is List<double>); | 
| 4148     Expect.isTrue(empty is Float32List); | 1925     Expect.isTrue(empty is Float32List); | 
| 4149     Expect.equals(0, empty.length); | 1926     Expect.equals(0, empty.length); | 
| 4150     var whole = new Float32List.view(array.buffer); | 1927     var whole = new Float32List.view(array.buffer); | 
| 4151     Expect.isTrue(whole is List<double>); | 1928     Expect.isTrue(whole is List<double>); | 
| 4152     Expect.isTrue(whole is Float32List); | 1929     Expect.isTrue(whole is Float32List); | 
| 4153     Expect.equals(12, whole.length); | 1930     Expect.equals(12, whole.length); | 
| 4154     var view = new Float32List.view(array.buffer, 4, 10); | 1931     var view = new Float32List.view(array.buffer, 4, 10); | 
| 4155     Expect.isTrue(view is List<double>); | 1932     Expect.isTrue(view is List<double>); | 
| 4156     Expect.isTrue(view is Float32List); | 1933     Expect.isTrue(view is Float32List); | 
| 4157     Expect.equals(10, view.length); | 1934     Expect.equals(10, view.length); | 
| 4158     Expect.equals(4, view.elementSizeInBytes); | 1935     Expect.equals(4, view.elementSizeInBytes); | 
| 4159     Expect.equals(40, view.lengthInBytes); | 1936     Expect.equals(40, view.lengthInBytes); | 
| 4160     Expect.listEquals( | 1937     Expect.listEquals([-1.0, -1.0, -1.0, -1.0, -1.0, | 
| 4161         [-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0], view); | 1938                        -1.0, -1.0, -1.0, -1.0, -1.0], | 
| 4162     Expect.throws(() { | 1939                       view); | 
| 4163       view[-1] = 0.0; | 1940     Expect.throws(() { view[-1] = 0.0; }, | 
| 4164     }, (e) { | 1941                   (e) { return e is RangeError; }); | 
| 4165       return e is RangeError; | 1942     Expect.throws(() { return view[-1]; }, | 
| 4166     }); | 1943                   (e) { return e is RangeError; }); | 
| 4167     Expect.throws(() { | 1944     Expect.throws(() { view[10]; }, | 
| 4168       return view[-1]; | 1945                   (e) { return e is RangeError; }); | 
| 4169     }, (e) { | 1946     Expect.throws(() { view[10] = 0.0; }, | 
| 4170       return e is RangeError; | 1947                   (e) { return e is RangeError; }); | 
| 4171     }); | 1948     Expect.throws(() { array.add(0.0); }, | 
| 4172     Expect.throws(() { | 1949                   (e) { return e is UnsupportedError; }); | 
| 4173       view[10]; | 1950     Expect.throws(() { array.addAll([0]); }, | 
| 4174     }, (e) { | 1951                   (e) { return e is UnsupportedError; }); | 
| 4175       return e is RangeError; | 1952     Expect.throws(() { array.clear(); }, | 
| 4176     }); | 1953                   (e) { return e is UnsupportedError; }); | 
| 4177     Expect.throws(() { | 1954     Expect.throws(() { array.length = 0; }, | 
| 4178       view[10] = 0.0; | 1955                   (e) { return e is UnsupportedError; }); | 
| 4179     }, (e) { | 1956     Expect.throws(() { array.removeLast(); }, | 
| 4180       return e is RangeError; | 1957                   (e) { return e is UnsupportedError; }); | 
| 4181     }); | 1958     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 4182     Expect.throws(() { | 1959                   (e) { return e is UnsupportedError; }); | 
| 4183       array.add(0.0); |  | 
| 4184     }, (e) { |  | 
| 4185       return e is UnsupportedError; |  | 
| 4186     }); |  | 
| 4187     Expect.throws(() { |  | 
| 4188       array.addAll([0]); |  | 
| 4189     }, (e) { |  | 
| 4190       return e is UnsupportedError; |  | 
| 4191     }); |  | 
| 4192     Expect.throws(() { |  | 
| 4193       array.clear(); |  | 
| 4194     }, (e) { |  | 
| 4195       return e is UnsupportedError; |  | 
| 4196     }); |  | 
| 4197     Expect.throws(() { |  | 
| 4198       array.length = 0; |  | 
| 4199     }, (e) { |  | 
| 4200       return e is UnsupportedError; |  | 
| 4201     }); |  | 
| 4202     Expect.throws(() { |  | 
| 4203       array.removeLast(); |  | 
| 4204     }, (e) { |  | 
| 4205       return e is UnsupportedError; |  | 
| 4206     }); |  | 
| 4207     Expect.throws(() { |  | 
| 4208       array.removeRange(0, array.length - 1); |  | 
| 4209     }, (e) { |  | 
| 4210       return e is UnsupportedError; |  | 
| 4211     }); |  | 
| 4212     for (int i = 0; i < view.length; ++i) { | 1960     for (int i = 0; i < view.length; ++i) { | 
| 4213       view[i] = 1.0 + i; | 1961       view[i] = 1.0 + i; | 
| 4214     } | 1962     } | 
| 4215     Expect | 1963     Expect.listEquals([1.0, 2.0, 3.0, 4.0, 5.0, | 
| 4216         .listEquals([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0], view); | 1964                        6.0, 7.0, 8.0, 9.0, 10.0], | 
| 4217     Expect.listEquals([ | 1965                       view); | 
| 4218       0xBF800000, | 1966     Expect.listEquals([0xBF800000, 0x3F800000, | 
| 4219       0x3F800000, | 1967                        0x40000000, 0x40400000, | 
| 4220       0x40000000, | 1968                        0x40800000, 0x40A00000, | 
| 4221       0x40400000, | 1969                        0x40C00000, 0x40E00000, | 
| 4222       0x40800000, | 1970                        0x41000000, 0x41100000, | 
| 4223       0x40A00000, | 1971                        0x41200000, 0xBF800000], | 
| 4224       0x40C00000, | 1972                       array); | 
| 4225       0x40E00000, |  | 
| 4226       0x41000000, |  | 
| 4227       0x41100000, |  | 
| 4228       0x41200000, |  | 
| 4229       0xBF800000 |  | 
| 4230     ], array); |  | 
| 4231     // TODO: min, max, and round | 1973     // TODO: min, max, and round | 
| 4232     for (int i = 0; i < view.length; ++i) { | 1974     for (int i = 0; i < view.length; ++i) { | 
| 4233       view[i] = i * 1.0; | 1975       view[i] = i * 1.0; | 
| 4234     } | 1976     } | 
| 4235     var copy = view.sublist(0, view.length); | 1977     var copy = view.sublist(0, view.length); | 
| 4236     Expect.isFalse(identical(copy, view)); | 1978     Expect.isFalse(identical(copy, view)); | 
| 4237     Expect.isTrue(copy is Float32List); | 1979     Expect.isTrue(copy is Float32List); | 
| 4238     Expect.equals(10, copy.length); | 1980     Expect.equals(10, copy.length); | 
| 4239     Expect.listEquals(view, copy); | 1981     Expect.listEquals(view, copy); | 
| 4240     var region = view.sublist(3, view.length - 3); | 1982     var region = view.sublist(3, view.length - 3); | 
| 4241     Expect.isTrue(copy is Float32List); | 1983     Expect.isTrue(copy is Float32List); | 
| 4242     Expect.equals(4, region.length); | 1984     Expect.equals(4, region.length); | 
| 4243     Expect.listEquals([3.0, 4.0, 5.0, 6.0], region); | 1985     Expect.listEquals([3.0, 4.0, 5.0, 6.0], region); | 
| 4244     view.setRange(3, 7, [double.NEGATIVE_INFINITY, 0.0, 1.0, double.INFINITY]); | 1986     view.setRange(3, 7, [double.NEGATIVE_INFINITY, 0.0, 1.0, double.INFINITY]); | 
| 4245     Expect.listEquals([ | 1987     Expect.listEquals([0.0, 1.0, 2.0, double.NEGATIVE_INFINITY, 0.0, | 
| 4246       0.0, | 1988                        1.0, double.INFINITY, 7.0, 8.0, 9.0], | 
| 4247       1.0, | 1989                       view); | 
| 4248       2.0, | 1990     Expect.listEquals([0xBF800000, 0x00000000, | 
| 4249       double.NEGATIVE_INFINITY, | 1991                        0x3F800000, 0x40000000, | 
| 4250       0.0, | 1992                        0xFF800000, 0x00000000, | 
| 4251       1.0, | 1993                        0x3F800000, 0x7F800000, | 
| 4252       double.INFINITY, | 1994                        0x40E00000, 0x41000000, | 
| 4253       7.0, | 1995                        0x41100000, 0xBF800000], | 
| 4254       8.0, | 1996                       array); | 
| 4255       9.0 |  | 
| 4256     ], view); |  | 
| 4257     Expect.listEquals([ |  | 
| 4258       0xBF800000, |  | 
| 4259       0x00000000, |  | 
| 4260       0x3F800000, |  | 
| 4261       0x40000000, |  | 
| 4262       0xFF800000, |  | 
| 4263       0x00000000, |  | 
| 4264       0x3F800000, |  | 
| 4265       0x7F800000, |  | 
| 4266       0x40E00000, |  | 
| 4267       0x41000000, |  | 
| 4268       0x41100000, |  | 
| 4269       0xBF800000 |  | 
| 4270     ], array); |  | 
| 4271   } | 1997   } | 
| 4272 | 1998 | 
| 4273   static testFloat32ListView() { | 1999   static testFloat32ListView() { | 
| 4274     var array = new Uint32List(12); | 2000     var array = new Uint32List(12); | 
| 4275     testFloat32ListViewImpl(array); | 2001     testFloat32ListViewImpl(array); | 
| 4276   } | 2002   } | 
| 4277 | 2003 | 
| 4278   static testFloat64ListViewImpl(var array) { | 2004   static testFloat64ListViewImpl(var array) { | 
| 4279     Expect.isTrue(array is List<int>); | 2005     Expect.isTrue(array is List<int>); | 
| 4280     Expect.equals(12, array.length); | 2006     Expect.equals(12, array.length); | 
| 4281     Expect.equals(8, array.elementSizeInBytes); | 2007     Expect.equals(8, array.elementSizeInBytes); | 
| 4282     Expect.equals(96, array.lengthInBytes); | 2008     Expect.equals(96, array.lengthInBytes); | 
| 4283     for (int i = 0; i < array.length; ++i) { | 2009     for (int i = 0; i < array.length; ++i) { | 
| 4284       array[i] = 0xBFF0000000000000; | 2010       array[i] = 0xBFF0000000000000; | 
| 4285     } | 2011     } | 
| 4286     Expect.throws(() { | 2012     Expect.throws(() { new Float64List.view(array.buffer, -1); }, | 
| 4287       new Float64List.view(array.buffer, -1); | 2013                   (e) { return e is RangeError; }); | 
| 4288     }, (e) { | 2014     Expect.throws(() { new Float64List.view(array.buffer, 0, -1); }, | 
| 4289       return e is RangeError; | 2015                   (e) { return e is RangeError; }); | 
| 4290     }); | 2016     Expect.throws(() { new Float64List.view(array.buffer, | 
| 4291     Expect.throws(() { | 2017                                             array.lengthInBytes + 1); }, | 
| 4292       new Float64List.view(array.buffer, 0, -1); | 2018                   (e) { return e is RangeError; }); | 
| 4293     }, (e) { | 2019     Expect.throws(() { new Float64List.view(array.buffer, | 
| 4294       return e is RangeError; | 2020                                             0, array.lengthInBytes + 1); }, | 
| 4295     }); | 2021                   (e) { return e is RangeError; }); | 
| 4296     Expect.throws(() { | 2022     Expect.throws(() { new Float64List.view(array.buffer, | 
| 4297       new Float64List.view(array.buffer, array.lengthInBytes + 1); | 2023                                             array.lengthInBytes - 1, 2); }, | 
| 4298     }, (e) { | 2024                   (e) { return e is RangeError; }); | 
| 4299       return e is RangeError; | 2025     var empty = new Float64List.view(array.buffer, | 
| 4300     }); | 2026                                      array.lengthInBytes); | 
| 4301     Expect.throws(() { |  | 
| 4302       new Float64List.view(array.buffer, 0, array.lengthInBytes + 1); |  | 
| 4303     }, (e) { |  | 
| 4304       return e is RangeError; |  | 
| 4305     }); |  | 
| 4306     Expect.throws(() { |  | 
| 4307       new Float64List.view(array.buffer, array.lengthInBytes - 1, 2); |  | 
| 4308     }, (e) { |  | 
| 4309       return e is RangeError; |  | 
| 4310     }); |  | 
| 4311     var empty = new Float64List.view(array.buffer, array.lengthInBytes); |  | 
| 4312     Expect.isTrue(empty is List<double>); | 2027     Expect.isTrue(empty is List<double>); | 
| 4313     Expect.isTrue(empty is Float64List); | 2028     Expect.isTrue(empty is Float64List); | 
| 4314     Expect.equals(0, empty.length); | 2029     Expect.equals(0, empty.length); | 
| 4315     var whole = new Float64List.view(array.buffer); | 2030     var whole = new Float64List.view(array.buffer); | 
| 4316     Expect.isTrue(whole is List<double>); | 2031     Expect.isTrue(whole is List<double>); | 
| 4317     Expect.isTrue(whole is Float64List); | 2032     Expect.isTrue(whole is Float64List); | 
| 4318     Expect.equals(12, whole.length); | 2033     Expect.equals(12, whole.length); | 
| 4319     var view = new Float64List.view(array.buffer, 8, 10); | 2034     var view = new Float64List.view(array.buffer, 8, 10); | 
| 4320     Expect.isTrue(view is List<double>); | 2035     Expect.isTrue(view is List<double>); | 
| 4321     Expect.isTrue(view is Float64List); | 2036     Expect.isTrue(view is Float64List); | 
| 4322     Expect.equals(10, view.length); | 2037     Expect.equals(10, view.length); | 
| 4323     Expect.equals(8, view.elementSizeInBytes); | 2038     Expect.equals(8, view.elementSizeInBytes); | 
| 4324     Expect.equals(80, view.lengthInBytes); | 2039     Expect.equals(80, view.lengthInBytes); | 
| 4325     Expect.listEquals( | 2040     Expect.listEquals([-1.0, -1.0, -1.0, -1.0, -1.0, | 
| 4326         [-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0], view); | 2041                        -1.0, -1.0, -1.0, -1.0, -1.0], | 
| 4327     Expect.throws(() { | 2042                       view); | 
| 4328       view[-1] = 0.0; | 2043     Expect.throws(() { view[-1] = 0.0; }, | 
| 4329     }, (e) { | 2044                   (e) { return e is RangeError; }); | 
| 4330       return e is RangeError; | 2045     Expect.throws(() { return view[-1]; }, | 
| 4331     }); | 2046                   (e) { return e is RangeError; }); | 
| 4332     Expect.throws(() { | 2047     Expect.throws(() { view[10]; }, | 
| 4333       return view[-1]; | 2048                   (e) { return e is RangeError; }); | 
| 4334     }, (e) { | 2049     Expect.throws(() { view[10] = 0.0; }, | 
| 4335       return e is RangeError; | 2050                   (e) { return e is RangeError; }); | 
| 4336     }); | 2051     Expect.throws(() { array.add(0.0); }, | 
| 4337     Expect.throws(() { | 2052                   (e) { return e is UnsupportedError; }); | 
| 4338       view[10]; | 2053     Expect.throws(() { array.addAll([0]); }, | 
| 4339     }, (e) { | 2054                   (e) { return e is UnsupportedError; }); | 
| 4340       return e is RangeError; | 2055     Expect.throws(() { array.clear(); }, | 
| 4341     }); | 2056                   (e) { return e is UnsupportedError; }); | 
| 4342     Expect.throws(() { | 2057     Expect.throws(() { array.length = 0; }, | 
| 4343       view[10] = 0.0; | 2058                   (e) { return e is UnsupportedError; }); | 
| 4344     }, (e) { | 2059     Expect.throws(() { array.removeLast(); }, | 
| 4345       return e is RangeError; | 2060                   (e) { return e is UnsupportedError; }); | 
| 4346     }); | 2061     Expect.throws(() { array.removeRange(0, array.length - 1); }, | 
| 4347     Expect.throws(() { | 2062                   (e) { return e is UnsupportedError; }); | 
| 4348       array.add(0.0); |  | 
| 4349     }, (e) { |  | 
| 4350       return e is UnsupportedError; |  | 
| 4351     }); |  | 
| 4352     Expect.throws(() { |  | 
| 4353       array.addAll([0]); |  | 
| 4354     }, (e) { |  | 
| 4355       return e is UnsupportedError; |  | 
| 4356     }); |  | 
| 4357     Expect.throws(() { |  | 
| 4358       array.clear(); |  | 
| 4359     }, (e) { |  | 
| 4360       return e is UnsupportedError; |  | 
| 4361     }); |  | 
| 4362     Expect.throws(() { |  | 
| 4363       array.length = 0; |  | 
| 4364     }, (e) { |  | 
| 4365       return e is UnsupportedError; |  | 
| 4366     }); |  | 
| 4367     Expect.throws(() { |  | 
| 4368       array.removeLast(); |  | 
| 4369     }, (e) { |  | 
| 4370       return e is UnsupportedError; |  | 
| 4371     }); |  | 
| 4372     Expect.throws(() { |  | 
| 4373       array.removeRange(0, array.length - 1); |  | 
| 4374     }, (e) { |  | 
| 4375       return e is UnsupportedError; |  | 
| 4376     }); |  | 
| 4377     for (int i = 0; i < view.length; ++i) { | 2063     for (int i = 0; i < view.length; ++i) { | 
| 4378       view[i] = 1.0 + i; | 2064       view[i] = 1.0 + i; | 
| 4379     } | 2065     } | 
| 4380     Expect | 2066     Expect.listEquals([1.0, 2.0, 3.0, 4.0, 5.0, | 
| 4381         .listEquals([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0], view); | 2067                        6.0, 7.0, 8.0, 9.0, 10.0], | 
| 4382     Expect.listEquals([ | 2068                       view); | 
| 4383       0xBFF0000000000000, | 2069     Expect.listEquals([0xBFF0000000000000, 0x3FF0000000000000, | 
| 4384       0x3FF0000000000000, | 2070                        0x4000000000000000, 0x4008000000000000, | 
| 4385       0x4000000000000000, | 2071                        0x4010000000000000, 0x4014000000000000, | 
| 4386       0x4008000000000000, | 2072                        0x4018000000000000, 0x401C000000000000, | 
| 4387       0x4010000000000000, | 2073                        0x4020000000000000, 0x4022000000000000, | 
| 4388       0x4014000000000000, | 2074                        0x4024000000000000, 0xBFF0000000000000], | 
| 4389       0x4018000000000000, | 2075                       array); | 
| 4390       0x401C000000000000, |  | 
| 4391       0x4020000000000000, |  | 
| 4392       0x4022000000000000, |  | 
| 4393       0x4024000000000000, |  | 
| 4394       0xBFF0000000000000 |  | 
| 4395     ], array); |  | 
| 4396     // TODO: min, max | 2076     // TODO: min, max | 
| 4397     for (int i = 0; i < view.length; ++i) { | 2077     for (int i = 0; i < view.length; ++i) { | 
| 4398       view[i] = i * 1.0; | 2078       view[i] = i * 1.0; | 
| 4399     } | 2079     } | 
| 4400     var copy = view.sublist(0, view.length); | 2080     var copy = view.sublist(0, view.length); | 
| 4401     Expect.isFalse(identical(copy, view)); | 2081     Expect.isFalse(identical(copy, view)); | 
| 4402     Expect.isTrue(copy is Float64List); | 2082     Expect.isTrue(copy is Float64List); | 
| 4403     Expect.equals(10, copy.length); | 2083     Expect.equals(10, copy.length); | 
| 4404     Expect.listEquals(view, copy); | 2084     Expect.listEquals(view, copy); | 
| 4405     var region = view.sublist(3, view.length - 3); | 2085     var region = view.sublist(3, view.length - 3); | 
| 4406     Expect.isTrue(copy is Float64List); | 2086     Expect.isTrue(copy is Float64List); | 
| 4407     Expect.equals(4, region.length); | 2087     Expect.equals(4, region.length); | 
| 4408     Expect.listEquals([3.0, 4.0, 5.0, 6.0], region); | 2088     Expect.listEquals([3.0, 4.0, 5.0, 6.0], region); | 
| 4409     view.setRange(3, 7, [double.NEGATIVE_INFINITY, 0.0, 1.0, double.INFINITY]); | 2089     view.setRange(3, 7, [double.NEGATIVE_INFINITY, 0.0, 1.0, double.INFINITY]); | 
| 4410     Expect.listEquals([ | 2090     Expect.listEquals([0.0, 1.0, 2.0, double.NEGATIVE_INFINITY, 0.0, | 
| 4411       0.0, | 2091                        1.0, double.INFINITY, 7.0, 8.0, 9.0], | 
| 4412       1.0, | 2092                       view); | 
| 4413       2.0, | 2093     Expect.listEquals([0xBFF0000000000000, 0x0000000000000000, | 
| 4414       double.NEGATIVE_INFINITY, | 2094                        0x3FF0000000000000, 0x4000000000000000, | 
| 4415       0.0, | 2095                        0xFFF0000000000000, 0x0000000000000000, | 
| 4416       1.0, | 2096                        0x3FF0000000000000, 0x7FF0000000000000, | 
| 4417       double.INFINITY, | 2097                        0x401C000000000000, 0x4020000000000000, | 
| 4418       7.0, | 2098                        0x4022000000000000, 0xBFF0000000000000], | 
| 4419       8.0, | 2099                       array); | 
| 4420       9.0 |  | 
| 4421     ], view); |  | 
| 4422     Expect.listEquals([ |  | 
| 4423       0xBFF0000000000000, |  | 
| 4424       0x0000000000000000, |  | 
| 4425       0x3FF0000000000000, |  | 
| 4426       0x4000000000000000, |  | 
| 4427       0xFFF0000000000000, |  | 
| 4428       0x0000000000000000, |  | 
| 4429       0x3FF0000000000000, |  | 
| 4430       0x7FF0000000000000, |  | 
| 4431       0x401C000000000000, |  | 
| 4432       0x4020000000000000, |  | 
| 4433       0x4022000000000000, |  | 
| 4434       0xBFF0000000000000 |  | 
| 4435     ], array); |  | 
| 4436   } | 2100   } | 
| 4437 | 2101 | 
| 4438   static testFloat64ListView() { | 2102   static testFloat64ListView() { | 
| 4439     var array = new Uint64List(12); | 2103     var array = new Uint64List(12); | 
| 4440     testFloat64ListViewImpl(array); | 2104     testFloat64ListViewImpl(array); | 
| 4441   } | 2105   } | 
| 4442 | 2106 | 
| 4443   static testMain() { | 2107   static testMain() { | 
| 4444     testInt8List(); | 2108     testInt8List(); | 
| 4445     testUint8List(); | 2109     testUint8List(); | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 4459     testInt32ListView(); | 2123     testInt32ListView(); | 
| 4460     testUint32ListView(); | 2124     testUint32ListView(); | 
| 4461     testInt64ListView(); | 2125     testInt64ListView(); | 
| 4462     testUint64ListView(); | 2126     testUint64ListView(); | 
| 4463     testFloat32ListView(); | 2127     testFloat32ListView(); | 
| 4464     testFloat64ListView(); | 2128     testFloat64ListView(); | 
| 4465   } | 2129   } | 
| 4466 } | 2130 } | 
| 4467 | 2131 | 
| 4468 main() { | 2132 main() { | 
| 4469   for (var i = 0; i < 20; i++) { | 2133   for (var i=0; i<20; i++) { | 
| 4470     OptimizedByteArrayTest.testMain(); | 2134     OptimizedByteArrayTest.testMain(); | 
| 4471   } | 2135   } | 
| 4472 } | 2136 } | 
| OLD | NEW | 
|---|