( e, offset )
| 926 | // Later Safari and IE10 are supposed to support error.stack as well |
| 927 | // See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack |
| 928 | function extractStacktrace( e, offset ) { |
| 929 | offset = offset === undefined ? 3 : offset; |
| 930 | |
| 931 | var stack, include, i; |
| 932 | |
| 933 | if ( e.stacktrace ) { |
| 934 | // Opera |
| 935 | return e.stacktrace.split( "\n" )[ offset + 3 ]; |
| 936 | } else if ( e.stack ) { |
| 937 | // Firefox, Chrome |
| 938 | stack = e.stack.split( "\n" ); |
| 939 | if (/^error$/i.test( stack[0] ) ) { |
| 940 | stack.shift(); |
| 941 | } |
| 942 | if ( fileName ) { |
| 943 | include = []; |
| 944 | for ( i = offset; i < stack.length; i++ ) { |
| 945 | if ( stack[ i ].indexOf( fileName ) !== -1 ) { |
| 946 | break; |
| 947 | } |
| 948 | include.push( stack[ i ] ); |
| 949 | } |
| 950 | if ( include.length ) { |
| 951 | return include.join( "\n" ); |
| 952 | } |
| 953 | } |
| 954 | return stack[ offset ]; |
| 955 | } else if ( e.sourceURL ) { |
| 956 | // Safari, PhantomJS |
| 957 | // hopefully one day Safari provides actual stacktraces |
| 958 | // exclude useless self-reference for generated Error objects |
| 959 | if ( /qunit.js$/.test( e.sourceURL ) ) { |
| 960 | return; |
| 961 | } |
| 962 | // for actual exceptions, this is useful |
| 963 | return e.sourceURL + ":" + e.line; |
| 964 | } |
| 965 | } |
| 966 | function sourceFromStacktrace( offset ) { |
| 967 | try { |
| 968 | throw new Error(); |
no outgoing calls
no test coverage detected