1<html>
2
3<head>
4<title>
5
6</title>
7</head>
8
9<script>
10function f1(){
11	alert(stacktrace());
12}
13
14function f2(){
15	f1();
16}
17
18f2();
19
20function funcname(f) {
21    var s = f.toString().match(/function (\w*)/)[1];
22    if ((s == null) || (s.length == 0)) return "anonymous";
23    return s;
24}
25
26function stacktrace(){
27    var s = "";
28	if (document.all){
29		for(var a = arguments.caller; a != null; a = a.caller) {
30			s += funcname(a.callee) + "\n";
31			if (a.caller == a) break;
32		}
33	}
34	else{
35		for(var a = stacktrace.caller; a != null; a = a.caller) {
36			s += funcname(a.arguments.callee) + "\n";
37			if (a.caller == a) break;
38		}
39	}
40	return s;
41}
42
43
44
45</script>
46
47<body>
48
49</body>
50
51</html>