@@ -24,6 +24,15 @@ function Library(supportCodeDefinition) {
24
24
} ) ;
25
25
}
26
26
27
+ function getStackframe ( ) {
28
+ var stackframes = StackTrace . getSync ( ) ;
29
+ if ( stackframes . length > 2 ) {
30
+ return stackframes [ 2 ] ;
31
+ } else {
32
+ return stackframes [ 0 ] ;
33
+ }
34
+ }
35
+
27
36
var self = {
28
37
lookupBeforeHooksByScenario : function lookupBeforeHooksByScenario ( scenario ) {
29
38
return self . lookupHooksByScenario ( beforeHooks , scenario ) ;
@@ -53,9 +62,9 @@ function Library(supportCodeDefinition) {
53
62
code = options ;
54
63
options = { } ;
55
64
}
56
- var stackframes = StackTrace . getSync ( ) ;
57
- var line = stackframes [ 1 ] . getLineNumber ( ) ;
58
- var uri = stackframes [ 1 ] . getFileName ( ) || 'unknown' ;
65
+ var stackframe = getStackframe ( ) ;
66
+ var line = stackframe . getLineNumber ( ) ;
67
+ var uri = stackframe . getFileName ( ) || 'unknown' ;
59
68
var hook = builder ( code , options , uri , line ) ;
60
69
collection . push ( hook ) ;
61
70
} ;
@@ -66,9 +75,9 @@ function Library(supportCodeDefinition) {
66
75
code = options ;
67
76
options = { } ;
68
77
}
69
- var stackframes = StackTrace . getSync ( ) ;
70
- var line = stackframes [ 1 ] . getLineNumber ( ) ;
71
- var uri = stackframes [ 1 ] . getFileName ( ) || 'unknown' ;
78
+ var stackframe = getStackframe ( ) ;
79
+ var line = stackframe . getLineNumber ( ) ;
80
+ var uri = stackframe . getFileName ( ) || 'unknown' ;
72
81
var stepDefinition = Cucumber . SupportCode . StepDefinition ( name , options , code , uri , line ) ;
73
82
stepDefinitions . push ( stepDefinition ) ;
74
83
} ,
@@ -82,9 +91,9 @@ function Library(supportCodeDefinition) {
82
91
handler = options ;
83
92
options = { } ;
84
93
}
85
- var stackframes = StackTrace . getSync ( ) ;
86
- options . line = stackframes [ 1 ] . getLineNumber ( ) ;
87
- options . uri = stackframes [ 1 ] . getFileName ( ) || 'unknown' ;
94
+ var stackframe = getStackframe ( ) ;
95
+ options . line = stackframe . getLineNumber ( ) ;
96
+ options . uri = stackframe . getFileName ( ) || 'unknown' ;
88
97
var listener = Cucumber . Listener ( options ) ;
89
98
listener . setHandlerForEvent ( eventName , handler ) ;
90
99
self . registerListener ( listener ) ;
0 commit comments