@@ -68,11 +68,16 @@ var FN_ARG = /^\s*(_?)(\S+?)\1\s*$/;
68
68
var STRIP_COMMENTS = / ( ( \/ \/ .* $ ) | ( \/ \* [ \s \S ] * ?\* \/ ) ) / mg;
69
69
var $injectorMinErr = minErr ( '$injector' ) ;
70
70
71
+ function extractArgs ( fn ) {
72
+ var fnText = fn . toString ( ) . replace ( STRIP_COMMENTS , '' ) ,
73
+ args = fnText . match ( FN_ARGS ) ;
74
+ return args ;
75
+ }
76
+
71
77
function anonFn ( fn ) {
72
78
// For anonymous functions, showing at the very least the function signature can help in
73
79
// debugging.
74
- var fnText = fn . toString ( ) . replace ( STRIP_COMMENTS , '' ) ,
75
- args = fnText . match ( FN_ARGS ) ;
80
+ var args = extractArgs ( fn ) ;
76
81
if ( args ) {
77
82
return 'function(' + ( args [ 1 ] || '' ) . replace ( / [ \s \r \n ] + / , ' ' ) + ')' ;
78
83
}
@@ -81,7 +86,6 @@ function anonFn(fn) {
81
86
82
87
function annotate ( fn , strictDi , name ) {
83
88
var $inject ,
84
- fnText ,
85
89
argDecl ,
86
90
last ;
87
91
@@ -96,8 +100,7 @@ function annotate(fn, strictDi, name) {
96
100
throw $injectorMinErr ( 'strictdi' ,
97
101
'{0} is not using explicit annotation and cannot be invoked in strict mode' , name ) ;
98
102
}
99
- fnText = fn . toString ( ) . replace ( STRIP_COMMENTS , '' ) ;
100
- argDecl = fnText . match ( FN_ARGS ) ;
103
+ argDecl = extractArgs ( fn ) ;
101
104
forEach ( argDecl [ 1 ] . split ( FN_ARG_SPLIT ) , function ( arg ) {
102
105
arg . replace ( FN_ARG , function ( all , underscore , name ) {
103
106
$inject . push ( name ) ;
0 commit comments