(member,cls,file,symbol)
| 531 | } |
| 532 | |
| 533 | function traverseFunction(member,cls,file,symbol){//member:function cls:parent function |
| 534 | // console.log('traverse function',member) |
| 535 | member._value=getValue(member.id) |
| 536 | var method=cls._flow_id?member._value+'_'+cls._flow_id:member._value |
| 537 | if(r.FlowOne[member._value]){ |
| 538 | r.FlowOne[member._value].unshift(method) |
| 539 | }else{ |
| 540 | r.FlowOne[member._value]=[method] |
| 541 | } |
| 542 | member._flow_id=method |
| 543 | member._flow_from=cls._flow_id |
| 544 | member._file=file |
| 545 | if(r.FlowFilter[member._flow_id]===false)return; |
| 546 | r.FlowNode[member._flow_id]=member; |
| 547 | r.FDPNode[member._flow_id]={id:member._flow_id,w:member._value.length*gD3fontSize/1.6+gD3fontSize*3,text:`${member._value}()`} |
| 548 | r.Flow+=` ${member._flow_id}([${member._value}])\nclick ${member._flow_id} "javascript:void(onFlowClick('${member._flow_id}','${file}'))"\n` |
| 549 | if(cls._flow_id){ |
| 550 | r.FlowLink+=`${cls._flow_id} --o ${member._flow_id}\n` |
| 551 | r.FDPLinks.push({source:cls._flow_id,target:member._flow_id,value:2}) |
| 552 | } |
| 553 | if(r.showCall){ |
| 554 | traverseAst(member.body,(n)=>{ |
| 555 | return doBlock(n,member,file,r) |
| 556 | }) |
| 557 | } |
| 558 | if(symbol)r.UML+=` ${member._value}()\n` |
| 559 | } |
| 560 | function doBlock(n,node,file,r){ |
| 561 | // console.log('do block',n) |
| 562 | if(!n)return |
no test coverage detected