()
| 1158 | } |
| 1159 | |
| 1160 | function jsStackTrace() { |
| 1161 | var err = new Error(); |
| 1162 | if (!err.stack) { |
| 1163 | // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, |
| 1164 | // so try that as a special-case. |
| 1165 | try { |
| 1166 | throw new Error(0); |
| 1167 | } catch(e) { |
| 1168 | err = e; |
| 1169 | } |
| 1170 | if (!err.stack) { |
| 1171 | return '(no stack trace available)'; |
| 1172 | } |
| 1173 | } |
| 1174 | return err.stack.toString(); |
| 1175 | } |
| 1176 | |
| 1177 | function stackTrace() { |
| 1178 | return demangleAll(jsStackTrace()); |