blob: df6967d69ebcf7c4981f8c88ed0b609f849d0c4d [file] [log] [blame]
/*
* 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
* @reviewer rodionov
* @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);
}
}