// 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.

// Regression test for dart2js, that used to minify a captured
// variable's name to the same name as inherited Object methods.

List<dynamic> array = [new A()];

class A {
  operator ==(other) {
    return true;
  }
}

foo() {
  // Use lots of variables, to maximize the chance of collisions.
  var a = 42;
  var b = 42;
  var c = 42;
  var d = 42;
  var e = 42;
  var f = 42;
  var g = 42;
  var h = 42;
  var i = 42;
  var j = 42;
  var k = 42;
  var l = 42;
  var m = 42;
  var n = 42;
  array[0] = () {
    return a + b + c + d + e + f + g + h + i + j + k + l + m + n;
  };
}

main() {
  foo();
  if (array[0] == new A()) {
    throw 'Test failed';
  }
  if (array[0]() != 42 * 14) {
    throw 'Test failed';
  }
}
