mirror of
https://github.com/github/codeql.git
synced 2026-05-01 03:35:13 +02:00
JS(extractor): improve parser support for flowtype syntax
This commit is contained in:
@@ -3040,6 +3040,10 @@ public class Parser {
|
||||
return parseClassPropertyBody(pi, hadConstructor, isStatic);
|
||||
}
|
||||
|
||||
protected boolean atGetterSetterName(PropertyInfo pi) {
|
||||
return !pi.isGenerator && !pi.isAsync && pi.key instanceof Identifier && this.type != TokenType.parenL && (((Identifier) pi.key).getName().equals("get") || ((Identifier) pi.key).getName().equals("set"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a method declaration in a class, assuming that its name has already been consumed.
|
||||
*/
|
||||
@@ -3047,7 +3051,7 @@ public class Parser {
|
||||
pi.kind = "method";
|
||||
boolean isGetSet = false;
|
||||
if (!pi.computed) {
|
||||
if (!pi.isGenerator && !pi.isAsync && pi.key instanceof Identifier && this.type != TokenType.parenL && (((Identifier) pi.key).getName().equals("get") || ((Identifier) pi.key).getName().equals("set"))) {
|
||||
if (atGetterSetterName(pi)) {
|
||||
isGetSet = true;
|
||||
pi.kind = ((Identifier) pi.key).getName();
|
||||
this.parsePropertyName(pi);
|
||||
|
||||
@@ -146,6 +146,10 @@ public class FlowParser extends ESNextParser {
|
||||
boolean oldInType = inType;
|
||||
inType = true;
|
||||
this.expect(tok == null ? TokenType.colon : tok);
|
||||
if (this.type == TokenType.modulo) {// an annotation like '%checks' without a preceeding type
|
||||
inType = oldInType;
|
||||
return;
|
||||
}
|
||||
if (allowLeadingPipeOrAnd) {
|
||||
if (this.type == TokenType.bitwiseAND || this.type == TokenType.bitwiseOR) {
|
||||
this.next();
|
||||
@@ -223,14 +227,29 @@ public class FlowParser extends ESNextParser {
|
||||
while (this.type != TokenType.braceR) {
|
||||
Position stmtStart = startLoc;
|
||||
|
||||
// todo: declare check
|
||||
this.next();
|
||||
if (this.eat(TokenType._import)) {
|
||||
this.flowParseDeclareImport(stmtStart);
|
||||
} else {
|
||||
// todo: declare check
|
||||
this.next();
|
||||
|
||||
this.flowParseDeclare(stmtStart);
|
||||
this.flowParseDeclare(stmtStart);
|
||||
}
|
||||
}
|
||||
this.expect(TokenType.braceR);
|
||||
}
|
||||
|
||||
private void flowParseDeclareImport(Position stmtStart) {
|
||||
String kind = flowParseImportSpecifiers();
|
||||
if (kind == null) {
|
||||
this.raise(stmtStart, "Imports within a `declare module` body must always be `import type` or `import typeof`.");
|
||||
}
|
||||
this.expect(TokenType.name);
|
||||
this.expectContextual("from");
|
||||
this.expect(TokenType.string);
|
||||
this.semicolon();
|
||||
}
|
||||
|
||||
private void flowParseDeclareModuleExports() {
|
||||
this.expectContextual("module");
|
||||
this.expect(TokenType.dot);
|
||||
@@ -737,7 +756,7 @@ public class FlowParser extends ESNextParser {
|
||||
|
||||
private void flowParsePostfixType() {
|
||||
this.flowParsePrimaryType();
|
||||
if (this.type == TokenType.bracketL) {
|
||||
while (this.type == TokenType.bracketL) {
|
||||
this.expect(TokenType.bracketL);
|
||||
this.expect(TokenType.bracketR);
|
||||
}
|
||||
@@ -807,11 +826,20 @@ public class FlowParser extends ESNextParser {
|
||||
// if allowExpression is true then we're parsing an arrow function and if
|
||||
// there's a return type then it's been handled elsewhere
|
||||
this.flowParseTypeAnnotation();
|
||||
this.flowParseChecksAnnotation();
|
||||
}
|
||||
|
||||
return super.parseFunctionBody(id, params, isArrowFunction);
|
||||
}
|
||||
|
||||
private void flowParseChecksAnnotation() {
|
||||
// predicate functions with the special '%checks' annotation
|
||||
if (this.type == TokenType.modulo && lookaheadIsIdent("checks", true)) {
|
||||
this.next();
|
||||
this.next();
|
||||
}
|
||||
}
|
||||
|
||||
// interfaces
|
||||
@Override
|
||||
protected Statement parseStatement(boolean declaration, boolean topLevel, Set<String> exports) {
|
||||
@@ -975,24 +1003,30 @@ public class FlowParser extends ESNextParser {
|
||||
return param;
|
||||
}
|
||||
|
||||
private String flowParseImportSpecifiers() {
|
||||
String kind = null;
|
||||
if (this.type == TokenType._typeof) {
|
||||
kind = "typeof";
|
||||
} else if (this.isContextual("type")) {
|
||||
kind = "type";
|
||||
}
|
||||
if (kind != null) {
|
||||
String lh = lookahead(4);
|
||||
if (!lh.isEmpty()) {
|
||||
int c = lh.codePointAt(0);
|
||||
if ((Identifiers.isIdentifierStart(c, true) && !"from".equals(lh)) || c == '{' || c == '*') {
|
||||
this.next();
|
||||
}
|
||||
}
|
||||
}
|
||||
return kind;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<ImportSpecifier> parseImportSpecifiers() {
|
||||
String kind = null;
|
||||
if (flow()) {
|
||||
if (this.type == TokenType._typeof) {
|
||||
kind = "typeof";
|
||||
} else if (this.isContextual("type")) {
|
||||
kind = "type";
|
||||
}
|
||||
if (kind != null) {
|
||||
String lh = lookahead(4);
|
||||
if (!lh.isEmpty()) {
|
||||
int c = lh.codePointAt(0);
|
||||
if ((Identifiers.isIdentifierStart(c, true) && !"from".equals(lh)) || c == '{' || c == '*') {
|
||||
this.next();
|
||||
}
|
||||
}
|
||||
}
|
||||
kind = flowParseImportSpecifiers();
|
||||
}
|
||||
|
||||
List<ImportSpecifier> specs = super.parseImportSpecifiers();
|
||||
@@ -1102,6 +1136,7 @@ public class FlowParser extends ESNextParser {
|
||||
boolean oldNoAnonFunctionType = noAnonFunctionType;
|
||||
noAnonFunctionType = true;
|
||||
flowParseTypeAnnotation();
|
||||
flowParseChecksAnnotation();
|
||||
noAnonFunctionType = oldNoAnonFunctionType;
|
||||
if (this.type != TokenType.arrow)
|
||||
unexpected();
|
||||
@@ -1158,4 +1193,12 @@ public class FlowParser extends ESNextParser {
|
||||
this.eat(TokenType.plusMin);
|
||||
super.parsePropertyName(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean atGetterSetterName(PropertyInfo pi) {
|
||||
if (flow() && this.isRelational("<"))
|
||||
return false;
|
||||
return super.atGetterSetterName(pi);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Main {
|
||||
* such a way that it may produce different tuples for the same file under the same
|
||||
* {@link ExtractorConfig}.
|
||||
*/
|
||||
public static final String EXTRACTOR_VERSION = "2018-11-20";
|
||||
public static final String EXTRACTOR_VERSION = "2018-11-22_a";
|
||||
|
||||
public static final Pattern NEWLINE = Pattern.compile("\n");
|
||||
|
||||
|
||||
4
javascript/extractor/tests/flow/input/array-types.js
Normal file
4
javascript/extractor/tests/flow/input/array-types.js
Normal file
@@ -0,0 +1,4 @@
|
||||
function f(p: T) {}
|
||||
function f(p: T[]) {}
|
||||
function f(p: T[][]) {}
|
||||
function f(p: T[][][]) {}
|
||||
@@ -0,0 +1,4 @@
|
||||
declare module "m1" {
|
||||
import type t from "m2";
|
||||
import typeof t from "m3";
|
||||
}
|
||||
4
javascript/extractor/tests/flow/input/get-set-methods.js
Normal file
4
javascript/extractor/tests/flow/input/get-set-methods.js
Normal file
@@ -0,0 +1,4 @@
|
||||
class C {
|
||||
get<T>(v: T) { }
|
||||
set<T>(v: T) { }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
function f(a): boolean %checks {
|
||||
return a;
|
||||
}
|
||||
function g(): %checks {} {
|
||||
return b;
|
||||
}
|
||||
|
||||
(c): boolean %checks => c;
|
||||
(d): %checks => d;
|
||||
492
javascript/extractor/tests/flow/output/trap/array-types.js.trap
Normal file
492
javascript/extractor/tests/flow/output/trap/array-types.js.trap
Normal file
@@ -0,0 +1,492 @@
|
||||
#10000=@"/array-types.js;sourcefile"
|
||||
files(#10000,"/array-types.js","array-types","js",0)
|
||||
#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"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,5,0"
|
||||
locations_default(#20002,#10000,1,1,5,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{f};{#20000}"
|
||||
variables(#20003,"f",#20000)
|
||||
#20004=*
|
||||
stmts(#20004,17,#20001,0,"function f(p: T) {}")
|
||||
#20005=@"loc,{#10000},1,1,1,19"
|
||||
locations_default(#20005,#10000,1,1,1,19)
|
||||
hasLocation(#20004,#20005)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,78,#20004,-1,"f")
|
||||
#20007=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20007,#10000,1,10,1,10)
|
||||
hasLocation(#20006,#20007)
|
||||
exprContainers(#20006,#20004)
|
||||
literals("f","f",#20006)
|
||||
decl(#20006,#20003)
|
||||
#20008=*
|
||||
scopes(#20008,1)
|
||||
scopenodes(#20004,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=@"var;{p};{#20008}"
|
||||
variables(#20009,"p",#20008)
|
||||
#20010=*
|
||||
exprs(#20010,78,#20004,0,"p: T")
|
||||
#20011=@"loc,{#10000},1,12,1,15"
|
||||
locations_default(#20011,#10000,1,12,1,15)
|
||||
hasLocation(#20010,#20011)
|
||||
exprContainers(#20010,#20004)
|
||||
literals("p","p",#20010)
|
||||
decl(#20010,#20009)
|
||||
#20012=@"var;{arguments};{#20008}"
|
||||
variables(#20012,"arguments",#20008)
|
||||
isArgumentsObject(#20012)
|
||||
#20013=*
|
||||
stmts(#20013,1,#20004,-2,"{}")
|
||||
#20014=@"loc,{#10000},1,18,1,19"
|
||||
locations_default(#20014,#10000,1,18,1,19)
|
||||
hasLocation(#20013,#20014)
|
||||
stmtContainers(#20013,#20004)
|
||||
numlines(#20004,1,1,0)
|
||||
#20015=*
|
||||
stmts(#20015,17,#20001,1,"functio ... T[]) {}")
|
||||
#20016=@"loc,{#10000},2,1,2,21"
|
||||
locations_default(#20016,#10000,2,1,2,21)
|
||||
hasLocation(#20015,#20016)
|
||||
stmtContainers(#20015,#20001)
|
||||
#20017=*
|
||||
exprs(#20017,78,#20015,-1,"f")
|
||||
#20018=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20018,#10000,2,10,2,10)
|
||||
hasLocation(#20017,#20018)
|
||||
exprContainers(#20017,#20015)
|
||||
literals("f","f",#20017)
|
||||
decl(#20017,#20003)
|
||||
#20019=*
|
||||
scopes(#20019,1)
|
||||
scopenodes(#20015,#20019)
|
||||
scopenesting(#20019,#20000)
|
||||
#20020=@"var;{p};{#20019}"
|
||||
variables(#20020,"p",#20019)
|
||||
#20021=*
|
||||
exprs(#20021,78,#20015,0,"p: T[]")
|
||||
#20022=@"loc,{#10000},2,12,2,17"
|
||||
locations_default(#20022,#10000,2,12,2,17)
|
||||
hasLocation(#20021,#20022)
|
||||
exprContainers(#20021,#20015)
|
||||
literals("p","p",#20021)
|
||||
decl(#20021,#20020)
|
||||
#20023=@"var;{arguments};{#20019}"
|
||||
variables(#20023,"arguments",#20019)
|
||||
isArgumentsObject(#20023)
|
||||
#20024=*
|
||||
stmts(#20024,1,#20015,-2,"{}")
|
||||
#20025=@"loc,{#10000},2,20,2,21"
|
||||
locations_default(#20025,#10000,2,20,2,21)
|
||||
hasLocation(#20024,#20025)
|
||||
stmtContainers(#20024,#20015)
|
||||
numlines(#20015,1,1,0)
|
||||
#20026=*
|
||||
stmts(#20026,17,#20001,2,"functio ... ][]) {}")
|
||||
#20027=@"loc,{#10000},3,1,3,23"
|
||||
locations_default(#20027,#10000,3,1,3,23)
|
||||
hasLocation(#20026,#20027)
|
||||
stmtContainers(#20026,#20001)
|
||||
#20028=*
|
||||
exprs(#20028,78,#20026,-1,"f")
|
||||
#20029=@"loc,{#10000},3,10,3,10"
|
||||
locations_default(#20029,#10000,3,10,3,10)
|
||||
hasLocation(#20028,#20029)
|
||||
exprContainers(#20028,#20026)
|
||||
literals("f","f",#20028)
|
||||
decl(#20028,#20003)
|
||||
#20030=*
|
||||
scopes(#20030,1)
|
||||
scopenodes(#20026,#20030)
|
||||
scopenesting(#20030,#20000)
|
||||
#20031=@"var;{p};{#20030}"
|
||||
variables(#20031,"p",#20030)
|
||||
#20032=*
|
||||
exprs(#20032,78,#20026,0,"p: T[][]")
|
||||
#20033=@"loc,{#10000},3,12,3,19"
|
||||
locations_default(#20033,#10000,3,12,3,19)
|
||||
hasLocation(#20032,#20033)
|
||||
exprContainers(#20032,#20026)
|
||||
literals("p","p",#20032)
|
||||
decl(#20032,#20031)
|
||||
#20034=@"var;{arguments};{#20030}"
|
||||
variables(#20034,"arguments",#20030)
|
||||
isArgumentsObject(#20034)
|
||||
#20035=*
|
||||
stmts(#20035,1,#20026,-2,"{}")
|
||||
#20036=@"loc,{#10000},3,22,3,23"
|
||||
locations_default(#20036,#10000,3,22,3,23)
|
||||
hasLocation(#20035,#20036)
|
||||
stmtContainers(#20035,#20026)
|
||||
numlines(#20026,1,1,0)
|
||||
#20037=*
|
||||
stmts(#20037,17,#20001,3,"functio ... ][]) {}")
|
||||
#20038=@"loc,{#10000},4,1,4,25"
|
||||
locations_default(#20038,#10000,4,1,4,25)
|
||||
hasLocation(#20037,#20038)
|
||||
stmtContainers(#20037,#20001)
|
||||
#20039=*
|
||||
exprs(#20039,78,#20037,-1,"f")
|
||||
#20040=@"loc,{#10000},4,10,4,10"
|
||||
locations_default(#20040,#10000,4,10,4,10)
|
||||
hasLocation(#20039,#20040)
|
||||
exprContainers(#20039,#20037)
|
||||
literals("f","f",#20039)
|
||||
decl(#20039,#20003)
|
||||
#20041=*
|
||||
scopes(#20041,1)
|
||||
scopenodes(#20037,#20041)
|
||||
scopenesting(#20041,#20000)
|
||||
#20042=@"var;{p};{#20041}"
|
||||
variables(#20042,"p",#20041)
|
||||
#20043=*
|
||||
exprs(#20043,78,#20037,0,"p: T[][][]")
|
||||
#20044=@"loc,{#10000},4,12,4,21"
|
||||
locations_default(#20044,#10000,4,12,4,21)
|
||||
hasLocation(#20043,#20044)
|
||||
exprContainers(#20043,#20037)
|
||||
literals("p","p",#20043)
|
||||
decl(#20043,#20042)
|
||||
#20045=@"var;{arguments};{#20041}"
|
||||
variables(#20045,"arguments",#20041)
|
||||
isArgumentsObject(#20045)
|
||||
#20046=*
|
||||
stmts(#20046,1,#20037,-2,"{}")
|
||||
#20047=@"loc,{#10000},4,24,4,25"
|
||||
locations_default(#20047,#10000,4,24,4,25)
|
||||
hasLocation(#20046,#20047)
|
||||
stmtContainers(#20046,#20037)
|
||||
numlines(#20037,1,1,0)
|
||||
#20048=*
|
||||
lines(#20048,#20001,"function f(p: T) {}","
|
||||
")
|
||||
hasLocation(#20048,#20005)
|
||||
#20049=*
|
||||
lines(#20049,#20001,"function f(p: T[]) {}","
|
||||
")
|
||||
hasLocation(#20049,#20016)
|
||||
#20050=*
|
||||
lines(#20050,#20001,"function f(p: T[][]) {}","
|
||||
")
|
||||
hasLocation(#20050,#20027)
|
||||
#20051=*
|
||||
lines(#20051,#20001,"function f(p: T[][][]) {}","
|
||||
")
|
||||
hasLocation(#20051,#20038)
|
||||
numlines(#20001,4,4,0)
|
||||
#20052=*
|
||||
tokeninfo(#20052,7,#20001,0,"function")
|
||||
#20053=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20053,#10000,1,1,1,8)
|
||||
hasLocation(#20052,#20053)
|
||||
#20054=*
|
||||
tokeninfo(#20054,6,#20001,1,"f")
|
||||
hasLocation(#20054,#20007)
|
||||
#20055=*
|
||||
tokeninfo(#20055,8,#20001,2,"(")
|
||||
#20056=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20056,#10000,1,11,1,11)
|
||||
hasLocation(#20055,#20056)
|
||||
#20057=*
|
||||
tokeninfo(#20057,6,#20001,3,"p")
|
||||
#20058=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20058,#10000,1,12,1,12)
|
||||
hasLocation(#20057,#20058)
|
||||
#20059=*
|
||||
tokeninfo(#20059,8,#20001,4,":")
|
||||
#20060=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20060,#10000,1,13,1,13)
|
||||
hasLocation(#20059,#20060)
|
||||
#20061=*
|
||||
tokeninfo(#20061,6,#20001,5,"T")
|
||||
#20062=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20062,#10000,1,15,1,15)
|
||||
hasLocation(#20061,#20062)
|
||||
#20063=*
|
||||
tokeninfo(#20063,8,#20001,6,")")
|
||||
#20064=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20064,#10000,1,16,1,16)
|
||||
hasLocation(#20063,#20064)
|
||||
#20065=*
|
||||
tokeninfo(#20065,8,#20001,7,"{")
|
||||
#20066=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20066,#10000,1,18,1,18)
|
||||
hasLocation(#20065,#20066)
|
||||
#20067=*
|
||||
tokeninfo(#20067,8,#20001,8,"}")
|
||||
#20068=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20068,#10000,1,19,1,19)
|
||||
hasLocation(#20067,#20068)
|
||||
#20069=*
|
||||
tokeninfo(#20069,7,#20001,9,"function")
|
||||
#20070=@"loc,{#10000},2,1,2,8"
|
||||
locations_default(#20070,#10000,2,1,2,8)
|
||||
hasLocation(#20069,#20070)
|
||||
#20071=*
|
||||
tokeninfo(#20071,6,#20001,10,"f")
|
||||
hasLocation(#20071,#20018)
|
||||
#20072=*
|
||||
tokeninfo(#20072,8,#20001,11,"(")
|
||||
#20073=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20073,#10000,2,11,2,11)
|
||||
hasLocation(#20072,#20073)
|
||||
#20074=*
|
||||
tokeninfo(#20074,6,#20001,12,"p")
|
||||
#20075=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20075,#10000,2,12,2,12)
|
||||
hasLocation(#20074,#20075)
|
||||
#20076=*
|
||||
tokeninfo(#20076,8,#20001,13,":")
|
||||
#20077=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20077,#10000,2,13,2,13)
|
||||
hasLocation(#20076,#20077)
|
||||
#20078=*
|
||||
tokeninfo(#20078,6,#20001,14,"T")
|
||||
#20079=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20079,#10000,2,15,2,15)
|
||||
hasLocation(#20078,#20079)
|
||||
#20080=*
|
||||
tokeninfo(#20080,8,#20001,15,"[")
|
||||
#20081=@"loc,{#10000},2,16,2,16"
|
||||
locations_default(#20081,#10000,2,16,2,16)
|
||||
hasLocation(#20080,#20081)
|
||||
#20082=*
|
||||
tokeninfo(#20082,8,#20001,16,"]")
|
||||
#20083=@"loc,{#10000},2,17,2,17"
|
||||
locations_default(#20083,#10000,2,17,2,17)
|
||||
hasLocation(#20082,#20083)
|
||||
#20084=*
|
||||
tokeninfo(#20084,8,#20001,17,")")
|
||||
#20085=@"loc,{#10000},2,18,2,18"
|
||||
locations_default(#20085,#10000,2,18,2,18)
|
||||
hasLocation(#20084,#20085)
|
||||
#20086=*
|
||||
tokeninfo(#20086,8,#20001,18,"{")
|
||||
#20087=@"loc,{#10000},2,20,2,20"
|
||||
locations_default(#20087,#10000,2,20,2,20)
|
||||
hasLocation(#20086,#20087)
|
||||
#20088=*
|
||||
tokeninfo(#20088,8,#20001,19,"}")
|
||||
#20089=@"loc,{#10000},2,21,2,21"
|
||||
locations_default(#20089,#10000,2,21,2,21)
|
||||
hasLocation(#20088,#20089)
|
||||
#20090=*
|
||||
tokeninfo(#20090,7,#20001,20,"function")
|
||||
#20091=@"loc,{#10000},3,1,3,8"
|
||||
locations_default(#20091,#10000,3,1,3,8)
|
||||
hasLocation(#20090,#20091)
|
||||
#20092=*
|
||||
tokeninfo(#20092,6,#20001,21,"f")
|
||||
hasLocation(#20092,#20029)
|
||||
#20093=*
|
||||
tokeninfo(#20093,8,#20001,22,"(")
|
||||
#20094=@"loc,{#10000},3,11,3,11"
|
||||
locations_default(#20094,#10000,3,11,3,11)
|
||||
hasLocation(#20093,#20094)
|
||||
#20095=*
|
||||
tokeninfo(#20095,6,#20001,23,"p")
|
||||
#20096=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20096,#10000,3,12,3,12)
|
||||
hasLocation(#20095,#20096)
|
||||
#20097=*
|
||||
tokeninfo(#20097,8,#20001,24,":")
|
||||
#20098=@"loc,{#10000},3,13,3,13"
|
||||
locations_default(#20098,#10000,3,13,3,13)
|
||||
hasLocation(#20097,#20098)
|
||||
#20099=*
|
||||
tokeninfo(#20099,6,#20001,25,"T")
|
||||
#20100=@"loc,{#10000},3,15,3,15"
|
||||
locations_default(#20100,#10000,3,15,3,15)
|
||||
hasLocation(#20099,#20100)
|
||||
#20101=*
|
||||
tokeninfo(#20101,8,#20001,26,"[")
|
||||
#20102=@"loc,{#10000},3,16,3,16"
|
||||
locations_default(#20102,#10000,3,16,3,16)
|
||||
hasLocation(#20101,#20102)
|
||||
#20103=*
|
||||
tokeninfo(#20103,8,#20001,27,"]")
|
||||
#20104=@"loc,{#10000},3,17,3,17"
|
||||
locations_default(#20104,#10000,3,17,3,17)
|
||||
hasLocation(#20103,#20104)
|
||||
#20105=*
|
||||
tokeninfo(#20105,8,#20001,28,"[")
|
||||
#20106=@"loc,{#10000},3,18,3,18"
|
||||
locations_default(#20106,#10000,3,18,3,18)
|
||||
hasLocation(#20105,#20106)
|
||||
#20107=*
|
||||
tokeninfo(#20107,8,#20001,29,"]")
|
||||
#20108=@"loc,{#10000},3,19,3,19"
|
||||
locations_default(#20108,#10000,3,19,3,19)
|
||||
hasLocation(#20107,#20108)
|
||||
#20109=*
|
||||
tokeninfo(#20109,8,#20001,30,")")
|
||||
#20110=@"loc,{#10000},3,20,3,20"
|
||||
locations_default(#20110,#10000,3,20,3,20)
|
||||
hasLocation(#20109,#20110)
|
||||
#20111=*
|
||||
tokeninfo(#20111,8,#20001,31,"{")
|
||||
#20112=@"loc,{#10000},3,22,3,22"
|
||||
locations_default(#20112,#10000,3,22,3,22)
|
||||
hasLocation(#20111,#20112)
|
||||
#20113=*
|
||||
tokeninfo(#20113,8,#20001,32,"}")
|
||||
#20114=@"loc,{#10000},3,23,3,23"
|
||||
locations_default(#20114,#10000,3,23,3,23)
|
||||
hasLocation(#20113,#20114)
|
||||
#20115=*
|
||||
tokeninfo(#20115,7,#20001,33,"function")
|
||||
#20116=@"loc,{#10000},4,1,4,8"
|
||||
locations_default(#20116,#10000,4,1,4,8)
|
||||
hasLocation(#20115,#20116)
|
||||
#20117=*
|
||||
tokeninfo(#20117,6,#20001,34,"f")
|
||||
hasLocation(#20117,#20040)
|
||||
#20118=*
|
||||
tokeninfo(#20118,8,#20001,35,"(")
|
||||
#20119=@"loc,{#10000},4,11,4,11"
|
||||
locations_default(#20119,#10000,4,11,4,11)
|
||||
hasLocation(#20118,#20119)
|
||||
#20120=*
|
||||
tokeninfo(#20120,6,#20001,36,"p")
|
||||
#20121=@"loc,{#10000},4,12,4,12"
|
||||
locations_default(#20121,#10000,4,12,4,12)
|
||||
hasLocation(#20120,#20121)
|
||||
#20122=*
|
||||
tokeninfo(#20122,8,#20001,37,":")
|
||||
#20123=@"loc,{#10000},4,13,4,13"
|
||||
locations_default(#20123,#10000,4,13,4,13)
|
||||
hasLocation(#20122,#20123)
|
||||
#20124=*
|
||||
tokeninfo(#20124,6,#20001,38,"T")
|
||||
#20125=@"loc,{#10000},4,15,4,15"
|
||||
locations_default(#20125,#10000,4,15,4,15)
|
||||
hasLocation(#20124,#20125)
|
||||
#20126=*
|
||||
tokeninfo(#20126,8,#20001,39,"[")
|
||||
#20127=@"loc,{#10000},4,16,4,16"
|
||||
locations_default(#20127,#10000,4,16,4,16)
|
||||
hasLocation(#20126,#20127)
|
||||
#20128=*
|
||||
tokeninfo(#20128,8,#20001,40,"]")
|
||||
#20129=@"loc,{#10000},4,17,4,17"
|
||||
locations_default(#20129,#10000,4,17,4,17)
|
||||
hasLocation(#20128,#20129)
|
||||
#20130=*
|
||||
tokeninfo(#20130,8,#20001,41,"[")
|
||||
#20131=@"loc,{#10000},4,18,4,18"
|
||||
locations_default(#20131,#10000,4,18,4,18)
|
||||
hasLocation(#20130,#20131)
|
||||
#20132=*
|
||||
tokeninfo(#20132,8,#20001,42,"]")
|
||||
#20133=@"loc,{#10000},4,19,4,19"
|
||||
locations_default(#20133,#10000,4,19,4,19)
|
||||
hasLocation(#20132,#20133)
|
||||
#20134=*
|
||||
tokeninfo(#20134,8,#20001,43,"[")
|
||||
#20135=@"loc,{#10000},4,20,4,20"
|
||||
locations_default(#20135,#10000,4,20,4,20)
|
||||
hasLocation(#20134,#20135)
|
||||
#20136=*
|
||||
tokeninfo(#20136,8,#20001,44,"]")
|
||||
#20137=@"loc,{#10000},4,21,4,21"
|
||||
locations_default(#20137,#10000,4,21,4,21)
|
||||
hasLocation(#20136,#20137)
|
||||
#20138=*
|
||||
tokeninfo(#20138,8,#20001,45,")")
|
||||
#20139=@"loc,{#10000},4,22,4,22"
|
||||
locations_default(#20139,#10000,4,22,4,22)
|
||||
hasLocation(#20138,#20139)
|
||||
#20140=*
|
||||
tokeninfo(#20140,8,#20001,46,"{")
|
||||
#20141=@"loc,{#10000},4,24,4,24"
|
||||
locations_default(#20141,#10000,4,24,4,24)
|
||||
hasLocation(#20140,#20141)
|
||||
#20142=*
|
||||
tokeninfo(#20142,8,#20001,47,"}")
|
||||
#20143=@"loc,{#10000},4,25,4,25"
|
||||
locations_default(#20143,#10000,4,25,4,25)
|
||||
hasLocation(#20142,#20143)
|
||||
#20144=*
|
||||
tokeninfo(#20144,0,#20001,48,"")
|
||||
#20145=@"loc,{#10000},5,1,5,0"
|
||||
locations_default(#20145,#10000,5,1,5,0)
|
||||
hasLocation(#20144,#20145)
|
||||
#20146=*
|
||||
entry_cfg_node(#20146,#20001)
|
||||
#20147=@"loc,{#10000},1,1,1,0"
|
||||
locations_default(#20147,#10000,1,1,1,0)
|
||||
hasLocation(#20146,#20147)
|
||||
#20148=*
|
||||
exit_cfg_node(#20148,#20001)
|
||||
hasLocation(#20148,#20145)
|
||||
successor(#20037,#20148)
|
||||
#20149=*
|
||||
entry_cfg_node(#20149,#20037)
|
||||
#20150=@"loc,{#10000},4,1,4,0"
|
||||
locations_default(#20150,#10000,4,1,4,0)
|
||||
hasLocation(#20149,#20150)
|
||||
#20151=*
|
||||
exit_cfg_node(#20151,#20037)
|
||||
#20152=@"loc,{#10000},4,26,4,25"
|
||||
locations_default(#20152,#10000,4,26,4,25)
|
||||
hasLocation(#20151,#20152)
|
||||
successor(#20046,#20151)
|
||||
successor(#20043,#20046)
|
||||
successor(#20149,#20043)
|
||||
successor(#20026,#20037)
|
||||
#20153=*
|
||||
entry_cfg_node(#20153,#20026)
|
||||
#20154=@"loc,{#10000},3,1,3,0"
|
||||
locations_default(#20154,#10000,3,1,3,0)
|
||||
hasLocation(#20153,#20154)
|
||||
#20155=*
|
||||
exit_cfg_node(#20155,#20026)
|
||||
#20156=@"loc,{#10000},3,24,3,23"
|
||||
locations_default(#20156,#10000,3,24,3,23)
|
||||
hasLocation(#20155,#20156)
|
||||
successor(#20035,#20155)
|
||||
successor(#20032,#20035)
|
||||
successor(#20153,#20032)
|
||||
successor(#20015,#20026)
|
||||
#20157=*
|
||||
entry_cfg_node(#20157,#20015)
|
||||
#20158=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20158,#10000,2,1,2,0)
|
||||
hasLocation(#20157,#20158)
|
||||
#20159=*
|
||||
exit_cfg_node(#20159,#20015)
|
||||
#20160=@"loc,{#10000},2,22,2,21"
|
||||
locations_default(#20160,#10000,2,22,2,21)
|
||||
hasLocation(#20159,#20160)
|
||||
successor(#20024,#20159)
|
||||
successor(#20021,#20024)
|
||||
successor(#20157,#20021)
|
||||
successor(#20004,#20015)
|
||||
#20161=*
|
||||
entry_cfg_node(#20161,#20004)
|
||||
hasLocation(#20161,#20147)
|
||||
#20162=*
|
||||
exit_cfg_node(#20162,#20004)
|
||||
#20163=@"loc,{#10000},1,20,1,19"
|
||||
locations_default(#20163,#10000,1,20,1,19)
|
||||
hasLocation(#20162,#20163)
|
||||
successor(#20013,#20162)
|
||||
successor(#20010,#20013)
|
||||
successor(#20161,#20010)
|
||||
successor(#20039,#20004)
|
||||
successor(#20028,#20039)
|
||||
successor(#20017,#20028)
|
||||
successor(#20006,#20017)
|
||||
successor(#20146,#20006)
|
||||
numlines(#10000,4,4,0)
|
||||
filetype(#10000,"javascript")
|
||||
@@ -0,0 +1,146 @@
|
||||
#10000=@"/declared-module-imports.js;sourcefile"
|
||||
files(#10000,"/declared-module-imports.js","declared-module-imports","js",0)
|
||||
#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"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,5,0"
|
||||
locations_default(#20002,#10000,1,1,5,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=*
|
||||
lines(#20004,#20001,"declare module ""m1"" {","
|
||||
")
|
||||
#20005=@"loc,{#10000},1,1,1,21"
|
||||
locations_default(#20005,#10000,1,1,1,21)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
lines(#20006,#20001," import type t from ""m2"";","
|
||||
")
|
||||
#20007=@"loc,{#10000},2,1,2,26"
|
||||
locations_default(#20007,#10000,2,1,2,26)
|
||||
hasLocation(#20006,#20007)
|
||||
indentation(#10000,2," ",2)
|
||||
#20008=*
|
||||
lines(#20008,#20001," import typeof t from ""m3"";","
|
||||
")
|
||||
#20009=@"loc,{#10000},3,1,3,28"
|
||||
locations_default(#20009,#10000,3,1,3,28)
|
||||
hasLocation(#20008,#20009)
|
||||
indentation(#10000,3," ",2)
|
||||
#20010=*
|
||||
lines(#20010,#20001,"}","
|
||||
")
|
||||
#20011=@"loc,{#10000},4,1,4,1"
|
||||
locations_default(#20011,#10000,4,1,4,1)
|
||||
hasLocation(#20010,#20011)
|
||||
numlines(#20001,4,4,0)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,0,"declare")
|
||||
#20013=@"loc,{#10000},1,1,1,7"
|
||||
locations_default(#20013,#10000,1,1,1,7)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,1,"module")
|
||||
#20015=@"loc,{#10000},1,9,1,14"
|
||||
locations_default(#20015,#10000,1,9,1,14)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,4,#20001,2,"""m1""")
|
||||
#20017=@"loc,{#10000},1,16,1,19"
|
||||
locations_default(#20017,#10000,1,16,1,19)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,3,"{")
|
||||
#20019=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20019,#10000,1,21,1,21)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,7,#20001,4,"import")
|
||||
#20021=@"loc,{#10000},2,3,2,8"
|
||||
locations_default(#20021,#10000,2,3,2,8)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,6,#20001,5,"type")
|
||||
#20023=@"loc,{#10000},2,10,2,13"
|
||||
locations_default(#20023,#10000,2,10,2,13)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,6,"t")
|
||||
#20025=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20025,#10000,2,15,2,15)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,6,#20001,7,"from")
|
||||
#20027=@"loc,{#10000},2,17,2,20"
|
||||
locations_default(#20027,#10000,2,17,2,20)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,4,#20001,8,"""m2""")
|
||||
#20029=@"loc,{#10000},2,22,2,25"
|
||||
locations_default(#20029,#10000,2,22,2,25)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,9,";")
|
||||
#20031=@"loc,{#10000},2,26,2,26"
|
||||
locations_default(#20031,#10000,2,26,2,26)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,7,#20001,10,"import")
|
||||
#20033=@"loc,{#10000},3,3,3,8"
|
||||
locations_default(#20033,#10000,3,3,3,8)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,7,#20001,11,"typeof")
|
||||
#20035=@"loc,{#10000},3,10,3,15"
|
||||
locations_default(#20035,#10000,3,10,3,15)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,6,#20001,12,"t")
|
||||
#20037=@"loc,{#10000},3,17,3,17"
|
||||
locations_default(#20037,#10000,3,17,3,17)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,6,#20001,13,"from")
|
||||
#20039=@"loc,{#10000},3,19,3,22"
|
||||
locations_default(#20039,#10000,3,19,3,22)
|
||||
hasLocation(#20038,#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,4,#20001,14,"""m3""")
|
||||
#20041=@"loc,{#10000},3,24,3,27"
|
||||
locations_default(#20041,#10000,3,24,3,27)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,8,#20001,15,";")
|
||||
#20043=@"loc,{#10000},3,28,3,28"
|
||||
locations_default(#20043,#10000,3,28,3,28)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,8,#20001,16,"}")
|
||||
hasLocation(#20044,#20011)
|
||||
#20045=*
|
||||
tokeninfo(#20045,0,#20001,17,"")
|
||||
#20046=@"loc,{#10000},5,1,5,0"
|
||||
locations_default(#20046,#10000,5,1,5,0)
|
||||
hasLocation(#20045,#20046)
|
||||
#20047=*
|
||||
entry_cfg_node(#20047,#20001)
|
||||
#20048=@"loc,{#10000},1,1,1,0"
|
||||
locations_default(#20048,#10000,1,1,1,0)
|
||||
hasLocation(#20047,#20048)
|
||||
#20049=*
|
||||
exit_cfg_node(#20049,#20001)
|
||||
hasLocation(#20049,#20046)
|
||||
successor(#20047,#20049)
|
||||
numlines(#10000,4,4,0)
|
||||
filetype(#10000,"javascript")
|
||||
@@ -0,0 +1,368 @@
|
||||
#10000=@"/get-set-methods.js;sourcefile"
|
||||
files(#10000,"/get-set-methods.js","get-set-methods","js",0)
|
||||
#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"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,5,0"
|
||||
locations_default(#20002,#10000,1,1,5,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{C};{#20000}"
|
||||
variables(#20003,"C",#20000)
|
||||
#20004=@"local_type_name;{C};{#20000}"
|
||||
local_type_names(#20004,"C",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,26,#20001,0,"class C ... ) { }\n}")
|
||||
#20006=@"loc,{#10000},1,1,4,1"
|
||||
locations_default(#20006,#10000,1,1,4,1)
|
||||
hasLocation(#20005,#20006)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20007=*
|
||||
exprs(#20007,78,#20005,0,"C")
|
||||
#20008=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20008,#10000,1,7,1,7)
|
||||
hasLocation(#20007,#20008)
|
||||
enclosingStmt(#20007,#20005)
|
||||
exprContainers(#20007,#20001)
|
||||
literals("C","C",#20007)
|
||||
decl(#20007,#20003)
|
||||
typedecl(#20007,#20004)
|
||||
#20009=*
|
||||
scopes(#20009,10)
|
||||
scopenodes(#20005,#20009)
|
||||
scopenesting(#20009,#20000)
|
||||
#20010=*
|
||||
properties(#20010,#20005,2,0,"get<T>(v: T) { }")
|
||||
#20011=@"loc,{#10000},2,5,2,20"
|
||||
locations_default(#20011,#10000,2,5,2,20)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
exprs(#20012,0,#20010,0,"get")
|
||||
#20013=@"loc,{#10000},2,5,2,7"
|
||||
locations_default(#20013,#10000,2,5,2,7)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20005)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("get","get",#20012)
|
||||
#20014=*
|
||||
exprs(#20014,9,#20010,1,"(v: T) { }")
|
||||
#20015=@"loc,{#10000},2,11,2,20"
|
||||
locations_default(#20015,#10000,2,11,2,20)
|
||||
hasLocation(#20014,#20015)
|
||||
enclosingStmt(#20014,#20005)
|
||||
exprContainers(#20014,#20001)
|
||||
#20016=*
|
||||
scopes(#20016,1)
|
||||
scopenodes(#20014,#20016)
|
||||
scopenesting(#20016,#20009)
|
||||
#20017=@"var;{v};{#20016}"
|
||||
variables(#20017,"v",#20016)
|
||||
#20018=*
|
||||
exprs(#20018,78,#20014,0,"v: T")
|
||||
#20019=@"loc,{#10000},2,12,2,15"
|
||||
locations_default(#20019,#10000,2,12,2,15)
|
||||
hasLocation(#20018,#20019)
|
||||
exprContainers(#20018,#20014)
|
||||
literals("v","v",#20018)
|
||||
decl(#20018,#20017)
|
||||
#20020=@"var;{arguments};{#20016}"
|
||||
variables(#20020,"arguments",#20016)
|
||||
isArgumentsObject(#20020)
|
||||
#20021=*
|
||||
stmts(#20021,1,#20014,-2,"{ }")
|
||||
#20022=@"loc,{#10000},2,18,2,20"
|
||||
locations_default(#20022,#10000,2,18,2,20)
|
||||
hasLocation(#20021,#20022)
|
||||
stmtContainers(#20021,#20014)
|
||||
numlines(#20014,1,1,0)
|
||||
isMethod(#20010)
|
||||
#20023=*
|
||||
properties(#20023,#20005,3,0,"set<T>(v: T) { }")
|
||||
#20024=@"loc,{#10000},3,5,3,20"
|
||||
locations_default(#20024,#10000,3,5,3,20)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
exprs(#20025,0,#20023,0,"set")
|
||||
#20026=@"loc,{#10000},3,5,3,7"
|
||||
locations_default(#20026,#10000,3,5,3,7)
|
||||
hasLocation(#20025,#20026)
|
||||
enclosingStmt(#20025,#20005)
|
||||
exprContainers(#20025,#20001)
|
||||
literals("set","set",#20025)
|
||||
#20027=*
|
||||
exprs(#20027,9,#20023,1,"(v: T) { }")
|
||||
#20028=@"loc,{#10000},3,11,3,20"
|
||||
locations_default(#20028,#10000,3,11,3,20)
|
||||
hasLocation(#20027,#20028)
|
||||
enclosingStmt(#20027,#20005)
|
||||
exprContainers(#20027,#20001)
|
||||
#20029=*
|
||||
scopes(#20029,1)
|
||||
scopenodes(#20027,#20029)
|
||||
scopenesting(#20029,#20009)
|
||||
#20030=@"var;{v};{#20029}"
|
||||
variables(#20030,"v",#20029)
|
||||
#20031=*
|
||||
exprs(#20031,78,#20027,0,"v: T")
|
||||
#20032=@"loc,{#10000},3,12,3,15"
|
||||
locations_default(#20032,#10000,3,12,3,15)
|
||||
hasLocation(#20031,#20032)
|
||||
exprContainers(#20031,#20027)
|
||||
literals("v","v",#20031)
|
||||
decl(#20031,#20030)
|
||||
#20033=@"var;{arguments};{#20029}"
|
||||
variables(#20033,"arguments",#20029)
|
||||
isArgumentsObject(#20033)
|
||||
#20034=*
|
||||
stmts(#20034,1,#20027,-2,"{ }")
|
||||
#20035=@"loc,{#10000},3,18,3,20"
|
||||
locations_default(#20035,#10000,3,18,3,20)
|
||||
hasLocation(#20034,#20035)
|
||||
stmtContainers(#20034,#20027)
|
||||
numlines(#20027,1,1,0)
|
||||
isMethod(#20023)
|
||||
#20036=*
|
||||
properties(#20036,#20005,4,0,"constructor() {}")
|
||||
#20037=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20037,#10000,1,9,1,8)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
exprs(#20038,0,#20036,0,"constructor")
|
||||
hasLocation(#20038,#20037)
|
||||
enclosingStmt(#20038,#20005)
|
||||
exprContainers(#20038,#20001)
|
||||
literals("constructor","constructor",#20038)
|
||||
#20039=*
|
||||
exprs(#20039,9,#20036,1,"() {}")
|
||||
hasLocation(#20039,#20037)
|
||||
enclosingStmt(#20039,#20005)
|
||||
exprContainers(#20039,#20001)
|
||||
#20040=*
|
||||
scopes(#20040,1)
|
||||
scopenodes(#20039,#20040)
|
||||
scopenesting(#20040,#20009)
|
||||
#20041=@"var;{arguments};{#20040}"
|
||||
variables(#20041,"arguments",#20040)
|
||||
isArgumentsObject(#20041)
|
||||
#20042=*
|
||||
stmts(#20042,1,#20039,-2,"{}")
|
||||
hasLocation(#20042,#20037)
|
||||
stmtContainers(#20042,#20039)
|
||||
numlines(#20039,1,0,0)
|
||||
isMethod(#20036)
|
||||
#20043=*
|
||||
lines(#20043,#20001,"class C {","
|
||||
")
|
||||
#20044=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20044,#10000,1,1,1,9)
|
||||
hasLocation(#20043,#20044)
|
||||
#20045=*
|
||||
lines(#20045,#20001," get<T>(v: T) { }","
|
||||
")
|
||||
#20046=@"loc,{#10000},2,1,2,20"
|
||||
locations_default(#20046,#10000,2,1,2,20)
|
||||
hasLocation(#20045,#20046)
|
||||
indentation(#10000,2," ",4)
|
||||
#20047=*
|
||||
lines(#20047,#20001," set<T>(v: T) { }","
|
||||
")
|
||||
#20048=@"loc,{#10000},3,1,3,20"
|
||||
locations_default(#20048,#10000,3,1,3,20)
|
||||
hasLocation(#20047,#20048)
|
||||
indentation(#10000,3," ",4)
|
||||
#20049=*
|
||||
lines(#20049,#20001,"}","
|
||||
")
|
||||
#20050=@"loc,{#10000},4,1,4,1"
|
||||
locations_default(#20050,#10000,4,1,4,1)
|
||||
hasLocation(#20049,#20050)
|
||||
numlines(#20001,4,4,0)
|
||||
#20051=*
|
||||
tokeninfo(#20051,7,#20001,0,"class")
|
||||
#20052=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20052,#10000,1,1,1,5)
|
||||
hasLocation(#20051,#20052)
|
||||
#20053=*
|
||||
tokeninfo(#20053,6,#20001,1,"C")
|
||||
hasLocation(#20053,#20008)
|
||||
#20054=*
|
||||
tokeninfo(#20054,8,#20001,2,"{")
|
||||
#20055=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20055,#10000,1,9,1,9)
|
||||
hasLocation(#20054,#20055)
|
||||
#20056=*
|
||||
tokeninfo(#20056,6,#20001,3,"get")
|
||||
hasLocation(#20056,#20013)
|
||||
#20057=*
|
||||
tokeninfo(#20057,8,#20001,4,"<")
|
||||
#20058=@"loc,{#10000},2,8,2,8"
|
||||
locations_default(#20058,#10000,2,8,2,8)
|
||||
hasLocation(#20057,#20058)
|
||||
#20059=*
|
||||
tokeninfo(#20059,6,#20001,5,"T")
|
||||
#20060=@"loc,{#10000},2,9,2,9"
|
||||
locations_default(#20060,#10000,2,9,2,9)
|
||||
hasLocation(#20059,#20060)
|
||||
#20061=*
|
||||
tokeninfo(#20061,8,#20001,6,">")
|
||||
#20062=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20062,#10000,2,10,2,10)
|
||||
hasLocation(#20061,#20062)
|
||||
#20063=*
|
||||
tokeninfo(#20063,8,#20001,7,"(")
|
||||
#20064=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20064,#10000,2,11,2,11)
|
||||
hasLocation(#20063,#20064)
|
||||
#20065=*
|
||||
tokeninfo(#20065,6,#20001,8,"v")
|
||||
#20066=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20066,#10000,2,12,2,12)
|
||||
hasLocation(#20065,#20066)
|
||||
#20067=*
|
||||
tokeninfo(#20067,8,#20001,9,":")
|
||||
#20068=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20068,#10000,2,13,2,13)
|
||||
hasLocation(#20067,#20068)
|
||||
#20069=*
|
||||
tokeninfo(#20069,6,#20001,10,"T")
|
||||
#20070=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20070,#10000,2,15,2,15)
|
||||
hasLocation(#20069,#20070)
|
||||
#20071=*
|
||||
tokeninfo(#20071,8,#20001,11,")")
|
||||
#20072=@"loc,{#10000},2,16,2,16"
|
||||
locations_default(#20072,#10000,2,16,2,16)
|
||||
hasLocation(#20071,#20072)
|
||||
#20073=*
|
||||
tokeninfo(#20073,8,#20001,12,"{")
|
||||
#20074=@"loc,{#10000},2,18,2,18"
|
||||
locations_default(#20074,#10000,2,18,2,18)
|
||||
hasLocation(#20073,#20074)
|
||||
#20075=*
|
||||
tokeninfo(#20075,8,#20001,13,"}")
|
||||
#20076=@"loc,{#10000},2,20,2,20"
|
||||
locations_default(#20076,#10000,2,20,2,20)
|
||||
hasLocation(#20075,#20076)
|
||||
#20077=*
|
||||
tokeninfo(#20077,6,#20001,14,"set")
|
||||
hasLocation(#20077,#20026)
|
||||
#20078=*
|
||||
tokeninfo(#20078,8,#20001,15,"<")
|
||||
#20079=@"loc,{#10000},3,8,3,8"
|
||||
locations_default(#20079,#10000,3,8,3,8)
|
||||
hasLocation(#20078,#20079)
|
||||
#20080=*
|
||||
tokeninfo(#20080,6,#20001,16,"T")
|
||||
#20081=@"loc,{#10000},3,9,3,9"
|
||||
locations_default(#20081,#10000,3,9,3,9)
|
||||
hasLocation(#20080,#20081)
|
||||
#20082=*
|
||||
tokeninfo(#20082,8,#20001,17,">")
|
||||
#20083=@"loc,{#10000},3,10,3,10"
|
||||
locations_default(#20083,#10000,3,10,3,10)
|
||||
hasLocation(#20082,#20083)
|
||||
#20084=*
|
||||
tokeninfo(#20084,8,#20001,18,"(")
|
||||
#20085=@"loc,{#10000},3,11,3,11"
|
||||
locations_default(#20085,#10000,3,11,3,11)
|
||||
hasLocation(#20084,#20085)
|
||||
#20086=*
|
||||
tokeninfo(#20086,6,#20001,19,"v")
|
||||
#20087=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20087,#10000,3,12,3,12)
|
||||
hasLocation(#20086,#20087)
|
||||
#20088=*
|
||||
tokeninfo(#20088,8,#20001,20,":")
|
||||
#20089=@"loc,{#10000},3,13,3,13"
|
||||
locations_default(#20089,#10000,3,13,3,13)
|
||||
hasLocation(#20088,#20089)
|
||||
#20090=*
|
||||
tokeninfo(#20090,6,#20001,21,"T")
|
||||
#20091=@"loc,{#10000},3,15,3,15"
|
||||
locations_default(#20091,#10000,3,15,3,15)
|
||||
hasLocation(#20090,#20091)
|
||||
#20092=*
|
||||
tokeninfo(#20092,8,#20001,22,")")
|
||||
#20093=@"loc,{#10000},3,16,3,16"
|
||||
locations_default(#20093,#10000,3,16,3,16)
|
||||
hasLocation(#20092,#20093)
|
||||
#20094=*
|
||||
tokeninfo(#20094,8,#20001,23,"{")
|
||||
#20095=@"loc,{#10000},3,18,3,18"
|
||||
locations_default(#20095,#10000,3,18,3,18)
|
||||
hasLocation(#20094,#20095)
|
||||
#20096=*
|
||||
tokeninfo(#20096,8,#20001,24,"}")
|
||||
#20097=@"loc,{#10000},3,20,3,20"
|
||||
locations_default(#20097,#10000,3,20,3,20)
|
||||
hasLocation(#20096,#20097)
|
||||
#20098=*
|
||||
tokeninfo(#20098,8,#20001,25,"}")
|
||||
hasLocation(#20098,#20050)
|
||||
#20099=*
|
||||
tokeninfo(#20099,0,#20001,26,"")
|
||||
#20100=@"loc,{#10000},5,1,5,0"
|
||||
locations_default(#20100,#10000,5,1,5,0)
|
||||
hasLocation(#20099,#20100)
|
||||
#20101=*
|
||||
entry_cfg_node(#20101,#20001)
|
||||
#20102=@"loc,{#10000},1,1,1,0"
|
||||
locations_default(#20102,#10000,1,1,1,0)
|
||||
hasLocation(#20101,#20102)
|
||||
#20103=*
|
||||
exit_cfg_node(#20103,#20001)
|
||||
hasLocation(#20103,#20100)
|
||||
successor(#20039,#20036)
|
||||
#20104=*
|
||||
entry_cfg_node(#20104,#20039)
|
||||
hasLocation(#20104,#20037)
|
||||
#20105=*
|
||||
exit_cfg_node(#20105,#20039)
|
||||
hasLocation(#20105,#20037)
|
||||
successor(#20042,#20105)
|
||||
successor(#20104,#20042)
|
||||
successor(#20038,#20039)
|
||||
successor(#20036,#20005)
|
||||
successor(#20027,#20023)
|
||||
#20106=*
|
||||
entry_cfg_node(#20106,#20027)
|
||||
#20107=@"loc,{#10000},3,11,3,10"
|
||||
locations_default(#20107,#10000,3,11,3,10)
|
||||
hasLocation(#20106,#20107)
|
||||
#20108=*
|
||||
exit_cfg_node(#20108,#20027)
|
||||
#20109=@"loc,{#10000},3,21,3,20"
|
||||
locations_default(#20109,#10000,3,21,3,20)
|
||||
hasLocation(#20108,#20109)
|
||||
successor(#20034,#20108)
|
||||
successor(#20031,#20034)
|
||||
successor(#20106,#20031)
|
||||
successor(#20025,#20027)
|
||||
successor(#20023,#20038)
|
||||
successor(#20014,#20010)
|
||||
#20110=*
|
||||
entry_cfg_node(#20110,#20014)
|
||||
#20111=@"loc,{#10000},2,11,2,10"
|
||||
locations_default(#20111,#10000,2,11,2,10)
|
||||
hasLocation(#20110,#20111)
|
||||
#20112=*
|
||||
exit_cfg_node(#20112,#20014)
|
||||
#20113=@"loc,{#10000},2,21,2,20"
|
||||
locations_default(#20113,#10000,2,21,2,20)
|
||||
hasLocation(#20112,#20113)
|
||||
successor(#20021,#20112)
|
||||
successor(#20018,#20021)
|
||||
successor(#20110,#20018)
|
||||
successor(#20012,#20014)
|
||||
successor(#20010,#20025)
|
||||
successor(#20007,#20012)
|
||||
successor(#20005,#20103)
|
||||
successor(#20101,#20007)
|
||||
numlines(#10000,4,4,0)
|
||||
filetype(#10000,"javascript")
|
||||
@@ -0,0 +1,539 @@
|
||||
#10000=@"/predicate-function-annotation.js;sourcefile"
|
||||
files(#10000,"/predicate-function-annotation.js","predicate-function-annotation","js",0)
|
||||
#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"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,10,0"
|
||||
locations_default(#20002,#10000,1,1,10,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{f};{#20000}"
|
||||
variables(#20003,"f",#20000)
|
||||
#20004=@"var;{g};{#20000}"
|
||||
variables(#20004,"g",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,17,#20001,0,"functio ... rn a;\n}")
|
||||
#20006=@"loc,{#10000},1,1,3,1"
|
||||
locations_default(#20006,#10000,1,1,3,1)
|
||||
hasLocation(#20005,#20006)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20007=*
|
||||
exprs(#20007,78,#20005,-1,"f")
|
||||
#20008=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20008,#10000,1,10,1,10)
|
||||
hasLocation(#20007,#20008)
|
||||
exprContainers(#20007,#20005)
|
||||
literals("f","f",#20007)
|
||||
decl(#20007,#20003)
|
||||
#20009=*
|
||||
scopes(#20009,1)
|
||||
scopenodes(#20005,#20009)
|
||||
scopenesting(#20009,#20000)
|
||||
#20010=@"var;{a};{#20009}"
|
||||
variables(#20010,"a",#20009)
|
||||
#20011=*
|
||||
exprs(#20011,78,#20005,0,"a")
|
||||
#20012=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20012,#10000,1,12,1,12)
|
||||
hasLocation(#20011,#20012)
|
||||
exprContainers(#20011,#20005)
|
||||
literals("a","a",#20011)
|
||||
decl(#20011,#20010)
|
||||
#20013=@"var;{arguments};{#20009}"
|
||||
variables(#20013,"arguments",#20009)
|
||||
isArgumentsObject(#20013)
|
||||
#20014=*
|
||||
stmts(#20014,1,#20005,-2,"{\n return a;\n}")
|
||||
#20015=@"loc,{#10000},1,32,3,1"
|
||||
locations_default(#20015,#10000,1,32,3,1)
|
||||
hasLocation(#20014,#20015)
|
||||
stmtContainers(#20014,#20005)
|
||||
#20016=*
|
||||
stmts(#20016,9,#20014,0,"return a;")
|
||||
#20017=@"loc,{#10000},2,5,2,13"
|
||||
locations_default(#20017,#10000,2,5,2,13)
|
||||
hasLocation(#20016,#20017)
|
||||
stmtContainers(#20016,#20005)
|
||||
#20018=*
|
||||
exprs(#20018,79,#20016,0,"a")
|
||||
#20019=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20019,#10000,2,12,2,12)
|
||||
hasLocation(#20018,#20019)
|
||||
enclosingStmt(#20018,#20016)
|
||||
exprContainers(#20018,#20005)
|
||||
literals("a","a",#20018)
|
||||
bind(#20018,#20010)
|
||||
numlines(#20005,3,3,0)
|
||||
#20020=*
|
||||
stmts(#20020,17,#20001,1,"functio ... ecks {}")
|
||||
#20021=@"loc,{#10000},4,1,4,24"
|
||||
locations_default(#20021,#10000,4,1,4,24)
|
||||
hasLocation(#20020,#20021)
|
||||
stmtContainers(#20020,#20001)
|
||||
#20022=*
|
||||
exprs(#20022,78,#20020,-1,"g")
|
||||
#20023=@"loc,{#10000},4,10,4,10"
|
||||
locations_default(#20023,#10000,4,10,4,10)
|
||||
hasLocation(#20022,#20023)
|
||||
exprContainers(#20022,#20020)
|
||||
literals("g","g",#20022)
|
||||
decl(#20022,#20004)
|
||||
#20024=*
|
||||
scopes(#20024,1)
|
||||
scopenodes(#20020,#20024)
|
||||
scopenesting(#20024,#20000)
|
||||
#20025=@"var;{arguments};{#20024}"
|
||||
variables(#20025,"arguments",#20024)
|
||||
isArgumentsObject(#20025)
|
||||
#20026=*
|
||||
stmts(#20026,1,#20020,-2,"{}")
|
||||
#20027=@"loc,{#10000},4,23,4,24"
|
||||
locations_default(#20027,#10000,4,23,4,24)
|
||||
hasLocation(#20026,#20027)
|
||||
stmtContainers(#20026,#20020)
|
||||
numlines(#20020,1,1,0)
|
||||
#20028=*
|
||||
stmts(#20028,1,#20001,2,"{\n return b;\n}")
|
||||
#20029=@"loc,{#10000},4,26,6,1"
|
||||
locations_default(#20029,#10000,4,26,6,1)
|
||||
hasLocation(#20028,#20029)
|
||||
stmtContainers(#20028,#20001)
|
||||
#20030=*
|
||||
stmts(#20030,9,#20028,0,"return b;")
|
||||
#20031=@"loc,{#10000},5,5,5,13"
|
||||
locations_default(#20031,#10000,5,5,5,13)
|
||||
hasLocation(#20030,#20031)
|
||||
stmtContainers(#20030,#20001)
|
||||
#20032=*
|
||||
exprs(#20032,79,#20030,0,"b")
|
||||
#20033=@"loc,{#10000},5,12,5,12"
|
||||
locations_default(#20033,#10000,5,12,5,12)
|
||||
hasLocation(#20032,#20033)
|
||||
enclosingStmt(#20032,#20030)
|
||||
exprContainers(#20032,#20001)
|
||||
literals("b","b",#20032)
|
||||
#20034=@"var;{b};{#20000}"
|
||||
variables(#20034,"b",#20000)
|
||||
bind(#20032,#20034)
|
||||
#20035=*
|
||||
stmts(#20035,2,#20001,3,"(c): bo ... s => c;")
|
||||
#20036=@"loc,{#10000},8,1,8,26"
|
||||
locations_default(#20036,#10000,8,1,8,26)
|
||||
hasLocation(#20035,#20036)
|
||||
stmtContainers(#20035,#20001)
|
||||
#20037=*
|
||||
exprs(#20037,65,#20035,0,"(c): bo ... ks => c")
|
||||
#20038=@"loc,{#10000},8,1,8,25"
|
||||
locations_default(#20038,#10000,8,1,8,25)
|
||||
hasLocation(#20037,#20038)
|
||||
enclosingStmt(#20037,#20035)
|
||||
exprContainers(#20037,#20001)
|
||||
#20039=*
|
||||
scopes(#20039,1)
|
||||
scopenodes(#20037,#20039)
|
||||
scopenesting(#20039,#20000)
|
||||
#20040=@"var;{c};{#20039}"
|
||||
variables(#20040,"c",#20039)
|
||||
#20041=*
|
||||
exprs(#20041,78,#20037,0,"c")
|
||||
#20042=@"loc,{#10000},8,2,8,2"
|
||||
locations_default(#20042,#10000,8,2,8,2)
|
||||
hasLocation(#20041,#20042)
|
||||
exprContainers(#20041,#20037)
|
||||
literals("c","c",#20041)
|
||||
decl(#20041,#20040)
|
||||
#20043=*
|
||||
exprs(#20043,79,#20037,-2,"c")
|
||||
#20044=@"loc,{#10000},8,25,8,25"
|
||||
locations_default(#20044,#10000,8,25,8,25)
|
||||
hasLocation(#20043,#20044)
|
||||
exprContainers(#20043,#20037)
|
||||
literals("c","c",#20043)
|
||||
bind(#20043,#20040)
|
||||
numlines(#20037,1,1,0)
|
||||
#20045=*
|
||||
stmts(#20045,2,#20001,4,"(d): %checks => d;")
|
||||
#20046=@"loc,{#10000},9,1,9,18"
|
||||
locations_default(#20046,#10000,9,1,9,18)
|
||||
hasLocation(#20045,#20046)
|
||||
stmtContainers(#20045,#20001)
|
||||
#20047=*
|
||||
exprs(#20047,65,#20045,0,"(d): %checks => d")
|
||||
#20048=@"loc,{#10000},9,1,9,17"
|
||||
locations_default(#20048,#10000,9,1,9,17)
|
||||
hasLocation(#20047,#20048)
|
||||
enclosingStmt(#20047,#20045)
|
||||
exprContainers(#20047,#20001)
|
||||
#20049=*
|
||||
scopes(#20049,1)
|
||||
scopenodes(#20047,#20049)
|
||||
scopenesting(#20049,#20000)
|
||||
#20050=@"var;{d};{#20049}"
|
||||
variables(#20050,"d",#20049)
|
||||
#20051=*
|
||||
exprs(#20051,78,#20047,0,"d")
|
||||
#20052=@"loc,{#10000},9,2,9,2"
|
||||
locations_default(#20052,#10000,9,2,9,2)
|
||||
hasLocation(#20051,#20052)
|
||||
exprContainers(#20051,#20047)
|
||||
literals("d","d",#20051)
|
||||
decl(#20051,#20050)
|
||||
#20053=*
|
||||
exprs(#20053,79,#20047,-2,"d")
|
||||
#20054=@"loc,{#10000},9,17,9,17"
|
||||
locations_default(#20054,#10000,9,17,9,17)
|
||||
hasLocation(#20053,#20054)
|
||||
exprContainers(#20053,#20047)
|
||||
literals("d","d",#20053)
|
||||
bind(#20053,#20050)
|
||||
numlines(#20047,1,1,0)
|
||||
#20055=*
|
||||
lines(#20055,#20001,"function f(a): boolean %checks {","
|
||||
")
|
||||
#20056=@"loc,{#10000},1,1,1,32"
|
||||
locations_default(#20056,#10000,1,1,1,32)
|
||||
hasLocation(#20055,#20056)
|
||||
#20057=*
|
||||
lines(#20057,#20001," return a;","
|
||||
")
|
||||
#20058=@"loc,{#10000},2,1,2,13"
|
||||
locations_default(#20058,#10000,2,1,2,13)
|
||||
hasLocation(#20057,#20058)
|
||||
indentation(#10000,2," ",4)
|
||||
#20059=*
|
||||
lines(#20059,#20001,"}","
|
||||
")
|
||||
#20060=@"loc,{#10000},3,1,3,1"
|
||||
locations_default(#20060,#10000,3,1,3,1)
|
||||
hasLocation(#20059,#20060)
|
||||
#20061=*
|
||||
lines(#20061,#20001,"function g(): %checks {} {","
|
||||
")
|
||||
#20062=@"loc,{#10000},4,1,4,26"
|
||||
locations_default(#20062,#10000,4,1,4,26)
|
||||
hasLocation(#20061,#20062)
|
||||
#20063=*
|
||||
lines(#20063,#20001," return b;","
|
||||
")
|
||||
#20064=@"loc,{#10000},5,1,5,13"
|
||||
locations_default(#20064,#10000,5,1,5,13)
|
||||
hasLocation(#20063,#20064)
|
||||
indentation(#10000,5," ",4)
|
||||
#20065=*
|
||||
lines(#20065,#20001,"}","
|
||||
")
|
||||
#20066=@"loc,{#10000},6,1,6,1"
|
||||
locations_default(#20066,#10000,6,1,6,1)
|
||||
hasLocation(#20065,#20066)
|
||||
#20067=*
|
||||
lines(#20067,#20001,"","
|
||||
")
|
||||
#20068=@"loc,{#10000},7,1,7,0"
|
||||
locations_default(#20068,#10000,7,1,7,0)
|
||||
hasLocation(#20067,#20068)
|
||||
#20069=*
|
||||
lines(#20069,#20001,"(c): boolean %checks => c;","
|
||||
")
|
||||
hasLocation(#20069,#20036)
|
||||
#20070=*
|
||||
lines(#20070,#20001,"(d): %checks => d;","
|
||||
")
|
||||
hasLocation(#20070,#20046)
|
||||
numlines(#20001,9,8,0)
|
||||
#20071=*
|
||||
tokeninfo(#20071,7,#20001,0,"function")
|
||||
#20072=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20072,#10000,1,1,1,8)
|
||||
hasLocation(#20071,#20072)
|
||||
#20073=*
|
||||
tokeninfo(#20073,6,#20001,1,"f")
|
||||
hasLocation(#20073,#20008)
|
||||
#20074=*
|
||||
tokeninfo(#20074,8,#20001,2,"(")
|
||||
#20075=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20075,#10000,1,11,1,11)
|
||||
hasLocation(#20074,#20075)
|
||||
#20076=*
|
||||
tokeninfo(#20076,6,#20001,3,"a")
|
||||
hasLocation(#20076,#20012)
|
||||
#20077=*
|
||||
tokeninfo(#20077,8,#20001,4,")")
|
||||
#20078=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20078,#10000,1,13,1,13)
|
||||
hasLocation(#20077,#20078)
|
||||
#20079=*
|
||||
tokeninfo(#20079,8,#20001,5,":")
|
||||
#20080=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20080,#10000,1,14,1,14)
|
||||
hasLocation(#20079,#20080)
|
||||
#20081=*
|
||||
tokeninfo(#20081,6,#20001,6,"boolean")
|
||||
#20082=@"loc,{#10000},1,16,1,22"
|
||||
locations_default(#20082,#10000,1,16,1,22)
|
||||
hasLocation(#20081,#20082)
|
||||
#20083=*
|
||||
tokeninfo(#20083,8,#20001,7,"%")
|
||||
#20084=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20084,#10000,1,24,1,24)
|
||||
hasLocation(#20083,#20084)
|
||||
#20085=*
|
||||
tokeninfo(#20085,6,#20001,8,"checks")
|
||||
#20086=@"loc,{#10000},1,25,1,30"
|
||||
locations_default(#20086,#10000,1,25,1,30)
|
||||
hasLocation(#20085,#20086)
|
||||
#20087=*
|
||||
tokeninfo(#20087,8,#20001,9,"{")
|
||||
#20088=@"loc,{#10000},1,32,1,32"
|
||||
locations_default(#20088,#10000,1,32,1,32)
|
||||
hasLocation(#20087,#20088)
|
||||
#20089=*
|
||||
tokeninfo(#20089,7,#20001,10,"return")
|
||||
#20090=@"loc,{#10000},2,5,2,10"
|
||||
locations_default(#20090,#10000,2,5,2,10)
|
||||
hasLocation(#20089,#20090)
|
||||
#20091=*
|
||||
tokeninfo(#20091,6,#20001,11,"a")
|
||||
hasLocation(#20091,#20019)
|
||||
#20092=*
|
||||
tokeninfo(#20092,8,#20001,12,";")
|
||||
#20093=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20093,#10000,2,13,2,13)
|
||||
hasLocation(#20092,#20093)
|
||||
#20094=*
|
||||
tokeninfo(#20094,8,#20001,13,"}")
|
||||
hasLocation(#20094,#20060)
|
||||
#20095=*
|
||||
tokeninfo(#20095,7,#20001,14,"function")
|
||||
#20096=@"loc,{#10000},4,1,4,8"
|
||||
locations_default(#20096,#10000,4,1,4,8)
|
||||
hasLocation(#20095,#20096)
|
||||
#20097=*
|
||||
tokeninfo(#20097,6,#20001,15,"g")
|
||||
hasLocation(#20097,#20023)
|
||||
#20098=*
|
||||
tokeninfo(#20098,8,#20001,16,"(")
|
||||
#20099=@"loc,{#10000},4,11,4,11"
|
||||
locations_default(#20099,#10000,4,11,4,11)
|
||||
hasLocation(#20098,#20099)
|
||||
#20100=*
|
||||
tokeninfo(#20100,8,#20001,17,")")
|
||||
#20101=@"loc,{#10000},4,12,4,12"
|
||||
locations_default(#20101,#10000,4,12,4,12)
|
||||
hasLocation(#20100,#20101)
|
||||
#20102=*
|
||||
tokeninfo(#20102,8,#20001,18,":")
|
||||
#20103=@"loc,{#10000},4,13,4,13"
|
||||
locations_default(#20103,#10000,4,13,4,13)
|
||||
hasLocation(#20102,#20103)
|
||||
#20104=*
|
||||
tokeninfo(#20104,8,#20001,19,"%")
|
||||
#20105=@"loc,{#10000},4,15,4,15"
|
||||
locations_default(#20105,#10000,4,15,4,15)
|
||||
hasLocation(#20104,#20105)
|
||||
#20106=*
|
||||
tokeninfo(#20106,6,#20001,20,"checks")
|
||||
#20107=@"loc,{#10000},4,16,4,21"
|
||||
locations_default(#20107,#10000,4,16,4,21)
|
||||
hasLocation(#20106,#20107)
|
||||
#20108=*
|
||||
tokeninfo(#20108,8,#20001,21,"{")
|
||||
#20109=@"loc,{#10000},4,23,4,23"
|
||||
locations_default(#20109,#10000,4,23,4,23)
|
||||
hasLocation(#20108,#20109)
|
||||
#20110=*
|
||||
tokeninfo(#20110,8,#20001,22,"}")
|
||||
#20111=@"loc,{#10000},4,24,4,24"
|
||||
locations_default(#20111,#10000,4,24,4,24)
|
||||
hasLocation(#20110,#20111)
|
||||
#20112=*
|
||||
tokeninfo(#20112,8,#20001,23,"{")
|
||||
#20113=@"loc,{#10000},4,26,4,26"
|
||||
locations_default(#20113,#10000,4,26,4,26)
|
||||
hasLocation(#20112,#20113)
|
||||
#20114=*
|
||||
tokeninfo(#20114,7,#20001,24,"return")
|
||||
#20115=@"loc,{#10000},5,5,5,10"
|
||||
locations_default(#20115,#10000,5,5,5,10)
|
||||
hasLocation(#20114,#20115)
|
||||
#20116=*
|
||||
tokeninfo(#20116,6,#20001,25,"b")
|
||||
hasLocation(#20116,#20033)
|
||||
#20117=*
|
||||
tokeninfo(#20117,8,#20001,26,";")
|
||||
#20118=@"loc,{#10000},5,13,5,13"
|
||||
locations_default(#20118,#10000,5,13,5,13)
|
||||
hasLocation(#20117,#20118)
|
||||
#20119=*
|
||||
tokeninfo(#20119,8,#20001,27,"}")
|
||||
hasLocation(#20119,#20066)
|
||||
#20120=*
|
||||
tokeninfo(#20120,8,#20001,28,"(")
|
||||
#20121=@"loc,{#10000},8,1,8,1"
|
||||
locations_default(#20121,#10000,8,1,8,1)
|
||||
hasLocation(#20120,#20121)
|
||||
#20122=*
|
||||
tokeninfo(#20122,6,#20001,29,"c")
|
||||
hasLocation(#20122,#20042)
|
||||
#20123=*
|
||||
tokeninfo(#20123,8,#20001,30,")")
|
||||
#20124=@"loc,{#10000},8,3,8,3"
|
||||
locations_default(#20124,#10000,8,3,8,3)
|
||||
hasLocation(#20123,#20124)
|
||||
#20125=*
|
||||
tokeninfo(#20125,8,#20001,31,":")
|
||||
#20126=@"loc,{#10000},8,4,8,4"
|
||||
locations_default(#20126,#10000,8,4,8,4)
|
||||
hasLocation(#20125,#20126)
|
||||
#20127=*
|
||||
tokeninfo(#20127,6,#20001,32,"boolean")
|
||||
#20128=@"loc,{#10000},8,6,8,12"
|
||||
locations_default(#20128,#10000,8,6,8,12)
|
||||
hasLocation(#20127,#20128)
|
||||
#20129=*
|
||||
tokeninfo(#20129,8,#20001,33,"%")
|
||||
#20130=@"loc,{#10000},8,14,8,14"
|
||||
locations_default(#20130,#10000,8,14,8,14)
|
||||
hasLocation(#20129,#20130)
|
||||
#20131=*
|
||||
tokeninfo(#20131,6,#20001,34,"checks")
|
||||
#20132=@"loc,{#10000},8,15,8,20"
|
||||
locations_default(#20132,#10000,8,15,8,20)
|
||||
hasLocation(#20131,#20132)
|
||||
#20133=*
|
||||
tokeninfo(#20133,8,#20001,35,"=>")
|
||||
#20134=@"loc,{#10000},8,22,8,23"
|
||||
locations_default(#20134,#10000,8,22,8,23)
|
||||
hasLocation(#20133,#20134)
|
||||
#20135=*
|
||||
tokeninfo(#20135,6,#20001,36,"c")
|
||||
hasLocation(#20135,#20044)
|
||||
#20136=*
|
||||
tokeninfo(#20136,8,#20001,37,";")
|
||||
#20137=@"loc,{#10000},8,26,8,26"
|
||||
locations_default(#20137,#10000,8,26,8,26)
|
||||
hasLocation(#20136,#20137)
|
||||
#20138=*
|
||||
tokeninfo(#20138,8,#20001,38,"(")
|
||||
#20139=@"loc,{#10000},9,1,9,1"
|
||||
locations_default(#20139,#10000,9,1,9,1)
|
||||
hasLocation(#20138,#20139)
|
||||
#20140=*
|
||||
tokeninfo(#20140,6,#20001,39,"d")
|
||||
hasLocation(#20140,#20052)
|
||||
#20141=*
|
||||
tokeninfo(#20141,8,#20001,40,")")
|
||||
#20142=@"loc,{#10000},9,3,9,3"
|
||||
locations_default(#20142,#10000,9,3,9,3)
|
||||
hasLocation(#20141,#20142)
|
||||
#20143=*
|
||||
tokeninfo(#20143,8,#20001,41,":")
|
||||
#20144=@"loc,{#10000},9,4,9,4"
|
||||
locations_default(#20144,#10000,9,4,9,4)
|
||||
hasLocation(#20143,#20144)
|
||||
#20145=*
|
||||
tokeninfo(#20145,8,#20001,42,"%")
|
||||
#20146=@"loc,{#10000},9,6,9,6"
|
||||
locations_default(#20146,#10000,9,6,9,6)
|
||||
hasLocation(#20145,#20146)
|
||||
#20147=*
|
||||
tokeninfo(#20147,6,#20001,43,"checks")
|
||||
#20148=@"loc,{#10000},9,7,9,12"
|
||||
locations_default(#20148,#10000,9,7,9,12)
|
||||
hasLocation(#20147,#20148)
|
||||
#20149=*
|
||||
tokeninfo(#20149,8,#20001,44,"=>")
|
||||
#20150=@"loc,{#10000},9,14,9,15"
|
||||
locations_default(#20150,#10000,9,14,9,15)
|
||||
hasLocation(#20149,#20150)
|
||||
#20151=*
|
||||
tokeninfo(#20151,6,#20001,45,"d")
|
||||
hasLocation(#20151,#20054)
|
||||
#20152=*
|
||||
tokeninfo(#20152,8,#20001,46,";")
|
||||
#20153=@"loc,{#10000},9,18,9,18"
|
||||
locations_default(#20153,#10000,9,18,9,18)
|
||||
hasLocation(#20152,#20153)
|
||||
#20154=*
|
||||
tokeninfo(#20154,0,#20001,47,"")
|
||||
#20155=@"loc,{#10000},10,1,10,0"
|
||||
locations_default(#20155,#10000,10,1,10,0)
|
||||
hasLocation(#20154,#20155)
|
||||
#20156=*
|
||||
entry_cfg_node(#20156,#20001)
|
||||
#20157=@"loc,{#10000},1,1,1,0"
|
||||
locations_default(#20157,#10000,1,1,1,0)
|
||||
hasLocation(#20156,#20157)
|
||||
#20158=*
|
||||
exit_cfg_node(#20158,#20001)
|
||||
hasLocation(#20158,#20155)
|
||||
successor(#20045,#20047)
|
||||
successor(#20047,#20158)
|
||||
#20159=*
|
||||
entry_cfg_node(#20159,#20047)
|
||||
#20160=@"loc,{#10000},9,1,9,0"
|
||||
locations_default(#20160,#10000,9,1,9,0)
|
||||
hasLocation(#20159,#20160)
|
||||
#20161=*
|
||||
exit_cfg_node(#20161,#20047)
|
||||
#20162=@"loc,{#10000},9,18,9,17"
|
||||
locations_default(#20162,#10000,9,18,9,17)
|
||||
hasLocation(#20161,#20162)
|
||||
successor(#20053,#20161)
|
||||
successor(#20051,#20053)
|
||||
successor(#20159,#20051)
|
||||
successor(#20035,#20037)
|
||||
successor(#20037,#20045)
|
||||
#20163=*
|
||||
entry_cfg_node(#20163,#20037)
|
||||
#20164=@"loc,{#10000},8,1,8,0"
|
||||
locations_default(#20164,#10000,8,1,8,0)
|
||||
hasLocation(#20163,#20164)
|
||||
#20165=*
|
||||
exit_cfg_node(#20165,#20037)
|
||||
#20166=@"loc,{#10000},8,26,8,25"
|
||||
locations_default(#20166,#10000,8,26,8,25)
|
||||
hasLocation(#20165,#20166)
|
||||
successor(#20043,#20165)
|
||||
successor(#20041,#20043)
|
||||
successor(#20163,#20041)
|
||||
successor(#20028,#20032)
|
||||
successor(#20032,#20030)
|
||||
successor(#20030,#20158)
|
||||
successor(#20020,#20028)
|
||||
#20167=*
|
||||
entry_cfg_node(#20167,#20020)
|
||||
#20168=@"loc,{#10000},4,1,4,0"
|
||||
locations_default(#20168,#10000,4,1,4,0)
|
||||
hasLocation(#20167,#20168)
|
||||
#20169=*
|
||||
exit_cfg_node(#20169,#20020)
|
||||
#20170=@"loc,{#10000},4,25,4,24"
|
||||
locations_default(#20170,#10000,4,25,4,24)
|
||||
hasLocation(#20169,#20170)
|
||||
successor(#20026,#20169)
|
||||
successor(#20167,#20026)
|
||||
successor(#20005,#20020)
|
||||
#20171=*
|
||||
entry_cfg_node(#20171,#20005)
|
||||
hasLocation(#20171,#20157)
|
||||
#20172=*
|
||||
exit_cfg_node(#20172,#20005)
|
||||
#20173=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20173,#10000,3,2,3,1)
|
||||
hasLocation(#20172,#20173)
|
||||
successor(#20014,#20018)
|
||||
successor(#20018,#20016)
|
||||
successor(#20016,#20172)
|
||||
successor(#20011,#20014)
|
||||
successor(#20171,#20011)
|
||||
successor(#20022,#20005)
|
||||
successor(#20007,#20022)
|
||||
successor(#20156,#20007)
|
||||
numlines(#10000,9,8,0)
|
||||
filetype(#10000,"javascript")
|
||||
Reference in New Issue
Block a user