Chromium Code Reviews| Index: tests/language/critical_edge2_test.dart |
| diff --git a/tests/language/critical_edge2_test.dart b/tests/language/critical_edge2_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ecaaec0f4e9e5f299fa7bb80eec013f3e199e429 |
| --- /dev/null |
| +++ b/tests/language/critical_edge2_test.dart |
| @@ -0,0 +1,36 @@ |
| +// Copyright (c) 2014, 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. |
| + |
| +// This test broke dart2js. |
| +// A compiler must not construct a critical edge on this program. |
|
ngeoffray
2014/06/24 12:39:14
Maybe add a comment of the reason a critical edge
floitsch
2014/06/24 14:44:38
Added comment.
|
| + |
| +import "package:expect/expect.dart"; |
| + |
| +void parse(String uri) { |
| + int index = 0; |
| + int char = -1; |
| + |
| + void parseAuth() { |
| + index; |
| + char; |
| + } |
| + |
| + while (index < 1000) { |
| + char = uri.codeUnitAt(index); |
| + if (char == 1234) { |
| + break; |
| + } |
| + if (char == 0x3A) { |
| + return "good"; |
| + } |
| + index++; |
| + } |
| + |
| + print(char); |
| + return "bad"; |
| +} |
| + |
| +main() { |
| + Expect.equals("good", parse("dart:_foreign_helper")); |
|
ngeoffray
2014/06/24 12:39:14
Not very unit for a unit test :-) Seems like the l
floitsch
2014/06/24 14:44:38
I was not able to reduce the number of instruction
|
| +} |