| // 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. |
| |
| // @dart = 2.9 |
| |
| // Regression test for dart2js, that used to minify a captured |
| // variable's name to the same name as inherited Object methods. |
| |
| var 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'; |
| } |
| } |