// 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.
// VMOptions=--new_gen_semi_max_size=1 --no_inline_alloc

// @dart = 2.9

// Regression test for slow-path allocation in the allocation stub.

library map_test;

import 'dart:collection';

void testCollection(var collection, n) {
  for (int i = 0; i < n; i++) {
    if (i % 1000 == 0) print(i);
    collection.add(i);
  }
}

main() {
  const int N = 100000;
  testCollection(new LinkedHashSet(), N);
}
