#10000=@"/predicate-function-annotation.js;sourcefile" files(#10000,"/predicate-function-annotation.js") #10001=@"/;folder" folders(#10001,"/") containerparent(#10001,#10000) #10002=@"loc,{#10000},0,0,0,0" locations_default(#10002,#10000,0,0,0,0) hasLocation(#10000,#10002) #20000=@"global_scope" scopes(#20000,0) #20001=@"script;{#10000},1,1" #20002=* lines(#20002,#20001,"function f(a): boolean %checks {"," ") #20003=@"loc,{#10000},1,1,1,32" locations_default(#20003,#10000,1,1,1,32) hasLocation(#20002,#20003) #20004=* lines(#20004,#20001," return a;"," ") #20005=@"loc,{#10000},2,1,2,13" locations_default(#20005,#10000,2,1,2,13) hasLocation(#20004,#20005) indentation(#10000,2," ",4) #20006=* lines(#20006,#20001,"}"," ") #20007=@"loc,{#10000},3,1,3,1" locations_default(#20007,#10000,3,1,3,1) hasLocation(#20006,#20007) #20008=* lines(#20008,#20001,"function g(): %checks {} {"," ") #20009=@"loc,{#10000},4,1,4,26" locations_default(#20009,#10000,4,1,4,26) hasLocation(#20008,#20009) #20010=* lines(#20010,#20001," return b;"," ") #20011=@"loc,{#10000},5,1,5,13" locations_default(#20011,#10000,5,1,5,13) hasLocation(#20010,#20011) indentation(#10000,5," ",4) #20012=* lines(#20012,#20001,"}"," ") #20013=@"loc,{#10000},6,1,6,1" locations_default(#20013,#10000,6,1,6,1) hasLocation(#20012,#20013) #20014=* lines(#20014,#20001,""," ") #20015=@"loc,{#10000},7,1,7,0" locations_default(#20015,#10000,7,1,7,0) hasLocation(#20014,#20015) #20016=* lines(#20016,#20001,"(c): boolean %checks => c;"," ") #20017=@"loc,{#10000},8,1,8,26" locations_default(#20017,#10000,8,1,8,26) hasLocation(#20016,#20017) #20018=* lines(#20018,#20001,"(d): %checks => d;"," ") #20019=@"loc,{#10000},9,1,9,18" locations_default(#20019,#10000,9,1,9,18) hasLocation(#20018,#20019) numlines(#20001,9,8,0) #20020=* tokeninfo(#20020,7,#20001,0,"function") #20021=@"loc,{#10000},1,1,1,8" locations_default(#20021,#10000,1,1,1,8) hasLocation(#20020,#20021) #20022=* tokeninfo(#20022,6,#20001,1,"f") #20023=@"loc,{#10000},1,10,1,10" locations_default(#20023,#10000,1,10,1,10) hasLocation(#20022,#20023) #20024=* tokeninfo(#20024,8,#20001,2,"(") #20025=@"loc,{#10000},1,11,1,11" locations_default(#20025,#10000,1,11,1,11) hasLocation(#20024,#20025) #20026=* tokeninfo(#20026,6,#20001,3,"a") #20027=@"loc,{#10000},1,12,1,12" locations_default(#20027,#10000,1,12,1,12) hasLocation(#20026,#20027) #20028=* tokeninfo(#20028,8,#20001,4,")") #20029=@"loc,{#10000},1,13,1,13" locations_default(#20029,#10000,1,13,1,13) hasLocation(#20028,#20029) #20030=* tokeninfo(#20030,8,#20001,5,":") #20031=@"loc,{#10000},1,14,1,14" locations_default(#20031,#10000,1,14,1,14) hasLocation(#20030,#20031) #20032=* tokeninfo(#20032,6,#20001,6,"boolean") #20033=@"loc,{#10000},1,16,1,22" locations_default(#20033,#10000,1,16,1,22) hasLocation(#20032,#20033) #20034=* tokeninfo(#20034,8,#20001,7,"%") #20035=@"loc,{#10000},1,24,1,24" locations_default(#20035,#10000,1,24,1,24) hasLocation(#20034,#20035) #20036=* tokeninfo(#20036,6,#20001,8,"checks") #20037=@"loc,{#10000},1,25,1,30" locations_default(#20037,#10000,1,25,1,30) hasLocation(#20036,#20037) #20038=* tokeninfo(#20038,8,#20001,9,"{") #20039=@"loc,{#10000},1,32,1,32" locations_default(#20039,#10000,1,32,1,32) hasLocation(#20038,#20039) #20040=* tokeninfo(#20040,7,#20001,10,"return") #20041=@"loc,{#10000},2,5,2,10" locations_default(#20041,#10000,2,5,2,10) hasLocation(#20040,#20041) #20042=* tokeninfo(#20042,6,#20001,11,"a") #20043=@"loc,{#10000},2,12,2,12" locations_default(#20043,#10000,2,12,2,12) hasLocation(#20042,#20043) #20044=* tokeninfo(#20044,8,#20001,12,";") #20045=@"loc,{#10000},2,13,2,13" locations_default(#20045,#10000,2,13,2,13) hasLocation(#20044,#20045) #20046=* tokeninfo(#20046,8,#20001,13,"}") hasLocation(#20046,#20007) #20047=* tokeninfo(#20047,7,#20001,14,"function") #20048=@"loc,{#10000},4,1,4,8" locations_default(#20048,#10000,4,1,4,8) hasLocation(#20047,#20048) #20049=* tokeninfo(#20049,6,#20001,15,"g") #20050=@"loc,{#10000},4,10,4,10" locations_default(#20050,#10000,4,10,4,10) hasLocation(#20049,#20050) #20051=* tokeninfo(#20051,8,#20001,16,"(") #20052=@"loc,{#10000},4,11,4,11" locations_default(#20052,#10000,4,11,4,11) hasLocation(#20051,#20052) #20053=* tokeninfo(#20053,8,#20001,17,")") #20054=@"loc,{#10000},4,12,4,12" locations_default(#20054,#10000,4,12,4,12) hasLocation(#20053,#20054) #20055=* tokeninfo(#20055,8,#20001,18,":") #20056=@"loc,{#10000},4,13,4,13" locations_default(#20056,#10000,4,13,4,13) hasLocation(#20055,#20056) #20057=* tokeninfo(#20057,8,#20001,19,"%") #20058=@"loc,{#10000},4,15,4,15" locations_default(#20058,#10000,4,15,4,15) hasLocation(#20057,#20058) #20059=* tokeninfo(#20059,6,#20001,20,"checks") #20060=@"loc,{#10000},4,16,4,21" locations_default(#20060,#10000,4,16,4,21) hasLocation(#20059,#20060) #20061=* tokeninfo(#20061,8,#20001,21,"{") #20062=@"loc,{#10000},4,23,4,23" locations_default(#20062,#10000,4,23,4,23) hasLocation(#20061,#20062) #20063=* tokeninfo(#20063,8,#20001,22,"}") #20064=@"loc,{#10000},4,24,4,24" locations_default(#20064,#10000,4,24,4,24) hasLocation(#20063,#20064) #20065=* tokeninfo(#20065,8,#20001,23,"{") #20066=@"loc,{#10000},4,26,4,26" locations_default(#20066,#10000,4,26,4,26) hasLocation(#20065,#20066) #20067=* tokeninfo(#20067,7,#20001,24,"return") #20068=@"loc,{#10000},5,5,5,10" locations_default(#20068,#10000,5,5,5,10) hasLocation(#20067,#20068) #20069=* tokeninfo(#20069,6,#20001,25,"b") #20070=@"loc,{#10000},5,12,5,12" locations_default(#20070,#10000,5,12,5,12) hasLocation(#20069,#20070) #20071=* tokeninfo(#20071,8,#20001,26,";") #20072=@"loc,{#10000},5,13,5,13" locations_default(#20072,#10000,5,13,5,13) hasLocation(#20071,#20072) #20073=* tokeninfo(#20073,8,#20001,27,"}") hasLocation(#20073,#20013) #20074=* tokeninfo(#20074,8,#20001,28,"(") #20075=@"loc,{#10000},8,1,8,1" locations_default(#20075,#10000,8,1,8,1) hasLocation(#20074,#20075) #20076=* tokeninfo(#20076,6,#20001,29,"c") #20077=@"loc,{#10000},8,2,8,2" locations_default(#20077,#10000,8,2,8,2) hasLocation(#20076,#20077) #20078=* tokeninfo(#20078,8,#20001,30,")") #20079=@"loc,{#10000},8,3,8,3" locations_default(#20079,#10000,8,3,8,3) hasLocation(#20078,#20079) #20080=* tokeninfo(#20080,8,#20001,31,":") #20081=@"loc,{#10000},8,4,8,4" locations_default(#20081,#10000,8,4,8,4) hasLocation(#20080,#20081) #20082=* tokeninfo(#20082,6,#20001,32,"boolean") #20083=@"loc,{#10000},8,6,8,12" locations_default(#20083,#10000,8,6,8,12) hasLocation(#20082,#20083) #20084=* tokeninfo(#20084,8,#20001,33,"%") #20085=@"loc,{#10000},8,14,8,14" locations_default(#20085,#10000,8,14,8,14) hasLocation(#20084,#20085) #20086=* tokeninfo(#20086,6,#20001,34,"checks") #20087=@"loc,{#10000},8,15,8,20" locations_default(#20087,#10000,8,15,8,20) hasLocation(#20086,#20087) #20088=* tokeninfo(#20088,8,#20001,35,"=>") #20089=@"loc,{#10000},8,22,8,23" locations_default(#20089,#10000,8,22,8,23) hasLocation(#20088,#20089) #20090=* tokeninfo(#20090,6,#20001,36,"c") #20091=@"loc,{#10000},8,25,8,25" locations_default(#20091,#10000,8,25,8,25) hasLocation(#20090,#20091) #20092=* tokeninfo(#20092,8,#20001,37,";") #20093=@"loc,{#10000},8,26,8,26" locations_default(#20093,#10000,8,26,8,26) hasLocation(#20092,#20093) #20094=* tokeninfo(#20094,8,#20001,38,"(") #20095=@"loc,{#10000},9,1,9,1" locations_default(#20095,#10000,9,1,9,1) hasLocation(#20094,#20095) #20096=* tokeninfo(#20096,6,#20001,39,"d") #20097=@"loc,{#10000},9,2,9,2" locations_default(#20097,#10000,9,2,9,2) hasLocation(#20096,#20097) #20098=* tokeninfo(#20098,8,#20001,40,")") #20099=@"loc,{#10000},9,3,9,3" locations_default(#20099,#10000,9,3,9,3) hasLocation(#20098,#20099) #20100=* tokeninfo(#20100,8,#20001,41,":") #20101=@"loc,{#10000},9,4,9,4" locations_default(#20101,#10000,9,4,9,4) hasLocation(#20100,#20101) #20102=* tokeninfo(#20102,8,#20001,42,"%") #20103=@"loc,{#10000},9,6,9,6" locations_default(#20103,#10000,9,6,9,6) hasLocation(#20102,#20103) #20104=* tokeninfo(#20104,6,#20001,43,"checks") #20105=@"loc,{#10000},9,7,9,12" locations_default(#20105,#10000,9,7,9,12) hasLocation(#20104,#20105) #20106=* tokeninfo(#20106,8,#20001,44,"=>") #20107=@"loc,{#10000},9,14,9,15" locations_default(#20107,#10000,9,14,9,15) hasLocation(#20106,#20107) #20108=* tokeninfo(#20108,6,#20001,45,"d") #20109=@"loc,{#10000},9,17,9,17" locations_default(#20109,#10000,9,17,9,17) hasLocation(#20108,#20109) #20110=* tokeninfo(#20110,8,#20001,46,";") #20111=@"loc,{#10000},9,18,9,18" locations_default(#20111,#10000,9,18,9,18) hasLocation(#20110,#20111) #20112=* tokeninfo(#20112,0,#20001,47,"") #20113=@"loc,{#10000},10,1,10,0" locations_default(#20113,#10000,10,1,10,0) hasLocation(#20112,#20113) toplevels(#20001,0) #20114=@"loc,{#10000},1,1,10,0" locations_default(#20114,#10000,1,1,10,0) hasLocation(#20001,#20114) #20115=@"var;{f};{#20000}" variables(#20115,"f",#20000) #20116=@"var;{g};{#20000}" variables(#20116,"g",#20000) #20117=@"var;{this};{#20000}" variables(#20117,"this",#20000) #20118=* stmts(#20118,17,#20001,0,"functio ... rn a;\n}") #20119=@"loc,{#10000},1,1,3,1" locations_default(#20119,#10000,1,1,3,1) hasLocation(#20118,#20119) stmt_containers(#20118,#20001) #20120=* exprs(#20120,78,#20118,-1,"f") hasLocation(#20120,#20023) expr_containers(#20120,#20118) literals("f","f",#20120) decl(#20120,#20115) #20121=* scopes(#20121,1) scopenodes(#20118,#20121) scopenesting(#20121,#20000) #20122=@"var;{this};{#20121}" variables(#20122,"this",#20121) #20123=@"var;{a};{#20121}" variables(#20123,"a",#20121) #20124=* exprs(#20124,78,#20118,0,"a") hasLocation(#20124,#20027) expr_containers(#20124,#20118) literals("a","a",#20124) decl(#20124,#20123) #20125=@"var;{arguments};{#20121}" variables(#20125,"arguments",#20121) is_arguments_object(#20125) #20126=* stmts(#20126,1,#20118,-2,"{\n return a;\n}") #20127=@"loc,{#10000},1,32,3,1" locations_default(#20127,#10000,1,32,3,1) hasLocation(#20126,#20127) stmt_containers(#20126,#20118) #20128=* stmts(#20128,9,#20126,0,"return a;") #20129=@"loc,{#10000},2,5,2,13" locations_default(#20129,#10000,2,5,2,13) hasLocation(#20128,#20129) stmt_containers(#20128,#20118) #20130=* exprs(#20130,79,#20128,0,"a") hasLocation(#20130,#20043) enclosing_stmt(#20130,#20128) expr_containers(#20130,#20118) literals("a","a",#20130) bind(#20130,#20123) #20131=* stmts(#20131,17,#20001,1,"functio ... ecks {}") #20132=@"loc,{#10000},4,1,4,24" locations_default(#20132,#10000,4,1,4,24) hasLocation(#20131,#20132) stmt_containers(#20131,#20001) #20133=* exprs(#20133,78,#20131,-1,"g") hasLocation(#20133,#20050) expr_containers(#20133,#20131) literals("g","g",#20133) decl(#20133,#20116) #20134=* scopes(#20134,1) scopenodes(#20131,#20134) scopenesting(#20134,#20000) #20135=@"var;{this};{#20134}" variables(#20135,"this",#20134) #20136=@"var;{arguments};{#20134}" variables(#20136,"arguments",#20134) is_arguments_object(#20136) #20137=* stmts(#20137,1,#20131,-2,"{}") #20138=@"loc,{#10000},4,23,4,24" locations_default(#20138,#10000,4,23,4,24) hasLocation(#20137,#20138) stmt_containers(#20137,#20131) #20139=* stmts(#20139,1,#20001,2,"{\n return b;\n}") #20140=@"loc,{#10000},4,26,6,1" locations_default(#20140,#10000,4,26,6,1) hasLocation(#20139,#20140) stmt_containers(#20139,#20001) #20141=* stmts(#20141,9,#20139,0,"return b;") #20142=@"loc,{#10000},5,5,5,13" locations_default(#20142,#10000,5,5,5,13) hasLocation(#20141,#20142) stmt_containers(#20141,#20001) #20143=* exprs(#20143,79,#20141,0,"b") hasLocation(#20143,#20070) enclosing_stmt(#20143,#20141) expr_containers(#20143,#20001) literals("b","b",#20143) #20144=@"var;{b};{#20000}" variables(#20144,"b",#20000) bind(#20143,#20144) #20145=* stmts(#20145,2,#20001,3,"(c): bo ... s => c;") hasLocation(#20145,#20017) stmt_containers(#20145,#20001) #20146=* exprs(#20146,65,#20145,0,"(c): bo ... ks => c") #20147=@"loc,{#10000},8,1,8,25" locations_default(#20147,#10000,8,1,8,25) hasLocation(#20146,#20147) enclosing_stmt(#20146,#20145) expr_containers(#20146,#20001) #20148=* scopes(#20148,1) scopenodes(#20146,#20148) scopenesting(#20148,#20000) #20149=@"var;{c};{#20148}" variables(#20149,"c",#20148) #20150=* exprs(#20150,78,#20146,0,"c") hasLocation(#20150,#20077) expr_containers(#20150,#20146) literals("c","c",#20150) decl(#20150,#20149) #20151=* exprs(#20151,79,#20146,-2,"c") hasLocation(#20151,#20091) expr_containers(#20151,#20146) literals("c","c",#20151) bind(#20151,#20149) #20152=* stmts(#20152,2,#20001,4,"(d): %checks => d;") hasLocation(#20152,#20019) stmt_containers(#20152,#20001) #20153=* exprs(#20153,65,#20152,0,"(d): %checks => d") #20154=@"loc,{#10000},9,1,9,17" locations_default(#20154,#10000,9,1,9,17) hasLocation(#20153,#20154) enclosing_stmt(#20153,#20152) expr_containers(#20153,#20001) #20155=* scopes(#20155,1) scopenodes(#20153,#20155) scopenesting(#20155,#20000) #20156=@"var;{d};{#20155}" variables(#20156,"d",#20155) #20157=* exprs(#20157,78,#20153,0,"d") hasLocation(#20157,#20097) expr_containers(#20157,#20153) literals("d","d",#20157) decl(#20157,#20156) #20158=* exprs(#20158,79,#20153,-2,"d") hasLocation(#20158,#20109) expr_containers(#20158,#20153) literals("d","d",#20158) bind(#20158,#20156) #20159=* entry_cfg_node(#20159,#20001) #20160=@"loc,{#10000},1,1,1,0" locations_default(#20160,#10000,1,1,1,0) hasLocation(#20159,#20160) #20161=* exit_cfg_node(#20161,#20001) hasLocation(#20161,#20113) successor(#20152,#20153) successor(#20153,#20161) #20162=* entry_cfg_node(#20162,#20153) #20163=@"loc,{#10000},9,1,9,0" locations_default(#20163,#10000,9,1,9,0) hasLocation(#20162,#20163) #20164=* exit_cfg_node(#20164,#20153) #20165=@"loc,{#10000},9,18,9,17" locations_default(#20165,#10000,9,18,9,17) hasLocation(#20164,#20165) successor(#20158,#20164) successor(#20157,#20158) successor(#20162,#20157) successor(#20145,#20146) successor(#20146,#20152) #20166=* entry_cfg_node(#20166,#20146) #20167=@"loc,{#10000},8,1,8,0" locations_default(#20167,#10000,8,1,8,0) hasLocation(#20166,#20167) #20168=* exit_cfg_node(#20168,#20146) #20169=@"loc,{#10000},8,26,8,25" locations_default(#20169,#10000,8,26,8,25) hasLocation(#20168,#20169) successor(#20151,#20168) successor(#20150,#20151) successor(#20166,#20150) successor(#20143,#20141) successor(#20141,#20161) successor(#20139,#20143) successor(#20131,#20139) #20170=* entry_cfg_node(#20170,#20131) #20171=@"loc,{#10000},4,1,4,0" locations_default(#20171,#10000,4,1,4,0) hasLocation(#20170,#20171) #20172=* exit_cfg_node(#20172,#20131) #20173=@"loc,{#10000},4,25,4,24" locations_default(#20173,#10000,4,25,4,24) hasLocation(#20172,#20173) successor(#20137,#20172) successor(#20170,#20137) successor(#20118,#20131) #20174=* entry_cfg_node(#20174,#20118) hasLocation(#20174,#20160) #20175=* exit_cfg_node(#20175,#20118) #20176=@"loc,{#10000},3,2,3,1" locations_default(#20176,#10000,3,2,3,1) hasLocation(#20175,#20176) successor(#20130,#20128) successor(#20128,#20175) successor(#20126,#20130) successor(#20124,#20126) successor(#20174,#20124) successor(#20133,#20118) successor(#20120,#20133) successor(#20159,#20120) numlines(#10000,9,8,0) filetype(#10000,"javascript")