mirror of
https://github.com/github/codeql.git
synced 2026-04-25 08:45:14 +02:00
Merge pull request #18661 from asgerf/js/hoist-in-block
JS: Hoist function declarations to the top of a block statement
This commit is contained in:
@@ -586,14 +586,6 @@ public class CFGExtractor {
|
||||
public static List<Identifier> of(Program p) {
|
||||
return of(p.getBody());
|
||||
}
|
||||
|
||||
public static List<Identifier> of(IFunction fn) {
|
||||
Node body = fn.getBody();
|
||||
if (body instanceof BlockStatement) return of(((BlockStatement) body).getBody());
|
||||
// if the body of the function is missing or is an expression, then there are
|
||||
// no hoisted functions
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1096,8 +1088,6 @@ public class CFGExtractor {
|
||||
if (nd.hasRest()) paramsAndDefaults.add((Expression) nd.getRest());
|
||||
|
||||
Node entry = getEntryNode(nd);
|
||||
List<Identifier> fns = HoistedFunDecls.of(nd);
|
||||
hoistedFns.addAll(fns);
|
||||
|
||||
// if this is the constructor of a class without a superclass, we need to
|
||||
// initialise all fields before running the body of the constructor
|
||||
@@ -1117,7 +1107,7 @@ public class CFGExtractor {
|
||||
if (firstField != null) fst = Collections.singleton(First.of(firstField));
|
||||
fst =
|
||||
visitSequence(
|
||||
nd instanceof FunctionDeclaration ? null : nd.getId(), paramsAndDefaults, fns, fst);
|
||||
nd instanceof FunctionDeclaration ? null : nd.getId(), paramsAndDefaults, fst);
|
||||
writeSuccessors(entry, fst);
|
||||
|
||||
this.ctxt.pop();
|
||||
@@ -1255,9 +1245,12 @@ public class CFGExtractor {
|
||||
|
||||
@Override
|
||||
public Void visit(BlockStatement nd, SuccessorInfo i) {
|
||||
if (nd.getBody().isEmpty()) writeSuccessors(nd, i.getAllSuccessors());
|
||||
else writeSuccessor(nd, First.of(nd.getBody().get(0)));
|
||||
visitSequence(nd.getBody(), i.getAllSuccessors());
|
||||
// Hoist function declarations in a block statement to the top of the block.
|
||||
// This reflects non-standard behaviour implemented by most engines.
|
||||
// See also: ECMAScript "B.3.2 Block-Level Function Declarations Web Legacy Compatibility Semantics".
|
||||
List<Identifier> hoisted = HoistedFunDecls.of(nd.getBody());
|
||||
hoistedFns.addAll(hoisted);
|
||||
writeSuccessors(nd, visitSequence(hoisted, nd.getBody(), i.getAllSuccessors()));
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ public class Main {
|
||||
* A version identifier that should be updated every time the extractor changes in such a way that
|
||||
* it may produce different tuples for the same file under the same {@link ExtractorConfig}.
|
||||
*/
|
||||
public static final String EXTRACTOR_VERSION = "2025-01-21";
|
||||
public static final String EXTRACTOR_VERSION = "2025-02-03";
|
||||
|
||||
public static final Pattern NEWLINE = Pattern.compile("\n");
|
||||
|
||||
|
||||
@@ -163,12 +163,12 @@ hasLocation(#20044,#20028)
|
||||
#20045=*
|
||||
exit_cfg_node(#20045,#20030)
|
||||
hasLocation(#20045,#20028)
|
||||
successor(#20035,#20036)
|
||||
successor(#20036,#20038)
|
||||
successor(#20040,#20039)
|
||||
successor(#20039,#20037)
|
||||
successor(#20038,#20040)
|
||||
successor(#20037,#20045)
|
||||
successor(#20035,#20036)
|
||||
successor(#20033,#20035)
|
||||
successor(#20044,#20033)
|
||||
successor(#20029,#20030)
|
||||
|
||||
@@ -184,12 +184,12 @@ hasLocation(#20050,#20034)
|
||||
#20051=*
|
||||
exit_cfg_node(#20051,#20036)
|
||||
hasLocation(#20051,#20034)
|
||||
successor(#20041,#20042)
|
||||
successor(#20042,#20044)
|
||||
successor(#20046,#20045)
|
||||
successor(#20045,#20043)
|
||||
successor(#20044,#20046)
|
||||
successor(#20043,#20051)
|
||||
successor(#20041,#20042)
|
||||
successor(#20039,#20041)
|
||||
successor(#20050,#20039)
|
||||
successor(#20035,#20036)
|
||||
|
||||
@@ -671,7 +671,6 @@ exit_cfg_node(#20215,#20188)
|
||||
#20216=@"loc,{#10000},16,4,16,3"
|
||||
locations_default(#20216,#10000,16,4,16,3)
|
||||
hasLocation(#20215,#20216)
|
||||
successor(#20192,#20194)
|
||||
successor(#20203,#20205)
|
||||
successor(#20205,#20215)
|
||||
successor(#20198,#20202)
|
||||
@@ -680,6 +679,7 @@ successor(#20207,#20203)
|
||||
successor(#20200,#20209)
|
||||
successor(#20194,#20196)
|
||||
successor(#20196,#20198)
|
||||
successor(#20192,#20194)
|
||||
successor(#20213,#20192)
|
||||
successor(#20187,#20188)
|
||||
successor(#20185,#20180)
|
||||
@@ -729,9 +729,9 @@ exit_cfg_node(#20227,#20146)
|
||||
#20228=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20228,#10000,4,4,4,3)
|
||||
hasLocation(#20227,#20228)
|
||||
successor(#20150,#20152)
|
||||
successor(#20152,#20154)
|
||||
successor(#20154,#20227)
|
||||
successor(#20150,#20152)
|
||||
successor(#20225,#20158)
|
||||
successor(#20145,#20146)
|
||||
successor(#20143,#20164)
|
||||
|
||||
@@ -1425,30 +1425,30 @@ successor(#20455,#20457)
|
||||
successor(#20457,#20461)
|
||||
successor(#20432,#20434)
|
||||
successor(#20434,#20436)
|
||||
successor(#20436,#20438)
|
||||
successor(#20438,#20442)
|
||||
successor(#20442,#20440)
|
||||
successor(#20440,#20443)
|
||||
successor(#20436,#20438)
|
||||
successor(#20414,#20416)
|
||||
successor(#20416,#20420)
|
||||
successor(#20420,#20418)
|
||||
successor(#20418,#20422)
|
||||
successor(#20418,#20432)
|
||||
successor(#20424,#20418)
|
||||
successor(#20422,#20424)
|
||||
successor(#20416,#20420)
|
||||
successor(#20425,#20429)
|
||||
successor(#20430,#20432)
|
||||
successor(#20429,#20430)
|
||||
successor(#20392,#20394)
|
||||
successor(#20394,#20412)
|
||||
successor(#20396,#20400)
|
||||
successor(#20401,#20403)
|
||||
successor(#20403,#20409)
|
||||
successor(#20411,#20407)
|
||||
successor(#20409,#20411)
|
||||
successor(#20407,#20412)
|
||||
successor(#20407,#20405)
|
||||
successor(#20405,#20412)
|
||||
successor(#20401,#20403)
|
||||
successor(#20400,#20401)
|
||||
successor(#20412,#20414)
|
||||
successor(#20371,#20392)
|
||||
@@ -1462,7 +1462,6 @@ exit_cfg_node(#20468,#20371)
|
||||
#20469=@"loc,{#10000},18,2,18,1"
|
||||
locations_default(#20469,#10000,18,2,18,1)
|
||||
hasLocation(#20468,#20469)
|
||||
successor(#20379,#20383)
|
||||
successor(#20383,#20381)
|
||||
successor(#20381,#20384)
|
||||
successor(#20381,#20468)
|
||||
@@ -1481,6 +1480,7 @@ successor(#20391,#20381)
|
||||
successor(#20384,#20387)
|
||||
successor(#20387,#20386)
|
||||
successor(#20386,#20388)
|
||||
successor(#20379,#20383)
|
||||
successor(#20377,#20379)
|
||||
successor(#20466,#20377)
|
||||
successor(#20365,#20367)
|
||||
@@ -1504,7 +1504,6 @@ exit_cfg_node(#20475,#20322)
|
||||
#20476=@"loc,{#10000},10,2,10,1"
|
||||
locations_default(#20476,#10000,10,2,10,1)
|
||||
hasLocation(#20475,#20476)
|
||||
successor(#20328,#20330)
|
||||
successor(#20356,#20358)
|
||||
successor(#20358,#20359)
|
||||
successor(#20359,#20361)
|
||||
@@ -1539,6 +1538,7 @@ successor(#20330,#20334)
|
||||
successor(#20335,#20332)
|
||||
successor(#20334,#20335)
|
||||
successor(#20332,#20336)
|
||||
successor(#20328,#20330)
|
||||
successor(#20474,#20328)
|
||||
successor(#20373,#20322)
|
||||
successor(#20324,#20373)
|
||||
|
||||
@@ -235,7 +235,6 @@ hasLocation(#20074,#20072)
|
||||
#20075=*
|
||||
exit_cfg_node(#20075,#20051)
|
||||
hasLocation(#20075,#20048)
|
||||
successor(#20058,#20060)
|
||||
successor(#20070,#20068)
|
||||
successor(#20068,#20075)
|
||||
successor(#20060,#20067)
|
||||
@@ -243,6 +242,7 @@ successor(#20064,#20066)
|
||||
successor(#20066,#20062)
|
||||
successor(#20067,#20064)
|
||||
successor(#20062,#20070)
|
||||
successor(#20058,#20060)
|
||||
successor(#20056,#20058)
|
||||
successor(#20074,#20056)
|
||||
successor(#20052,#20051)
|
||||
|
||||
@@ -509,11 +509,11 @@ exit_cfg_node(#20163,#20143)
|
||||
#20164=@"loc,{#10000},3,40,3,39"
|
||||
locations_default(#20164,#10000,3,40,3,39)
|
||||
hasLocation(#20163,#20164)
|
||||
successor(#20146,#20148)
|
||||
successor(#20148,#20152)
|
||||
successor(#20154,#20150)
|
||||
successor(#20152,#20154)
|
||||
successor(#20150,#20163)
|
||||
successor(#20146,#20148)
|
||||
successor(#20161,#20146)
|
||||
successor(#20141,#20143)
|
||||
successor(#20139,#20160)
|
||||
|
||||
@@ -434,7 +434,6 @@ exit_cfg_node(#20134,#20101)
|
||||
#20135=@"loc,{#10000},7,4,7,3"
|
||||
locations_default(#20135,#10000,7,4,7,3)
|
||||
hasLocation(#20134,#20135)
|
||||
successor(#20107,#20109)
|
||||
successor(#20109,#20115)
|
||||
successor(#20119,#20117)
|
||||
successor(#20117,#20111)
|
||||
@@ -442,6 +441,7 @@ successor(#20116,#20113)
|
||||
successor(#20115,#20116)
|
||||
successor(#20113,#20119)
|
||||
successor(#20111,#20134)
|
||||
successor(#20107,#20109)
|
||||
successor(#20105,#20107)
|
||||
successor(#20132,#20105)
|
||||
successor(#20100,#20101)
|
||||
@@ -457,11 +457,11 @@ exit_cfg_node(#20138,#20086)
|
||||
#20139=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20139,#10000,4,4,4,3)
|
||||
hasLocation(#20138,#20139)
|
||||
successor(#20090,#20096)
|
||||
successor(#20097,#20094)
|
||||
successor(#20096,#20097)
|
||||
successor(#20094,#20092)
|
||||
successor(#20092,#20138)
|
||||
successor(#20090,#20096)
|
||||
successor(#20136,#20090)
|
||||
successor(#20085,#20086)
|
||||
successor(#20083,#20100)
|
||||
|
||||
@@ -246,13 +246,13 @@ exit_cfg_node(#20076,#20054)
|
||||
#20077=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20077,#10000,4,4,4,3)
|
||||
hasLocation(#20076,#20077)
|
||||
successor(#20060,#20062)
|
||||
successor(#20062,#20068)
|
||||
successor(#20070,#20064)
|
||||
successor(#20069,#20066)
|
||||
successor(#20068,#20069)
|
||||
successor(#20066,#20070)
|
||||
successor(#20064,#20076)
|
||||
successor(#20060,#20062)
|
||||
successor(#20058,#20060)
|
||||
successor(#20074,#20058)
|
||||
successor(#20053,#20054)
|
||||
|
||||
@@ -159,12 +159,12 @@ hasLocation(#20042,#20026)
|
||||
#20043=*
|
||||
exit_cfg_node(#20043,#20028)
|
||||
hasLocation(#20043,#20026)
|
||||
successor(#20033,#20034)
|
||||
successor(#20034,#20036)
|
||||
successor(#20038,#20037)
|
||||
successor(#20037,#20035)
|
||||
successor(#20036,#20038)
|
||||
successor(#20035,#20043)
|
||||
successor(#20033,#20034)
|
||||
successor(#20031,#20033)
|
||||
successor(#20042,#20031)
|
||||
successor(#20027,#20028)
|
||||
|
||||
@@ -261,12 +261,12 @@ hasLocation(#20075,#20059)
|
||||
#20076=*
|
||||
exit_cfg_node(#20076,#20061)
|
||||
hasLocation(#20076,#20059)
|
||||
successor(#20066,#20067)
|
||||
successor(#20067,#20069)
|
||||
successor(#20071,#20070)
|
||||
successor(#20070,#20068)
|
||||
successor(#20069,#20071)
|
||||
successor(#20068,#20076)
|
||||
successor(#20066,#20067)
|
||||
successor(#20064,#20066)
|
||||
successor(#20075,#20064)
|
||||
successor(#20060,#20061)
|
||||
|
||||
@@ -253,11 +253,11 @@ exit_cfg_node(#20076,#20050)
|
||||
#20077=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20077,#10000,4,4,4,3)
|
||||
hasLocation(#20076,#20077)
|
||||
successor(#20054,#20060)
|
||||
successor(#20061,#20058)
|
||||
successor(#20060,#20061)
|
||||
successor(#20058,#20056)
|
||||
successor(#20056,#20076)
|
||||
successor(#20054,#20060)
|
||||
successor(#20074,#20054)
|
||||
successor(#20049,#20050)
|
||||
successor(#20047,#20064)
|
||||
|
||||
@@ -243,9 +243,9 @@ exit_cfg_node(#20073,#20048)
|
||||
#20074=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20074,#10000,4,4,4,3)
|
||||
hasLocation(#20073,#20074)
|
||||
successor(#20052,#20056)
|
||||
successor(#20056,#20054)
|
||||
successor(#20054,#20073)
|
||||
successor(#20052,#20056)
|
||||
successor(#20071,#20052)
|
||||
successor(#20047,#20048)
|
||||
successor(#20045,#20061)
|
||||
|
||||
@@ -171,11 +171,11 @@ hasLocation(#20054,#20052)
|
||||
#20055=*
|
||||
exit_cfg_node(#20055,#20037)
|
||||
hasLocation(#20055,#20034)
|
||||
successor(#20041,#20043)
|
||||
successor(#20043,#20049)
|
||||
successor(#20049,#20047)
|
||||
successor(#20047,#20045)
|
||||
successor(#20045,#20055)
|
||||
successor(#20041,#20043)
|
||||
successor(#20054,#20041)
|
||||
successor(#20038,#20037)
|
||||
successor(#20051,#20038)
|
||||
|
||||
@@ -822,7 +822,6 @@ hasLocation(#20266,#20267)
|
||||
#20268=*
|
||||
exit_cfg_node(#20268,#20230)
|
||||
hasLocation(#20268,#20173)
|
||||
successor(#20247,#20249)
|
||||
successor(#20262,#20260)
|
||||
successor(#20260,#20268)
|
||||
successor(#20249,#20259)
|
||||
@@ -832,6 +831,7 @@ successor(#20257,#20258)
|
||||
successor(#20255,#20251)
|
||||
successor(#20259,#20253)
|
||||
successor(#20251,#20262)
|
||||
successor(#20247,#20249)
|
||||
successor(#20237,#20240)
|
||||
successor(#20245,#20242)
|
||||
successor(#20244,#20245)
|
||||
@@ -849,21 +849,20 @@ exit_cfg_node(#20270,#20177)
|
||||
#20271=@"loc,{#10000},8,2,8,1"
|
||||
locations_default(#20271,#10000,8,2,8,1)
|
||||
hasLocation(#20270,#20271)
|
||||
successor(#20190,#20192)
|
||||
successor(#20203,#20205)
|
||||
successor(#20205,#20209)
|
||||
successor(#20209,#20211)
|
||||
successor(#20212,#20207)
|
||||
successor(#20211,#20212)
|
||||
successor(#20207,#20213)
|
||||
successor(#20205,#20209)
|
||||
successor(#20213,#20217)
|
||||
successor(#20218,#20220)
|
||||
successor(#20220,#20226)
|
||||
successor(#20229,#20222)
|
||||
successor(#20228,#20224)
|
||||
successor(#20226,#20228)
|
||||
successor(#20224,#20229)
|
||||
successor(#20222,#20270)
|
||||
successor(#20218,#20220)
|
||||
successor(#20217,#20218)
|
||||
successor(#20192,#20202)
|
||||
successor(#20196,#20198)
|
||||
@@ -872,6 +871,7 @@ successor(#20201,#20194)
|
||||
successor(#20198,#20199)
|
||||
successor(#20202,#20196)
|
||||
successor(#20194,#20203)
|
||||
successor(#20190,#20192)
|
||||
successor(#20185,#20187)
|
||||
successor(#20188,#20190)
|
||||
successor(#20187,#20188)
|
||||
|
||||
@@ -436,7 +436,6 @@ exit_cfg_node(#20140,#20118)
|
||||
#20141=@"loc,{#10000},7,2,7,1"
|
||||
locations_default(#20141,#10000,7,2,7,1)
|
||||
hasLocation(#20140,#20141)
|
||||
successor(#20124,#20128)
|
||||
successor(#20128,#20126)
|
||||
successor(#20126,#20130)
|
||||
successor(#20126,#20140)
|
||||
@@ -444,6 +443,7 @@ successor(#20134,#20126)
|
||||
successor(#20130,#20133)
|
||||
successor(#20133,#20132)
|
||||
successor(#20132,#20134)
|
||||
successor(#20124,#20128)
|
||||
successor(#20138,#20124)
|
||||
successor(#20094,#20096)
|
||||
successor(#20098,#20092)
|
||||
@@ -451,13 +451,13 @@ successor(#20097,#20098)
|
||||
successor(#20096,#20097)
|
||||
successor(#20092,#20101)
|
||||
successor(#20092,#20118)
|
||||
successor(#20105,#20109)
|
||||
successor(#20109,#20113)
|
||||
successor(#20117,#20114)
|
||||
successor(#20116,#20117)
|
||||
successor(#20114,#20111)
|
||||
successor(#20113,#20116)
|
||||
successor(#20111,#20092)
|
||||
successor(#20105,#20109)
|
||||
successor(#20101,#20104)
|
||||
successor(#20104,#20103)
|
||||
successor(#20103,#20105)
|
||||
|
||||
@@ -673,8 +673,6 @@ hasLocation(#20210,#20211)
|
||||
#20212=*
|
||||
exit_cfg_node(#20212,#20001)
|
||||
hasLocation(#20212,#20135)
|
||||
successor(#20137,#20140)
|
||||
successor(#20146,#20150)
|
||||
successor(#20195,#20199)
|
||||
successor(#20200,#20197)
|
||||
successor(#20199,#20200)
|
||||
@@ -705,7 +703,6 @@ hasLocation(#20214,#20161)
|
||||
successor(#20214,#20195)
|
||||
successor(#20160,#20213)
|
||||
successor(#20160,#20214)
|
||||
successor(#20173,#20177)
|
||||
successor(#20183,#20189)
|
||||
successor(#20192,#20185)
|
||||
successor(#20191,#20187)
|
||||
@@ -716,14 +713,17 @@ successor(#20177,#20181)
|
||||
successor(#20182,#20179)
|
||||
successor(#20181,#20182)
|
||||
successor(#20179,#20183)
|
||||
successor(#20173,#20177)
|
||||
successor(#20150,#20154)
|
||||
successor(#20155,#20152)
|
||||
successor(#20154,#20155)
|
||||
successor(#20152,#20156)
|
||||
successor(#20146,#20150)
|
||||
successor(#20140,#20144)
|
||||
successor(#20145,#20142)
|
||||
successor(#20144,#20145)
|
||||
successor(#20142,#20146)
|
||||
successor(#20137,#20140)
|
||||
successor(#20210,#20137)
|
||||
numlines(#10000,12,12,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -352,13 +352,13 @@ hasLocation(#20107,#20033)
|
||||
successor(#20107,#20105)
|
||||
successor(#20080,#20106)
|
||||
successor(#20080,#20107)
|
||||
successor(#20083,#20089)
|
||||
successor(#20097,#20101)
|
||||
successor(#20102,#20099)
|
||||
successor(#20101,#20102)
|
||||
successor(#20099,#20105)
|
||||
successor(#20089,#20094)
|
||||
successor(#20094,#20097)
|
||||
successor(#20083,#20089)
|
||||
successor(#20071,#20078)
|
||||
successor(#20075,#20071)
|
||||
successor(#20103,#20075)
|
||||
|
||||
@@ -167,11 +167,11 @@ hasLocation(#20054,#20052)
|
||||
#20055=*
|
||||
exit_cfg_node(#20055,#20037)
|
||||
hasLocation(#20055,#20034)
|
||||
successor(#20041,#20049)
|
||||
successor(#20049,#20047)
|
||||
successor(#20047,#20045)
|
||||
successor(#20045,#20043)
|
||||
successor(#20043,#20055)
|
||||
successor(#20041,#20049)
|
||||
successor(#20054,#20041)
|
||||
successor(#20038,#20037)
|
||||
successor(#20051,#20038)
|
||||
|
||||
@@ -189,13 +189,13 @@ hasLocation(#20058,#20056)
|
||||
#20059=*
|
||||
exit_cfg_node(#20059,#20039)
|
||||
hasLocation(#20059,#20036)
|
||||
successor(#20043,#20045)
|
||||
successor(#20048,#20052)
|
||||
successor(#20054,#20050)
|
||||
successor(#20052,#20054)
|
||||
successor(#20050,#20059)
|
||||
successor(#20045,#20047)
|
||||
successor(#20047,#20048)
|
||||
successor(#20043,#20045)
|
||||
successor(#20058,#20043)
|
||||
successor(#20040,#20039)
|
||||
successor(#20055,#20040)
|
||||
|
||||
@@ -403,9 +403,9 @@ exit_cfg_node(#20126,#20112)
|
||||
#20127=@"loc,{#10000},5,27,5,26"
|
||||
locations_default(#20127,#10000,5,27,5,26)
|
||||
hasLocation(#20126,#20127)
|
||||
successor(#20116,#20120)
|
||||
successor(#20120,#20118)
|
||||
successor(#20118,#20126)
|
||||
successor(#20116,#20120)
|
||||
successor(#20124,#20116)
|
||||
successor(#20111,#20112)
|
||||
successor(#20109,#20088)
|
||||
|
||||
@@ -332,12 +332,12 @@ hasLocation(#20098,#20082)
|
||||
#20099=*
|
||||
exit_cfg_node(#20099,#20084)
|
||||
hasLocation(#20099,#20082)
|
||||
successor(#20089,#20090)
|
||||
successor(#20090,#20092)
|
||||
successor(#20094,#20093)
|
||||
successor(#20093,#20091)
|
||||
successor(#20092,#20094)
|
||||
successor(#20091,#20099)
|
||||
successor(#20089,#20090)
|
||||
successor(#20087,#20089)
|
||||
successor(#20098,#20087)
|
||||
successor(#20083,#20084)
|
||||
@@ -353,7 +353,6 @@ exit_cfg_node(#20102,#20064)
|
||||
#20103=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20103,#10000,4,4,4,3)
|
||||
hasLocation(#20102,#20103)
|
||||
successor(#20068,#20078)
|
||||
successor(#20080,#20072)
|
||||
successor(#20079,#20076)
|
||||
successor(#20078,#20079)
|
||||
@@ -361,6 +360,7 @@ successor(#20076,#20074)
|
||||
successor(#20074,#20080)
|
||||
successor(#20072,#20070)
|
||||
successor(#20070,#20102)
|
||||
successor(#20068,#20078)
|
||||
successor(#20100,#20068)
|
||||
successor(#20063,#20064)
|
||||
successor(#20061,#20083)
|
||||
|
||||
@@ -233,11 +233,11 @@ exit_cfg_node(#20073,#20056)
|
||||
#20074=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20074,#10000,4,4,4,3)
|
||||
hasLocation(#20073,#20074)
|
||||
successor(#20060,#20062)
|
||||
successor(#20062,#20066)
|
||||
successor(#20067,#20064)
|
||||
successor(#20066,#20067)
|
||||
successor(#20064,#20073)
|
||||
successor(#20060,#20062)
|
||||
successor(#20071,#20060)
|
||||
successor(#20055,#20056)
|
||||
successor(#20053,#20048)
|
||||
|
||||
@@ -729,7 +729,6 @@ exit_cfg_node(#20221,#20157)
|
||||
#20222=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20222,#10000,3,2,3,1)
|
||||
hasLocation(#20221,#20222)
|
||||
successor(#20166,#20172)
|
||||
successor(#20179,#20173)
|
||||
successor(#20178,#20175)
|
||||
successor(#20177,#20178)
|
||||
@@ -738,6 +737,7 @@ successor(#20173,#20170)
|
||||
successor(#20172,#20177)
|
||||
successor(#20170,#20168)
|
||||
successor(#20168,#20221)
|
||||
successor(#20166,#20172)
|
||||
successor(#20164,#20166)
|
||||
successor(#20162,#20164)
|
||||
successor(#20220,#20162)
|
||||
|
||||
@@ -138,9 +138,9 @@ hasLocation(#20044,#20042)
|
||||
#20045=*
|
||||
exit_cfg_node(#20045,#20031)
|
||||
hasLocation(#20045,#20028)
|
||||
successor(#20035,#20037)
|
||||
successor(#20037,#20039)
|
||||
successor(#20039,#20045)
|
||||
successor(#20035,#20037)
|
||||
successor(#20044,#20035)
|
||||
successor(#20032,#20031)
|
||||
successor(#20041,#20032)
|
||||
|
||||
@@ -287,7 +287,6 @@ hasLocation(#20090,#20088)
|
||||
#20091=*
|
||||
exit_cfg_node(#20091,#20061)
|
||||
hasLocation(#20091,#20058)
|
||||
successor(#20066,#20068)
|
||||
successor(#20074,#20078)
|
||||
successor(#20080,#20086)
|
||||
successor(#20086,#20084)
|
||||
@@ -309,6 +308,7 @@ successor(#20068,#20072)
|
||||
successor(#20073,#20070)
|
||||
successor(#20072,#20073)
|
||||
successor(#20070,#20074)
|
||||
successor(#20066,#20068)
|
||||
successor(#20090,#20066)
|
||||
successor(#20062,#20061)
|
||||
successor(#20087,#20062)
|
||||
|
||||
@@ -137,9 +137,9 @@ exit_cfg_node(#20043,#20029)
|
||||
#20044=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20044,#10000,3,2,3,1)
|
||||
hasLocation(#20043,#20044)
|
||||
successor(#20034,#20036)
|
||||
successor(#20036,#20038)
|
||||
successor(#20038,#20043)
|
||||
successor(#20034,#20036)
|
||||
successor(#20042,#20034)
|
||||
successor(#20031,#20029)
|
||||
successor(#20039,#20031)
|
||||
|
||||
@@ -148,9 +148,9 @@ hasLocation(#20046,#20044)
|
||||
#20047=*
|
||||
exit_cfg_node(#20047,#20029)
|
||||
hasLocation(#20047,#20027)
|
||||
successor(#20036,#20038)
|
||||
successor(#20038,#20040)
|
||||
successor(#20040,#20047)
|
||||
successor(#20036,#20038)
|
||||
successor(#20033,#20036)
|
||||
successor(#20035,#20033)
|
||||
successor(#20046,#20035)
|
||||
|
||||
@@ -333,18 +333,18 @@ exit_cfg_node(#20107,#20073)
|
||||
#20108=@"loc,{#10000},7,2,7,1"
|
||||
locations_default(#20108,#10000,7,2,7,1)
|
||||
hasLocation(#20107,#20108)
|
||||
successor(#20080,#20082)
|
||||
successor(#20082,#20084)
|
||||
successor(#20084,#20086)
|
||||
successor(#20086,#20090)
|
||||
successor(#20090,#20088)
|
||||
successor(#20088,#20091)
|
||||
successor(#20088,#20107)
|
||||
successor(#20084,#20086)
|
||||
successor(#20091,#20095)
|
||||
successor(#20096,#20100)
|
||||
successor(#20100,#20098)
|
||||
successor(#20098,#20107)
|
||||
successor(#20096,#20100)
|
||||
successor(#20095,#20096)
|
||||
successor(#20080,#20082)
|
||||
successor(#20078,#20080)
|
||||
successor(#20105,#20078)
|
||||
successor(#20075,#20071)
|
||||
|
||||
@@ -303,7 +303,6 @@ exit_cfg_node(#20099,#20076)
|
||||
#20100=@"loc,{#10000},6,2,6,1"
|
||||
locations_default(#20100,#10000,6,2,6,1)
|
||||
hasLocation(#20099,#20100)
|
||||
successor(#20082,#20088)
|
||||
successor(#20088,#20086)
|
||||
successor(#20086,#20084)
|
||||
successor(#20084,#20089)
|
||||
@@ -312,6 +311,7 @@ successor(#20093,#20084)
|
||||
successor(#20089,#20092)
|
||||
successor(#20092,#20091)
|
||||
successor(#20091,#20093)
|
||||
successor(#20082,#20088)
|
||||
successor(#20097,#20082)
|
||||
successor(#20069,#20076)
|
||||
#20101=*
|
||||
|
||||
@@ -253,18 +253,18 @@ hasLocation(#20085,#20086)
|
||||
exit_cfg_node(#20087,#20001)
|
||||
hasLocation(#20087,#20054)
|
||||
successor(#20056,#20058)
|
||||
successor(#20058,#20060)
|
||||
successor(#20060,#20062)
|
||||
successor(#20062,#20087)
|
||||
successor(#20064,#20067)
|
||||
successor(#20067,#20087)
|
||||
successor(#20058,#20060)
|
||||
successor(#20069,#20072)
|
||||
successor(#20072,#20074)
|
||||
successor(#20074,#20076)
|
||||
successor(#20076,#20083)
|
||||
successor(#20078,#20081)
|
||||
successor(#20081,#20083)
|
||||
successor(#20083,#20087)
|
||||
successor(#20072,#20074)
|
||||
successor(#20085,#20056)
|
||||
numlines(#10000,5,5,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -499,13 +499,13 @@ hasLocation(#20147,#20116)
|
||||
#20148=*
|
||||
exit_cfg_node(#20148,#20109)
|
||||
hasLocation(#20148,#20116)
|
||||
successor(#20122,#20123)
|
||||
successor(#20123,#20125)
|
||||
successor(#20127,#20126)
|
||||
successor(#20126,#20124)
|
||||
successor(#20125,#20127)
|
||||
successor(#20107,#20148)
|
||||
successor(#20124,#20110)
|
||||
successor(#20122,#20123)
|
||||
successor(#20120,#20122)
|
||||
successor(#20147,#20120)
|
||||
successor(#20117,#20109)
|
||||
|
||||
@@ -416,10 +416,10 @@ hasLocation(#20134,#20089)
|
||||
successor(#20118,#20116)
|
||||
successor(#20116,#20121)
|
||||
successor(#20116,#20134)
|
||||
successor(#20125,#20127)
|
||||
successor(#20127,#20131)
|
||||
successor(#20131,#20129)
|
||||
successor(#20129,#20116)
|
||||
successor(#20125,#20127)
|
||||
successor(#20121,#20124)
|
||||
successor(#20124,#20123)
|
||||
successor(#20123,#20125)
|
||||
@@ -432,17 +432,17 @@ exit_cfg_node(#20136,#20092)
|
||||
#20137=@"loc,{#10000},5,2,5,1"
|
||||
locations_default(#20137,#10000,5,2,5,1)
|
||||
hasLocation(#20136,#20137)
|
||||
successor(#20097,#20101)
|
||||
successor(#20101,#20099)
|
||||
successor(#20099,#20105)
|
||||
successor(#20099,#20136)
|
||||
successor(#20109,#20111)
|
||||
successor(#20111,#20115)
|
||||
successor(#20115,#20113)
|
||||
successor(#20113,#20099)
|
||||
successor(#20109,#20111)
|
||||
successor(#20105,#20108)
|
||||
successor(#20108,#20107)
|
||||
successor(#20107,#20109)
|
||||
successor(#20097,#20101)
|
||||
successor(#20135,#20097)
|
||||
successor(#20094,#20092)
|
||||
successor(#20132,#20094)
|
||||
|
||||
@@ -1575,12 +1575,12 @@ successor(#20492,#20481)
|
||||
successor(#20471,#20491)
|
||||
successor(#20471,#20492)
|
||||
successor(#20473,#20481)
|
||||
successor(#20476,#20478)
|
||||
successor(#20478,#20480)
|
||||
successor(#20480,#20488)
|
||||
successor(#20481,#20483)
|
||||
successor(#20476,#20478)
|
||||
successor(#20483,#20485)
|
||||
successor(#20485,#20488)
|
||||
successor(#20481,#20483)
|
||||
successor(#20445,#20451)
|
||||
successor(#20452,#20449)
|
||||
successor(#20451,#20452)
|
||||
@@ -1596,12 +1596,12 @@ hasLocation(#20494,#20450)
|
||||
successor(#20494,#20458)
|
||||
successor(#20447,#20493)
|
||||
successor(#20447,#20494)
|
||||
successor(#20453,#20455)
|
||||
successor(#20455,#20457)
|
||||
successor(#20457,#20463)
|
||||
successor(#20458,#20460)
|
||||
successor(#20453,#20455)
|
||||
successor(#20460,#20462)
|
||||
successor(#20462,#20463)
|
||||
successor(#20458,#20460)
|
||||
successor(#20429,#20433)
|
||||
successor(#20434,#20431)
|
||||
successor(#20433,#20434)
|
||||
@@ -1616,12 +1616,12 @@ successor(#20496,#20440)
|
||||
successor(#20431,#20495)
|
||||
successor(#20431,#20496)
|
||||
successor(#20433,#20440)
|
||||
successor(#20435,#20437)
|
||||
successor(#20437,#20439)
|
||||
successor(#20439,#20445)
|
||||
successor(#20440,#20442)
|
||||
successor(#20435,#20437)
|
||||
successor(#20442,#20444)
|
||||
successor(#20444,#20445)
|
||||
successor(#20440,#20442)
|
||||
successor(#20404,#20415)
|
||||
successor(#20428,#20405)
|
||||
successor(#20427,#20409)
|
||||
|
||||
@@ -171,11 +171,11 @@ exit_cfg_node(#20054,#20035)
|
||||
#20055=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20055,#10000,3,2,3,1)
|
||||
hasLocation(#20054,#20055)
|
||||
successor(#20040,#20042)
|
||||
successor(#20042,#20047)
|
||||
successor(#20047,#20045)
|
||||
successor(#20045,#20044)
|
||||
successor(#20044,#20054)
|
||||
successor(#20040,#20042)
|
||||
successor(#20053,#20040)
|
||||
successor(#20037,#20035)
|
||||
successor(#20050,#20037)
|
||||
|
||||
@@ -666,12 +666,12 @@ exit_cfg_node(#20223,#20184)
|
||||
#20224=@"loc,{#10000},5,2,5,1"
|
||||
locations_default(#20224,#10000,5,2,5,1)
|
||||
hasLocation(#20223,#20224)
|
||||
successor(#20188,#20190)
|
||||
successor(#20190,#20196)
|
||||
successor(#20198,#20194)
|
||||
successor(#20196,#20198)
|
||||
successor(#20194,#20192)
|
||||
successor(#20192,#20223)
|
||||
successor(#20188,#20190)
|
||||
successor(#20221,#20188)
|
||||
successor(#20183,#20184)
|
||||
successor(#20181,#20200)
|
||||
|
||||
@@ -247,9 +247,9 @@ exit_cfg_node(#20079,#20062)
|
||||
#20080=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20080,#10000,4,4,4,3)
|
||||
hasLocation(#20079,#20080)
|
||||
successor(#20069,#20073)
|
||||
successor(#20073,#20071)
|
||||
successor(#20071,#20079)
|
||||
successor(#20069,#20073)
|
||||
successor(#20066,#20069)
|
||||
successor(#20077,#20066)
|
||||
successor(#20061,#20062)
|
||||
|
||||
@@ -226,11 +226,11 @@ exit_cfg_node(#20075,#20055)
|
||||
#20076=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20076,#10000,3,2,3,1)
|
||||
hasLocation(#20075,#20076)
|
||||
successor(#20063,#20065)
|
||||
successor(#20065,#20069)
|
||||
successor(#20070,#20067)
|
||||
successor(#20069,#20070)
|
||||
successor(#20067,#20075)
|
||||
successor(#20063,#20065)
|
||||
successor(#20060,#20063)
|
||||
successor(#20074,#20060)
|
||||
successor(#20057,#20055)
|
||||
|
||||
@@ -498,9 +498,9 @@ hasLocation(#20165,#20166)
|
||||
successor(#20148,#20165)
|
||||
successor(#20147,#20148)
|
||||
successor(#20163,#20147)
|
||||
successor(#20136,#20140)
|
||||
successor(#20140,#20138)
|
||||
successor(#20138,#20158)
|
||||
successor(#20136,#20140)
|
||||
successor(#20129,#20136)
|
||||
#20167=*
|
||||
entry_cfg_node(#20167,#20129)
|
||||
@@ -523,9 +523,9 @@ exit_cfg_node(#20172,#20117)
|
||||
#20173=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20173,#10000,3,2,3,1)
|
||||
hasLocation(#20172,#20173)
|
||||
successor(#20124,#20128)
|
||||
successor(#20128,#20126)
|
||||
successor(#20126,#20172)
|
||||
successor(#20124,#20128)
|
||||
successor(#20122,#20124)
|
||||
successor(#20171,#20122)
|
||||
successor(#20131,#20117)
|
||||
|
||||
@@ -684,12 +684,12 @@ exit_cfg_node(#20237,#20216)
|
||||
#20238=@"loc,{#10000},15,2,15,1"
|
||||
locations_default(#20238,#10000,15,2,15,1)
|
||||
hasLocation(#20237,#20238)
|
||||
successor(#20221,#20223)
|
||||
successor(#20223,#20225)
|
||||
successor(#20225,#20227)
|
||||
successor(#20227,#20229)
|
||||
successor(#20229,#20231)
|
||||
successor(#20231,#20237)
|
||||
successor(#20221,#20223)
|
||||
successor(#20235,#20221)
|
||||
successor(#20200,#20197)
|
||||
successor(#20199,#20210)
|
||||
|
||||
@@ -634,12 +634,10 @@ hasLocation(#20206,#20187)
|
||||
successor(#20206,#20196)
|
||||
successor(#20186,#20205)
|
||||
successor(#20186,#20206)
|
||||
successor(#20190,#20192)
|
||||
successor(#20192,#20194)
|
||||
successor(#20194,#20195)
|
||||
successor(#20195,#20196)
|
||||
successor(#20175,#20177)
|
||||
successor(#20177,#20179)
|
||||
successor(#20192,#20194)
|
||||
successor(#20190,#20192)
|
||||
successor(#20179,#20181)
|
||||
#20207=*
|
||||
guard_node(#20207,1,#20181)
|
||||
@@ -652,10 +650,12 @@ successor(#20208,#20184)
|
||||
successor(#20181,#20207)
|
||||
successor(#20181,#20208)
|
||||
successor(#20182,#20184)
|
||||
successor(#20168,#20170)
|
||||
successor(#20170,#20172)
|
||||
successor(#20177,#20179)
|
||||
successor(#20175,#20177)
|
||||
successor(#20172,#20173)
|
||||
successor(#20173,#20175)
|
||||
successor(#20170,#20172)
|
||||
successor(#20168,#20170)
|
||||
successor(#20159,#20162)
|
||||
successor(#20166,#20160)
|
||||
successor(#20164,#20166)
|
||||
|
||||
@@ -351,7 +351,6 @@ exit_cfg_node(#20114,#20075)
|
||||
#20115=@"loc,{#10000},4,2,4,1"
|
||||
locations_default(#20115,#10000,4,2,4,1)
|
||||
hasLocation(#20114,#20115)
|
||||
successor(#20080,#20084)
|
||||
successor(#20094,#20096)
|
||||
successor(#20096,#20097)
|
||||
successor(#20097,#20099)
|
||||
@@ -378,6 +377,7 @@ successor(#20091,#20089)
|
||||
successor(#20089,#20086)
|
||||
successor(#20088,#20091)
|
||||
successor(#20086,#20094)
|
||||
successor(#20080,#20084)
|
||||
successor(#20113,#20080)
|
||||
successor(#20077,#20075)
|
||||
successor(#20110,#20077)
|
||||
|
||||
@@ -363,7 +363,6 @@ exit_cfg_node(#20118,#20088)
|
||||
#20119=@"loc,{#10000},7,2,7,1"
|
||||
locations_default(#20119,#10000,7,2,7,1)
|
||||
hasLocation(#20118,#20119)
|
||||
successor(#20094,#20096)
|
||||
successor(#20096,#20098)
|
||||
#20120=*
|
||||
guard_node(#20120,1,#20098)
|
||||
@@ -375,9 +374,7 @@ hasLocation(#20121,#20047)
|
||||
successor(#20121,#20118)
|
||||
successor(#20098,#20120)
|
||||
successor(#20098,#20121)
|
||||
successor(#20099,#20101)
|
||||
successor(#20101,#20103)
|
||||
successor(#20103,#20118)
|
||||
successor(#20101,#20118)
|
||||
#20122=*
|
||||
entry_cfg_node(#20122,#20101)
|
||||
#20123=@"loc,{#10000},5,5,5,4"
|
||||
@@ -392,6 +389,9 @@ successor(#20108,#20110)
|
||||
successor(#20110,#20124)
|
||||
successor(#20106,#20108)
|
||||
successor(#20122,#20106)
|
||||
successor(#20103,#20101)
|
||||
successor(#20099,#20103)
|
||||
successor(#20094,#20096)
|
||||
successor(#20092,#20094)
|
||||
successor(#20116,#20092)
|
||||
successor(#20075,#20086)
|
||||
|
||||
@@ -516,11 +516,11 @@ successor(#20151,#20161)
|
||||
successor(#20136,#20134)
|
||||
successor(#20134,#20137)
|
||||
successor(#20134,#20149)
|
||||
successor(#20141,#20143)
|
||||
successor(#20143,#20147)
|
||||
successor(#20148,#20145)
|
||||
successor(#20147,#20148)
|
||||
successor(#20145,#20134)
|
||||
successor(#20141,#20143)
|
||||
successor(#20137,#20140)
|
||||
successor(#20140,#20139)
|
||||
successor(#20139,#20141)
|
||||
|
||||
@@ -542,35 +542,35 @@ hasLocation(#20173,#20171)
|
||||
#20174=*
|
||||
exit_cfg_node(#20174,#20111)
|
||||
hasLocation(#20174,#20108)
|
||||
successor(#20117,#20119)
|
||||
successor(#20119,#20121)
|
||||
successor(#20121,#20123)
|
||||
successor(#20123,#20127)
|
||||
successor(#20127,#20125)
|
||||
successor(#20125,#20128)
|
||||
successor(#20125,#20174)
|
||||
successor(#20121,#20123)
|
||||
successor(#20128,#20132)
|
||||
successor(#20136,#20133)
|
||||
successor(#20135,#20136)
|
||||
successor(#20133,#20138)
|
||||
successor(#20133,#20152)
|
||||
successor(#20132,#20135)
|
||||
successor(#20138,#20140)
|
||||
successor(#20140,#20146)
|
||||
successor(#20149,#20142)
|
||||
successor(#20148,#20144)
|
||||
successor(#20146,#20148)
|
||||
successor(#20144,#20149)
|
||||
successor(#20142,#20174)
|
||||
successor(#20138,#20140)
|
||||
successor(#20152,#20156)
|
||||
successor(#20157,#20159)
|
||||
successor(#20159,#20165)
|
||||
successor(#20167,#20161)
|
||||
successor(#20166,#20163)
|
||||
successor(#20165,#20166)
|
||||
successor(#20163,#20167)
|
||||
successor(#20161,#20174)
|
||||
successor(#20157,#20159)
|
||||
successor(#20156,#20157)
|
||||
successor(#20117,#20119)
|
||||
successor(#20115,#20117)
|
||||
successor(#20173,#20115)
|
||||
successor(#20112,#20111)
|
||||
|
||||
@@ -489,7 +489,6 @@ successor(#20140,#20141)
|
||||
successor(#20138,#20144)
|
||||
successor(#20136,#20148)
|
||||
successor(#20107,#20114)
|
||||
successor(#20120,#20122)
|
||||
successor(#20122,#20128)
|
||||
successor(#20134,#20131)
|
||||
successor(#20133,#20134)
|
||||
@@ -498,6 +497,7 @@ successor(#20130,#20126)
|
||||
successor(#20128,#20130)
|
||||
successor(#20126,#20133)
|
||||
successor(#20124,#20135)
|
||||
successor(#20120,#20122)
|
||||
successor(#20119,#20116)
|
||||
successor(#20118,#20119)
|
||||
successor(#20116,#20120)
|
||||
|
||||
@@ -189,13 +189,13 @@ hasLocation(#20058,#20056)
|
||||
#20059=*
|
||||
exit_cfg_node(#20059,#20039)
|
||||
hasLocation(#20059,#20036)
|
||||
successor(#20043,#20045)
|
||||
successor(#20048,#20052)
|
||||
successor(#20054,#20050)
|
||||
successor(#20052,#20054)
|
||||
successor(#20050,#20059)
|
||||
successor(#20045,#20047)
|
||||
successor(#20047,#20048)
|
||||
successor(#20043,#20045)
|
||||
successor(#20058,#20043)
|
||||
successor(#20040,#20039)
|
||||
successor(#20055,#20040)
|
||||
|
||||
@@ -565,8 +565,8 @@ exit_cfg_node(#20182,#20143)
|
||||
#20183=@"loc,{#10000},9,2,9,1"
|
||||
locations_default(#20183,#10000,9,2,9,1)
|
||||
hasLocation(#20182,#20183)
|
||||
successor(#20147,#20149)
|
||||
successor(#20149,#20182)
|
||||
successor(#20147,#20149)
|
||||
successor(#20180,#20147)
|
||||
successor(#20141,#20143)
|
||||
successor(#20140,#20151)
|
||||
@@ -592,11 +592,11 @@ exit_cfg_node(#20189,#20115)
|
||||
#20190=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20190,#10000,3,2,3,1)
|
||||
hasLocation(#20189,#20190)
|
||||
successor(#20124,#20130)
|
||||
successor(#20131,#20128)
|
||||
successor(#20130,#20131)
|
||||
successor(#20128,#20126)
|
||||
successor(#20126,#20189)
|
||||
successor(#20124,#20130)
|
||||
successor(#20122,#20124)
|
||||
successor(#20120,#20122)
|
||||
successor(#20188,#20120)
|
||||
|
||||
@@ -1009,8 +1009,8 @@ successor(#20281,#20279)
|
||||
successor(#20279,#20277)
|
||||
successor(#20292,#20281)
|
||||
successor(#20268,#20271)
|
||||
successor(#20271,#20273)
|
||||
successor(#20273,#20270)
|
||||
successor(#20271,#20273)
|
||||
#20317=*
|
||||
guard_node(#20317,1,#20270)
|
||||
hasLocation(#20317,#20136)
|
||||
@@ -1035,7 +1035,6 @@ successor(#20320,#20268)
|
||||
successor(#20242,#20319)
|
||||
successor(#20242,#20320)
|
||||
successor(#20244,#20242)
|
||||
successor(#20248,#20250)
|
||||
successor(#20250,#20252)
|
||||
successor(#20252,#20254)
|
||||
#20321=*
|
||||
@@ -1062,6 +1061,7 @@ successor(#20261,#20323)
|
||||
successor(#20261,#20324)
|
||||
successor(#20263,#20268)
|
||||
successor(#20266,#20252)
|
||||
successor(#20248,#20250)
|
||||
successor(#20233,#20235)
|
||||
successor(#20236,#20235)
|
||||
successor(#20235,#20236)
|
||||
|
||||
@@ -548,7 +548,6 @@ exit_cfg_node(#20179,#20147)
|
||||
#20180=@"loc,{#10000},17,2,17,1"
|
||||
locations_default(#20180,#10000,17,2,17,1)
|
||||
hasLocation(#20179,#20180)
|
||||
successor(#20152,#20154)
|
||||
successor(#20154,#20156)
|
||||
successor(#20156,#20157)
|
||||
successor(#20168,#20170)
|
||||
@@ -564,6 +563,7 @@ successor(#20159,#20162)
|
||||
successor(#20159,#20168)
|
||||
successor(#20162,#20160)
|
||||
successor(#20160,#20179)
|
||||
successor(#20152,#20154)
|
||||
successor(#20177,#20152)
|
||||
successor(#20130,#20132)
|
||||
successor(#20132,#20138)
|
||||
|
||||
@@ -321,7 +321,6 @@ exit_cfg_node(#20104,#20075)
|
||||
#20105=@"loc,{#10000},9,2,9,1"
|
||||
locations_default(#20105,#10000,9,2,9,1)
|
||||
hasLocation(#20104,#20105)
|
||||
successor(#20080,#20082)
|
||||
successor(#20082,#20084)
|
||||
successor(#20084,#20086)
|
||||
successor(#20094,#20096)
|
||||
@@ -335,6 +334,7 @@ successor(#20091,#20104)
|
||||
successor(#20086,#20088)
|
||||
successor(#20088,#20089)
|
||||
successor(#20088,#20094)
|
||||
successor(#20080,#20082)
|
||||
successor(#20103,#20080)
|
||||
successor(#20077,#20075)
|
||||
successor(#20100,#20077)
|
||||
|
||||
@@ -345,15 +345,15 @@ successor(#20109,#20110)
|
||||
successor(#20112,#20116)
|
||||
successor(#20096,#20097)
|
||||
successor(#20097,#20099)
|
||||
successor(#20099,#20101)
|
||||
successor(#20101,#20102)
|
||||
successor(#20099,#20101)
|
||||
successor(#20079,#20081)
|
||||
successor(#20081,#20085)
|
||||
successor(#20085,#20083)
|
||||
successor(#20083,#20088)
|
||||
successor(#20081,#20085)
|
||||
successor(#20088,#20092)
|
||||
successor(#20093,#20095)
|
||||
successor(#20095,#20096)
|
||||
successor(#20093,#20095)
|
||||
successor(#20092,#20093)
|
||||
successor(#20114,#20079)
|
||||
numlines(#10000,5,5,0)
|
||||
|
||||
@@ -186,13 +186,13 @@ hasLocation(#20057,#20055)
|
||||
#20058=*
|
||||
exit_cfg_node(#20058,#20037)
|
||||
hasLocation(#20058,#20034)
|
||||
successor(#20041,#20043)
|
||||
successor(#20048,#20052)
|
||||
successor(#20053,#20050)
|
||||
successor(#20052,#20053)
|
||||
successor(#20050,#20058)
|
||||
successor(#20043,#20045)
|
||||
successor(#20045,#20048)
|
||||
successor(#20041,#20043)
|
||||
successor(#20057,#20041)
|
||||
successor(#20038,#20037)
|
||||
successor(#20054,#20038)
|
||||
|
||||
@@ -226,12 +226,12 @@ hasLocation(#20064,#20048)
|
||||
#20065=*
|
||||
exit_cfg_node(#20065,#20050)
|
||||
hasLocation(#20065,#20048)
|
||||
successor(#20055,#20056)
|
||||
successor(#20056,#20058)
|
||||
successor(#20060,#20059)
|
||||
successor(#20059,#20057)
|
||||
successor(#20058,#20060)
|
||||
successor(#20057,#20065)
|
||||
successor(#20055,#20056)
|
||||
successor(#20053,#20055)
|
||||
successor(#20064,#20053)
|
||||
successor(#20049,#20050)
|
||||
|
||||
@@ -10121,7 +10121,6 @@ exit_cfg_node(#23205,#22591)
|
||||
#23206=@"loc,{#10000},49,4,49,3"
|
||||
locations_default(#23206,#10000,49,4,49,3)
|
||||
hasLocation(#23205,#23206)
|
||||
successor(#22613,#22617)
|
||||
successor(#22623,#22627)
|
||||
successor(#22628,#22625)
|
||||
successor(#22627,#22628)
|
||||
@@ -10130,6 +10129,7 @@ successor(#22617,#22621)
|
||||
successor(#22622,#22619)
|
||||
successor(#22621,#22622)
|
||||
successor(#22619,#22623)
|
||||
successor(#22613,#22617)
|
||||
successor(#22599,#22613)
|
||||
successor(#22597,#22599)
|
||||
successor(#23203,#22597)
|
||||
@@ -10144,11 +10144,11 @@ exit_cfg_node(#23209,#22566)
|
||||
#23210=@"loc,{#10000},44,4,44,3"
|
||||
locations_default(#23210,#10000,44,4,44,3)
|
||||
hasLocation(#23209,#23210)
|
||||
successor(#22583,#22585)
|
||||
successor(#22585,#22589)
|
||||
successor(#22590,#22587)
|
||||
successor(#22589,#22590)
|
||||
successor(#22587,#23209)
|
||||
successor(#22583,#22585)
|
||||
successor(#22574,#22583)
|
||||
successor(#22572,#22574)
|
||||
successor(#23207,#22572)
|
||||
|
||||
@@ -638,11 +638,11 @@ exit_cfg_node(#20194,#20132)
|
||||
#20195=@"loc,{#10000},4,41,4,40"
|
||||
locations_default(#20195,#10000,4,41,4,40)
|
||||
hasLocation(#20194,#20195)
|
||||
successor(#20136,#20142)
|
||||
successor(#20143,#20140)
|
||||
successor(#20142,#20143)
|
||||
successor(#20140,#20138)
|
||||
successor(#20138,#20194)
|
||||
successor(#20136,#20142)
|
||||
successor(#20192,#20136)
|
||||
successor(#20131,#20132)
|
||||
successor(#20125,#20155)
|
||||
|
||||
@@ -1070,9 +1070,9 @@ exit_cfg_node(#20333,#20276)
|
||||
#20334=@"loc,{#10000},7,30,7,29"
|
||||
locations_default(#20334,#10000,7,30,7,29)
|
||||
hasLocation(#20333,#20334)
|
||||
successor(#20282,#20286)
|
||||
successor(#20286,#20284)
|
||||
successor(#20284,#20333)
|
||||
successor(#20282,#20286)
|
||||
successor(#20280,#20282)
|
||||
successor(#20331,#20280)
|
||||
successor(#20275,#20274)
|
||||
|
||||
@@ -324,7 +324,6 @@ hasLocation(#20098,#20096)
|
||||
#20099=*
|
||||
exit_cfg_node(#20099,#20063)
|
||||
hasLocation(#20099,#20060)
|
||||
successor(#20069,#20074)
|
||||
successor(#20086,#20094)
|
||||
successor(#20090,#20092)
|
||||
successor(#20093,#20088)
|
||||
@@ -340,6 +339,7 @@ successor(#20079,#20078)
|
||||
successor(#20078,#20080)
|
||||
successor(#20077,#20076)
|
||||
successor(#20076,#20079)
|
||||
successor(#20069,#20074)
|
||||
successor(#20067,#20069)
|
||||
successor(#20098,#20067)
|
||||
successor(#20064,#20063)
|
||||
|
||||
@@ -316,13 +316,13 @@ exit_cfg_node(#20097,#20063)
|
||||
#20098=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20098,#10000,3,2,3,1)
|
||||
hasLocation(#20097,#20098)
|
||||
successor(#20071,#20079)
|
||||
successor(#20081,#20075)
|
||||
successor(#20080,#20077)
|
||||
successor(#20079,#20080)
|
||||
successor(#20077,#20081)
|
||||
successor(#20075,#20073)
|
||||
successor(#20073,#20097)
|
||||
successor(#20071,#20079)
|
||||
successor(#20068,#20071)
|
||||
successor(#20096,#20068)
|
||||
successor(#20065,#20063)
|
||||
|
||||
@@ -294,7 +294,6 @@ exit_cfg_node(#20094,#20063)
|
||||
#20095=@"loc,{#10000},4,2,4,1"
|
||||
locations_default(#20095,#10000,4,2,4,1)
|
||||
hasLocation(#20094,#20095)
|
||||
successor(#20072,#20074)
|
||||
successor(#20082,#20084)
|
||||
successor(#20084,#20086)
|
||||
#20096=*
|
||||
@@ -341,6 +340,7 @@ successor(#20103,#20082)
|
||||
successor(#20079,#20102)
|
||||
successor(#20079,#20103)
|
||||
successor(#20080,#20082)
|
||||
successor(#20072,#20074)
|
||||
successor(#20070,#20072)
|
||||
successor(#20068,#20070)
|
||||
successor(#20093,#20068)
|
||||
|
||||
@@ -294,9 +294,9 @@ exit_cfg_node(#20092,#20065)
|
||||
#20093=@"loc,{#10000},2,23,2,22"
|
||||
locations_default(#20093,#10000,2,23,2,22)
|
||||
hasLocation(#20092,#20093)
|
||||
successor(#20068,#20072)
|
||||
successor(#20072,#20070)
|
||||
successor(#20070,#20092)
|
||||
successor(#20068,#20072)
|
||||
successor(#20090,#20068)
|
||||
successor(#20064,#20065)
|
||||
successor(#20062,#20075)
|
||||
|
||||
@@ -256,13 +256,13 @@ exit_cfg_node(#20079,#20054)
|
||||
#20080=@"loc,{#10000},5,3,5,2"
|
||||
locations_default(#20080,#10000,5,3,5,2)
|
||||
hasLocation(#20079,#20080)
|
||||
successor(#20062,#20064)
|
||||
successor(#20064,#20070)
|
||||
successor(#20073,#20066)
|
||||
successor(#20071,#20068)
|
||||
successor(#20070,#20071)
|
||||
successor(#20068,#20073)
|
||||
successor(#20066,#20079)
|
||||
successor(#20062,#20064)
|
||||
successor(#20077,#20055)
|
||||
successor(#20059,#20054)
|
||||
successor(#20057,#20048)
|
||||
|
||||
@@ -267,16 +267,16 @@ exit_cfg_node(#20086,#20059)
|
||||
#20087=@"loc,{#10000},7,2,7,1"
|
||||
locations_default(#20087,#10000,7,2,7,1)
|
||||
hasLocation(#20086,#20087)
|
||||
successor(#20065,#20067)
|
||||
successor(#20073,#20075)
|
||||
successor(#20075,#20077)
|
||||
successor(#20077,#20081)
|
||||
successor(#20081,#20079)
|
||||
successor(#20079,#20086)
|
||||
successor(#20077,#20081)
|
||||
successor(#20067,#20071)
|
||||
successor(#20072,#20069)
|
||||
successor(#20071,#20072)
|
||||
successor(#20069,#20073)
|
||||
successor(#20065,#20067)
|
||||
successor(#20085,#20065)
|
||||
successor(#20061,#20059)
|
||||
successor(#20082,#20061)
|
||||
|
||||
@@ -4603,9 +4603,9 @@ exit_cfg_node(#21451,#21425)
|
||||
#21452=@"loc,{#10000},64,40,64,39"
|
||||
locations_default(#21452,#10000,64,40,64,39)
|
||||
hasLocation(#21451,#21452)
|
||||
successor(#21432,#21436)
|
||||
successor(#21436,#21434)
|
||||
successor(#21434,#21451)
|
||||
successor(#21432,#21436)
|
||||
successor(#21428,#21432)
|
||||
successor(#21449,#21428)
|
||||
successor(#21424,#21425)
|
||||
|
||||
@@ -298,7 +298,6 @@ exit_cfg_node(#20097,#20065)
|
||||
#20098=@"loc,{#10000},8,2,8,1"
|
||||
locations_default(#20098,#10000,8,2,8,1)
|
||||
hasLocation(#20097,#20098)
|
||||
successor(#20073,#20075)
|
||||
successor(#20075,#20097)
|
||||
#20099=*
|
||||
entry_cfg_node(#20099,#20075)
|
||||
@@ -310,16 +309,17 @@ exit_cfg_node(#20101,#20075)
|
||||
#20102=@"loc,{#10000},7,4,7,3"
|
||||
locations_default(#20102,#10000,7,4,7,3)
|
||||
hasLocation(#20101,#20102)
|
||||
successor(#20081,#20083)
|
||||
successor(#20083,#20085)
|
||||
successor(#20085,#20087)
|
||||
successor(#20087,#20089)
|
||||
successor(#20089,#20092)
|
||||
successor(#20092,#20091)
|
||||
successor(#20091,#20101)
|
||||
successor(#20087,#20089)
|
||||
successor(#20081,#20083)
|
||||
successor(#20099,#20081)
|
||||
successor(#20077,#20073)
|
||||
successor(#20071,#20077)
|
||||
successor(#20077,#20075)
|
||||
successor(#20073,#20077)
|
||||
successor(#20071,#20073)
|
||||
successor(#20096,#20071)
|
||||
successor(#20067,#20065)
|
||||
successor(#20093,#20067)
|
||||
|
||||
@@ -224,13 +224,13 @@ exit_cfg_node(#20072,#20051)
|
||||
#20073=@"loc,{#10000},6,2,6,1"
|
||||
locations_default(#20073,#10000,6,2,6,1)
|
||||
hasLocation(#20072,#20073)
|
||||
successor(#20057,#20059)
|
||||
successor(#20059,#20061)
|
||||
successor(#20061,#20062)
|
||||
successor(#20062,#20064)
|
||||
successor(#20064,#20067)
|
||||
successor(#20067,#20066)
|
||||
successor(#20066,#20072)
|
||||
successor(#20057,#20059)
|
||||
successor(#20071,#20057)
|
||||
successor(#20053,#20051)
|
||||
successor(#20068,#20053)
|
||||
|
||||
@@ -202,13 +202,13 @@ hasLocation(#20065,#20063)
|
||||
#20066=*
|
||||
exit_cfg_node(#20066,#20045)
|
||||
hasLocation(#20066,#20042)
|
||||
successor(#20050,#20052)
|
||||
successor(#20052,#20054)
|
||||
successor(#20054,#20056)
|
||||
successor(#20056,#20059)
|
||||
successor(#20059,#20058)
|
||||
successor(#20058,#20060)
|
||||
successor(#20054,#20056)
|
||||
successor(#20060,#20066)
|
||||
successor(#20050,#20052)
|
||||
successor(#20065,#20050)
|
||||
successor(#20046,#20045)
|
||||
successor(#20062,#20046)
|
||||
|
||||
@@ -699,8 +699,6 @@ hasLocation(#20222,#20223)
|
||||
#20224=*
|
||||
exit_cfg_node(#20224,#20183)
|
||||
hasLocation(#20224,#20143)
|
||||
successor(#20190,#20192)
|
||||
successor(#20199,#20201)
|
||||
successor(#20208,#20211)
|
||||
successor(#20211,#20210)
|
||||
#20225=*
|
||||
@@ -717,8 +715,7 @@ successor(#20217,#20227)
|
||||
successor(#20215,#20217)
|
||||
successor(#20225,#20215)
|
||||
successor(#20210,#20224)
|
||||
successor(#20201,#20203)
|
||||
successor(#20203,#20208)
|
||||
successor(#20201,#20208)
|
||||
#20229=*
|
||||
entry_cfg_node(#20229,#20201)
|
||||
#20230=@"loc,{#10000},16,3,16,2"
|
||||
@@ -731,11 +728,14 @@ locations_default(#20232,#10000,16,18,16,17)
|
||||
hasLocation(#20231,#20232)
|
||||
successor(#20206,#20231)
|
||||
successor(#20229,#20206)
|
||||
successor(#20203,#20201)
|
||||
successor(#20199,#20203)
|
||||
successor(#20195,#20198)
|
||||
successor(#20198,#20197)
|
||||
successor(#20197,#20199)
|
||||
successor(#20192,#20194)
|
||||
successor(#20194,#20195)
|
||||
successor(#20190,#20192)
|
||||
successor(#20222,#20190)
|
||||
successor(#20168,#20183)
|
||||
#20233=*
|
||||
@@ -748,17 +748,17 @@ exit_cfg_node(#20235,#20168)
|
||||
#20236=@"loc,{#10000},11,2,11,1"
|
||||
locations_default(#20236,#10000,11,2,11,1)
|
||||
hasLocation(#20235,#20236)
|
||||
successor(#20174,#20176)
|
||||
successor(#20180,#20182)
|
||||
successor(#20182,#20235)
|
||||
successor(#20176,#20179)
|
||||
successor(#20179,#20178)
|
||||
successor(#20178,#20180)
|
||||
successor(#20174,#20176)
|
||||
successor(#20233,#20174)
|
||||
successor(#20162,#20164)
|
||||
successor(#20164,#20167)
|
||||
successor(#20167,#20166)
|
||||
successor(#20166,#20168)
|
||||
successor(#20162,#20164)
|
||||
successor(#20160,#20161)
|
||||
successor(#20161,#20162)
|
||||
successor(#20158,#20159)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
category: fix
|
||||
---
|
||||
* Fixed a rare issue that would occur when a function declaration inside a block statement was referenced before it was declared.
|
||||
Such code is reliant on legacy web semantics, which is non-standard but nevertheless implemented by most engines.
|
||||
CodeQL now takes legacy web semantics into account and resolves references to these functions correctly.
|
||||
@@ -0,0 +1,25 @@
|
||||
function test1() {
|
||||
/** name:hoist1 */
|
||||
function f() {}
|
||||
|
||||
/** calls:hoist1 */
|
||||
f();
|
||||
}
|
||||
|
||||
function test2() {
|
||||
/** calls:hoist2 */
|
||||
f();
|
||||
|
||||
/** name:hoist2 */
|
||||
function f() {}
|
||||
}
|
||||
|
||||
function test3() {
|
||||
{
|
||||
/** calls:hoist3 */
|
||||
f();
|
||||
|
||||
/** name:hoist3 */
|
||||
function f() {}
|
||||
}
|
||||
}
|
||||
@@ -11,8 +11,8 @@
|
||||
| fundecls.js:12:12:12:12 | def@12:12 | fundecls.js:10:3:10:3 | f |
|
||||
| fundecls.js:18:12:18:12 | def@18:12 | fundecls.js:17:3:17:3 | f |
|
||||
| fundecls.js:23:12:23:12 | def@23:12 | fundecls.js:24:3:24:3 | f |
|
||||
| fundecls.js:27:2:27:2 | implicitInit@27:2 | fundecls.js:28:3:28:3 | f |
|
||||
| fundecls.js:34:12:34:12 | def@34:12 | fundecls.js:35:3:35:3 | f |
|
||||
| fundecls.js:30:12:30:12 | def@30:12 | fundecls.js:28:3:28:3 | f |
|
||||
| fundecls.js:36:12:36:12 | def@36:12 | fundecls.js:35:3:35:3 | f |
|
||||
| fundecls.js:39:11:39:11 | def@39:11 | fundecls.js:40:7:40:7 | x |
|
||||
| fundecls.js:45:3:45:3 | phi@45:3 | fundecls.js:45:3:45:3 | f |
|
||||
| fundecls.js:48:11:48:11 | def@48:11 | fundecls.js:50:7:50:7 | x |
|
||||
|
||||
Reference in New Issue
Block a user