MCPcopy
hub / github.com/playcanvas/engine / extractStacktrace

Function extractStacktrace

tests/qunit/qunit.js:1206–1243  ·  view source on GitHub ↗
( e, offset )

Source from the content-addressed store, hash-verified

1204// Later Safari and IE10 are supposed to support error.stack as well
1205// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
1206function extractStacktrace( e, offset ) {
1207 offset = offset === undefined ? 3 : offset;
1208
1209 var stack, include, i, regex;
1210
1211 if ( e.stacktrace ) {
1212 // Opera
1213 return e.stacktrace.split( "\n" )[ offset + 3 ];
1214 } else if ( e.stack ) {
1215 // Firefox, Chrome
1216 stack = e.stack.split( "\n" );
1217 if (/^error$/i.test( stack[0] ) ) {
1218 stack.shift();
1219 }
1220 if ( fileName ) {
1221 include = [];
1222 for ( i = offset; i < stack.length; i++ ) {
1223 if ( stack[ i ].indexOf( fileName ) != -1 ) {
1224 break;
1225 }
1226 include.push( stack[ i ] );
1227 }
1228 if ( include.length ) {
1229 return include.join( "\n" );
1230 }
1231 }
1232 return stack[ offset ];
1233 } else if ( e.sourceURL ) {
1234 // Safari, PhantomJS
1235 // hopefully one day Safari provides actual stacktraces
1236 // exclude useless self-reference for generated Error objects
1237 if ( /qunit.js$/.test( e.sourceURL ) ) {
1238 return;
1239 }
1240 // for actual exceptions, this is useful
1241 return e.sourceURL + ":" + e.line;
1242 }
1243}
1244function sourceFromStacktrace( offset ) {
1245 try {
1246 throw new Error();

Callers 2

qunit.jsFile · 0.85
sourceFromStacktraceFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected