(member,cls,file,symbol)
| 817 | } |
| 818 | |
| 819 | function traverseFunction(member,cls,file,symbol){//member:function cls:parent function symbol:boolean |
| 820 | var method=cls.value?member.value+'_'+cls.value:member.value |
| 821 | if(r.FlowOne[member.value]){ |
| 822 | if(r.FlowOne[member.value].indexOf(method)<0){ |
| 823 | r.FlowOne[member.value].unshift(method) |
| 824 | } |
| 825 | }else{ |
| 826 | r.FlowOne[member.value]=[method] |
| 827 | } |
| 828 | member._flow_id=method |
| 829 | // console.log('traverse function',member) |
| 830 | member._flow_from=cls.value |
| 831 | member._file=file |
| 832 | if(r.FlowFilter[member._flow_id]===false)return; |
| 833 | r.FlowNode[member._flow_id]=member; |
| 834 | r.FDPNode[member._flow_id]={id:member._flow_id,w:member.value.length*gD3fontSize/1.6+gD3fontSize*3,text:`${member.value}()`} |
| 835 | if(symbol)r.UML+=` ${member.value}()\n` |
| 836 | r.Flow+=` ${member._flow_id}([${member.value}])\nclick ${member._flow_id} "javascript:void(onFlowClick('${member._flow_id}','${file}'))"\n` |
| 837 | if(cls._flow_id){ |
| 838 | r.FlowLink+=`${cls._flow_id} --o ${member._flow_id}\n` |
| 839 | r.FDPLinks.push({source:cls._flow_id,target:member._flow_id,value:2}) |
| 840 | } |
| 841 | if(r.showCall&&member.body){ |
| 842 | for(let n of member.body){ |
| 843 | doBlock(n,member,method) |
| 844 | } |
| 845 | } |
| 846 | } |
| 847 | function doBlock(n,node,method){ |
| 848 | // console.log('do block',method) |
| 849 | if(!n)return |
no test coverage detected