@@ -15,7 +15,6 @@ var TraceKit = {
15
15
var _slice = [ ] . slice ;
16
16
var UNKNOWN_FUNCTION = '?' ;
17
17
18
-
19
18
/**
20
19
* TraceKit.wrap: Wrap any function in a TraceKit reporter
21
20
* Example: func = TraceKit.wrap(func);
@@ -78,7 +77,8 @@ TraceKit.report = (function reportModuleWrapper() {
78
77
var handlers = [ ] ,
79
78
lastArgs = null ,
80
79
lastException = null ,
81
- lastExceptionStack = null ;
80
+ lastExceptionStack = null ,
81
+ hasDocument = document !== 'undefined' ;
82
82
83
83
/**
84
84
* Add a crash handler.
@@ -133,6 +133,13 @@ TraceKit.report = (function reportModuleWrapper() {
133
133
}
134
134
}
135
135
136
+ function getLocationHref ( ) {
137
+ if ( ! hasDocument )
138
+ return ;
139
+
140
+ return getLocationHref ( ) ;
141
+ }
142
+
136
143
var _oldOnerrorHandler , _onErrorHandlerInstalled ;
137
144
138
145
/**
@@ -168,7 +175,7 @@ TraceKit.report = (function reportModuleWrapper() {
168
175
location . context = TraceKit . computeStackTrace . gatherContext ( location . url , location . line ) ;
169
176
stack = {
170
177
'message' : message ,
171
- 'url' : document . location . href ,
178
+ 'url' : getLocationHref ( ) ,
172
179
'stack' : [ location ]
173
180
} ;
174
181
notifyHandlers ( stack , true ) ;
@@ -512,6 +519,9 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() {
512
519
* the url, line, and column number of the defined function.
513
520
*/
514
521
function findSourceByFunctionBody ( func ) {
522
+ if ( ! hasDocument )
523
+ return ;
524
+
515
525
var urls = [ window . location . href ] ,
516
526
scripts = document . getElementsByTagName ( 'script' ) ,
517
527
body ,
@@ -680,7 +690,7 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() {
680
690
return {
681
691
'name' : ex . name ,
682
692
'message' : ex . message ,
683
- 'url' : document . location . href ,
693
+ 'url' : getLocationHref ( ) ,
684
694
'stack' : stack
685
695
} ;
686
696
}
@@ -737,7 +747,7 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() {
737
747
return {
738
748
'name' : ex . name ,
739
749
'message' : ex . message ,
740
- 'url' : document . location . href ,
750
+ 'url' : getLocationHref ( ) ,
741
751
'stack' : stack
742
752
} ;
743
753
}
@@ -847,7 +857,7 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() {
847
857
return {
848
858
'name' : ex . name ,
849
859
'message' : lines [ 0 ] ,
850
- 'url' : document . location . href ,
860
+ 'url' : getLocationHref ( ) ,
851
861
'stack' : stack
852
862
} ;
853
863
}
@@ -984,7 +994,7 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() {
984
994
var result = {
985
995
'name' : ex . name ,
986
996
'message' : ex . message ,
987
- 'url' : document . location . href ,
997
+ 'url' : getLocationHref ( ) ,
988
998
'stack' : stack
989
999
} ;
990
1000
augmentStackTraceWithInitialElement ( result , ex . sourceURL || ex . fileName , ex . line || ex . lineNumber , ex . message || ex . description ) ;
@@ -1050,7 +1060,7 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() {
1050
1060
return {
1051
1061
'name' : ex . name ,
1052
1062
'message' : ex . message ,
1053
- 'url' : document . location . href ,
1063
+ 'url' : getLocationHref ( ) ,
1054
1064
} ;
1055
1065
}
1056
1066
0 commit comments