_bitfield_web.dart 1.51 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5 6 7
import 'bitfield.dart' as bitfield;

/// The dart:html implementation of [bitfield.kMaxUnsignedSMI].
8
///
9
/// This value is used as an optimization to coerce some numbers to be within
10 11 12 13 14
/// the SMI range and avoid heap allocations. Because number encoding is
/// VM-specific, there's no guarantee that this optimization will be effective
/// on all JavaScript engines. The value picked here should be correct, but it
/// does not have to guarantee efficiency.
const int kMaxUnsignedSMI = -1;
15

16 17 18 19
/// The dart:html implementation of [bitfield.Bitfield].
class BitField<T extends dynamic> implements bitfield.BitField<T> {
  /// The dart:html implementation of [bitfield.Bitfield].
  // Can remove when we have metaclasses.
20 21 22
  // ignore: avoid_unused_constructor_parameters
  BitField(int length);

23 24
  /// The dart:html implementation of [bitfield.Bitfield.filled].
  // Can remove when we have metaclasses.
25 26 27
  // ignore: avoid_unused_constructor_parameters
  BitField.filled(int length, bool value);

28
  @override
29 30 31 32
  bool operator [](T index) {
    throw UnsupportedError('Not supported when compiling to JavaScript');
  }

33
  @override
34 35 36 37
  void operator []=(T index, bool value) {
    throw UnsupportedError('Not supported when compiling to JavaScript');
  }

38
  @override
39 40 41 42
  void reset([ bool value = false ]) {
    throw UnsupportedError('Not supported when compiling to JavaScript');
  }
}