| // Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file | 
 | // for details. All rights reserved. Use of this source code is governed by a | 
 | // BSD-style license that can be found in the LICENSE file. | 
 |  | 
 | // Regression test for https://github.com/dart-lang/sdk/issues/57091. | 
 | // Verify that bounds checks correctly happen when accessing short ByteData. | 
 |  | 
 | import 'dart:typed_data'; | 
 | import "package:expect/expect.dart"; | 
 |  | 
 | void testGet(ByteData data) { | 
 |   Expect.throws(() => data.getInt8(0)); | 
 |   Expect.throws(() => data.getUint8(0)); | 
 |   Expect.throws(() => data.getInt16(0)); | 
 |   Expect.throws(() => data.getUint16(0)); | 
 |   Expect.throws(() => data.getInt32(0)); | 
 |   Expect.throws(() => data.getUint32(0)); | 
 |   Expect.throws(() => data.getInt64(0)); | 
 |   Expect.throws(() => data.getUint64(0)); | 
 |   Expect.throws(() => data.getFloat32(0)); | 
 |   Expect.throws(() => data.getFloat64(0)); | 
 | } | 
 |  | 
 | void testSet(ByteData data) { | 
 |   Expect.throws(() => data.setInt8(0, 0)); | 
 |   Expect.throws(() => data.setUint8(0, 0)); | 
 |   Expect.throws(() => data.setInt16(0, 0)); | 
 |   Expect.throws(() => data.setUint16(0, 0)); | 
 |   Expect.throws(() => data.setInt32(0, 0)); | 
 |   Expect.throws(() => data.setUint32(0, 0)); | 
 |   Expect.throws(() => data.setInt64(0, 0)); | 
 |   Expect.throws(() => data.setUint64(0, 0)); | 
 |   Expect.throws(() => data.setFloat32(0, 0)); | 
 |   Expect.throws(() => data.setFloat64(0, 0)); | 
 | } | 
 |  | 
 | void main() { | 
 |   List<int> output = []; | 
 |   ByteData bytes = Uint8List.fromList(output).buffer.asByteData(); | 
 |   testGet(bytes); | 
 |   testSet(bytes); | 
 |   testGet(bytes.asUnmodifiableView()); | 
 | } |