@@ -35,7 +35,8 @@ module.exports = {
35
35
read_function : function ( closure , flag , attrs ) {
36
36
const result = this . read_function_declaration (
37
37
closure ? 1 : flag ? 2 : 0 ,
38
- flag && flag [ 1 ] === 1
38
+ flag && flag [ 1 ] === 1 ,
39
+ attrs || [ ]
39
40
) ;
40
41
if ( flag && flag [ 2 ] == 1 ) {
41
42
// abstract function :
@@ -54,7 +55,6 @@ module.exports = {
54
55
result . parseFlags ( flag ) ;
55
56
}
56
57
}
57
- if ( attrs ) result . attrGroups = attrs ;
58
58
return result ;
59
59
} ,
60
60
/**
@@ -63,7 +63,7 @@ module.exports = {
63
63
* function_declaration ::= T_FUNCTION '&'? T_STRING '(' parameter_list ')'
64
64
* ```
65
65
*/
66
- read_function_declaration : function ( type , isStatic ) {
66
+ read_function_declaration : function ( type , isStatic , attrs ) {
67
67
let nodeName = "function" ;
68
68
if ( type === 1 ) {
69
69
nodeName = "closure" ;
@@ -133,9 +133,13 @@ module.exports = {
133
133
}
134
134
if ( type === 1 ) {
135
135
// closure
136
- return result ( params , isRef , use , returnType , nullable , isStatic ) ;
136
+ const fnNode = result ( params , isRef , use , returnType , nullable , isStatic ) ;
137
+ fnNode . attrGroups = attrs || [ ] ;
138
+ return fnNode ;
137
139
}
138
- return result ( name , params , isRef , returnType , nullable ) ;
140
+ const fnNode = result ( name , params , isRef , returnType , nullable ) ;
141
+ fnNode . attrGroups = attrs || [ ] ;
142
+ return fnNode ;
139
143
} ,
140
144
141
145
read_lexical_vars : function ( ) {
0 commit comments