// Copyright (c) 2013, 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.


class S1 {
  Object? a;
  Object? b;
  
  S1(this.a, this.b);
}

List<Object?> table = [
  new S1(1234, "1234"),
  new S1(null, []),
  new S1(1.234, {}),
  new S1("1.234", {}),
  new S1("key2", [null, 1.0])
];
