| // Copyright (c) 2011, 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. |
| |
| /** |
| * @assertion The active stack trace is an object whose toString() method |
| * produces a string that is a record of exactly those function activations |
| * within the current isolate that had not completed execution at the point |
| * where the current exception was thrown. |
| * This implies that no synthetic function activations may be added to the |
| * trace, nor may any source level activations be omitted. This means, for |
| * example, that any inlining of functions done as an optimization must not be |
| * visible in the trace. Similarly, any synthetic routines used by the |
| * implementation must not appear in the trace. |
| * Nothing is said about how any native function calls may be represented in |
| * the trace. |
| * Note that we say nothing about the identity of the stack trace, or what |
| * notion of equality is deļ¬ned for stack traces. |
| * The term position should not be interpreted as a line number, but rather as |
| * a precise position - the exact character index of the expression that raised |
| * the exception. |
| * @description Checks that stack trace contains the names of relevant |
| * functions. |
| * @author kaigorodov |
| * @note Can't really test anything on stack trace even if its toString() |
| * contains certain function names due to possible minification. |
| */ |
| import '../../../Utils/expect.dart'; |
| |
| void func1() { |
| throw "foo"; |
| } |
| void func2() { |
| func1(); |
| } |
| |
| main() { |
| try { |
| func2(); |
| } catch (p1, st) { |
| Expect.isNotNull(st); |
| } |
| } |