| Index: tests/language/minify_closure_variable_collision_test.dart
|
| ===================================================================
|
| --- tests/language/minify_closure_variable_collision_test.dart (revision 0)
|
| +++ tests/language/minify_closure_variable_collision_test.dart (revision 0)
|
| @@ -0,0 +1,45 @@
|
| +// 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.
|
| +
|
| +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';
|
| + }
|
| +}
|
|
|