Index: test/codegen/corelib/error_stack_trace1_test.dart |
diff --git a/test/codegen/corelib/error_stack_trace1_test.dart b/test/codegen/corelib/error_stack_trace1_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..53df67173480c4a8a86e2df1d9da06b28cd058b4 |
--- /dev/null |
+++ b/test/codegen/corelib/error_stack_trace1_test.dart |
@@ -0,0 +1,40 @@ |
+// 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. |
+ |
+import "package:expect/expect.dart"; |
+ |
+class A { |
+ static Aa() => Ab(); |
+ static Ab() => Ac(); |
+ static Ac() => throw "abc"; |
+} |
+ |
+class B { |
+ static Ba() => Bb(); |
+ static Bb() => Bc(); |
+ static Bc() { |
+ try { |
+ A.Aa(); |
+ } catch (e) { |
+ // This should produce a NoSuchMethodError. |
+ var trace = e.stackTrace; |
+ } |
+ } |
+} |
+ |
+main() { |
+ bool hasThrown = false; |
+ try { |
+ B.Ba(); |
+ } catch (e) { |
+ hasThrown = true; |
+ var trace = e.stackTrace.toString(); |
+ print(trace); |
+ Expect.isTrue(trace.contains("Bc")); |
+ Expect.isTrue(trace.contains("Bb")); |
+ Expect.isTrue(trace.contains("Ba")); |
+ Expect.isTrue(trace.contains("main")); |
+ } |
+ Expect.isTrue(hasThrown); |
+} |