mirror of
https://github.com/github/codeql.git
synced 2026-04-25 16:55:19 +02:00
Merge branch 'main' into amammad-js-CodeInjection_execa
This commit is contained in:
@@ -1,3 +1,33 @@
|
||||
## 0.8.3
|
||||
|
||||
No user-facing changes.
|
||||
|
||||
## 0.8.2
|
||||
|
||||
No user-facing changes.
|
||||
|
||||
## 0.8.1
|
||||
|
||||
### Minor Analysis Improvements
|
||||
|
||||
* The contents of `.jsp` files are now extracted, and any `<script>` tags inside these files will be parsed as JavaScript.
|
||||
* [Import attributes](https://github.com/tc39/proposal-import-attributes) are now supported in JavaScript code.
|
||||
Note that import attributes are an evolution of an earlier proposal called "import assertions", which were implemented in TypeScript 4.5.
|
||||
The QL library includes new predicates named `getImportAttributes()` that should be used in favor of the now deprecated `getImportAssertion()`;
|
||||
in addition, the `getImportAttributes()` method of the `DynamicImportExpr` has been renamed to `getImportOptions()`.
|
||||
* Deleted the deprecated `getAnImmediateUse`, `getAUse`, `getARhs`, and `getAValueReachingRhs` predicates from the `API::Node` class.
|
||||
* Deleted the deprecated `mayReferToParameter` predicate from `DataFlow::Node`.
|
||||
* Deleted the deprecated `getStaticMethod` and `getAStaticMethod` predicates from `DataFlow::ClassNode`.
|
||||
* Deleted the deprecated `isLibaryFile` predicate from `ClassifyFiles.qll`, use `isLibraryFile` instead.
|
||||
* Deleted many library models that were build on the AST. Use the new models that are build on the dataflow library instead.
|
||||
* Deleted the deprecated `semmle.javascript.security.performance` folder, use `semmle.javascript.security.regexp` instead.
|
||||
* Tagged template literals have been added to `DataFlow::CallNode`. This allows the analysis to find flow into functions called with a tagged template literal,
|
||||
and the arguments to a tagged template literal are part of the API-graph in `ApiGraphs.qll`.
|
||||
|
||||
## 0.8.0
|
||||
|
||||
No user-facing changes.
|
||||
|
||||
## 0.7.5
|
||||
|
||||
No user-facing changes.
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* Tagged template literals have been added to `DataFlow::CallNode`. This allows the analysis to find flow into functions called with a tagged template literal,
|
||||
and the arguments to a tagged template literal are part of the API-graph in `ApiGraphs.qll`.
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* Deleted the deprecated `getAnImmediateUse`, `getAUse`, `getARhs`, and `getAValueReachingRhs` predicates from the `API::Node` class.
|
||||
* Deleted the deprecated `mayReferToParameter` predicate from `DataFlow::Node`.
|
||||
* Deleted the deprecated `getStaticMethod` and `getAStaticMethod` predicates from `DataFlow::ClassNode`.
|
||||
* Deleted the deprecated `isLibaryFile` predicate from `ClassifyFiles.qll`, use `isLibraryFile` instead.
|
||||
* Deleted many library models that were build on the AST. Use the new models that are build on the dataflow library instead.
|
||||
* Deleted the deprecated `semmle.javascript.security.performance` folder, use `semmle.javascript.security.regexp` instead.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* TypeScript 5.3 is now supported.
|
||||
4
javascript/ql/lib/change-notes/2023-11-23-sqllite.md
Normal file
4
javascript/ql/lib/change-notes/2023-11-23-sqllite.md
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* Added models for the `sqlite` and `better-sqlite3` npm packages.
|
||||
3
javascript/ql/lib/change-notes/released/0.8.0.md
Normal file
3
javascript/ql/lib/change-notes/released/0.8.0.md
Normal file
@@ -0,0 +1,3 @@
|
||||
## 0.8.0
|
||||
|
||||
No user-facing changes.
|
||||
17
javascript/ql/lib/change-notes/released/0.8.1.md
Normal file
17
javascript/ql/lib/change-notes/released/0.8.1.md
Normal file
@@ -0,0 +1,17 @@
|
||||
## 0.8.1
|
||||
|
||||
### Minor Analysis Improvements
|
||||
|
||||
* The contents of `.jsp` files are now extracted, and any `<script>` tags inside these files will be parsed as JavaScript.
|
||||
* [Import attributes](https://github.com/tc39/proposal-import-attributes) are now supported in JavaScript code.
|
||||
Note that import attributes are an evolution of an earlier proposal called "import assertions", which were implemented in TypeScript 4.5.
|
||||
The QL library includes new predicates named `getImportAttributes()` that should be used in favor of the now deprecated `getImportAssertion()`;
|
||||
in addition, the `getImportAttributes()` method of the `DynamicImportExpr` has been renamed to `getImportOptions()`.
|
||||
* Deleted the deprecated `getAnImmediateUse`, `getAUse`, `getARhs`, and `getAValueReachingRhs` predicates from the `API::Node` class.
|
||||
* Deleted the deprecated `mayReferToParameter` predicate from `DataFlow::Node`.
|
||||
* Deleted the deprecated `getStaticMethod` and `getAStaticMethod` predicates from `DataFlow::ClassNode`.
|
||||
* Deleted the deprecated `isLibaryFile` predicate from `ClassifyFiles.qll`, use `isLibraryFile` instead.
|
||||
* Deleted many library models that were build on the AST. Use the new models that are build on the dataflow library instead.
|
||||
* Deleted the deprecated `semmle.javascript.security.performance` folder, use `semmle.javascript.security.regexp` instead.
|
||||
* Tagged template literals have been added to `DataFlow::CallNode`. This allows the analysis to find flow into functions called with a tagged template literal,
|
||||
and the arguments to a tagged template literal are part of the API-graph in `ApiGraphs.qll`.
|
||||
3
javascript/ql/lib/change-notes/released/0.8.2.md
Normal file
3
javascript/ql/lib/change-notes/released/0.8.2.md
Normal file
@@ -0,0 +1,3 @@
|
||||
## 0.8.2
|
||||
|
||||
No user-facing changes.
|
||||
3
javascript/ql/lib/change-notes/released/0.8.3.md
Normal file
3
javascript/ql/lib/change-notes/released/0.8.3.md
Normal file
@@ -0,0 +1,3 @@
|
||||
## 0.8.3
|
||||
|
||||
No user-facing changes.
|
||||
@@ -1,2 +1,2 @@
|
||||
---
|
||||
lastReleaseVersion: 0.7.5
|
||||
lastReleaseVersion: 0.8.3
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/javascript-all
|
||||
version: 0.8.0-dev
|
||||
version: 0.8.4-dev
|
||||
groups: javascript
|
||||
dbscheme: semmlecode.javascript.dbscheme
|
||||
extractor: javascript
|
||||
|
||||
@@ -91,14 +91,27 @@ class ImportDeclaration extends Stmt, Import, @import_declaration {
|
||||
override PathExpr getImportedPath() { result = this.getChildExpr(-1) }
|
||||
|
||||
/**
|
||||
* Gets the object literal passed as part of the `assert` clause in this import declaration.
|
||||
* Gets the object literal passed as part of the `with` (or `assert`) clause in this import declaration.
|
||||
*
|
||||
* For example, this gets the `{ type: "json" }` object literal in the following:
|
||||
* ```js
|
||||
* import foo from "foo" with { type: "json" };
|
||||
* import foo from "foo" assert { type: "json" };
|
||||
* ```
|
||||
*/
|
||||
ObjectExpr getImportAssertion() { result = this.getChildExpr(-10) }
|
||||
ObjectExpr getImportAttributes() { result = this.getChildExpr(-10) }
|
||||
|
||||
/**
|
||||
* DEPRECATED: use `getImportAttributes` instead.
|
||||
* Gets the object literal passed as part of the `with` (or `assert`) clause in this import declaration.
|
||||
*
|
||||
* For example, this gets the `{ type: "json" }` object literal in the following:
|
||||
* ```js
|
||||
* import foo from "foo" with { type: "json" };
|
||||
* import foo from "foo" assert { type: "json" };
|
||||
* ```
|
||||
*/
|
||||
deprecated ObjectExpr getImportAssertion() { result = this.getImportAttributes() }
|
||||
|
||||
/** Gets the `i`th import specifier of this import declaration. */
|
||||
ImportSpecifier getSpecifier(int i) { result = this.getChildExpr(i) }
|
||||
@@ -322,17 +335,33 @@ abstract class ExportDeclaration extends Stmt, @export_declaration {
|
||||
override string getAPrimaryQlClass() { result = "ExportDeclaration" }
|
||||
|
||||
/**
|
||||
* Gets the object literal passed as part of the `assert` clause, if this is
|
||||
* Gets the object literal passed as part of the `with` (or `assert`) clause, if this is
|
||||
* a re-export declaration.
|
||||
*
|
||||
* For example, this gets the `{ type: "json" }` expression in each of the following:
|
||||
* ```js
|
||||
* export { x } from 'foo' assert { type: "json" };
|
||||
* export { x } from 'foo' with { type: "json" };
|
||||
* export * from 'foo' with { type: "json" };
|
||||
* export * as x from 'foo' with { type: "json" };
|
||||
* export * from 'foo' assert { type: "json" };
|
||||
* export * as x from 'foo' assert { type: "json" };
|
||||
* ```
|
||||
*/
|
||||
ObjectExpr getImportAssertion() { result = this.getChildExpr(-10) }
|
||||
ObjectExpr getImportAttributes() { result = this.getChildExpr(-10) }
|
||||
|
||||
/**
|
||||
* DEPRECATED: use `getImportAttributes` instead.
|
||||
* Gets the object literal passed as part of the `with` (or `assert`) clause, if this is
|
||||
* a re-export declaration.
|
||||
*
|
||||
* For example, this gets the `{ type: "json" }` expression in each of the following:
|
||||
* ```js
|
||||
* export { x } from 'foo' with { type: "json" };
|
||||
* export * from 'foo' with { type: "json" };
|
||||
* export * as x from 'foo' with { type: "json" };
|
||||
* export * from 'foo' assert { type: "json" };
|
||||
* ```
|
||||
*/
|
||||
deprecated ObjectExpr getImportAssertion() { result = this.getImportAttributes() }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2807,7 +2807,7 @@ class FunctionBindExpr extends @bind_expr, Expr {
|
||||
*
|
||||
* ```
|
||||
* import("fs")
|
||||
* import("foo", { assert: { type: "json" }})
|
||||
* import("foo", { with: { type: "json" }})
|
||||
* ```
|
||||
*/
|
||||
class DynamicImportExpr extends @dynamic_import, Expr, Import {
|
||||
@@ -2823,12 +2823,23 @@ class DynamicImportExpr extends @dynamic_import, Expr, Import {
|
||||
/**
|
||||
* Gets the second "argument" to the import expression, that is, the `Y` in `import(X, Y)`.
|
||||
*
|
||||
* For example, gets the `{ assert: { type: "json" }}` expression in the following:
|
||||
* For example, gets the `{ with: { type: "json" }}` expression in the following:
|
||||
* ```js
|
||||
* import('foo', { assert: { type: "json" }})
|
||||
* import('foo', { with: { type: "json" }})
|
||||
* ```
|
||||
*/
|
||||
Expr getImportAttributes() { result = this.getChildExpr(1) }
|
||||
Expr getImportOptions() { result = this.getChildExpr(1) }
|
||||
|
||||
/**
|
||||
* DEPRECATED: use `getImportOptions` instead.
|
||||
* Gets the second "argument" to the import expression, that is, the `Y` in `import(X, Y)`.
|
||||
*
|
||||
* For example, gets the `{ with: { type: "json" }}` expression in the following:
|
||||
* ```js
|
||||
* import('foo', { with: { type: "json" }})
|
||||
* ```
|
||||
*/
|
||||
deprecated Expr getImportAttributes() { result = this.getImportOptions() }
|
||||
|
||||
override Module getEnclosingModule() { result = this.getTopLevel() }
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ private module AsmCrypto {
|
||||
private class Apply extends CryptographicOperation::Range instanceof DataFlow::CallNode {
|
||||
DataFlow::Node input;
|
||||
CryptographicAlgorithm algorithm; // non-functional
|
||||
DataFlow::PropRead algorithmSelection;
|
||||
private string algorithmName;
|
||||
private string methodName;
|
||||
|
||||
@@ -68,11 +69,14 @@ private module AsmCrypto {
|
||||
exists(DataFlow::SourceNode asmCrypto |
|
||||
asmCrypto = DataFlow::globalVarRef("asmCrypto") and
|
||||
algorithm.matchesName(algorithmName) and
|
||||
this = asmCrypto.getAPropertyRead(algorithmName).getAMemberCall(methodName) and
|
||||
algorithmSelection = asmCrypto.getAPropertyRead(algorithmName) and
|
||||
this = algorithmSelection.getAMemberCall(methodName) and
|
||||
input = this.getArgument(0)
|
||||
)
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = algorithmSelection }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = input }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = algorithm }
|
||||
@@ -103,6 +107,7 @@ private module BrowserIdCrypto {
|
||||
|
||||
private class Apply extends CryptographicOperation::Range instanceof DataFlow::MethodCallNode {
|
||||
CryptographicAlgorithm algorithm; // non-functional
|
||||
DataFlow::CallNode keygen;
|
||||
|
||||
Apply() {
|
||||
/*
|
||||
@@ -122,8 +127,7 @@ private module BrowserIdCrypto {
|
||||
*/
|
||||
|
||||
exists(
|
||||
DataFlow::SourceNode mod, DataFlow::Node algorithmNameNode, DataFlow::CallNode keygen,
|
||||
DataFlow::FunctionNode callback
|
||||
DataFlow::SourceNode mod, DataFlow::Node algorithmNameNode, DataFlow::FunctionNode callback
|
||||
|
|
||||
mod = DataFlow::moduleImport("browserid-crypto") and
|
||||
keygen = mod.getAMemberCall("generateKeypair") and
|
||||
@@ -134,6 +138,8 @@ private module BrowserIdCrypto {
|
||||
)
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = keygen }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = super.getArgument(0) }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = algorithm }
|
||||
@@ -239,6 +245,8 @@ private module NodeJSCrypto {
|
||||
|
||||
Apply() { this = instantiation.getAMethodCall(any(string m | m = "update" or m = "write")) }
|
||||
|
||||
override DataFlow::Node getInitialization() { result = instantiation }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = super.getArgument(0) }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = instantiation.getAlgorithm() }
|
||||
@@ -324,7 +332,9 @@ private module CryptoJS {
|
||||
)
|
||||
}
|
||||
|
||||
private API::CallNode getEncryptionApplication(API::Node input, CryptographicAlgorithm algorithm) {
|
||||
private API::CallNode getEncryptionApplication(
|
||||
API::Node input, API::Node algorithmNode, CryptographicAlgorithm algorithm
|
||||
) {
|
||||
/*
|
||||
* ```
|
||||
* var CryptoJS = require("crypto-js");
|
||||
@@ -338,11 +348,14 @@ private module CryptoJS {
|
||||
* Also matches where `CryptoJS.<algorithmName>` has been replaced by `require("crypto-js/<algorithmName>")`
|
||||
*/
|
||||
|
||||
result = getAlgorithmNode(algorithm).getMember("encrypt").getACall() and
|
||||
algorithmNode = getAlgorithmNode(algorithm) and
|
||||
result = algorithmNode.getMember("encrypt").getACall() and
|
||||
input = result.getParameter(0)
|
||||
}
|
||||
|
||||
private API::CallNode getDirectApplication(API::Node input, CryptographicAlgorithm algorithm) {
|
||||
private API::CallNode getDirectApplication(
|
||||
API::Node input, API::Node algorithmNode, CryptographicAlgorithm algorithm
|
||||
) {
|
||||
/*
|
||||
* ```
|
||||
* var CryptoJS = require("crypto-js");
|
||||
@@ -357,7 +370,8 @@ private module CryptoJS {
|
||||
* Also matches where `CryptoJS.<algorithmName>` has been replaced by `require("crypto-js/<algorithmName>")`
|
||||
*/
|
||||
|
||||
result = getAlgorithmNode(algorithm).getACall() and
|
||||
algorithmNode = getAlgorithmNode(algorithm) and
|
||||
result = algorithmNode.getACall() and
|
||||
input = result.getParameter(0)
|
||||
}
|
||||
|
||||
@@ -389,18 +403,23 @@ private module CryptoJS {
|
||||
private class Apply extends CryptographicOperation::Range instanceof API::CallNode {
|
||||
API::Node input;
|
||||
CryptographicAlgorithm algorithm; // non-functional
|
||||
DataFlow::Node instantiation;
|
||||
|
||||
Apply() {
|
||||
this = getEncryptionApplication(input, algorithm)
|
||||
or
|
||||
this = getDirectApplication(input, algorithm)
|
||||
or
|
||||
exists(InstantiatedAlgorithm instantiation |
|
||||
this = getUpdatedApplication(input, instantiation) and
|
||||
algorithm = instantiation.getAlgorithm()
|
||||
exists(API::Node algorithmNode |
|
||||
this = getEncryptionApplication(input, algorithmNode, algorithm)
|
||||
or
|
||||
this = getDirectApplication(input, algorithmNode, algorithm)
|
||||
|
|
||||
instantiation = algorithmNode.asSource()
|
||||
)
|
||||
or
|
||||
this = getUpdatedApplication(input, instantiation) and
|
||||
algorithm = instantiation.(InstantiatedAlgorithm).getAlgorithm()
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = instantiation }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = input.asSink() }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = algorithm }
|
||||
@@ -504,6 +523,8 @@ private module TweetNaCl {
|
||||
)
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = this }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = input }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = algorithm }
|
||||
@@ -539,6 +560,7 @@ private module HashJs {
|
||||
private class Apply extends CryptographicOperation::Range instanceof DataFlow::CallNode {
|
||||
DataFlow::Node input;
|
||||
CryptographicAlgorithm algorithm; // non-functional
|
||||
DataFlow::CallNode init;
|
||||
|
||||
Apply() {
|
||||
/*
|
||||
@@ -554,10 +576,13 @@ private module HashJs {
|
||||
* Also matches where `hash.<algorithmName>()` has been replaced by a more specific require a la `require("hash.js/lib/hash/sha/512")`
|
||||
*/
|
||||
|
||||
this = getAlgorithmNode(algorithm).getAMemberCall("update") and
|
||||
init = getAlgorithmNode(algorithm) and
|
||||
this = init.getAMemberCall("update") and
|
||||
input = super.getArgument(0)
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = init }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = input }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = algorithm }
|
||||
@@ -653,6 +678,8 @@ private module Forge {
|
||||
algorithm = cipher.getAlgorithm()
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = cipher }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = input }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = algorithm }
|
||||
@@ -715,6 +742,8 @@ private module Md5 {
|
||||
super.getArgument(0) = input
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = this }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = input }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = algorithm }
|
||||
@@ -731,17 +760,18 @@ private module Bcrypt {
|
||||
private class Apply extends CryptographicOperation::Range instanceof DataFlow::CallNode {
|
||||
DataFlow::Node input;
|
||||
CryptographicAlgorithm algorithm;
|
||||
API::Node init;
|
||||
|
||||
Apply() {
|
||||
// `require("bcrypt").hash(password);` with minor naming variations
|
||||
algorithm.matchesName("BCRYPT") and
|
||||
this =
|
||||
API::moduleImport(["bcrypt", "bcryptjs", "bcrypt-nodejs"])
|
||||
.getMember(["hash", "hashSync"])
|
||||
.getACall() and
|
||||
init = API::moduleImport(["bcrypt", "bcryptjs", "bcrypt-nodejs"]) and
|
||||
this = init.getMember(["hash", "hashSync"]).getACall() and
|
||||
super.getArgument(0) = input
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = init.asSource() }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = input }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = algorithm }
|
||||
@@ -769,6 +799,8 @@ private module Hasha {
|
||||
)
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = this }
|
||||
|
||||
override DataFlow::Node getAnInput() { result = input }
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result = algorithm }
|
||||
|
||||
@@ -618,6 +618,10 @@ module Express {
|
||||
or
|
||||
kind = "body" and
|
||||
this = ref.getAPropertyRead("body")
|
||||
or
|
||||
// `req.path`
|
||||
kind = "url" and
|
||||
this = ref.getAPropertyRead("path")
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ private module Postgres {
|
||||
API::Node clientOrPool() { result = API::Node::ofType("pg", ["Client", "PoolClient", "Pool"]) }
|
||||
|
||||
/** A call to the Postgres `query` method. */
|
||||
private class QueryCall extends DatabaseAccess, DataFlow::MethodCallNode {
|
||||
private class QueryCall extends DatabaseAccess, API::CallNode {
|
||||
QueryCall() { this = clientOrPool().getMember(["execute", "query"]).getACall() }
|
||||
|
||||
override DataFlow::Node getAResult() {
|
||||
@@ -117,15 +117,25 @@ private module Postgres {
|
||||
PromiseFlow::loadStep(this.getALocalUse(), result, Promises::valueProp())
|
||||
}
|
||||
|
||||
override DataFlow::Node getAQueryArgument() { result = this.getArgument(0) }
|
||||
override DataFlow::Node getAQueryArgument() {
|
||||
result = this.getArgument(0) or result = this.getParameter(0).getMember("text").asSink()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Postgres Query class.
|
||||
* This class can be used to create reusable query objects (see https://node-postgres.com/apis/client).
|
||||
*/
|
||||
API::Node query() { result = API::moduleImport("pg").getMember("Query") }
|
||||
|
||||
/** An expression that is passed to the `query` method and hence interpreted as SQL. */
|
||||
class QueryString extends SQL::SqlString {
|
||||
QueryString() {
|
||||
this = any(QueryCall qc).getAQueryArgument()
|
||||
or
|
||||
this = API::moduleImport("pg-cursor").getParameter(0).asSink()
|
||||
or
|
||||
this = query().getParameter(0).asSink()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,7 +253,7 @@ private module Postgres {
|
||||
/**
|
||||
* Provides classes modeling the `sqlite3` package.
|
||||
*/
|
||||
private module Sqlite {
|
||||
private module Sqlite3 {
|
||||
/** Gets an expression that constructs or returns a Sqlite database instance. */
|
||||
API::Node database() { result = API::Node::ofType("sqlite3", "Database") }
|
||||
|
||||
@@ -267,6 +277,62 @@ private module Sqlite {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides classes modeling the `sqlite` package.
|
||||
*/
|
||||
private module Sqlite {
|
||||
/** Gets an expression that constructs or returns a Sqlite database instance. */
|
||||
API::Node database() {
|
||||
result = API::moduleImport("sqlite").getMember("open").getReturn().getPromised()
|
||||
}
|
||||
|
||||
/** A call to a Sqlite query method. */
|
||||
private class QueryCall extends DatabaseAccess, API::CallNode {
|
||||
QueryCall() {
|
||||
this = database().getMember(["all", "each", "exec", "get", "prepare", "run"]).getACall()
|
||||
}
|
||||
|
||||
override DataFlow::Node getAResult() { result = this }
|
||||
|
||||
override DataFlow::Node getAQueryArgument() { result = this.getArgument(0) }
|
||||
}
|
||||
|
||||
/** An expression that is passed to the `query` method and hence interpreted as SQL. */
|
||||
class QueryString extends SQL::SqlString {
|
||||
QueryString() { this = any(QueryCall qc).getAQueryArgument() }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides classes modeling the `better-sqlite3` package.
|
||||
*/
|
||||
private module BetterSqlite3 {
|
||||
/**
|
||||
* Gets a `better-sqlite3` database instance.
|
||||
*/
|
||||
API::Node database() {
|
||||
result =
|
||||
[
|
||||
API::moduleImport("better-sqlite3").getInstance(),
|
||||
API::moduleImport("better-sqlite3").getReturn()
|
||||
]
|
||||
or
|
||||
result = database().getMember("exec").getReturn()
|
||||
}
|
||||
|
||||
/** A call to a better-sqlite3 query method. */
|
||||
private class QueryCall extends DatabaseAccess, API::CallNode {
|
||||
QueryCall() { this = database().getMember(["exec", "prepare"]).getACall() }
|
||||
|
||||
override DataFlow::Node getAQueryArgument() { result = this.getArgument(0) }
|
||||
}
|
||||
|
||||
/** An expression that is passed to the `query` method and hence interpreted as SQL. */
|
||||
class QueryString extends SQL::SqlString {
|
||||
QueryString() { this = any(QueryCall qc).getAQueryArgument() }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides classes modeling the `mssql` package.
|
||||
*/
|
||||
|
||||
@@ -17,7 +17,7 @@ extensible predicate sourceModel(string type, string path, string kind);
|
||||
extensible predicate sinkModel(string type, string path, string kind);
|
||||
|
||||
/**
|
||||
* Holds if calls to `(type, path)`, the value referred to by `input`
|
||||
* Holds if in calls to `(type, path)`, the value referred to by `input`
|
||||
* can flow to the value referred to by `output`.
|
||||
*
|
||||
* `kind` should be either `value` or `taint`, for value-preserving or taint-preserving steps,
|
||||
@@ -25,6 +25,13 @@ extensible predicate sinkModel(string type, string path, string kind);
|
||||
*/
|
||||
extensible predicate summaryModel(string type, string path, string input, string output, string kind);
|
||||
|
||||
/**
|
||||
* Holds if calls to `(type, path)` should be considered neutral. The meaning of this depends on the `kind`.
|
||||
* If `kind` is `summary`, the call does not propagate data flow. If `kind` is `source`, the call is not a source.
|
||||
* If `kind` is `sink`, the call is not a sink.
|
||||
*/
|
||||
extensible predicate neutralModel(string type, string path, string kind);
|
||||
|
||||
/**
|
||||
* Holds if `(type2, path)` should be seen as an instance of `type1`.
|
||||
*/
|
||||
|
||||
@@ -15,6 +15,11 @@ extensions:
|
||||
extensible: summaryModel
|
||||
data: []
|
||||
|
||||
- addsTo:
|
||||
pack: codeql/javascript-all
|
||||
extensible: neutralModel
|
||||
data: []
|
||||
|
||||
- addsTo:
|
||||
pack: codeql/javascript-all
|
||||
extensible: typeModel
|
||||
|
||||
@@ -40,6 +40,9 @@ module Cryptography {
|
||||
/** Gets the algorithm used, if it matches a known `CryptographicAlgorithm`. */
|
||||
CryptographicAlgorithm getAlgorithm() { result = super.getAlgorithm() }
|
||||
|
||||
/** Gets the data-flow node where the cryptographic algorithm used in this operation is configured. */
|
||||
DataFlow::Node getInitialization() { result = super.getInitialization() }
|
||||
|
||||
/** Gets an input the algorithm is used on, for example the plain text input to be encrypted. */
|
||||
DataFlow::Node getAnInput() { result = super.getAnInput() }
|
||||
|
||||
@@ -65,6 +68,9 @@ module Cryptography {
|
||||
* extend `CryptographicOperation` instead.
|
||||
*/
|
||||
abstract class Range extends DataFlow::Node {
|
||||
/** Gets the data-flow node where the cryptographic algorithm used in this operation is configured. */
|
||||
abstract DataFlow::Node getInitialization();
|
||||
|
||||
/** Gets the algorithm used, if it matches a known `CryptographicAlgorithm`. */
|
||||
abstract CryptographicAlgorithm getAlgorithm();
|
||||
|
||||
|
||||
@@ -19,7 +19,10 @@ module BrokenCryptoAlgorithm {
|
||||
/**
|
||||
* A data flow sink for sensitive information in broken or weak cryptographic algorithms.
|
||||
*/
|
||||
abstract class Sink extends DataFlow::Node { }
|
||||
abstract class Sink extends DataFlow::Node {
|
||||
/** Gets the data-flow node where the cryptographic algorithm used in this operation is configured. */
|
||||
abstract DataFlow::Node getInitialization();
|
||||
}
|
||||
|
||||
/**
|
||||
* A sanitizer for sensitive information in broken or weak cryptographic algorithms.
|
||||
@@ -38,15 +41,17 @@ module BrokenCryptoAlgorithm {
|
||||
* An expression used by a broken or weak cryptographic algorithm.
|
||||
*/
|
||||
class WeakCryptographicOperationSink extends Sink {
|
||||
CryptographicOperation application;
|
||||
|
||||
WeakCryptographicOperationSink() {
|
||||
exists(CryptographicOperation application |
|
||||
(
|
||||
application.getAlgorithm().isWeak()
|
||||
or
|
||||
application.getBlockMode().isWeak()
|
||||
) and
|
||||
this = application.getAnInput()
|
||||
)
|
||||
(
|
||||
application.getAlgorithm().isWeak()
|
||||
or
|
||||
application.getBlockMode().isWeak()
|
||||
) and
|
||||
this = application.getAnInput()
|
||||
}
|
||||
|
||||
override DataFlow::Node getInitialization() { result = application.getInitialization() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,7 +114,13 @@ abstract class RateLimitingMiddleware extends DataFlow::SourceNode {
|
||||
* A rate limiter constructed using the `express-rate-limit` package.
|
||||
*/
|
||||
class ExpressRateLimit extends RateLimitingMiddleware {
|
||||
ExpressRateLimit() { this = API::moduleImport("express-rate-limit").getReturn().asSource() }
|
||||
ExpressRateLimit() {
|
||||
this =
|
||||
[
|
||||
API::moduleImport("express-rate-limit"),
|
||||
API::moduleImport("express-rate-limit").getMember("rateLimit")
|
||||
].getReturn().asSource()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -9,11 +9,14 @@ private import semmle.javascript.security.dataflow.UnsafeJQueryPluginCustomizati
|
||||
import UnsafeHtmlConstructionCustomizations::UnsafeHtmlConstruction
|
||||
import semmle.javascript.security.TaintedObject
|
||||
|
||||
/** DEPRECATED: Mis-spelled class name, alias for Configuration. */
|
||||
deprecated class Configration = Configuration;
|
||||
|
||||
/**
|
||||
* A taint-tracking configuration for reasoning about unsafe HTML constructed from library input vulnerabilities.
|
||||
*/
|
||||
class Configration extends TaintTracking::Configuration {
|
||||
Configration() { this = "UnsafeHtmlConstruction" }
|
||||
class Configuration extends TaintTracking::Configuration {
|
||||
Configuration() { this = "UnsafeHtmlConstruction" }
|
||||
|
||||
override predicate isSource(DataFlow::Node source, DataFlow::FlowLabel label) {
|
||||
source instanceof Source and
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* James Kirrage, Asiri Rathnayake, Hayo Thielecke: Static Analysis for
|
||||
* Regular Expression Denial-of-Service Attacks. NSS 2013.
|
||||
* (http://www.cs.bham.ac.uk/~hxt/research/reg-exp-sec.pdf)
|
||||
* (https://arxiv.org/abs/1301.0849)
|
||||
* Asiri Rathnayake, Hayo Thielecke: Static Analysis for Regular Expression
|
||||
* Exponential Runtime via Substructural Logics. 2014.
|
||||
* (https://www.cs.bham.ac.uk/~hxt/research/redos_full.pdf)
|
||||
|
||||
@@ -1,3 +1,26 @@
|
||||
## 0.8.3
|
||||
|
||||
### Query Metadata Changes
|
||||
|
||||
* Lower the security severity of log-injection to medium.
|
||||
* Increase the security severity of XSS to high.
|
||||
|
||||
## 0.8.2
|
||||
|
||||
### Minor Analysis Improvements
|
||||
|
||||
* Added modeling for importing `express-rate-limit` using a named import.
|
||||
|
||||
## 0.8.1
|
||||
|
||||
### Minor Analysis Improvements
|
||||
|
||||
* Added the `AmdModuleDefinition::Range` class, making it possible to define custom aliases for the AMD `define` function.
|
||||
|
||||
## 0.8.0
|
||||
|
||||
No user-facing changes.
|
||||
|
||||
## 0.7.5
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -44,7 +44,9 @@ predicate hasDynamicHrefHostAttributeValue(DOM::ElementDefinition elem) {
|
||||
// ... that does not start with a fixed host or a relative path (common formats)
|
||||
not url.regexpMatch("(?i)((https?:)?//)?[-a-z0-9.]*/.*") and
|
||||
// .. that is not a call to `url_for` in a Flask / nunjucks application
|
||||
not url.regexpMatch("\\{\\{\\s*url(_for)?\\(.+\\).*")
|
||||
not url.regexpMatch("\\{\\{\\s*url(_for)?\\(.+\\).*") and
|
||||
// .. that is not a call to `url` in a Django application
|
||||
not url.regexpMatch("\\{%\\s*url.*")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<li>Wikipedia: <a href="https://en.wikipedia.org/wiki/ReDoS">ReDoS</a>.</li>
|
||||
<li>Wikipedia: <a href="https://en.wikipedia.org/wiki/Time_complexity">Time complexity</a>.</li>
|
||||
<li>James Kirrage, Asiri Rathnayake, Hayo Thielecke:
|
||||
<a href="http://www.cs.bham.ac.uk/~hxt/research/reg-exp-sec.pdf">Static Analysis for Regular Expression Denial-of-Service Attack</a>.
|
||||
<a href="https://arxiv.org/abs/1301.0849">Static Analysis for Regular Expression Denial-of-Service Attack</a>.
|
||||
</li>
|
||||
</references>
|
||||
</qhelp>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* @description Replacing a substring with itself has no effect and may indicate a mistake.
|
||||
* @kind problem
|
||||
* @problem.severity warning
|
||||
* @security-severity 7.8
|
||||
* @security-severity 5.0
|
||||
* @id js/identity-replacement
|
||||
* @precision very-high
|
||||
* @tags correctness
|
||||
|
||||
@@ -13,40 +13,47 @@ attacker being able to influence behavior by modifying unexpected files.
|
||||
|
||||
<recommendation>
|
||||
<p>
|
||||
Validate user input before using it to construct a file path, either using an off-the-shelf library
|
||||
like the <code>sanitize-filename</code> npm package, or by performing custom validation.
|
||||
Validate user input before using it to construct a file path.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Ideally, follow these rules:
|
||||
The validation method you should use depends on whether you want to allow the user to specify complex paths with multiple components that may span multiple folders, or only simple filenames without a path component.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Do not allow more than a single "." character.</li>
|
||||
<li>Do not allow directory separators such as "/" or "\" (depending on the file system).</li>
|
||||
<li>Do not rely on simply replacing problematic sequences such as "../". For example, after
|
||||
applying this filter to ".../...//", the resulting string would still be "../".</li>
|
||||
<li>Use a whitelist of known good patterns.</li>
|
||||
</ul>
|
||||
<p>
|
||||
In the former case, a common strategy is to make sure that the constructed file path is contained within a safe root folder.
|
||||
First, normalize the path using <code>path.resolve</code> or <code>fs.realpathSync</code> to remove any ".." segments.
|
||||
You should always normalize the file path since an unnormalized path that starts with the root folder can still be used to access files outside the root folder.
|
||||
Then, after you have normalized the path, check that the path starts with the root folder.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In the latter case, you can use a library like the <code>sanitize-filename</code> npm package to eliminate any special characters from the file path.
|
||||
Note that it is <i>not</i> sufficient to only remove "../" sequences: for example, applying this filter to ".../...//" would still result in the string "../".
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Finally, the simplest (but most restrictive) option is to use an allow list of safe patterns and make sure that the user input matches one of these patterns.
|
||||
</p>
|
||||
</recommendation>
|
||||
|
||||
<example>
|
||||
<p>
|
||||
In the first example, a file name is read from an HTTP request and then used to access a file.
|
||||
However, a malicious user could enter a file name which is an absolute path, such as
|
||||
<code>"/etc/passwd"</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In the second example, it appears that the user is restricted to opening a file within the
|
||||
<code>"user"</code> home directory. However, a malicious user could enter a file name containing
|
||||
special characters. For example, the string <code>"../../etc/passwd"</code> will result in the code
|
||||
reading the file located at <code>"/home/user/../../etc/passwd"</code>, which is the system's
|
||||
password file. This file would then be sent back to the user, giving them access to all the
|
||||
system's passwords.
|
||||
In the first (bad) example, the code reads the file name from an HTTP request, then accesses that file within a root folder.
|
||||
A malicious user could enter a file name containing "../" segments to navigate outside the root folder and access sensitive files.
|
||||
</p>
|
||||
|
||||
<sample src="examples/TaintedPath.js" />
|
||||
|
||||
<p>
|
||||
The second (good) example shows how to avoid access to sensitive files by sanitizing the file path.
|
||||
First, the code resolves the file name relative to a root folder, normalizing the path and removing any "../" segments in the process.
|
||||
Then, the code calls <code>fs.realpathSync</code> to resolve any symbolic links in the path.
|
||||
Finally, the code checks that the normalized path starts with the path of the root folder, ensuring the file is contained within the root folder.
|
||||
</p>
|
||||
|
||||
<sample src="examples/TaintedPathGood.js" />
|
||||
|
||||
</example>
|
||||
|
||||
<references>
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
var fs = require('fs'),
|
||||
http = require('http'),
|
||||
url = require('url');
|
||||
const fs = require('fs'),
|
||||
http = require('http'),
|
||||
url = require('url');
|
||||
|
||||
const ROOT = "/var/www/";
|
||||
|
||||
var server = http.createServer(function(req, res) {
|
||||
let path = url.parse(req.url, true).query.path;
|
||||
let filePath = url.parse(req.url, true).query.path;
|
||||
|
||||
// BAD: This could read any file on the file system
|
||||
res.write(fs.readFileSync(path));
|
||||
|
||||
// BAD: This could still read any file on the file system
|
||||
res.write(fs.readFileSync("/home/user/" + path));
|
||||
});
|
||||
// BAD: This function uses unsanitized input that can read any file on the file system.
|
||||
res.write(fs.readFileSync(ROOT + filePath, 'utf8'));
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
const fs = require('fs'),
|
||||
http = require('http'),
|
||||
path = require('path'),
|
||||
url = require('url');
|
||||
|
||||
const ROOT = "/var/www/";
|
||||
|
||||
var server = http.createServer(function(req, res) {
|
||||
let filePath = url.parse(req.url, true).query.path;
|
||||
|
||||
// GOOD: Verify that the file path is under the root directory
|
||||
filePath = fs.realpathSync(path.resolve(ROOT, filePath));
|
||||
if (!filePath.startsWith(ROOT)) {
|
||||
res.statusCode = 403;
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
res.write(fs.readFileSync(filePath, 'utf8'));
|
||||
});
|
||||
@@ -4,7 +4,7 @@
|
||||
* a cross-site scripting vulnerability.
|
||||
* @kind path-problem
|
||||
* @problem.severity error
|
||||
* @security-severity 6.1
|
||||
* @security-severity 7.8
|
||||
* @precision high
|
||||
* @id js/reflected-xss
|
||||
* @tags security
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* a stored cross-site scripting vulnerability.
|
||||
* @kind path-problem
|
||||
* @problem.severity error
|
||||
* @security-severity 6.1
|
||||
* @security-severity 7.8
|
||||
* @precision high
|
||||
* @id js/stored-xss
|
||||
* @tags security
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* a cross-site scripting vulnerability.
|
||||
* @kind path-problem
|
||||
* @problem.severity error
|
||||
* @security-severity 6.1
|
||||
* @security-severity 7.8
|
||||
* @precision high
|
||||
* @id js/xss
|
||||
* @tags security
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* insertion of forged log entries by a malicious user.
|
||||
* @kind path-problem
|
||||
* @problem.severity error
|
||||
* @security-severity 7.8
|
||||
* @security-severity 6.1
|
||||
* @precision medium
|
||||
* @id js/log-injection
|
||||
* @tags security
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @name Creating biased random numbers from a cryptographically secure source.
|
||||
* @name Creating biased random numbers from a cryptographically secure source
|
||||
* @description Some mathematical operations on random numbers can cause bias in
|
||||
* the results and compromise security.
|
||||
* @kind problem
|
||||
|
||||
@@ -16,9 +16,14 @@ import semmle.javascript.security.dataflow.BrokenCryptoAlgorithmQuery
|
||||
import semmle.javascript.security.SensitiveActions
|
||||
import DataFlow::PathGraph
|
||||
|
||||
from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink
|
||||
from
|
||||
Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink, Source sourceNode,
|
||||
Sink sinkNode
|
||||
where
|
||||
cfg.hasFlowPath(source, sink) and
|
||||
not source.getNode() instanceof CleartextPasswordExpr // flagged by js/insufficient-password-hash
|
||||
select sink.getNode(), source, sink, "A broken or weak cryptographic algorithm depends on $@.",
|
||||
source.getNode(), "sensitive data from " + source.getNode().(Source).describe()
|
||||
sourceNode = source.getNode() and
|
||||
sinkNode = sink.getNode() and
|
||||
not sourceNode instanceof CleartextPasswordExpr // flagged by js/insufficient-password-hash
|
||||
select sinkNode, source, sink, "$@ depends on $@.", sinkNode.getInitialization(),
|
||||
"A broken or weak cryptographic algorithm", sourceNode,
|
||||
"sensitive data from " + sourceNode.describe()
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* @description The total number of lines of JavaScript or TypeScript code across all files checked into the repository, except in `node_modules`. This is a useful metric of the size of a database. For all files that were seen during extraction, this query counts the lines of code, excluding whitespace or comments.
|
||||
* @kind metric
|
||||
* @tags summary
|
||||
* telemetry
|
||||
*/
|
||||
|
||||
import javascript
|
||||
|
||||
4
javascript/ql/src/change-notes/2023-11-28-django-urls.md
Normal file
4
javascript/ql/src/change-notes/2023-11-28-django-urls.md
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* Added django URLs to detected "safe" URL patterns in `js/unsafe-external-link`.
|
||||
3
javascript/ql/src/change-notes/released/0.8.0.md
Normal file
3
javascript/ql/src/change-notes/released/0.8.0.md
Normal file
@@ -0,0 +1,3 @@
|
||||
## 0.8.0
|
||||
|
||||
No user-facing changes.
|
||||
@@ -1,4 +1,5 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
## 0.8.1
|
||||
|
||||
### Minor Analysis Improvements
|
||||
|
||||
* Added the `AmdModuleDefinition::Range` class, making it possible to define custom aliases for the AMD `define` function.
|
||||
5
javascript/ql/src/change-notes/released/0.8.2.md
Normal file
5
javascript/ql/src/change-notes/released/0.8.2.md
Normal file
@@ -0,0 +1,5 @@
|
||||
## 0.8.2
|
||||
|
||||
### Minor Analysis Improvements
|
||||
|
||||
* Added modeling for importing `express-rate-limit` using a named import.
|
||||
6
javascript/ql/src/change-notes/released/0.8.3.md
Normal file
6
javascript/ql/src/change-notes/released/0.8.3.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## 0.8.3
|
||||
|
||||
### Query Metadata Changes
|
||||
|
||||
* Lower the security severity of log-injection to medium.
|
||||
* Increase the security severity of XSS to high.
|
||||
@@ -1,2 +1,2 @@
|
||||
---
|
||||
lastReleaseVersion: 0.7.5
|
||||
lastReleaseVersion: 0.8.3
|
||||
|
||||
157
javascript/ql/src/experimental/semmle/javascript/SQL.qll
Normal file
157
javascript/ql/src/experimental/semmle/javascript/SQL.qll
Normal file
@@ -0,0 +1,157 @@
|
||||
/**
|
||||
* Provides classes for working with SQL connectors.
|
||||
*/
|
||||
|
||||
import javascript
|
||||
|
||||
module ExperimentalSql {
|
||||
/**
|
||||
* Provides SQL injection Sinks for the [TypeORM](https://www.npmjs.com/package/typeorm) package
|
||||
*/
|
||||
private module TypeOrm {
|
||||
/**
|
||||
* Gets a `DataSource` instance
|
||||
*
|
||||
* `DataSource` is a pre-defined connection configuration to a specific database.
|
||||
*/
|
||||
API::Node dataSource() {
|
||||
result = API::moduleImport("typeorm").getMember("DataSource").getInstance()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a `QueryRunner` instance
|
||||
*/
|
||||
API::Node queryRunner() { result = dataSource().getMember("createQueryRunner").getReturn() }
|
||||
|
||||
/**
|
||||
* Gets a `*QueryBuilder` instance
|
||||
*/
|
||||
API::Node queryBuilderInstance() {
|
||||
// a `*QueryBuilder` instance of a Data Mapper based Entity
|
||||
result =
|
||||
[
|
||||
// Using DataSource
|
||||
dataSource(),
|
||||
// Using repository
|
||||
dataSource().getMember("getRepository").getReturn(),
|
||||
// Using entity manager
|
||||
dataSource().getMember("manager"), queryRunner().getMember("manager")
|
||||
].getMember("createQueryBuilder").getReturn()
|
||||
or
|
||||
// A `*QueryBuilder` instance of an Active record based Entity
|
||||
result =
|
||||
API::moduleImport("typeorm")
|
||||
.getMember("Entity")
|
||||
.getReturn()
|
||||
.getADecoratedClass()
|
||||
.getMember("createQueryBuilder")
|
||||
.getReturn()
|
||||
or
|
||||
// A WhereExpressionBuilder can be used in complex WHERE expression
|
||||
result =
|
||||
API::moduleImport("typeorm")
|
||||
.getMember(["Brackets", "NotBrackets"])
|
||||
.getParameter(0)
|
||||
.getParameter(0)
|
||||
or
|
||||
// In case of custom query builders
|
||||
result =
|
||||
API::moduleImport("typeorm")
|
||||
.getMember([
|
||||
"SelectQueryBuilder", "InsertQueryBuilder", "RelationQueryBuilder",
|
||||
"UpdateQueryBuilder", "WhereExpressionBuilder"
|
||||
])
|
||||
.getInstance()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets function names which create any type of `QueryBuilder` like `WhereExpressionBuilder` or `InsertQueryBuilder`
|
||||
*/
|
||||
string queryBuilderMethods() {
|
||||
result =
|
||||
[
|
||||
"select", "addSelect", "where", "andWhere", "orWhere", "having", "orHaving", "andHaving",
|
||||
"orderBy", "addOrderBy", "distinctOn", "groupBy", "addCommonTableExpression",
|
||||
"leftJoinAndSelect", "innerJoinAndSelect", "leftJoin", "innerJoin", "leftJoinAndMapOne",
|
||||
"innerJoinAndMapOne", "leftJoinAndMapMany", "innerJoinAndMapMany", "orUpdate", "orIgnore",
|
||||
"values", "set"
|
||||
]
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets function names that the return values of these functions can be the results of a database query run
|
||||
*/
|
||||
string queryBuilderResult() {
|
||||
result = ["getOne", "getOneOrFail", "getMany", "getRawOne", "getRawMany", "stream"]
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a QueryBuilder instance that has a query builder function
|
||||
*/
|
||||
API::Node getASuccessorOfBuilderInstance(string queryBuilderMethod) {
|
||||
result.getMember(queryBuilderMethod) = queryBuilderInstance().getASuccessor*()
|
||||
}
|
||||
|
||||
/**
|
||||
* A call to some successor functions of TypeORM `createQueryBuilder` function which are dangerous
|
||||
*/
|
||||
private class QueryBuilderCall extends DatabaseAccess, DataFlow::Node {
|
||||
API::Node queryBuilder;
|
||||
|
||||
QueryBuilderCall() {
|
||||
queryBuilder = getASuccessorOfBuilderInstance(queryBuilderMethods()) and
|
||||
this = queryBuilder.asSource()
|
||||
}
|
||||
|
||||
override DataFlow::Node getAResult() {
|
||||
result = queryBuilder.getMember(queryBuilderResult()).getReturn().asSource()
|
||||
}
|
||||
|
||||
override DataFlow::Node getAQueryArgument() {
|
||||
exists(string memberName | memberName = queryBuilderMethods() |
|
||||
memberName = ["leftJoinAndSelect", "innerJoinAndSelect", "leftJoin", "innerJoin"] and
|
||||
result = queryBuilder.getMember(memberName).getParameter(2).asSink()
|
||||
or
|
||||
memberName =
|
||||
["leftJoinAndMapOne", "innerJoinAndMapOne", "leftJoinAndMapMany", "innerJoinAndMapMany"] and
|
||||
result = queryBuilder.getMember(memberName).getParameter(3).asSink()
|
||||
or
|
||||
memberName =
|
||||
[
|
||||
"select", "addSelect", "where", "andWhere", "orWhere", "having", "orHaving",
|
||||
"andHaving", "orderBy", "addOrderBy", "distinctOn", "groupBy",
|
||||
"addCommonTableExpression"
|
||||
] and
|
||||
result = queryBuilder.getMember(memberName).getParameter(0).asSink()
|
||||
or
|
||||
memberName = ["orIgnore", "orUpdate"] and
|
||||
result = queryBuilder.getMember(memberName).getParameter([0, 1]).asSink()
|
||||
or
|
||||
// following functions if use a function as their input fields,called function parameters which are vulnerable
|
||||
memberName = ["values", "set"] and
|
||||
result =
|
||||
queryBuilder.getMember(memberName).getParameter(0).getAMember().getReturn().asSink()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A call to the TypeORM `query` function of a `QueryRunner`
|
||||
*/
|
||||
private class QueryRunner extends DatabaseAccess, API::CallNode {
|
||||
QueryRunner() { queryRunner().getMember("query").getACall() = this }
|
||||
|
||||
override DataFlow::Node getAResult() { result = this }
|
||||
|
||||
override DataFlow::Node getAQueryArgument() { result = this.getArgument(0) }
|
||||
}
|
||||
|
||||
/** An expression that is passed to the `query` function and hence interpreted as SQL. */
|
||||
class QueryString extends SQL::SqlString {
|
||||
QueryString() {
|
||||
this = any(QueryRunner qr).getAQueryArgument() or
|
||||
this = any(QueryBuilderCall qb).getAQueryArgument()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/javascript-queries
|
||||
version: 0.8.0-dev
|
||||
version: 0.8.4-dev
|
||||
groups:
|
||||
- javascript
|
||||
- queries
|
||||
|
||||
220
javascript/ql/test/experimental/TypeOrm/test.ts
Normal file
220
javascript/ql/test/experimental/TypeOrm/test.ts
Normal file
@@ -0,0 +1,220 @@
|
||||
import {
|
||||
BaseEntity, Brackets, DataSource, JoinColumn, NotBrackets
|
||||
, OneToOne, Entity, PrimaryGeneratedColumn, Column, SelectQueryBuilder, InsertQueryBuilder
|
||||
} from "typeorm";
|
||||
|
||||
@Entity()
|
||||
export class UserActiveRecord extends BaseEntity {
|
||||
@PrimaryGeneratedColumn()
|
||||
id: number
|
||||
@Column()
|
||||
firstName: string
|
||||
@Column()
|
||||
lastName: string
|
||||
@Column()
|
||||
age: number
|
||||
|
||||
static findByName(firstName: string, lastName: string) {
|
||||
return this.createQueryBuilder("user")
|
||||
.where("user.firstName = " + firstName) // test: SQLInjectionPoint
|
||||
.andWhere("user.lastName = " + lastName) // test: SQLInjectionPoint
|
||||
.getMany()
|
||||
}
|
||||
}
|
||||
|
||||
@Entity()
|
||||
export class Profile {
|
||||
@PrimaryGeneratedColumn()
|
||||
id: number
|
||||
@Column()
|
||||
gender: string
|
||||
@Column()
|
||||
photo: string
|
||||
}
|
||||
|
||||
@Entity()
|
||||
export class User {
|
||||
@PrimaryGeneratedColumn()
|
||||
id: number
|
||||
@Column()
|
||||
name: string
|
||||
@OneToOne(() => Profile)
|
||||
@JoinColumn()
|
||||
profile: Profile
|
||||
}
|
||||
|
||||
@Entity()
|
||||
export class User2 {
|
||||
@PrimaryGeneratedColumn()
|
||||
id: number
|
||||
@Column()
|
||||
firstName: string
|
||||
@Column()
|
||||
lastName: string
|
||||
@Column()
|
||||
age: number
|
||||
|
||||
}
|
||||
|
||||
export const AppDataSource = new DataSource({
|
||||
type: "sqlite",
|
||||
database: "database.sqlite",
|
||||
synchronize: true,
|
||||
logging: false,
|
||||
entities: [User, User2, Profile, UserActiveRecord],
|
||||
migrations: [],
|
||||
subscribers: [],
|
||||
})
|
||||
|
||||
function makePaginationQuery<T>(q: SelectQueryBuilder<T>): SelectQueryBuilder<T> {
|
||||
return q;
|
||||
}
|
||||
|
||||
AppDataSource.initialize().then(async () => {
|
||||
const BadInput = "A user controllable Remote Source like `' 1=1 --` "
|
||||
|
||||
// Active record
|
||||
await UserActiveRecord.findByName(BadInput, "Saw")
|
||||
|
||||
// data mapper
|
||||
const selectQueryBuilder = makePaginationQuery<User>(AppDataSource
|
||||
.createQueryBuilder(User, "User").select());
|
||||
selectQueryBuilder.where(BadInput).getMany().then(result => { // test: SQLInjectionPoint
|
||||
console.log(result)
|
||||
});
|
||||
|
||||
const selectQueryBuilder2 = makePaginationQuery<User>(AppDataSource
|
||||
.createQueryBuilder(User, "User"));
|
||||
selectQueryBuilder2.where(BadInput).getMany().then(result => { // test: SQLInjectionPoint
|
||||
console.log(result)
|
||||
});
|
||||
|
||||
const insertQueryBuilder: InsertQueryBuilder<User2> = AppDataSource
|
||||
.createQueryBuilder(User2, "User2").insert();
|
||||
insertQueryBuilder.into(User2)
|
||||
.values({
|
||||
firstName: "Timber",
|
||||
lastName: () => BadInput, // test: SQLInjectionPoint
|
||||
age: 33,
|
||||
}).execute().then(result => {
|
||||
console.log(result)
|
||||
|
||||
|
||||
})
|
||||
|
||||
AppDataSource
|
||||
.createQueryBuilder(User2, "User")
|
||||
.insert()
|
||||
.into(User2)
|
||||
.values({
|
||||
firstName: "Timber",
|
||||
lastName: () => BadInput, // test: SQLInjectionPoint
|
||||
age: 33,
|
||||
})
|
||||
.orUpdate(
|
||||
[BadInput, BadInput], // test: SQLInjectionPoint
|
||||
[BadInput], // test: SQLInjectionPoint
|
||||
)
|
||||
.getQueryAndParameters()
|
||||
|
||||
await AppDataSource.getRepository(User2).createQueryBuilder("user2")
|
||||
.update(User2)
|
||||
.set({ firstName: () => BadInput, lastName: "Saw2", age: 12 }) // test: SQLInjectionPoint
|
||||
.where(BadInput,) // test: SQLInjectionPoint
|
||||
.execute()
|
||||
|
||||
await AppDataSource.getRepository(User2).createQueryBuilder('user2')
|
||||
.delete()
|
||||
.from(User2)
|
||||
.where(BadInput) // test: SQLInjectionPoint
|
||||
.execute()
|
||||
|
||||
|
||||
const queryRunner = AppDataSource.createQueryRunner()
|
||||
await queryRunner.query(BadInput) // test: SQLInjectionPoint
|
||||
|
||||
await queryRunner.manager
|
||||
.createQueryBuilder(User2, "User")
|
||||
.select(BadInput) // test: SQLInjectionPoint
|
||||
.where(BadInput).execute() // test: SQLInjectionPoint
|
||||
|
||||
await AppDataSource
|
||||
.createQueryBuilder(User, "User")
|
||||
.innerJoin("User.profile", "profile", BadInput, { // test: SQLInjectionPoint
|
||||
id: 2,
|
||||
}).getMany().then(res => console.log(res))
|
||||
|
||||
await AppDataSource
|
||||
.createQueryBuilder(User, "User")
|
||||
.leftJoinAndMapOne("User.profile", "profile", "profile", BadInput, { // test: SQLInjectionPoint
|
||||
id: 2,
|
||||
}).getMany().then(res => console.log(res))
|
||||
|
||||
|
||||
await AppDataSource
|
||||
.createQueryBuilder(User2, "User2")
|
||||
.where((qb) => {
|
||||
const subQuery = qb
|
||||
.subQuery()
|
||||
.select(BadInput) // test: SQLInjectionPoint
|
||||
.from(User2, "user2")
|
||||
.where(BadInput) // test: SQLInjectionPoint
|
||||
.getQuery()
|
||||
return "User2.id IN " + subQuery
|
||||
})
|
||||
.setParameter("registered", true)
|
||||
.getMany()
|
||||
|
||||
|
||||
// Using repository
|
||||
await AppDataSource.getRepository(User2).createQueryBuilder("User2").where("User2.id =:kind" + BadInput, { kind: 1 }).getMany()
|
||||
|
||||
// Using DataSource
|
||||
await AppDataSource
|
||||
.createQueryBuilder()
|
||||
.select(BadInput) // test: SQLInjectionPoint
|
||||
.from(User2, "User2")
|
||||
.where(BadInput, { id: 1 }) // test: SQLInjectionPoint
|
||||
.getMany()
|
||||
|
||||
// Using entity manager
|
||||
await AppDataSource.manager
|
||||
.createQueryBuilder(User2, "User2").where("User2.id =:kind" + BadInput, { kind: '1' }).getMany() // test: SQLInjectionPoint
|
||||
await AppDataSource
|
||||
.createQueryBuilder(User2, "User2")
|
||||
.leftJoinAndSelect("user.photos", "photo", BadInput).getMany() // test: SQLInjectionPoint
|
||||
await AppDataSource
|
||||
.createQueryBuilder(User2, "User2").groupBy("User2.id").having(BadInput).getMany() // test: SQLInjectionPoint
|
||||
// orderBy
|
||||
// it is a little bit restrictive, e.g. sqlite don't support it at all
|
||||
await AppDataSource
|
||||
.createQueryBuilder(User2, "User2").where(BadInput, { // test: SQLInjectionPoint
|
||||
firstName: "Timber",
|
||||
})
|
||||
.where(
|
||||
new Brackets((qb) => {
|
||||
qb.where(BadInput).orWhere(BadInput); // test: SQLInjectionPoint
|
||||
})
|
||||
)
|
||||
.orderBy(BadInput).orWhere(BadInput).getMany() // test: SQLInjectionPoint
|
||||
|
||||
// relation
|
||||
AppDataSource.createQueryBuilder().relation(User, "name")
|
||||
.of(User)
|
||||
.select().where(BadInput).getMany().then(results => { // test: SQLInjectionPoint
|
||||
console.log(results)
|
||||
})
|
||||
|
||||
// Brackets
|
||||
await AppDataSource.createQueryBuilder(User2, "User2")
|
||||
.where(BadInput) // test: SQLInjectionPoint
|
||||
.andWhere(
|
||||
new Brackets((qb) => {
|
||||
qb.where(BadInput).orWhere(BadInput); // test: SQLInjectionPoint
|
||||
})
|
||||
).andWhere(
|
||||
new NotBrackets((qb) => {
|
||||
qb.where(BadInput).orWhere(BadInput) // test: SQLInjectionPoint
|
||||
}),
|
||||
).getMany()
|
||||
}).catch(error => console.log(error))
|
||||
32
javascript/ql/test/experimental/TypeOrm/tests.expected
Normal file
32
javascript/ql/test/experimental/TypeOrm/tests.expected
Normal file
@@ -0,0 +1,32 @@
|
||||
passingPositiveTests
|
||||
| PASSED | SQLInjectionPoint | test.ts:19:54:19:79 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:20:55:20:80 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:82:70:82:95 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:88:70:88:95 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:97:41:97:66 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:111:41:111:66 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:115:37:115:62 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:116:27:116:52 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:122:74:122:99 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:123:29:123:54 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:129:28:129:53 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:134:41:134:66 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:138:29:138:54 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:139:38:139:63 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:143:61:143:86 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:149:80:149:105 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:159:37:159:62 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:161:36:161:61 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:175:29:175:54 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:177:39:177:64 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:182:108:182:133 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:185:74:185:99 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:187:94:187:119 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:191:65:191:90 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:196:57:196:82 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:199:58:199:83 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:204:65:204:90 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:210:28:210:53 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:213:56:213:81 | // test ... onPoint |
|
||||
| PASSED | SQLInjectionPoint | test.ts:217:56:217:81 | // test ... onPoint |
|
||||
failingPositiveTests
|
||||
34
javascript/ql/test/experimental/TypeOrm/tests.ql
Normal file
34
javascript/ql/test/experimental/TypeOrm/tests.ql
Normal file
@@ -0,0 +1,34 @@
|
||||
import javascript
|
||||
|
||||
class InlineTest extends LineComment {
|
||||
string tests;
|
||||
|
||||
InlineTest() { tests = this.getText().regexpCapture("\\s*test:(.*)", 1) }
|
||||
|
||||
string getPositiveTest() {
|
||||
result = tests.trim().splitAt(",").trim() and not result.matches("!%")
|
||||
}
|
||||
|
||||
predicate hasPositiveTest(string test) { test = this.getPositiveTest() }
|
||||
|
||||
predicate inNode(DataFlow::Node n) {
|
||||
this.getLocation().getFile() = n.getFile() and
|
||||
this.getLocation().getStartLine() = n.getStartLine()
|
||||
}
|
||||
}
|
||||
|
||||
import experimental.semmle.javascript.SQL
|
||||
|
||||
query predicate passingPositiveTests(string res, string expectation, InlineTest t) {
|
||||
res = "PASSED" and
|
||||
t.hasPositiveTest(expectation) and
|
||||
expectation = "SQLInjectionPoint" and
|
||||
exists(SQL::SqlString n | t.inNode(n))
|
||||
}
|
||||
|
||||
query predicate failingPositiveTests(string res, string expectation, InlineTest t) {
|
||||
res = "FAILED" and
|
||||
t.hasPositiveTest(expectation) and
|
||||
expectation = "SQLInjectionPoint" and
|
||||
not exists(SQL::SqlString n | t.inNode(n))
|
||||
}
|
||||
15
javascript/ql/test/experimental/TypeOrm/tsconfig.json
Normal file
15
javascript/ql/test/experimental/TypeOrm/tsconfig.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"lib": [
|
||||
"es5",
|
||||
"es6"
|
||||
],
|
||||
"target": "es6",
|
||||
"module": "commonjs",
|
||||
"moduleResolution": "node",
|
||||
"outDir": "./build",
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"sourceMap": true
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,89 @@
|
||||
#select
|
||||
| tst2.ts:1:13:1:21 | <number>1 |
|
||||
| tst2.ts:1:21:1:21 | 1 |
|
||||
| tst.js:1:1:1:3 | "a" |
|
||||
| tst.js:2:1:2:3 | "b" |
|
||||
| tst.js:2:1:2:9 | "b" + "c" |
|
||||
| tst.js:2:7:2:9 | "c" |
|
||||
| tst.js:3:1:3:3 | "d" |
|
||||
| tst.js:3:1:3:9 | "d" + "e" |
|
||||
| tst.js:3:1:3:15 | "d" + "e" + "f" |
|
||||
| tst.js:3:7:3:9 | "e" |
|
||||
| tst.js:3:13:3:15 | "f" |
|
||||
| tst.js:4:1:4:3 | `g` |
|
||||
| tst.js:4:1:4:9 | `g` + `h` |
|
||||
| tst.js:4:2:4:2 | g |
|
||||
| tst.js:4:7:4:9 | `h` |
|
||||
| tst.js:4:8:4:8 | h |
|
||||
| tst.js:6:1:6:1 | 1 |
|
||||
| tst.js:8:1:8:5 | false |
|
||||
| tst.js:9:1:9:4 | true |
|
||||
| tst.js:11:1:11:2 | -1 |
|
||||
| tst.js:11:2:11:2 | 1 |
|
||||
| tst.js:12:1:12:2 | !0 |
|
||||
| tst.js:12:2:12:2 | 0 |
|
||||
| tst.js:14:1:14:4 | null |
|
||||
| tst.js:16:1:16:9 | undefined |
|
||||
| tst.js:24:2:24:9 | `${"x"}` |
|
||||
| tst.js:24:5:24:7 | "x" |
|
||||
| tst.js:26:1:26:3 | !!0 |
|
||||
| tst.js:26:2:26:3 | !0 |
|
||||
| tst.js:26:3:26:3 | 0 |
|
||||
| tst.js:27:1:27:4 | !!`` |
|
||||
| tst.js:27:2:27:4 | !`` |
|
||||
| tst.js:27:3:27:4 | `` |
|
||||
| tst.js:29:1:29:6 | void 0 |
|
||||
| tst.js:29:6:29:6 | 0 |
|
||||
| tst.js:30:1:30:8 | void f() |
|
||||
| tst.js:32:1:32:3 | NaN |
|
||||
| tst.js:33:1:33:8 | Infinity |
|
||||
| tst.js:35:1:35:1 | 1 |
|
||||
| tst.js:35:1:35:5 | 1 + 2 |
|
||||
| tst.js:35:1:35:9 | 1 + 2 + 3 |
|
||||
| tst.js:35:5:35:5 | 2 |
|
||||
| tst.js:35:9:35:9 | 3 |
|
||||
| tst.js:37:1:37:3 | (1) |
|
||||
| tst.js:37:2:37:2 | 1 |
|
||||
| tst.js:39:1:39:4 | f, 1 |
|
||||
| tst.js:39:4:39:4 | 1 |
|
||||
| tst.js:40:1:40:1 | 1 |
|
||||
| tst.js:42:1:42:1 | 1 |
|
||||
| tst.js:42:1:42:7 | 1? 2: 3 |
|
||||
| tst.js:42:4:42:4 | 2 |
|
||||
| tst.js:42:7:42:7 | 3 |
|
||||
| tst.js:43:4:43:4 | 2 |
|
||||
| tst.js:43:7:43:7 | 3 |
|
||||
| tst.js:44:1:44:1 | 1 |
|
||||
| tst.js:44:7:44:7 | 3 |
|
||||
| tst.js:45:1:45:1 | 1 |
|
||||
| tst.js:45:4:45:4 | 2 |
|
||||
| tst.js:47:1:47:5 | x = 1 |
|
||||
| tst.js:47:5:47:5 | 1 |
|
||||
| tst.js:48:1:48:7 | x.p = 1 |
|
||||
| tst.js:48:7:48:7 | 1 |
|
||||
| tst.js:49:6:49:6 | 1 |
|
||||
| tst.js:52:1:52:9 | x = 1_000 |
|
||||
| tst.js:52:5:52:9 | 1_000 |
|
||||
| tst.js:53:1:53:13 | x = 1_000_123 |
|
||||
| tst.js:53:5:53:13 | 1_000_123 |
|
||||
| tst.js:54:1:54:17 | x = 1_000_000_000 |
|
||||
| tst.js:54:5:54:17 | 1_000_000_000 |
|
||||
| tst.js:55:1:55:18 | x = 101_475_938.38 |
|
||||
| tst.js:55:5:55:18 | 101_475_938.38 |
|
||||
| tst.js:56:1:56:10 | x = 123_00 |
|
||||
| tst.js:56:5:56:10 | 123_00 |
|
||||
| tst.js:57:1:57:10 | x = 12_300 |
|
||||
| tst.js:57:5:57:10 | 12_300 |
|
||||
| tst.js:58:1:58:12 | x = 12345_00 |
|
||||
| tst.js:58:5:58:12 | 12345_00 |
|
||||
| tst.js:59:1:59:12 | x = 123_4500 |
|
||||
| tst.js:59:5:59:12 | 123_4500 |
|
||||
| tst.js:60:1:60:13 | x = 1_234_500 |
|
||||
| tst.js:60:5:60:13 | 1_234_500 |
|
||||
| tst.js:61:1:61:10 | x = 1e1_00 |
|
||||
| tst.js:61:5:61:10 | 1e1_00 |
|
||||
| tst.js:62:1:62:14 | x = 0xaa_bb_cc |
|
||||
| tst.js:62:5:62:14 | 0xaa_bb_cc |
|
||||
getIntValue
|
||||
| tst2.ts:1:21:1:21 | 1 | 1 |
|
||||
| tst.js:6:1:6:1 | 1 | 1 |
|
||||
@@ -117,89 +203,3 @@ getLiteralValue
|
||||
| tst.js:60:5:60:13 | 1_234_500 | 1234500 |
|
||||
| tst.js:61:5:61:10 | 1e1_00 | 1.0E100 |
|
||||
| tst.js:62:5:62:14 | 0xaa_bb_cc | 11189196 |
|
||||
#select
|
||||
| tst2.ts:1:13:1:21 | <number>1 |
|
||||
| tst2.ts:1:21:1:21 | 1 |
|
||||
| tst.js:1:1:1:3 | "a" |
|
||||
| tst.js:2:1:2:3 | "b" |
|
||||
| tst.js:2:1:2:9 | "b" + "c" |
|
||||
| tst.js:2:7:2:9 | "c" |
|
||||
| tst.js:3:1:3:3 | "d" |
|
||||
| tst.js:3:1:3:9 | "d" + "e" |
|
||||
| tst.js:3:1:3:15 | "d" + "e" + "f" |
|
||||
| tst.js:3:7:3:9 | "e" |
|
||||
| tst.js:3:13:3:15 | "f" |
|
||||
| tst.js:4:1:4:3 | `g` |
|
||||
| tst.js:4:1:4:9 | `g` + `h` |
|
||||
| tst.js:4:2:4:2 | g |
|
||||
| tst.js:4:7:4:9 | `h` |
|
||||
| tst.js:4:8:4:8 | h |
|
||||
| tst.js:6:1:6:1 | 1 |
|
||||
| tst.js:8:1:8:5 | false |
|
||||
| tst.js:9:1:9:4 | true |
|
||||
| tst.js:11:1:11:2 | -1 |
|
||||
| tst.js:11:2:11:2 | 1 |
|
||||
| tst.js:12:1:12:2 | !0 |
|
||||
| tst.js:12:2:12:2 | 0 |
|
||||
| tst.js:14:1:14:4 | null |
|
||||
| tst.js:16:1:16:9 | undefined |
|
||||
| tst.js:24:2:24:9 | `${"x"}` |
|
||||
| tst.js:24:5:24:7 | "x" |
|
||||
| tst.js:26:1:26:3 | !!0 |
|
||||
| tst.js:26:2:26:3 | !0 |
|
||||
| tst.js:26:3:26:3 | 0 |
|
||||
| tst.js:27:1:27:4 | !!`` |
|
||||
| tst.js:27:2:27:4 | !`` |
|
||||
| tst.js:27:3:27:4 | `` |
|
||||
| tst.js:29:1:29:6 | void 0 |
|
||||
| tst.js:29:6:29:6 | 0 |
|
||||
| tst.js:30:1:30:8 | void f() |
|
||||
| tst.js:32:1:32:3 | NaN |
|
||||
| tst.js:33:1:33:8 | Infinity |
|
||||
| tst.js:35:1:35:1 | 1 |
|
||||
| tst.js:35:1:35:5 | 1 + 2 |
|
||||
| tst.js:35:1:35:9 | 1 + 2 + 3 |
|
||||
| tst.js:35:5:35:5 | 2 |
|
||||
| tst.js:35:9:35:9 | 3 |
|
||||
| tst.js:37:1:37:3 | (1) |
|
||||
| tst.js:37:2:37:2 | 1 |
|
||||
| tst.js:39:1:39:4 | f, 1 |
|
||||
| tst.js:39:4:39:4 | 1 |
|
||||
| tst.js:40:1:40:1 | 1 |
|
||||
| tst.js:42:1:42:1 | 1 |
|
||||
| tst.js:42:1:42:7 | 1? 2: 3 |
|
||||
| tst.js:42:4:42:4 | 2 |
|
||||
| tst.js:42:7:42:7 | 3 |
|
||||
| tst.js:43:4:43:4 | 2 |
|
||||
| tst.js:43:7:43:7 | 3 |
|
||||
| tst.js:44:1:44:1 | 1 |
|
||||
| tst.js:44:7:44:7 | 3 |
|
||||
| tst.js:45:1:45:1 | 1 |
|
||||
| tst.js:45:4:45:4 | 2 |
|
||||
| tst.js:47:1:47:5 | x = 1 |
|
||||
| tst.js:47:5:47:5 | 1 |
|
||||
| tst.js:48:1:48:7 | x.p = 1 |
|
||||
| tst.js:48:7:48:7 | 1 |
|
||||
| tst.js:49:6:49:6 | 1 |
|
||||
| tst.js:52:1:52:9 | x = 1_000 |
|
||||
| tst.js:52:5:52:9 | 1_000 |
|
||||
| tst.js:53:1:53:13 | x = 1_000_123 |
|
||||
| tst.js:53:5:53:13 | 1_000_123 |
|
||||
| tst.js:54:1:54:17 | x = 1_000_000_000 |
|
||||
| tst.js:54:5:54:17 | 1_000_000_000 |
|
||||
| tst.js:55:1:55:18 | x = 101_475_938.38 |
|
||||
| tst.js:55:5:55:18 | 101_475_938.38 |
|
||||
| tst.js:56:1:56:10 | x = 123_00 |
|
||||
| tst.js:56:5:56:10 | 123_00 |
|
||||
| tst.js:57:1:57:10 | x = 12_300 |
|
||||
| tst.js:57:5:57:10 | 12_300 |
|
||||
| tst.js:58:1:58:12 | x = 12345_00 |
|
||||
| tst.js:58:5:58:12 | 12345_00 |
|
||||
| tst.js:59:1:59:12 | x = 123_4500 |
|
||||
| tst.js:59:5:59:12 | 123_4500 |
|
||||
| tst.js:60:1:60:13 | x = 1_234_500 |
|
||||
| tst.js:60:5:60:13 | 1_234_500 |
|
||||
| tst.js:61:1:61:10 | x = 1e1_00 |
|
||||
| tst.js:61:5:61:10 | 1e1_00 |
|
||||
| tst.js:62:1:62:14 | x = 0xaa_bb_cc |
|
||||
| tst.js:62:5:62:14 | 0xaa_bb_cc |
|
||||
|
||||
@@ -1,87 +1,3 @@
|
||||
test_AttributeDefinition
|
||||
| event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); |
|
||||
| tst.html:3:6:3:30 | href=https://semmle.com |
|
||||
| tst.html:3:32:3:46 | target=_blank |
|
||||
| tst.js:2:22:2:37 | target: "_blank" |
|
||||
| tst.js:3:11:3:66 | $("<a/> ... e.com") |
|
||||
| tst.js:4:3:4:27 | a.attr( ... pener") |
|
||||
| tst.js:6:5:6:24 | "data-bind": "stuff" |
|
||||
| tst.js:8:3:8:29 | a.prop( ... errer") |
|
||||
| tst.js:10:5:10:29 | "data-b ... rstuff" |
|
||||
| tst.js:12:3:12:41 | $.attr( ... errer") |
|
||||
| tst.js:13:3:13:28 | $.prop( ... d", "") |
|
||||
| tst.jsx:4:14:4:38 | href="h ... le.com" |
|
||||
| tst.jsx:4:40:4:48 | rel={rel} |
|
||||
| tst.jsx:4:50:4:64 | {...otherAttrs} |
|
||||
test_ElementDefinition_getAttribute
|
||||
| event-handler-receiver.html:4:3:4:58 | <button>...</> | 0 | event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); |
|
||||
| tst.html:3:3:3:57 | <a>...</> | 0 | tst.html:3:6:3:30 | href=https://semmle.com |
|
||||
| tst.html:3:3:3:57 | <a>...</> | 1 | tst.html:3:32:3:46 | target=_blank |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | 0 | tst.jsx:4:14:4:38 | href="h ... le.com" |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | 1 | tst.jsx:4:40:4:48 | rel={rel} |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | 2 | tst.jsx:4:50:4:64 | {...otherAttrs} |
|
||||
test_ElementDefinition_getRoot
|
||||
| event-handler-receiver.html:1:1:6:7 | <html>...</> | event-handler-receiver.html:1:1:6:7 | <html>...</> |
|
||||
| event-handler-receiver.html:2:1:2:13 | <head>...</> | event-handler-receiver.html:1:1:6:7 | <html>...</> |
|
||||
| event-handler-receiver.html:3:1:5:7 | <body>...</> | event-handler-receiver.html:1:1:6:7 | <html>...</> |
|
||||
| event-handler-receiver.html:4:3:4:58 | <button>...</> | event-handler-receiver.html:1:1:6:7 | <html>...</> |
|
||||
| tst.html:1:1:5:7 | <html>...</> | tst.html:1:1:5:7 | <html>...</> |
|
||||
| tst.html:2:1:4:7 | <body>...</> | tst.html:1:1:5:7 | <html>...</> |
|
||||
| tst.html:3:3:3:57 | <a>...</> | tst.html:1:1:5:7 | <html>...</> |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | tst.js:3:11:3:31 | $("<a/> ... rAttrs) |
|
||||
| tst.js:23:5:23:30 | React.c ... ('div') | tst.js:23:5:23:30 | React.c ... ('div') |
|
||||
| tst.js:24:5:24:55 | React.c ... , null) | tst.js:24:5:24:55 | React.c ... , null) |
|
||||
| tst.js:27:5:27:14 | factory1() | tst.js:27:5:27:14 | factory1() |
|
||||
| tst.js:31:20:31:55 | <div>He ... }</div> | tst.js:31:20:31:55 | <div>He ... }</div> |
|
||||
| tst.js:36:5:36:55 | React.c ... , null) | tst.js:36:5:36:55 | React.c ... , null) |
|
||||
| tst.js:39:5:39:14 | factory2() | tst.js:39:5:39:14 | factory2() |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | tst.jsx:4:11:4:75 | <a href ... mle</a> |
|
||||
test_WebStorageWrite
|
||||
| tst.js:15:22:15:28 | "value" |
|
||||
| tst.js:16:31:16:37 | "value" |
|
||||
| tst.js:17:24:17:30 | "value" |
|
||||
| tst.js:18:33:18:39 | "value" |
|
||||
test_ElementDefinition_getAttributeByName
|
||||
| event-handler-receiver.html:4:3:4:58 | <button>...</> | onclick | event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); |
|
||||
| tst.html:3:3:3:57 | <a>...</> | href | tst.html:3:6:3:30 | href=https://semmle.com |
|
||||
| tst.html:3:3:3:57 | <a>...</> | target | tst.html:3:32:3:46 | target=_blank |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | data-bind | tst.js:6:5:6:24 | "data-bind": "stuff" |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | data-bind | tst.js:10:5:10:29 | "data-b ... rstuff" |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | data-bind | tst.js:13:3:13:28 | $.prop( ... d", "") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | href | tst.js:3:11:3:66 | $("<a/> ... e.com") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | rel | tst.js:4:3:4:27 | a.attr( ... pener") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | rel | tst.js:8:3:8:29 | a.prop( ... errer") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | rel | tst.js:12:3:12:41 | $.attr( ... errer") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | target | tst.js:2:22:2:37 | target: "_blank" |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | href | tst.jsx:4:14:4:38 | href="h ... le.com" |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | rel | tst.jsx:4:40:4:48 | rel={rel} |
|
||||
test_AttributeDefinition_getStringValue
|
||||
| event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); | alert(this.tagName); |
|
||||
| tst.html:3:6:3:30 | href=https://semmle.com | https://semmle.com |
|
||||
| tst.html:3:32:3:46 | target=_blank | _blank |
|
||||
| tst.js:2:22:2:37 | target: "_blank" | _blank |
|
||||
| tst.js:3:11:3:66 | $("<a/> ... e.com") | https://semmle.com |
|
||||
| tst.js:4:3:4:27 | a.attr( ... pener") | noopener |
|
||||
| tst.js:6:5:6:24 | "data-bind": "stuff" | stuff |
|
||||
| tst.js:8:3:8:29 | a.prop( ... errer") | noreferrer |
|
||||
| tst.js:10:5:10:29 | "data-b ... rstuff" | otherstuff |
|
||||
| tst.js:12:3:12:41 | $.attr( ... errer") | noopener noreferrer |
|
||||
| tst.js:13:3:13:28 | $.prop( ... d", "") | |
|
||||
| tst.jsx:4:14:4:38 | href="h ... le.com" | https://semmle.com |
|
||||
test_AttributeDefinition_getName
|
||||
| event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); | onclick |
|
||||
| tst.html:3:6:3:30 | href=https://semmle.com | href |
|
||||
| tst.html:3:32:3:46 | target=_blank | target |
|
||||
| tst.js:2:22:2:37 | target: "_blank" | target |
|
||||
| tst.js:3:11:3:66 | $("<a/> ... e.com") | href |
|
||||
| tst.js:4:3:4:27 | a.attr( ... pener") | rel |
|
||||
| tst.js:6:5:6:24 | "data-bind": "stuff" | data-bind |
|
||||
| tst.js:8:3:8:29 | a.prop( ... errer") | rel |
|
||||
| tst.js:10:5:10:29 | "data-b ... rstuff" | data-bind |
|
||||
| tst.js:12:3:12:41 | $.attr( ... errer") | rel |
|
||||
| tst.js:13:3:13:28 | $.prop( ... d", "") | data-bind |
|
||||
| tst.jsx:4:14:4:38 | href="h ... le.com" | href |
|
||||
| tst.jsx:4:40:4:48 | rel={rel} | rel |
|
||||
test_Element
|
||||
| event-handler-receiver.html:1:1:6:7 | <html>...</> | event-handler-receiver.html:1:1:6:7 | <html>...</> |
|
||||
| event-handler-receiver.html:2:1:2:13 | <head>...</> | event-handler-receiver.html:2:1:2:13 | <head>...</> |
|
||||
@@ -110,18 +26,11 @@ test_Element
|
||||
| tst.js:39:5:39:14 | factory2() | tst.js:39:5:39:14 | factory2() |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | tst.jsx:4:11:4:75 | <a href ... mle</a> |
|
||||
| tst.jsx:5:3:5:3 | a | tst.jsx:4:11:4:75 | <a href ... mle</a> |
|
||||
test_AttributeDefinition_getValueNode
|
||||
| tst.js:2:22:2:37 | target: "_blank" | tst.js:2:30:2:37 | "_blank" |
|
||||
| tst.js:3:11:3:66 | $("<a/> ... e.com") | tst.js:3:46:3:65 | "https://semmle.com" |
|
||||
| tst.js:4:3:4:27 | a.attr( ... pener") | tst.js:4:17:4:26 | "noopener" |
|
||||
| tst.js:6:5:6:24 | "data-bind": "stuff" | tst.js:6:18:6:24 | "stuff" |
|
||||
| tst.js:8:3:8:29 | a.prop( ... errer") | tst.js:8:17:8:28 | "noreferrer" |
|
||||
| tst.js:10:5:10:29 | "data-b ... rstuff" | tst.js:10:18:10:29 | "otherstuff" |
|
||||
| tst.js:12:3:12:41 | $.attr( ... errer") | tst.js:12:20:12:40 | "noopen ... ferrer" |
|
||||
| tst.js:13:3:13:28 | $.prop( ... d", "") | tst.js:13:26:13:27 | "" |
|
||||
| tst.jsx:4:14:4:38 | href="h ... le.com" | tst.jsx:4:19:4:38 | "https://semmle.com" |
|
||||
| tst.jsx:4:40:4:48 | rel={rel} | tst.jsx:4:45:4:47 | rel |
|
||||
| tst.jsx:4:50:4:64 | {...otherAttrs} | tst.jsx:4:50:4:64 | ...otherAttrs |
|
||||
test_WebStorageWrite
|
||||
| tst.js:15:22:15:28 | "value" |
|
||||
| tst.js:16:31:16:37 | "value" |
|
||||
| tst.js:17:24:17:30 | "value" |
|
||||
| tst.js:18:33:18:39 | "value" |
|
||||
test_ElementDefinition
|
||||
| event-handler-receiver.html:1:1:6:7 | <html>...</> | html |
|
||||
| event-handler-receiver.html:2:1:2:13 | <head>...</> | head |
|
||||
@@ -136,3 +45,94 @@ test_ElementDefinition
|
||||
| tst.js:27:5:27:14 | factory1() | div |
|
||||
| tst.js:31:20:31:55 | <div>He ... }</div> | div |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | a |
|
||||
test_AttributeDefinition
|
||||
| event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); |
|
||||
| tst.html:3:6:3:30 | href=https://semmle.com |
|
||||
| tst.html:3:32:3:46 | target=_blank |
|
||||
| tst.js:2:22:2:37 | target: "_blank" |
|
||||
| tst.js:3:11:3:66 | $("<a/> ... e.com") |
|
||||
| tst.js:4:3:4:27 | a.attr( ... pener") |
|
||||
| tst.js:6:5:6:24 | "data-bind": "stuff" |
|
||||
| tst.js:8:3:8:29 | a.prop( ... errer") |
|
||||
| tst.js:10:5:10:29 | "data-b ... rstuff" |
|
||||
| tst.js:12:3:12:41 | $.attr( ... errer") |
|
||||
| tst.js:13:3:13:28 | $.prop( ... d", "") |
|
||||
| tst.jsx:4:14:4:38 | href="h ... le.com" |
|
||||
| tst.jsx:4:40:4:48 | rel={rel} |
|
||||
| tst.jsx:4:50:4:64 | {...otherAttrs} |
|
||||
test_ElementDefinition_getRoot
|
||||
| event-handler-receiver.html:1:1:6:7 | <html>...</> | event-handler-receiver.html:1:1:6:7 | <html>...</> |
|
||||
| event-handler-receiver.html:2:1:2:13 | <head>...</> | event-handler-receiver.html:1:1:6:7 | <html>...</> |
|
||||
| event-handler-receiver.html:3:1:5:7 | <body>...</> | event-handler-receiver.html:1:1:6:7 | <html>...</> |
|
||||
| event-handler-receiver.html:4:3:4:58 | <button>...</> | event-handler-receiver.html:1:1:6:7 | <html>...</> |
|
||||
| tst.html:1:1:5:7 | <html>...</> | tst.html:1:1:5:7 | <html>...</> |
|
||||
| tst.html:2:1:4:7 | <body>...</> | tst.html:1:1:5:7 | <html>...</> |
|
||||
| tst.html:3:3:3:57 | <a>...</> | tst.html:1:1:5:7 | <html>...</> |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | tst.js:3:11:3:31 | $("<a/> ... rAttrs) |
|
||||
| tst.js:23:5:23:30 | React.c ... ('div') | tst.js:23:5:23:30 | React.c ... ('div') |
|
||||
| tst.js:24:5:24:55 | React.c ... , null) | tst.js:24:5:24:55 | React.c ... , null) |
|
||||
| tst.js:27:5:27:14 | factory1() | tst.js:27:5:27:14 | factory1() |
|
||||
| tst.js:31:20:31:55 | <div>He ... }</div> | tst.js:31:20:31:55 | <div>He ... }</div> |
|
||||
| tst.js:36:5:36:55 | React.c ... , null) | tst.js:36:5:36:55 | React.c ... , null) |
|
||||
| tst.js:39:5:39:14 | factory2() | tst.js:39:5:39:14 | factory2() |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | tst.jsx:4:11:4:75 | <a href ... mle</a> |
|
||||
test_AttributeDefinition_getName
|
||||
| event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); | onclick |
|
||||
| tst.html:3:6:3:30 | href=https://semmle.com | href |
|
||||
| tst.html:3:32:3:46 | target=_blank | target |
|
||||
| tst.js:2:22:2:37 | target: "_blank" | target |
|
||||
| tst.js:3:11:3:66 | $("<a/> ... e.com") | href |
|
||||
| tst.js:4:3:4:27 | a.attr( ... pener") | rel |
|
||||
| tst.js:6:5:6:24 | "data-bind": "stuff" | data-bind |
|
||||
| tst.js:8:3:8:29 | a.prop( ... errer") | rel |
|
||||
| tst.js:10:5:10:29 | "data-b ... rstuff" | data-bind |
|
||||
| tst.js:12:3:12:41 | $.attr( ... errer") | rel |
|
||||
| tst.js:13:3:13:28 | $.prop( ... d", "") | data-bind |
|
||||
| tst.jsx:4:14:4:38 | href="h ... le.com" | href |
|
||||
| tst.jsx:4:40:4:48 | rel={rel} | rel |
|
||||
test_ElementDefinition_getAttribute
|
||||
| event-handler-receiver.html:4:3:4:58 | <button>...</> | 0 | event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); |
|
||||
| tst.html:3:3:3:57 | <a>...</> | 0 | tst.html:3:6:3:30 | href=https://semmle.com |
|
||||
| tst.html:3:3:3:57 | <a>...</> | 1 | tst.html:3:32:3:46 | target=_blank |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | 0 | tst.jsx:4:14:4:38 | href="h ... le.com" |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | 1 | tst.jsx:4:40:4:48 | rel={rel} |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | 2 | tst.jsx:4:50:4:64 | {...otherAttrs} |
|
||||
test_AttributeDefinition_getValueNode
|
||||
| tst.js:2:22:2:37 | target: "_blank" | tst.js:2:30:2:37 | "_blank" |
|
||||
| tst.js:3:11:3:66 | $("<a/> ... e.com") | tst.js:3:46:3:65 | "https://semmle.com" |
|
||||
| tst.js:4:3:4:27 | a.attr( ... pener") | tst.js:4:17:4:26 | "noopener" |
|
||||
| tst.js:6:5:6:24 | "data-bind": "stuff" | tst.js:6:18:6:24 | "stuff" |
|
||||
| tst.js:8:3:8:29 | a.prop( ... errer") | tst.js:8:17:8:28 | "noreferrer" |
|
||||
| tst.js:10:5:10:29 | "data-b ... rstuff" | tst.js:10:18:10:29 | "otherstuff" |
|
||||
| tst.js:12:3:12:41 | $.attr( ... errer") | tst.js:12:20:12:40 | "noopen ... ferrer" |
|
||||
| tst.js:13:3:13:28 | $.prop( ... d", "") | tst.js:13:26:13:27 | "" |
|
||||
| tst.jsx:4:14:4:38 | href="h ... le.com" | tst.jsx:4:19:4:38 | "https://semmle.com" |
|
||||
| tst.jsx:4:40:4:48 | rel={rel} | tst.jsx:4:45:4:47 | rel |
|
||||
| tst.jsx:4:50:4:64 | {...otherAttrs} | tst.jsx:4:50:4:64 | ...otherAttrs |
|
||||
test_AttributeDefinition_getStringValue
|
||||
| event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); | alert(this.tagName); |
|
||||
| tst.html:3:6:3:30 | href=https://semmle.com | https://semmle.com |
|
||||
| tst.html:3:32:3:46 | target=_blank | _blank |
|
||||
| tst.js:2:22:2:37 | target: "_blank" | _blank |
|
||||
| tst.js:3:11:3:66 | $("<a/> ... e.com") | https://semmle.com |
|
||||
| tst.js:4:3:4:27 | a.attr( ... pener") | noopener |
|
||||
| tst.js:6:5:6:24 | "data-bind": "stuff" | stuff |
|
||||
| tst.js:8:3:8:29 | a.prop( ... errer") | noreferrer |
|
||||
| tst.js:10:5:10:29 | "data-b ... rstuff" | otherstuff |
|
||||
| tst.js:12:3:12:41 | $.attr( ... errer") | noopener noreferrer |
|
||||
| tst.js:13:3:13:28 | $.prop( ... d", "") | |
|
||||
| tst.jsx:4:14:4:38 | href="h ... le.com" | https://semmle.com |
|
||||
test_ElementDefinition_getAttributeByName
|
||||
| event-handler-receiver.html:4:3:4:58 | <button>...</> | onclick | event-handler-receiver.html:4:11:4:40 | onclick=alert(this.tagName); |
|
||||
| tst.html:3:3:3:57 | <a>...</> | href | tst.html:3:6:3:30 | href=https://semmle.com |
|
||||
| tst.html:3:3:3:57 | <a>...</> | target | tst.html:3:32:3:46 | target=_blank |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | data-bind | tst.js:6:5:6:24 | "data-bind": "stuff" |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | data-bind | tst.js:10:5:10:29 | "data-b ... rstuff" |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | data-bind | tst.js:13:3:13:28 | $.prop( ... d", "") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | href | tst.js:3:11:3:66 | $("<a/> ... e.com") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | rel | tst.js:4:3:4:27 | a.attr( ... pener") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | rel | tst.js:8:3:8:29 | a.prop( ... errer") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | rel | tst.js:12:3:12:41 | $.attr( ... errer") |
|
||||
| tst.js:3:11:3:31 | $("<a/> ... rAttrs) | target | tst.js:2:22:2:37 | target: "_blank" |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | href | tst.jsx:4:14:4:38 | href="h ... le.com" |
|
||||
| tst.jsx:4:11:4:75 | <a href ... mle</a> | rel | tst.jsx:4:40:4:48 | rel={rel} |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,53 @@
|
||||
test_getVariable
|
||||
test_getId
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} | defaultargs.js:1:10:1:10 | f | f |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} | generators.js:1:11:1:13 | foo | foo |
|
||||
| generators.js:6:2:6:19 | function* bar() {} | generators.js:6:12:6:14 | bar | bar |
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} | restparms.js:1:10:1:10 | r | r |
|
||||
| tst.js:1:1:1:15 | function A() {} | tst.js:1:10:1:10 | A | A |
|
||||
| tst.js:2:1:2:16 | function B(x) {} | tst.js:2:10:2:10 | B | B |
|
||||
| tst.js:3:1:3:19 | function C(x, y) {} | tst.js:3:10:3:10 | C | C |
|
||||
| tst.js:7:9:7:23 | function h() {} | tst.js:7:18:7:18 | h | h |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} | tst.js:9:10:9:10 | k | k |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } | tst.js:10:10:10:10 | l | l |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } | tst.js:11:10:11:10 | m | m |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } | tst.js:12:10:12:10 | n | n |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | tst.js:14:10:14:10 | p | p |
|
||||
test_getBody
|
||||
| arrowfns.js:1:24:1:36 | s => s.length | arrowfns.js:1:29:1:36 | s.length |
|
||||
| arrowfns.js:2:13:2:23 | () => ++cnt | arrowfns.js:2:19:2:23 | ++cnt |
|
||||
| arrowfns.js:3:12:3:41 | () => { ... "); ; } | arrowfns.js:3:18:3:41 | { alert ... "); ; } |
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} | defaultargs.js:1:23:1:24 | {} |
|
||||
| exprclosures.js:1:7:1:21 | function(x) x+1 | exprclosures.js:1:19:1:21 | x+1 |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} | generators.js:1:16:4:1 | {\\n for ... i++;\\n} |
|
||||
| generators.js:6:2:6:19 | function* bar() {} | generators.js:6:18:6:19 | {} |
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} | restparms.js:1:22:2:1 | {\\n} |
|
||||
| tst.js:1:1:1:15 | function A() {} | tst.js:1:14:1:15 | {} |
|
||||
| tst.js:2:1:2:16 | function B(x) {} | tst.js:2:15:2:16 | {} |
|
||||
| tst.js:3:1:3:19 | function C(x, y) {} | tst.js:3:18:3:19 | {} |
|
||||
| tst.js:4:9:4:21 | function() {} | tst.js:4:20:4:21 | {} |
|
||||
| tst.js:5:2:5:15 | function(x) {} | tst.js:5:14:5:15 | {} |
|
||||
| tst.js:6:2:6:18 | function(x, y) {} | tst.js:6:17:6:18 | {} |
|
||||
| tst.js:7:9:7:23 | function h() {} | tst.js:7:22:7:23 | {} |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} | tst.js:9:23:9:24 | {} |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } | tst.js:10:14:10:31 | { var arguments; } |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } | tst.js:11:14:11:35 | { { var ... ts; } } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } | tst.js:12:14:12:44 | { try { ... s) {} } |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | tst.js:14:14:14:37 | { retur ... s[0]; } |
|
||||
test_Function
|
||||
| arrowfns.js:1:24:1:36 | s => s.length |
|
||||
| arrowfns.js:2:13:2:23 | () => ++cnt |
|
||||
| arrowfns.js:3:12:3:41 | () => { ... "); ; } |
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} |
|
||||
| exprclosures.js:1:7:1:21 | function(x) x+1 |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} |
|
||||
| generators.js:6:2:6:19 | function* bar() {} |
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} |
|
||||
| tst.js:1:1:1:15 | function A() {} |
|
||||
| tst.js:2:1:2:16 | function B(x) {} |
|
||||
| tst.js:3:1:3:19 | function C(x, y) {} |
|
||||
| tst.js:4:9:4:21 | function() {} |
|
||||
| tst.js:5:2:5:15 | function(x) {} |
|
||||
| tst.js:6:2:6:18 | function(x, y) {} |
|
||||
| tst.js:7:9:7:23 | function h() {} |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } |
|
||||
@@ -33,6 +75,33 @@ test_getScope
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } |
|
||||
test_ReturnStmt
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | tst.js:14:16:14:35 | return arguments[0]; |
|
||||
test_getBodyStmt
|
||||
| arrowfns.js:3:12:3:41 | () => { ... "); ; } | 0 | arrowfns.js:3:20:3:37 | alert("Wake up!"); |
|
||||
| arrowfns.js:3:12:3:41 | () => { ... "); ; } | 1 | arrowfns.js:3:39:3:39 | ; |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} | 0 | generators.js:2:3:3:14 | for (va ... ld i++; |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } | 0 | tst.js:10:16:10:29 | var arguments; |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } | 0 | tst.js:11:16:11:33 | { var arguments; } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } | 0 | tst.js:12:16:12:42 | try { } ... nts) {} |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | 0 | tst.js:14:16:14:35 | return arguments[0]; |
|
||||
test_getVariable
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} |
|
||||
| generators.js:6:2:6:19 | function* bar() {} |
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} |
|
||||
| tst.js:1:1:1:15 | function A() {} |
|
||||
| tst.js:2:1:2:16 | function B(x) {} |
|
||||
| tst.js:3:1:3:19 | function C(x, y) {} |
|
||||
| tst.js:7:9:7:23 | function h() {} |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } |
|
||||
test_isGenerator
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} |
|
||||
| generators.js:6:2:6:19 | function* bar() {} |
|
||||
test_getParameter
|
||||
| arrowfns.js:1:24:1:36 | s => s.length | 0 | arrowfns.js:1:24:1:24 | s |
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} | 0 | defaultargs.js:1:12:1:12 | x |
|
||||
@@ -47,102 +116,8 @@ test_getParameter
|
||||
| tst.js:6:2:6:18 | function(x, y) {} | 0 | tst.js:6:11:6:11 | x |
|
||||
| tst.js:6:2:6:18 | function(x, y) {} | 1 | tst.js:6:14:6:14 | y |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} | 0 | tst.js:9:12:9:20 | arguments |
|
||||
test_ReturnedExpression
|
||||
| arrowfns.js:1:24:1:36 | s => s.length | arrowfns.js:1:29:1:36 | s.length |
|
||||
| arrowfns.js:2:13:2:23 | () => ++cnt | arrowfns.js:2:19:2:23 | ++cnt |
|
||||
| exprclosures.js:1:7:1:21 | function(x) x+1 | exprclosures.js:1:19:1:21 | x+1 |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | tst.js:14:23:14:34 | arguments[0] |
|
||||
test_getDefaultArguments
|
||||
| defaultargs.js:1:15:1:15 | y | defaultargs.js:1:17:1:20 | x+19 |
|
||||
test_Function
|
||||
| arrowfns.js:1:24:1:36 | s => s.length |
|
||||
| arrowfns.js:2:13:2:23 | () => ++cnt |
|
||||
| arrowfns.js:3:12:3:41 | () => { ... "); ; } |
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} |
|
||||
| exprclosures.js:1:7:1:21 | function(x) x+1 |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} |
|
||||
| generators.js:6:2:6:19 | function* bar() {} |
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} |
|
||||
| tst.js:1:1:1:15 | function A() {} |
|
||||
| tst.js:2:1:2:16 | function B(x) {} |
|
||||
| tst.js:3:1:3:19 | function C(x, y) {} |
|
||||
| tst.js:4:9:4:21 | function() {} |
|
||||
| tst.js:5:2:5:15 | function(x) {} |
|
||||
| tst.js:6:2:6:18 | function(x, y) {} |
|
||||
| tst.js:7:9:7:23 | function h() {} |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } |
|
||||
test_getBody
|
||||
| arrowfns.js:1:24:1:36 | s => s.length | arrowfns.js:1:29:1:36 | s.length |
|
||||
| arrowfns.js:2:13:2:23 | () => ++cnt | arrowfns.js:2:19:2:23 | ++cnt |
|
||||
| arrowfns.js:3:12:3:41 | () => { ... "); ; } | arrowfns.js:3:18:3:41 | { alert ... "); ; } |
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} | defaultargs.js:1:23:1:24 | {} |
|
||||
| exprclosures.js:1:7:1:21 | function(x) x+1 | exprclosures.js:1:19:1:21 | x+1 |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} | generators.js:1:16:4:1 | {\\n for ... i++;\\n} |
|
||||
| generators.js:6:2:6:19 | function* bar() {} | generators.js:6:18:6:19 | {} |
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} | restparms.js:1:22:2:1 | {\\n} |
|
||||
| tst.js:1:1:1:15 | function A() {} | tst.js:1:14:1:15 | {} |
|
||||
| tst.js:2:1:2:16 | function B(x) {} | tst.js:2:15:2:16 | {} |
|
||||
| tst.js:3:1:3:19 | function C(x, y) {} | tst.js:3:18:3:19 | {} |
|
||||
| tst.js:4:9:4:21 | function() {} | tst.js:4:20:4:21 | {} |
|
||||
| tst.js:5:2:5:15 | function(x) {} | tst.js:5:14:5:15 | {} |
|
||||
| tst.js:6:2:6:18 | function(x, y) {} | tst.js:6:17:6:18 | {} |
|
||||
| tst.js:7:9:7:23 | function h() {} | tst.js:7:22:7:23 | {} |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} | tst.js:9:23:9:24 | {} |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } | tst.js:10:14:10:31 | { var arguments; } |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } | tst.js:11:14:11:35 | { { var ... ts; } } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } | tst.js:12:14:12:44 | { try { ... s) {} } |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | tst.js:14:14:14:37 | { retur ... s[0]; } |
|
||||
test_getId
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} | defaultargs.js:1:10:1:10 | f | f |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} | generators.js:1:11:1:13 | foo | foo |
|
||||
| generators.js:6:2:6:19 | function* bar() {} | generators.js:6:12:6:14 | bar | bar |
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} | restparms.js:1:10:1:10 | r | r |
|
||||
| tst.js:1:1:1:15 | function A() {} | tst.js:1:10:1:10 | A | A |
|
||||
| tst.js:2:1:2:16 | function B(x) {} | tst.js:2:10:2:10 | B | B |
|
||||
| tst.js:3:1:3:19 | function C(x, y) {} | tst.js:3:10:3:10 | C | C |
|
||||
| tst.js:7:9:7:23 | function h() {} | tst.js:7:18:7:18 | h | h |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} | tst.js:9:10:9:10 | k | k |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } | tst.js:10:10:10:10 | l | l |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } | tst.js:11:10:11:10 | m | m |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } | tst.js:12:10:12:10 | n | n |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | tst.js:14:10:14:10 | p | p |
|
||||
test_hasRestParameter
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} |
|
||||
test_getArgumentsVariable
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} |
|
||||
| exprclosures.js:1:7:1:21 | function(x) x+1 |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} |
|
||||
| generators.js:6:2:6:19 | function* bar() {} |
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} |
|
||||
| tst.js:1:1:1:15 | function A() {} |
|
||||
| tst.js:2:1:2:16 | function B(x) {} |
|
||||
| tst.js:3:1:3:19 | function C(x, y) {} |
|
||||
| tst.js:4:9:4:21 | function() {} |
|
||||
| tst.js:5:2:5:15 | function(x) {} |
|
||||
| tst.js:6:2:6:18 | function(x, y) {} |
|
||||
| tst.js:7:9:7:23 | function h() {} |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } |
|
||||
test_getBodyStmt
|
||||
| arrowfns.js:3:12:3:41 | () => { ... "); ; } | 0 | arrowfns.js:3:20:3:37 | alert("Wake up!"); |
|
||||
| arrowfns.js:3:12:3:41 | () => { ... "); ; } | 1 | arrowfns.js:3:39:3:39 | ; |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} | 0 | generators.js:2:3:3:14 | for (va ... ld i++; |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } | 0 | tst.js:10:16:10:29 | var arguments; |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } | 0 | tst.js:11:16:11:33 | { var arguments; } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } | 0 | tst.js:12:16:12:42 | try { } ... nts) {} |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | 0 | tst.js:14:16:14:35 | return arguments[0]; |
|
||||
test_isGenerator
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} |
|
||||
| generators.js:6:2:6:19 | function* bar() {} |
|
||||
test_usesArgumentsObject
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } |
|
||||
test_isRestParameter
|
||||
| restparms.js:1:18:1:19 | ys |
|
||||
test_getEnclosingStmt
|
||||
| arrowfns.js:1:24:1:36 | s => s.length | arrowfns.js:1:1:1:38 | ["a", " ... ength); |
|
||||
| arrowfns.js:2:13:2:23 | () => ++cnt | arrowfns.js:2:1:2:31 | setInte ... 1000); |
|
||||
@@ -164,7 +139,32 @@ test_getEnclosingStmt
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } | tst.js:11:1:11:35 | functio ... ts; } } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } | tst.js:12:1:12:44 | functio ... s) {} } |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | tst.js:14:1:14:37 | functio ... s[0]; } |
|
||||
test_isRestParameter
|
||||
| restparms.js:1:18:1:19 | ys |
|
||||
test_ReturnStmt
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | tst.js:14:16:14:35 | return arguments[0]; |
|
||||
test_hasRestParameter
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} |
|
||||
test_ReturnedExpression
|
||||
| arrowfns.js:1:24:1:36 | s => s.length | arrowfns.js:1:29:1:36 | s.length |
|
||||
| arrowfns.js:2:13:2:23 | () => ++cnt | arrowfns.js:2:19:2:23 | ++cnt |
|
||||
| exprclosures.js:1:7:1:21 | function(x) x+1 | exprclosures.js:1:19:1:21 | x+1 |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } | tst.js:14:23:14:34 | arguments[0] |
|
||||
test_getDefaultArguments
|
||||
| defaultargs.js:1:15:1:15 | y | defaultargs.js:1:17:1:20 | x+19 |
|
||||
test_usesArgumentsObject
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } |
|
||||
test_getArgumentsVariable
|
||||
| defaultargs.js:1:1:1:24 | functio ... +19) {} |
|
||||
| exprclosures.js:1:7:1:21 | function(x) x+1 |
|
||||
| generators.js:1:1:4:1 | functio ... i++;\\n} |
|
||||
| generators.js:6:2:6:19 | function* bar() {} |
|
||||
| restparms.js:1:1:2:1 | functio ... ys) {\\n} |
|
||||
| tst.js:1:1:1:15 | function A() {} |
|
||||
| tst.js:2:1:2:16 | function B(x) {} |
|
||||
| tst.js:3:1:3:19 | function C(x, y) {} |
|
||||
| tst.js:4:9:4:21 | function() {} |
|
||||
| tst.js:5:2:5:15 | function(x) {} |
|
||||
| tst.js:6:2:6:18 | function(x, y) {} |
|
||||
| tst.js:7:9:7:23 | function h() {} |
|
||||
| tst.js:9:1:9:24 | functio ... nts) {} |
|
||||
| tst.js:10:1:10:31 | functio ... ents; } |
|
||||
| tst.js:11:1:11:35 | functio ... ts; } } |
|
||||
| tst.js:12:1:12:44 | functio ... s) {} } |
|
||||
| tst.js:14:1:14:37 | functio ... s[0]; } |
|
||||
|
||||
@@ -1,3 +1,421 @@
|
||||
test_JSDoc
|
||||
| tst.js:5:1:5:13 | /** @const */ | | tst.js:5:1:5:13 | /** @const */ |
|
||||
| tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ | My namespace's favorite kind of beer. | tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ |
|
||||
| tst.js:14:1:14:13 | /** @const */ | | tst.js:14:1:14:13 | /** @const */ |
|
||||
| tst.js:16:1:19:3 | /**\\n * ... tor\\n */ | A rectangle. | tst.js:16:1:19:3 | /**\\n * ... tor\\n */ |
|
||||
| tst.js:23:1:23:24 | /** @de ... ean} */ | | tst.js:23:1:23:24 | /** @de ... ean} */ |
|
||||
| tst.js:26:1:26:24 | /** @de ... ean} */ | | tst.js:26:1:26:24 | /** @de ... ean} */ |
|
||||
| tst.js:29:1:35:3 | /**\\n * ... ().\\n */ | Determines whether a node is a field. | tst.js:29:1:35:3 | /**\\n * ... ().\\n */ |
|
||||
| tst.js:39:1:42:3 | /**\\n * ... ict\\n */ | | tst.js:39:1:42:3 | /**\\n * ... ict\\n */ |
|
||||
| tst.js:48:12:48:23 | /** @dict */ | | tst.js:48:12:48:23 | /** @dict */ |
|
||||
| tst.js:51:1:54:3 | /**\\n * ... er}\\n */ | Enum for tri-state values. | tst.js:51:1:54:3 | /**\\n * ... er}\\n */ |
|
||||
| tst.js:61:1:61:14 | /** @export */ | | tst.js:61:1:61:14 | /** @export */ |
|
||||
| tst.js:65:1:69:3 | /**\\n * ... st}\\n */ | Immutable empty node list. | tst.js:65:1:69:3 | /**\\n * ... st}\\n */ |
|
||||
| tst.js:73:1:77:3 | /**\\n * ... tor\\n */ | A class that cannot be extended. | tst.js:73:1:77:3 | /**\\n * ... tor\\n */ |
|
||||
| tst.js:80:1:83:3 | /**\\n * ... nal\\n */ | A method that cannot be overridden. | tst.js:80:1:83:3 | /**\\n * ... nal\\n */ |
|
||||
| tst.js:86:1:89:3 | /**\\n * ... ace\\n */ | A shape. | tst.js:86:1:89:3 | /**\\n * ... ace\\n */ |
|
||||
| tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ | | tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ |
|
||||
| tst.js:101:1:103:17 | /**\\n * ... tDoc */ | | tst.js:101:1:103:17 | /**\\n * ... tDoc */ |
|
||||
| tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ | A polygon. | tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ |
|
||||
| tst.js:117:9:117:40 | /** @le ... ype} */ | | tst.js:117:9:117:40 | /** @le ... ype} */ |
|
||||
| tst.js:121:1:126:3 | /**\\n * ... sh:\\n */ | | tst.js:121:1:126:3 | /**\\n * ... sh:\\n */ |
|
||||
| tst.js:128:1:128:21 | /** @no ... ects */ | | tst.js:128:1:128:21 | /** @no ... ects */ |
|
||||
| tst.js:131:1:136:3 | /**\\n * ... age\\n */ | Returns the window object the foreign document resides in. | tst.js:131:1:136:3 | /**\\n * ... age\\n */ |
|
||||
| tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ | Queries a Baz for items. | tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ |
|
||||
| tst.js:149:14:149:26 | /** number */ | number | tst.js:149:14:149:26 | /** number */ |
|
||||
| tst.js:149:31:149:43 | /** number */ | number | tst.js:149:31:149:43 | /** number */ |
|
||||
| tst.js:153:1:157:3 | /**\\n * ... ate\\n */ | Handlers that are listening to this logger. | tst.js:153:1:157:3 | /**\\n * ... ate\\n */ |
|
||||
| tst.js:160:1:165:3 | /**\\n * ... ted\\n */ | Sets the component's root element to the given element.\nConsidered protected and final. | tst.js:160:1:165:3 | /**\\n * ... ted\\n */ |
|
||||
| tst.js:169:1:172:3 | /**\\n * ... ID.\\n */ | Returns the ID of the last item. | tst.js:169:1:172:3 | /**\\n * ... ID.\\n */ |
|
||||
| tst.js:177:10:177:22 | /** number */ | number | tst.js:177:10:177:22 | /** number */ |
|
||||
| tst.js:179:1:182:3 | /**\\n * ... uct\\n */ | | tst.js:179:1:182:3 | /**\\n * ... uct\\n */ |
|
||||
| tst.js:192:12:192:25 | /** @struct */ | | tst.js:192:12:192:25 | /** @struct */ |
|
||||
| tst.js:196:9:200:11 | /**\\n ... */ | Returns the roster widget element. | tst.js:196:9:200:11 | /**\\n ... */ |
|
||||
| tst.js:205:1:207:3 | /**\\n * ... on}\\n */ | | tst.js:205:1:207:3 | /**\\n * ... on}\\n */ |
|
||||
| tst.js:210:1:213:3 | /**\\n * ... ng}\\n */ | The message hex ID. | tst.js:210:1:213:3 | /**\\n * ... ng}\\n */ |
|
||||
| tst.js:216:1:216:33 | /** @ty ... er)} */ | | tst.js:216:1:216:33 | /** @ty ... er)} */ |
|
||||
| tst.js:219:1:219:55 | /** @pa ... ing. */ | | tst.js:219:1:219:55 | /** @pa ... ing. */ |
|
||||
| tst.js:223:1:223:40 | /** @ty ... ct}} */ | | tst.js:223:1:223:40 | /** @ty ... ct}} */ |
|
||||
| tst.js:226:1:226:22 | /** @ty ... er?} */ | | tst.js:226:1:226:22 | /** @ty ... er?} */ |
|
||||
| tst.js:229:1:229:22 | /** @ty ... ect} */ | | tst.js:229:1:229:22 | /** @ty ... ect} */ |
|
||||
| tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ |
|
||||
| tst.js:246:1:249:3 | /**\\n * ... e T\\n */ | | tst.js:246:1:249:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:252:1:252:18 | /** @return {T} */ | | tst.js:252:1:252:18 | /** @return {T} */ |
|
||||
| tst.js:255:1:255:19 | /** @param {T} t */ | | tst.js:255:1:255:19 | /** @param {T} t */ |
|
||||
| tst.js:258:1:258:28 | /** @ty ... ng>} */ | | tst.js:258:1:258:28 | /** @ty ... ng>} */ |
|
||||
| tst.js:259:11:259:38 | /** @ty ... ng>} */ | | tst.js:259:11:259:38 | /** @ty ... ng>} */ |
|
||||
| tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | | tst.js:261:1:265:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:269:1:272:3 | /**\\n * ... Val\\n */ | | tst.js:269:1:272:3 | /**\\n * ... Val\\n */ |
|
||||
| tst.js:275:1:275:37 | /** @ty ... er>} */ | | tst.js:275:1:275:37 | /** @ty ... er>} */ |
|
||||
| tst.js:277:1:279:3 | /**\\n * ... tor\\n */ | | tst.js:277:1:279:3 | /**\\n * ... tor\\n */ |
|
||||
| tst.js:282:1:285:3 | /**\\n * ... tor\\n */ | | tst.js:282:1:285:3 | /**\\n * ... tor\\n */ |
|
||||
| tst.js:288:1:288:22 | /** @ty ... <X>} */ | | tst.js:288:1:288:22 | /** @ty ... <X>} */ |
|
||||
| tst.js:289:1:289:22 | /** @ty ... <Y>} */ | | tst.js:289:1:289:22 | /** @ty ... <Y>} */ |
|
||||
| tst.js:294:1:294:28 | /** @pa ... fooY */ | | tst.js:294:1:294:28 | /** @pa ... fooY */ |
|
||||
| tst.js:300:1:303:3 | /**\\n * ... e T\\n */ | | tst.js:300:1:303:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:306:1:306:19 | /** @param {T} t */ | | tst.js:306:1:306:19 | /** @param {T} t */ |
|
||||
| tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ | | tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ |
|
||||
| tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | | tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ |
|
||||
| tst.js:322:1:325:3 | /**\\n * ... e T\\n */ | | tst.js:322:1:325:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:328:1:328:18 | /** @return {T} */ | | tst.js:328:1:328:18 | /** @return {T} */ |
|
||||
| tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | | tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ |
|
||||
| tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | | tst.js:338:1:342:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:345:1:345:21 | /** @ty ... ing} */ | | tst.js:345:1:345:21 | /** @ty ... ing} */ |
|
||||
| tst.js:346:1:346:21 | /** @ty ... ber} */ | | tst.js:346:1:346:21 | /** @ty ... ber} */ |
|
||||
| tst.js:347:1:347:21 | /** @ty ... ber} */ | | tst.js:347:1:347:21 | /** @ty ... ber} */ |
|
||||
| tst.js:349:1:349:31 | /** @ty ... ned} */ | | tst.js:349:1:349:31 | /** @ty ... ned} */ |
|
||||
| tst.js:351:1:353:3 | /**\\n * ... ger\\n */ | | tst.js:351:1:353:3 | /**\\n * ... ger\\n */ |
|
||||
| tst.js:356:1:359:3 | /**\\n * ... ion\\n */ | | tst.js:356:1:359:3 | /**\\n * ... ion\\n */ |
|
||||
| tst.js:363:3:365:5 | /**\\n ... p\\n */ | | tst.js:363:3:365:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:368:3:370:5 | /**\\n ... p\\n */ | | tst.js:368:3:370:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:375:3:377:5 | /**\\n ... p\\n */ | | tst.js:375:3:377:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:380:3:382:5 | /**\\n ... p\\n */ | | tst.js:380:3:382:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:386:1:389:3 | /**\\n * ... } x\\n */ | | tst.js:386:1:389:3 | /**\\n * ... } x\\n */ |
|
||||
test_JSDocTag
|
||||
| tst.js:5:5:5:10 | @const | const | tst.js:5:1:5:13 | /** @const */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:9:4:9:9 | @const | const | tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:10:4:10:8 | @type | type | tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ | 1 | (none) | (none) | string |
|
||||
| tst.js:14:5:14:10 | @const | const | tst.js:14:1:14:13 | /** @const */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:18:4:18:15 | @constructor | constructor | tst.js:16:1:19:3 | /**\\n * ... tor\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:23:5:23:11 | @define | define | tst.js:23:1:23:24 | /** @de ... ean} */ | 0 | (none) | (none) | boolean |
|
||||
| tst.js:26:5:26:11 | @define | define | tst.js:26:1:26:24 | /** @de ... ean} */ | 0 | (none) | (none) | boolean |
|
||||
| tst.js:31:4:31:10 | @return | return | tst.js:29:1:35:3 | /**\\n * ... ().\\n */ | 0 | True if the contents of\nthe element are editable, but the element\nitself is not.\n | (none) | boolean |
|
||||
| tst.js:34:4:34:14 | @deprecated | deprecated | tst.js:29:1:35:3 | /**\\n * ... ().\\n */ | 1 | Use isField(). | (none) | (none) |
|
||||
| tst.js:40:4:40:15 | @constructor | constructor | tst.js:39:1:42:3 | /**\\n * ... ict\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:41:4:41:8 | @dict | dict | tst.js:39:1:42:3 | /**\\n * ... ict\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:48:16:48:20 | @dict | dict | tst.js:48:12:48:23 | /** @dict */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:53:4:53:8 | @enum | enum | tst.js:51:1:54:3 | /**\\n * ... er}\\n */ | 0 | (none) | (none) | number |
|
||||
| tst.js:61:5:61:11 | @export | export | tst.js:61:1:61:14 | /** @export */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:67:4:67:15 | @constructor | constructor | tst.js:65:1:69:3 | /**\\n * ... st}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:68:4:68:11 | @extends | extends | tst.js:65:1:69:3 | /**\\n * ... st}\\n */ | 1 | (none) | (none) | goog.ds.BasicNodeList |
|
||||
| tst.js:75:4:75:9 | @final | final | tst.js:73:1:77:3 | /**\\n * ... tor\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:76:4:76:15 | @constructor | constructor | tst.js:73:1:77:3 | /**\\n * ... tor\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:82:4:82:9 | @final | final | tst.js:80:1:83:3 | /**\\n * ... nal\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:88:4:88:13 | @interface | interface | tst.js:86:1:89:3 | /**\\n * ... ace\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:94:4:94:15 | @constructor | constructor | tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:95:4:95:14 | @implements | implements | tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ | 1 | (none) | (none) | Shape |
|
||||
| tst.js:102:4:102:12 | @override | override | tst.js:101:1:103:17 | /**\\n * ... tDoc */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:103:4:103:14 | @inheritDoc | inheritDoc | tst.js:101:1:103:17 | /**\\n * ... tDoc */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:109:4:109:13 | @interface | interface | tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:110:4:110:11 | @extends | extends | tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ | 1 | (none) | (none) | Shape |
|
||||
| tst.js:117:13:117:18 | @lends | lends | tst.js:117:9:117:40 | /** @le ... ype} */ | 0 | {Button.prototype} | (none) | (none) |
|
||||
| tst.js:122:4:122:12 | @preserve | preserve | tst.js:121:1:126:3 | /**\\n * ... sh:\\n */ | 0 | Copyright 2009 SomeThirdParty.\nHere is the full license text and copyright\nnotice for this file. Note that the notice can span several\nlines and is only terminated by the closing star and slash: | (none) | (none) |
|
||||
| tst.js:128:5:128:18 | @nosideeffects | nosideeffects | tst.js:128:1:128:21 | /** @no ... ects */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:134:4:134:10 | @return | return | tst.js:131:1:136:3 | /**\\n * ... age\\n */ | 0 | The window object of the peer.\n | (none) | Object |
|
||||
| tst.js:135:4:135:11 | @package | package | tst.js:131:1:136:3 | /**\\n * ... age\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:142:4:142:9 | @param | param | tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ | 0 | Subgroup id to query.\n | groupNum | number |
|
||||
| tst.js:143:4:143:9 | @param | param | tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ | 1 | An itemName,\nor itemId, or null to search everything. | term | (string\|number\|null) |
|
||||
| tst.js:155:4:155:8 | @type | type | tst.js:153:1:157:3 | /**\\n * ... ate\\n */ | 0 | (none) | (none) | Array.<Function> |
|
||||
| tst.js:156:4:156:11 | @private | private | tst.js:153:1:157:3 | /**\\n * ... ate\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:163:4:163:9 | @param | param | tst.js:160:1:165:3 | /**\\n * ... ted\\n */ | 0 | Root element for the component.\n | element | Element |
|
||||
| tst.js:164:4:164:13 | @protected | protected | tst.js:160:1:165:3 | /**\\n * ... ted\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:171:4:171:10 | @return | return | tst.js:169:1:172:3 | /**\\n * ... ID.\\n */ | 0 | The hex ID. | (none) | string |
|
||||
| tst.js:180:4:180:15 | @constructor | constructor | tst.js:179:1:182:3 | /**\\n * ... uct\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:181:4:181:10 | @struct | struct | tst.js:179:1:182:3 | /**\\n * ... uct\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:192:16:192:22 | @struct | struct | tst.js:192:12:192:25 | /** @struct */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:198:12:198:16 | @this | this | tst.js:196:9:200:11 | /**\\n ... */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:199:12:199:18 | @return | return | tst.js:196:9:200:11 | /**\\n ... */ | 1 | (none) | (none) | Element |
|
||||
| tst.js:206:4:206:10 | @throws | throws | tst.js:205:1:207:3 | /**\\n * ... on}\\n */ | 0 | (none) | (none) | DOMException |
|
||||
| tst.js:212:4:212:8 | @type | type | tst.js:210:1:213:3 | /**\\n * ... ng}\\n */ | 0 | (none) | (none) | string |
|
||||
| tst.js:216:5:216:12 | @typedef | typedef | tst.js:216:1:216:33 | /** @ty ... er)} */ | 0 | (none) | (none) | (string\|number) |
|
||||
| tst.js:219:5:219:10 | @param | param | tst.js:219:1:219:55 | /** @pa ... ing. */ | 0 | A number or a string. | x | goog.NumberLike |
|
||||
| tst.js:223:5:223:9 | @type | type | tst.js:223:1:223:40 | /** @ty ... ct}} */ | 0 | (none) | (none) | {myNum: number, myObject} |
|
||||
| tst.js:226:5:226:9 | @type | type | tst.js:226:1:226:22 | /** @ty ... er?} */ | 0 | (none) | (none) | number? |
|
||||
| tst.js:229:5:229:9 | @type | type | tst.js:229:1:229:22 | /** @ty ... ect} */ | 0 | (none) | (none) | !Object |
|
||||
| tst.js:233:4:233:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 0 | (none) | p1 | function (string, boolean) |
|
||||
| tst.js:234:4:234:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 1 | (none) | p2 | function (): number |
|
||||
| tst.js:235:4:235:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 2 | (none) | p3 | function (this: goog.ui.Menu, string) |
|
||||
| tst.js:236:4:236:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 3 | (none) | p4 | function (new: goog.ui.Menu, string) |
|
||||
| tst.js:237:4:237:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 4 | (none) | p5 | function (string, ...[number]): number |
|
||||
| tst.js:238:4:238:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 5 | p6\n | var_args | ...number |
|
||||
| tst.js:239:4:239:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 6 | p7\n | opt_argument | number= |
|
||||
| tst.js:240:4:240:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 7 | (none) | p8 | function (?string=, number=) |
|
||||
| tst.js:241:4:241:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 8 | (none) | p9 | * |
|
||||
| tst.js:242:4:242:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 9 | (none) | p10 | ? |
|
||||
| tst.js:247:4:247:15 | @constructor | constructor | tst.js:246:1:249:3 | /**\\n * ... e T\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:248:4:248:12 | @template | template | tst.js:246:1:249:3 | /**\\n * ... e T\\n */ | 1 | T | (none) | (none) |
|
||||
| tst.js:252:5:252:11 | @return | return | tst.js:252:1:252:18 | /** @return {T} */ | 0 | (none) | (none) | T |
|
||||
| tst.js:255:5:255:10 | @param | param | tst.js:255:1:255:19 | /** @param {T} t */ | 0 | (none) | t | T |
|
||||
| tst.js:258:5:258:9 | @type | type | tst.js:258:1:258:28 | /** @ty ... ng>} */ | 0 | (none) | (none) | !Foo.<string> |
|
||||
| tst.js:259:15:259:19 | @type | type | tst.js:259:11:259:38 | /** @ty ... ng>} */ | 0 | (none) | (none) | !Foo.<string> |
|
||||
| tst.js:262:4:262:9 | @param | param | tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | 0 | (none) | t | T |
|
||||
| tst.js:263:4:263:15 | @constructor | constructor | tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:264:4:264:12 | @template | template | tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | 2 | T | (none) | (none) |
|
||||
| tst.js:270:4:270:15 | @constructor | constructor | tst.js:269:1:272:3 | /**\\n * ... Val\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:271:4:271:12 | @template | template | tst.js:269:1:272:3 | /**\\n * ... Val\\n */ | 1 | Key, Val | (none) | (none) |
|
||||
| tst.js:275:5:275:9 | @type | type | tst.js:275:1:275:37 | /** @ty ... er>} */ | 0 | (none) | (none) | MyMap.<string, number> |
|
||||
| tst.js:278:4:278:15 | @constructor | constructor | tst.js:277:1:279:3 | /**\\n * ... tor\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:283:4:283:11 | @extends | extends | tst.js:282:1:285:3 | /**\\n * ... tor\\n */ | 0 | (none) | (none) | X |
|
||||
| tst.js:284:4:284:15 | @constructor | constructor | tst.js:282:1:285:3 | /**\\n * ... tor\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:288:5:288:9 | @type | type | tst.js:288:1:288:22 | /** @ty ... <X>} */ | 0 | (none) | (none) | Foo.<X> |
|
||||
| tst.js:289:5:289:9 | @type | type | tst.js:289:1:289:22 | /** @ty ... <Y>} */ | 0 | (none) | (none) | Foo.<Y> |
|
||||
| tst.js:294:5:294:10 | @param | param | tst.js:294:1:294:28 | /** @pa ... fooY */ | 0 | (none) | fooY | Foo.<Y> |
|
||||
| tst.js:301:4:301:15 | @constructor | constructor | tst.js:300:1:303:3 | /**\\n * ... e T\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:302:4:302:12 | @template | template | tst.js:300:1:303:3 | /**\\n * ... e T\\n */ | 1 | T | (none) | (none) |
|
||||
| tst.js:306:5:306:10 | @param | param | tst.js:306:1:306:19 | /** @param {T} t */ | 0 | (none) | t | T |
|
||||
| tst.js:310:4:310:15 | @constructor | constructor | tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:311:4:311:11 | @extends | extends | tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ | 1 | (none) | (none) | A.<string> |
|
||||
| tst.js:316:4:316:15 | @constructor | constructor | tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:317:4:317:12 | @template | template | tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | 1 | U\n | (none) | (none) |
|
||||
| tst.js:318:4:318:11 | @extends | extends | tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | 2 | (none) | (none) | A.<U> |
|
||||
| tst.js:323:4:323:13 | @interface | interface | tst.js:322:1:325:3 | /**\\n * ... e T\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:324:4:324:12 | @template | template | tst.js:322:1:325:3 | /**\\n * ... e T\\n */ | 1 | T | (none) | (none) |
|
||||
| tst.js:328:5:328:11 | @return | return | tst.js:328:1:328:18 | /** @return {T} */ | 0 | (none) | (none) | T |
|
||||
| tst.js:332:4:332:15 | @constructor | constructor | tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:333:4:333:14 | @implements | implements | tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | 1 | (none) | (none) | Foo.<string> |
|
||||
| tst.js:334:4:334:14 | @implements | implements | tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | 2 | (none) | (none) | Foo.<number> |
|
||||
| tst.js:339:4:339:9 | @param | param | tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | 0 | (none) | a | T |
|
||||
| tst.js:340:4:340:10 | @return | return | tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | 1 | (none) | (none) | T |
|
||||
| tst.js:341:4:341:12 | @template | template | tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | 2 | T | (none) | (none) |
|
||||
| tst.js:345:5:345:9 | @type | type | tst.js:345:1:345:21 | /** @ty ... ing} */ | 0 | (none) | (none) | string |
|
||||
| tst.js:346:5:346:9 | @type | type | tst.js:346:1:346:21 | /** @ty ... ber} */ | 0 | (none) | (none) | number |
|
||||
| tst.js:347:5:347:9 | @type | type | tst.js:347:1:347:21 | /** @ty ... ber} */ | 0 | (none) | (none) | number |
|
||||
| tst.js:349:5:349:9 | @type | type | tst.js:349:1:349:31 | /** @ty ... ned} */ | 0 | (none) | (none) | (string\|undefined) |
|
||||
| tst.js:352:4:352:9 | @param | param | tst.js:351:1:353:3 | /**\\n * ... ger\\n */ | 0 | [int] an integer | (none) | (none) |
|
||||
| tst.js:357:4:357:9 | @param | param | tst.js:356:1:359:3 | /**\\n * ... ion\\n */ | 0 | the array to sort\n | array | Array.<number> |
|
||||
| tst.js:358:4:358:9 | @param | param | tst.js:356:1:359:3 | /**\\n * ... ion\\n */ | 1 | the comparator function | fn | function (x: !number, y: !number): number |
|
||||
| tst.js:364:6:364:11 | @param | param | tst.js:363:3:365:5 | /**\\n ... p\\n */ | 0 | (none) | p | T1 |
|
||||
| tst.js:369:6:369:11 | @param | param | tst.js:368:3:370:5 | /**\\n ... p\\n */ | 0 | (none) | p | T2 |
|
||||
| tst.js:376:6:376:11 | @param | param | tst.js:375:3:377:5 | /**\\n ... p\\n */ | 0 | (none) | p | T3 |
|
||||
| tst.js:381:6:381:11 | @param | param | tst.js:380:3:382:5 | /**\\n ... p\\n */ | 0 | (none) | p | T4 |
|
||||
| tst.js:387:4:387:9 | @param | param | tst.js:386:1:389:3 | /**\\n * ... } x\\n */ | 0 | (none) | x | Array.<number> |
|
||||
test_next_token
|
||||
| tst.js:1:1:1:117 | // Test ... mpiler, | tst.js:5:15:5:17 | var |
|
||||
| tst.js:2:1:2:118 | // whic ... se 2.0; | tst.js:5:15:5:17 | var |
|
||||
| tst.js:3:1:3:20 | // see file COPYING. | tst.js:5:15:5:17 | var |
|
||||
| tst.js:5:1:5:13 | /** @const */ | tst.js:5:15:5:17 | var |
|
||||
| tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ | tst.js:12:1:12:11 | mynamespace |
|
||||
| tst.js:14:1:14:13 | /** @const */ | tst.js:14:15:14:21 | MyClass |
|
||||
| tst.js:16:1:19:3 | /**\\n * ... tor\\n */ | tst.js:20:1:20:8 | function |
|
||||
| tst.js:23:1:23:24 | /** @de ... ean} */ | tst.js:24:1:24:3 | var |
|
||||
| tst.js:26:1:26:24 | /** @de ... ean} */ | tst.js:27:1:27:4 | goog |
|
||||
| tst.js:29:1:35:3 | /**\\n * ... ().\\n */ | tst.js:36:1:36:11 | BN_EditUtil |
|
||||
| tst.js:39:1:42:3 | /**\\n * ... ict\\n */ | tst.js:43:1:43:8 | function |
|
||||
| tst.js:46:16:46:25 | // warning | tst.js:48:1:48:3 | var |
|
||||
| tst.js:48:12:48:23 | /** @dict */ | tst.js:48:25:48:25 | { |
|
||||
| tst.js:49:16:49:25 | // warning | tst.js:55:1:55:7 | project |
|
||||
| tst.js:51:1:54:3 | /**\\n * ... er}\\n */ | tst.js:55:1:55:7 | project |
|
||||
| tst.js:61:1:61:14 | /** @export */ | tst.js:62:1:62:3 | foo |
|
||||
| tst.js:65:1:69:3 | /**\\n * ... st}\\n */ | tst.js:70:1:70:4 | goog |
|
||||
| tst.js:73:1:77:3 | /**\\n * ... tor\\n */ | tst.js:78:1:78:5 | sloth |
|
||||
| tst.js:80:1:83:3 | /**\\n * ... nal\\n */ | tst.js:84:1:84:5 | sloth |
|
||||
| tst.js:86:1:89:3 | /**\\n * ... ace\\n */ | tst.js:90:1:90:8 | function |
|
||||
| tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ | tst.js:97:1:97:8 | function |
|
||||
| tst.js:101:1:103:17 | /**\\n * ... tDoc */ | tst.js:104:1:104:7 | project |
|
||||
| tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ | tst.js:112:1:112:8 | function |
|
||||
| tst.js:117:9:117:40 | /** @le ... ype} */ | tst.js:117:42:117:42 | ( |
|
||||
| tst.js:121:1:126:3 | /**\\n * ... sh:\\n */ | tst.js:129:1:129:8 | function |
|
||||
| tst.js:128:1:128:21 | /** @no ... ects */ | tst.js:129:1:129:8 | function |
|
||||
| tst.js:131:1:136:3 | /**\\n * ... age\\n */ | tst.js:137:1:137:4 | goog |
|
||||
| tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ | tst.js:146:1:146:4 | goog |
|
||||
| tst.js:149:14:149:26 | /** number */ | tst.js:149:28:149:28 | a |
|
||||
| tst.js:149:31:149:43 | /** number */ | tst.js:149:45:149:45 | b |
|
||||
| tst.js:153:1:157:3 | /**\\n * ... ate\\n */ | tst.js:158:1:158:4 | this |
|
||||
| tst.js:160:1:165:3 | /**\\n * ... ted\\n */ | tst.js:166:1:166:4 | goog |
|
||||
| tst.js:169:1:172:3 | /**\\n * ... ID.\\n */ | tst.js:173:1:173:4 | goog |
|
||||
| tst.js:177:10:177:22 | /** number */ | tst.js:177:24:177:26 | foo |
|
||||
| tst.js:179:1:182:3 | /**\\n * ... uct\\n */ | tst.js:183:1:183:8 | function |
|
||||
| tst.js:187:24:187:28 | // OK | tst.js:188:1:188:4 | obj1 |
|
||||
| tst.js:188:21:188:25 | // OK | tst.js:189:1:189:4 | obj1 |
|
||||
| tst.js:189:22:189:31 | // warning | tst.js:190:1:190:4 | obj1 |
|
||||
| tst.js:190:14:190:23 | // warning | tst.js:192:1:192:3 | var |
|
||||
| tst.js:192:12:192:25 | /** @struct */ | tst.js:192:27:192:27 | { |
|
||||
| tst.js:193:19:193:28 | // warning | tst.js:195:1:195:4 | chat |
|
||||
| tst.js:196:9:200:11 | /**\\n ... */ | tst.js:201:9:201:16 | function |
|
||||
| tst.js:205:1:207:3 | /**\\n * ... on}\\n */ | tst.js:208:1:208:19 | DOMApplicationCache |
|
||||
| tst.js:210:1:213:3 | /**\\n * ... ng}\\n */ | tst.js:214:1:214:3 | var |
|
||||
| tst.js:216:1:216:33 | /** @ty ... er)} */ | tst.js:217:1:217:4 | goog |
|
||||
| tst.js:219:1:219:55 | /** @pa ... ing. */ | tst.js:220:1:220:4 | goog |
|
||||
| tst.js:223:1:223:40 | /** @ty ... ct}} */ | tst.js:224:1:224:3 | var |
|
||||
| tst.js:226:1:226:22 | /** @ty ... er?} */ | tst.js:227:1:227:3 | var |
|
||||
| tst.js:229:1:229:22 | /** @ty ... ect} */ | tst.js:230:1:230:3 | var |
|
||||
| tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | tst.js:244:1:244:3 | var |
|
||||
| tst.js:246:1:249:3 | /**\\n * ... e T\\n */ | tst.js:250:1:250:3 | var |
|
||||
| tst.js:252:1:252:18 | /** @return {T} */ | tst.js:253:1:253:3 | Foo |
|
||||
| tst.js:255:1:255:19 | /** @param {T} t */ | tst.js:256:1:256:3 | Foo |
|
||||
| tst.js:258:1:258:28 | /** @ty ... ng>} */ | tst.js:258:30:258:32 | var |
|
||||
| tst.js:259:11:259:38 | /** @ty ... ng>} */ | tst.js:259:40:259:40 | ( |
|
||||
| tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | tst.js:266:1:266:3 | Bar |
|
||||
| tst.js:267:29:267:52 | // bar ... string> | tst.js:273:1:273:3 | var |
|
||||
| tst.js:269:1:272:3 | /**\\n * ... Val\\n */ | tst.js:273:1:273:3 | var |
|
||||
| tst.js:275:1:275:37 | /** @ty ... er>} */ | tst.js:275:39:275:41 | var |
|
||||
| tst.js:275:48:275:77 | // Key ... number. | tst.js:280:1:280:1 | X |
|
||||
| tst.js:277:1:279:3 | /**\\n * ... tor\\n */ | tst.js:280:1:280:1 | X |
|
||||
| tst.js:282:1:285:3 | /**\\n * ... tor\\n */ | tst.js:286:1:286:1 | Y |
|
||||
| tst.js:288:1:288:22 | /** @ty ... <X>} */ | tst.js:288:24:288:26 | var |
|
||||
| tst.js:289:1:289:22 | /** @ty ... <Y>} */ | tst.js:289:24:289:26 | var |
|
||||
| tst.js:291:14:291:21 | // Error | tst.js:292:1:292:4 | fooY |
|
||||
| tst.js:292:14:292:21 | // Error | tst.js:295:1:295:9 | takesFooY |
|
||||
| tst.js:294:1:294:28 | /** @pa ... fooY */ | tst.js:295:1:295:9 | takesFooY |
|
||||
| tst.js:297:18:297:23 | // OK. | tst.js:298:1:298:9 | takesFooY |
|
||||
| tst.js:298:18:298:25 | // Error | tst.js:304:1:304:1 | A |
|
||||
| tst.js:300:1:303:3 | /**\\n * ... e T\\n */ | tst.js:304:1:304:1 | A |
|
||||
| tst.js:306:1:306:19 | /** @param {T} t */ | tst.js:307:1:307:1 | A |
|
||||
| tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ | tst.js:313:1:313:1 | B |
|
||||
| tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | tst.js:320:1:320:1 | C |
|
||||
| tst.js:322:1:325:3 | /**\\n * ... e T\\n */ | tst.js:326:1:326:3 | Foo |
|
||||
| tst.js:328:1:328:18 | /** @return {T} */ | tst.js:329:1:329:3 | Foo |
|
||||
| tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | tst.js:336:1:336:7 | FooImpl |
|
||||
| tst.js:336:27:336:72 | // Erro ... e twice | tst.js:343:1:343:8 | identity |
|
||||
| tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | tst.js:343:1:343:8 | identity |
|
||||
| tst.js:345:1:345:21 | /** @ty ... ing} */ | tst.js:345:23:345:25 | var |
|
||||
| tst.js:345:72:345:76 | // OK | tst.js:346:23:346:25 | var |
|
||||
| tst.js:346:1:346:21 | /** @ty ... ber} */ | tst.js:346:23:346:25 | var |
|
||||
| tst.js:346:60:346:64 | // OK | tst.js:347:23:347:25 | var |
|
||||
| tst.js:347:1:347:21 | /** @ty ... ber} */ | tst.js:347:23:347:25 | var |
|
||||
| tst.js:347:62:347:77 | // Type mismatch | tst.js:349:33:349:35 | var |
|
||||
| tst.js:349:1:349:31 | /** @ty ... ned} */ | tst.js:349:33:349:35 | var |
|
||||
| tst.js:351:1:353:3 | /**\\n * ... ger\\n */ | tst.js:354:1:354:8 | function |
|
||||
| tst.js:356:1:359:3 | /**\\n * ... ion\\n */ | tst.js:360:1:360:8 | function |
|
||||
| tst.js:363:3:365:5 | /**\\n ... p\\n */ | tst.js:366:3:366:15 | classicMethod |
|
||||
| tst.js:368:3:370:5 | /**\\n ... p\\n */ | tst.js:371:3:371:13 | fancyMethod |
|
||||
| tst.js:375:3:377:5 | /**\\n ... p\\n */ | tst.js:378:3:378:13 | constructor |
|
||||
| tst.js:380:3:382:5 | /**\\n ... p\\n */ | tst.js:383:3:383:13 | classMethod |
|
||||
| tst.js:386:1:389:3 | /**\\n * ... } x\\n */ | tst.js:390:1:390:8 | function |
|
||||
test_JSDocTypeExpr
|
||||
| tst.js:10:11:10:16 | string | tst.js:10:4:10:8 | @type | 0 |
|
||||
| tst.js:23:14:23:20 | boolean | tst.js:23:5:23:11 | @define | 0 |
|
||||
| tst.js:26:14:26:20 | boolean | tst.js:26:5:26:11 | @define | 0 |
|
||||
| tst.js:31:13:31:19 | boolean | tst.js:31:4:31:10 | @return | 0 |
|
||||
| tst.js:53:11:53:16 | number | tst.js:53:4:53:8 | @enum | 0 |
|
||||
| tst.js:68:14:68:34 | goog.ds.BasicNodeList | tst.js:68:4:68:11 | @extends | 0 |
|
||||
| tst.js:95:17:95:21 | Shape | tst.js:95:4:95:14 | @implements | 0 |
|
||||
| tst.js:110:14:110:18 | Shape | tst.js:110:4:110:11 | @extends | 0 |
|
||||
| tst.js:134:13:134:18 | Object | tst.js:134:4:134:10 | @return | 0 |
|
||||
| tst.js:142:12:142:17 | number | tst.js:142:4:142:9 | @param | 0 |
|
||||
| tst.js:143:12:143:17 | string | tst.js:143:12:143:29 | (string\|number\|null) | 0 |
|
||||
| tst.js:143:12:143:29 | (string\|number\|null) | tst.js:143:4:143:9 | @param | 0 |
|
||||
| tst.js:143:19:143:24 | number | tst.js:143:12:143:29 | (string\|number\|null) | 1 |
|
||||
| tst.js:143:26:143:29 | null | tst.js:143:12:143:29 | (string\|number\|null) | 2 |
|
||||
| tst.js:155:11:155:18 | Function | tst.js:155:11:155:20 | Array.<Function> | 0 |
|
||||
| tst.js:155:11:155:20 | Array | tst.js:155:11:155:20 | Array.<Function> | -1 |
|
||||
| tst.js:155:11:155:20 | Array.<Function> | tst.js:155:4:155:8 | @type | 0 |
|
||||
| tst.js:163:12:163:18 | Element | tst.js:163:4:163:9 | @param | 0 |
|
||||
| tst.js:171:13:171:18 | string | tst.js:171:4:171:10 | @return | 0 |
|
||||
| tst.js:199:21:199:27 | Element | tst.js:199:12:199:18 | @return | 0 |
|
||||
| tst.js:206:13:206:24 | DOMException | tst.js:206:4:206:10 | @throws | 0 |
|
||||
| tst.js:212:11:212:16 | string | tst.js:212:4:212:8 | @type | 0 |
|
||||
| tst.js:216:15:216:29 | (string\|number) | tst.js:216:5:216:12 | @typedef | 0 |
|
||||
| tst.js:216:16:216:21 | string | tst.js:216:15:216:29 | (string\|number) | 0 |
|
||||
| tst.js:216:23:216:28 | number | tst.js:216:15:216:29 | (string\|number) | 1 |
|
||||
| tst.js:219:13:219:27 | goog.NumberLike | tst.js:219:5:219:10 | @param | 0 |
|
||||
| tst.js:223:12:223:36 | {myNum: number, myObject} | tst.js:223:5:223:9 | @type | 0 |
|
||||
| tst.js:223:20:223:25 | number | tst.js:223:12:223:36 | {myNum: number, myObject} | 0 |
|
||||
| tst.js:226:12:226:17 | number | tst.js:226:12:226:18 | number? | 0 |
|
||||
| tst.js:226:12:226:18 | number? | tst.js:226:5:226:9 | @type | 0 |
|
||||
| tst.js:229:12:229:18 | !Object | tst.js:229:5:229:9 | @type | 0 |
|
||||
| tst.js:229:13:229:18 | Object | tst.js:229:12:229:18 | !Object | 0 |
|
||||
| tst.js:233:12:233:36 | function (string, boolean) | tst.js:233:4:233:9 | @param | 0 |
|
||||
| tst.js:233:21:233:26 | string | tst.js:233:12:233:36 | function (string, boolean) | 0 |
|
||||
| tst.js:233:29:233:35 | boolean | tst.js:233:12:233:36 | function (string, boolean) | 1 |
|
||||
| tst.js:234:12:234:29 | function (): number | tst.js:234:4:234:9 | @param | 0 |
|
||||
| tst.js:234:24:234:29 | number | tst.js:234:12:234:29 | function (): number | -1 |
|
||||
| tst.js:235:12:235:46 | function (this: goog.ui.Menu, string) | tst.js:235:4:235:9 | @param | 0 |
|
||||
| tst.js:235:26:235:37 | goog.ui.Menu | tst.js:235:12:235:46 | function (this: goog.ui.Menu, string) | -2 |
|
||||
| tst.js:235:40:235:45 | string | tst.js:235:12:235:46 | function (this: goog.ui.Menu, string) | 0 |
|
||||
| tst.js:236:12:236:45 | function (new: goog.ui.Menu, string) | tst.js:236:4:236:9 | @param | 0 |
|
||||
| tst.js:236:25:236:36 | goog.ui.Menu | tst.js:236:12:236:45 | function (new: goog.ui.Menu, string) | -2 |
|
||||
| tst.js:236:39:236:44 | string | tst.js:236:12:236:45 | function (new: goog.ui.Menu, string) | 0 |
|
||||
| tst.js:237:12:237:48 | function (string, ...[number]): number | tst.js:237:4:237:9 | @param | 0 |
|
||||
| tst.js:237:21:237:26 | string | tst.js:237:12:237:48 | function (string, ...[number]): number | 0 |
|
||||
| tst.js:237:32:237:39 | ...[number] | tst.js:237:12:237:48 | function (string, ...[number]): number | 1 |
|
||||
| tst.js:237:32:237:39 | [number] | tst.js:237:32:237:39 | ...[number] | 0 |
|
||||
| tst.js:237:33:237:38 | number | tst.js:237:32:237:39 | [number] | 0 |
|
||||
| tst.js:237:43:237:48 | number | tst.js:237:12:237:48 | function (string, ...[number]): number | -1 |
|
||||
| tst.js:238:12:238:20 | ...number | tst.js:238:4:238:9 | @param | 0 |
|
||||
| tst.js:238:15:238:20 | number | tst.js:238:12:238:20 | ...number | 0 |
|
||||
| tst.js:239:12:239:17 | number | tst.js:239:12:239:18 | number= | 0 |
|
||||
| tst.js:239:12:239:18 | number= | tst.js:239:4:239:9 | @param | 0 |
|
||||
| tst.js:240:12:240:38 | function (?string=, number=) | tst.js:240:4:240:9 | @param | 0 |
|
||||
| tst.js:240:21:240:27 | ?string | tst.js:240:21:240:28 | ?string= | 0 |
|
||||
| tst.js:240:21:240:28 | ?string= | tst.js:240:12:240:38 | function (?string=, number=) | 0 |
|
||||
| tst.js:240:22:240:27 | string | tst.js:240:21:240:27 | ?string | 0 |
|
||||
| tst.js:240:31:240:36 | number | tst.js:240:31:240:37 | number= | 0 |
|
||||
| tst.js:240:31:240:37 | number= | tst.js:240:12:240:38 | function (?string=, number=) | 1 |
|
||||
| tst.js:241:12:241:12 | * | tst.js:241:4:241:9 | @param | 0 |
|
||||
| tst.js:242:12:242:12 | ? | tst.js:242:4:242:9 | @param | 0 |
|
||||
| tst.js:252:14:252:14 | T | tst.js:252:5:252:11 | @return | 0 |
|
||||
| tst.js:255:13:255:13 | T | tst.js:255:5:255:10 | @param | 0 |
|
||||
| tst.js:258:12:258:24 | !Foo.<string> | tst.js:258:5:258:9 | @type | 0 |
|
||||
| tst.js:258:13:258:15 | Foo | tst.js:258:13:258:24 | Foo.<string> | -1 |
|
||||
| tst.js:258:13:258:24 | Foo.<string> | tst.js:258:12:258:24 | !Foo.<string> | 0 |
|
||||
| tst.js:258:18:258:23 | string | tst.js:258:13:258:24 | Foo.<string> | 0 |
|
||||
| tst.js:259:22:259:34 | !Foo.<string> | tst.js:259:15:259:19 | @type | 0 |
|
||||
| tst.js:259:23:259:25 | Foo | tst.js:259:23:259:34 | Foo.<string> | -1 |
|
||||
| tst.js:259:23:259:34 | Foo.<string> | tst.js:259:22:259:34 | !Foo.<string> | 0 |
|
||||
| tst.js:259:28:259:33 | string | tst.js:259:23:259:34 | Foo.<string> | 0 |
|
||||
| tst.js:262:12:262:12 | T | tst.js:262:4:262:9 | @param | 0 |
|
||||
| tst.js:275:12:275:16 | MyMap | tst.js:275:12:275:33 | MyMap.<string, number> | -1 |
|
||||
| tst.js:275:12:275:33 | MyMap.<string, number> | tst.js:275:5:275:9 | @type | 0 |
|
||||
| tst.js:275:19:275:24 | string | tst.js:275:12:275:33 | MyMap.<string, number> | 0 |
|
||||
| tst.js:275:27:275:32 | number | tst.js:275:12:275:33 | MyMap.<string, number> | 1 |
|
||||
| tst.js:283:14:283:14 | X | tst.js:283:4:283:11 | @extends | 0 |
|
||||
| tst.js:288:12:288:14 | Foo | tst.js:288:12:288:18 | Foo.<X> | -1 |
|
||||
| tst.js:288:12:288:18 | Foo.<X> | tst.js:288:5:288:9 | @type | 0 |
|
||||
| tst.js:288:17:288:17 | X | tst.js:288:12:288:18 | Foo.<X> | 0 |
|
||||
| tst.js:289:12:289:14 | Foo | tst.js:289:12:289:18 | Foo.<Y> | -1 |
|
||||
| tst.js:289:12:289:18 | Foo.<Y> | tst.js:289:5:289:9 | @type | 0 |
|
||||
| tst.js:289:17:289:17 | Y | tst.js:289:12:289:18 | Foo.<Y> | 0 |
|
||||
| tst.js:294:13:294:15 | Foo | tst.js:294:13:294:19 | Foo.<Y> | -1 |
|
||||
| tst.js:294:13:294:19 | Foo.<Y> | tst.js:294:5:294:10 | @param | 0 |
|
||||
| tst.js:294:18:294:18 | Y | tst.js:294:13:294:19 | Foo.<Y> | 0 |
|
||||
| tst.js:306:13:306:13 | T | tst.js:306:5:306:10 | @param | 0 |
|
||||
| tst.js:311:14:311:14 | A | tst.js:311:14:311:23 | A.<string> | -1 |
|
||||
| tst.js:311:14:311:23 | A.<string> | tst.js:311:4:311:11 | @extends | 0 |
|
||||
| tst.js:311:17:311:22 | string | tst.js:311:14:311:23 | A.<string> | 0 |
|
||||
| tst.js:318:14:318:14 | A | tst.js:318:14:318:18 | A.<U> | -1 |
|
||||
| tst.js:318:14:318:18 | A.<U> | tst.js:318:4:318:11 | @extends | 0 |
|
||||
| tst.js:318:17:318:17 | U | tst.js:318:14:318:18 | A.<U> | 0 |
|
||||
| tst.js:328:14:328:14 | T | tst.js:328:5:328:11 | @return | 0 |
|
||||
| tst.js:333:17:333:19 | Foo | tst.js:333:17:333:28 | Foo.<string> | -1 |
|
||||
| tst.js:333:17:333:28 | Foo.<string> | tst.js:333:4:333:14 | @implements | 0 |
|
||||
| tst.js:333:22:333:27 | string | tst.js:333:17:333:28 | Foo.<string> | 0 |
|
||||
| tst.js:334:17:334:19 | Foo | tst.js:334:17:334:28 | Foo.<number> | -1 |
|
||||
| tst.js:334:17:334:28 | Foo.<number> | tst.js:334:4:334:14 | @implements | 0 |
|
||||
| tst.js:334:22:334:27 | number | tst.js:334:17:334:28 | Foo.<number> | 0 |
|
||||
| tst.js:339:12:339:12 | T | tst.js:339:4:339:9 | @param | 0 |
|
||||
| tst.js:340:13:340:13 | T | tst.js:340:4:340:10 | @return | 0 |
|
||||
| tst.js:345:12:345:17 | string | tst.js:345:5:345:9 | @type | 0 |
|
||||
| tst.js:346:12:346:17 | number | tst.js:346:5:346:9 | @type | 0 |
|
||||
| tst.js:347:12:347:17 | number | tst.js:347:5:347:9 | @type | 0 |
|
||||
| tst.js:349:12:349:17 | string | tst.js:349:12:349:27 | (string\|undefined) | 0 |
|
||||
| tst.js:349:12:349:27 | (string\|undefined) | tst.js:349:5:349:9 | @type | 0 |
|
||||
| tst.js:349:19:349:27 | undefined | tst.js:349:12:349:27 | (string\|undefined) | 1 |
|
||||
| tst.js:357:12:357:16 | Array | tst.js:357:12:357:25 | Array.<number> | -1 |
|
||||
| tst.js:357:12:357:25 | Array.<number> | tst.js:357:4:357:9 | @param | 0 |
|
||||
| tst.js:357:19:357:24 | number | tst.js:357:12:357:25 | Array.<number> | 0 |
|
||||
| tst.js:358:12:358:48 | function (x: !number, y: !number): number | tst.js:358:4:358:9 | @param | 0 |
|
||||
| tst.js:358:23:358:29 | !number | tst.js:358:12:358:48 | function (x: !number, y: !number): number | 0 |
|
||||
| tst.js:358:24:358:29 | number | tst.js:358:23:358:29 | !number | 0 |
|
||||
| tst.js:358:34:358:40 | !number | tst.js:358:12:358:48 | function (x: !number, y: !number): number | 1 |
|
||||
| tst.js:358:35:358:40 | number | tst.js:358:34:358:40 | !number | 0 |
|
||||
| tst.js:358:43:358:48 | number | tst.js:358:12:358:48 | function (x: !number, y: !number): number | -1 |
|
||||
| tst.js:364:14:364:15 | T1 | tst.js:364:6:364:11 | @param | 0 |
|
||||
| tst.js:369:14:369:15 | T2 | tst.js:369:6:369:11 | @param | 0 |
|
||||
| tst.js:376:14:376:15 | T3 | tst.js:376:6:376:11 | @param | 0 |
|
||||
| tst.js:381:14:381:15 | T4 | tst.js:381:6:381:11 | @param | 0 |
|
||||
| tst.js:387:12:387:16 | Array | tst.js:387:12:388:13 | Array.<number> | -1 |
|
||||
| tst.js:387:12:388:13 | Array.<number> | tst.js:387:4:387:9 | @param | 0 |
|
||||
| tst.js:388:7:388:12 | number | tst.js:387:12:388:13 | Array.<number> | 0 |
|
||||
test_getParameterTag
|
||||
| tst.js:146:37:146:44 | groupNum | groupNum | tst.js:142:4:142:9 | @param | groupNum | tst.js:142:12:142:17 | number |
|
||||
| tst.js:146:47:146:50 | term | term | tst.js:143:4:143:9 | @param | term | tst.js:143:12:143:29 | (string\|number\|null) |
|
||||
| tst.js:166:59:166:65 | element | element | tst.js:163:4:163:9 | @param | element | tst.js:163:12:163:18 | Element |
|
||||
| tst.js:220:28:220:28 | x | x | tst.js:219:5:219:10 | @param | x | tst.js:219:13:219:27 | goog.NumberLike |
|
||||
| tst.js:256:30:256:30 | t | t | tst.js:255:5:255:10 | @param | t | tst.js:255:13:255:13 | T |
|
||||
| tst.js:266:16:266:16 | t | t | tst.js:262:4:262:9 | @param | t | tst.js:262:12:262:12 | T |
|
||||
| tst.js:295:22:295:25 | fooY | fooY | tst.js:294:5:294:10 | @param | fooY | tst.js:294:13:294:19 | Foo.<Y> |
|
||||
| tst.js:307:31:307:31 | t | t | tst.js:306:5:306:10 | @param | t | tst.js:306:13:306:13 | T |
|
||||
| tst.js:343:21:343:21 | a | a | tst.js:339:4:339:9 | @param | a | tst.js:339:12:339:12 | T |
|
||||
| tst.js:360:15:360:19 | array | array | tst.js:357:4:357:9 | @param | array | tst.js:357:12:357:25 | Array.<number> |
|
||||
| tst.js:360:22:360:23 | fn | fn | tst.js:358:4:358:9 | @param | fn | tst.js:358:12:358:48 | function (x: !number, y: !number): number |
|
||||
| tst.js:366:27:366:27 | p | p | tst.js:364:6:364:11 | @param | p | tst.js:364:14:364:15 | T1 |
|
||||
| tst.js:371:15:371:15 | p | p | tst.js:369:6:369:11 | @param | p | tst.js:369:14:369:15 | T2 |
|
||||
| tst.js:378:15:378:15 | p | p | tst.js:376:6:376:11 | @param | p | tst.js:376:14:376:15 | T3 |
|
||||
| tst.js:383:15:383:15 | p | p | tst.js:381:6:381:11 | @param | p | tst.js:381:14:381:15 | T4 |
|
||||
| tst.js:390:20:390:20 | x | x | tst.js:387:4:387:9 | @param | x | tst.js:387:12:388:13 | Array.<number> |
|
||||
test_JSDocArrayTypeExpr
|
||||
| tst.js:237:32:237:39 | [number] | 0 | tst.js:237:33:237:38 | number |
|
||||
test_JSDocUnionTypeExpr
|
||||
| tst.js:143:12:143:29 | (string\|number\|null) | tst.js:143:12:143:17 | string |
|
||||
| tst.js:143:12:143:29 | (string\|number\|null) | tst.js:143:19:143:24 | number |
|
||||
@@ -6,14 +424,58 @@ test_JSDocUnionTypeExpr
|
||||
| tst.js:216:15:216:29 | (string\|number) | tst.js:216:23:216:28 | number |
|
||||
| tst.js:349:12:349:27 | (string\|undefined) | tst.js:349:12:349:17 | string |
|
||||
| tst.js:349:12:349:27 | (string\|undefined) | tst.js:349:19:349:27 | undefined |
|
||||
test_JSDocArrayTypeExpr
|
||||
| tst.js:237:32:237:39 | [number] | 0 | tst.js:237:33:237:38 | number |
|
||||
test_Parameter_getDocumentation
|
||||
| tst.js:149:28:149:28 | a | tst.js:149:14:149:26 | /** number */ |
|
||||
| tst.js:149:45:149:45 | b | tst.js:149:31:149:43 | /** number */ |
|
||||
test_JSDocRecordTypeExpr
|
||||
| tst.js:223:12:223:36 | {myNum: number, myObject} | myNum | number |
|
||||
| tst.js:223:12:223:36 | {myNum: number, myObject} | myObject | (none) |
|
||||
test_JSDocAppliedTypeExpr
|
||||
| tst.js:155:11:155:20 | Array.<Function> | tst.js:155:11:155:20 | Array | 0 | tst.js:155:11:155:18 | Function |
|
||||
| tst.js:258:13:258:24 | Foo.<string> | tst.js:258:13:258:15 | Foo | 0 | tst.js:258:18:258:23 | string |
|
||||
| tst.js:259:23:259:34 | Foo.<string> | tst.js:259:23:259:25 | Foo | 0 | tst.js:259:28:259:33 | string |
|
||||
| tst.js:275:12:275:33 | MyMap.<string, number> | tst.js:275:12:275:16 | MyMap | 0 | tst.js:275:19:275:24 | string |
|
||||
| tst.js:275:12:275:33 | MyMap.<string, number> | tst.js:275:12:275:16 | MyMap | 1 | tst.js:275:27:275:32 | number |
|
||||
| tst.js:288:12:288:18 | Foo.<X> | tst.js:288:12:288:14 | Foo | 0 | tst.js:288:17:288:17 | X |
|
||||
| tst.js:289:12:289:18 | Foo.<Y> | tst.js:289:12:289:14 | Foo | 0 | tst.js:289:17:289:17 | Y |
|
||||
| tst.js:294:13:294:19 | Foo.<Y> | tst.js:294:13:294:15 | Foo | 0 | tst.js:294:18:294:18 | Y |
|
||||
| tst.js:311:14:311:23 | A.<string> | tst.js:311:14:311:14 | A | 0 | tst.js:311:17:311:22 | string |
|
||||
| tst.js:318:14:318:18 | A.<U> | tst.js:318:14:318:14 | A | 0 | tst.js:318:17:318:17 | U |
|
||||
| tst.js:333:17:333:28 | Foo.<string> | tst.js:333:17:333:19 | Foo | 0 | tst.js:333:22:333:27 | string |
|
||||
| tst.js:334:17:334:28 | Foo.<number> | tst.js:334:17:334:19 | Foo | 0 | tst.js:334:22:334:27 | number |
|
||||
| tst.js:357:12:357:25 | Array.<number> | tst.js:357:12:357:16 | Array | 0 | tst.js:357:19:357:24 | number |
|
||||
| tst.js:387:12:388:13 | Array.<number> | tst.js:387:12:387:16 | Array | 0 | tst.js:388:7:388:12 | number |
|
||||
test_JSDocFunctionTypeExpr
|
||||
| tst.js:233:12:233:36 | function (string, boolean) | (none) | (none) | 0 | tst.js:233:21:233:26 | string | no |
|
||||
| tst.js:233:12:233:36 | function (string, boolean) | (none) | (none) | 1 | tst.js:233:29:233:35 | boolean | no |
|
||||
| tst.js:235:12:235:46 | function (this: goog.ui.Menu, string) | (none) | goog.ui.Menu | 0 | tst.js:235:40:235:45 | string | no |
|
||||
| tst.js:236:12:236:45 | function (new: goog.ui.Menu, string) | (none) | goog.ui.Menu | 0 | tst.js:236:39:236:44 | string | yes |
|
||||
| tst.js:237:12:237:48 | function (string, ...[number]): number | number | (none) | 0 | tst.js:237:21:237:26 | string | no |
|
||||
| tst.js:237:12:237:48 | function (string, ...[number]): number | number | (none) | 1 | tst.js:237:32:237:39 | ...[number] | no |
|
||||
| tst.js:240:12:240:38 | function (?string=, number=) | (none) | (none) | 0 | tst.js:240:21:240:28 | ?string= | no |
|
||||
| tst.js:240:12:240:38 | function (?string=, number=) | (none) | (none) | 1 | tst.js:240:31:240:37 | number= | no |
|
||||
| tst.js:358:12:358:48 | function (x: !number, y: !number): number | number | (none) | 0 | tst.js:358:23:358:29 | !number | no |
|
||||
| tst.js:358:12:358:48 | function (x: !number, y: !number): number | number | (none) | 1 | tst.js:358:34:358:40 | !number | no |
|
||||
test_JSDocNullableTypeExpr
|
||||
| tst.js:226:12:226:18 | number? | tst.js:226:12:226:17 | number | postfix |
|
||||
| tst.js:240:21:240:27 | ?string | tst.js:240:22:240:27 | string | prefix |
|
||||
test_JSDocNonNullableTypeExpr
|
||||
| tst.js:229:12:229:18 | !Object | tst.js:229:13:229:18 | Object | prefix |
|
||||
| tst.js:258:12:258:24 | !Foo.<string> | tst.js:258:13:258:24 | Foo.<string> | prefix |
|
||||
| tst.js:259:22:259:34 | !Foo.<string> | tst.js:259:23:259:34 | Foo.<string> | prefix |
|
||||
| tst.js:358:23:358:29 | !number | tst.js:358:24:358:29 | number | prefix |
|
||||
| tst.js:358:34:358:40 | !number | tst.js:358:35:358:40 | number | prefix |
|
||||
test_ParExpr_getDocumentation
|
||||
| tst.js:117:42:119:10 | ({\\n ... }) | tst.js:117:9:117:40 | /** @le ... ype} */ |
|
||||
| tst.js:259:40:259:50 | (new Foo()) | tst.js:259:11:259:38 | /** @ty ... ng>} */ |
|
||||
test_JSDocRestParameterTypeExpr
|
||||
| tst.js:237:32:237:39 | ...[number] | tst.js:237:32:237:39 | [number] |
|
||||
| tst.js:238:12:238:20 | ...number | tst.js:238:15:238:20 | number |
|
||||
test_Parameter_getDocumentation
|
||||
| tst.js:149:28:149:28 | a | tst.js:149:14:149:26 | /** number */ |
|
||||
| tst.js:149:45:149:45 | b | tst.js:149:31:149:43 | /** number */ |
|
||||
test_ObjectExpr_getDocumentation
|
||||
| tst.js:48:25:48:36 | { 'x': 321 } | tst.js:48:12:48:23 | /** @dict */ |
|
||||
| tst.js:55:20:59:1 | {\\n TRU ... BE: 0\\n} | tst.js:51:1:54:3 | /**\\n * ... er}\\n */ |
|
||||
| tst.js:117:43:119:9 | {\\n ... } | tst.js:117:9:117:40 | /** @le ... ype} */ |
|
||||
| tst.js:192:27:192:36 | { x: 321 } | tst.js:192:12:192:25 | /** @struct */ |
|
||||
test_AssignExpr_getDocumentation
|
||||
| tst.js:12:1:12:29 | mynames ... 'stout' | tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ |
|
||||
| tst.js:14:15:14:39 | MyClass ... 'stout' | tst.js:14:1:14:13 | /** @const */ |
|
||||
@@ -46,6 +508,10 @@ test_AssignExpr_getDocumentation
|
||||
| tst.js:329:1:329:33 | Foo.pro ... on() {} | tst.js:328:1:328:18 | /** @return {T} */ |
|
||||
| tst.js:336:1:336:24 | FooImpl ... n() { } | tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ |
|
||||
| tst.js:343:1:343:36 | identit ... rn a; } | tst.js:338:1:342:3 | /**\\n * ... e T\\n */ |
|
||||
test_JSDocOptionalParameterTypeExpr
|
||||
| tst.js:239:12:239:18 | number= | tst.js:239:12:239:17 | number |
|
||||
| tst.js:240:21:240:28 | ?string= | tst.js:240:21:240:27 | ?string |
|
||||
| tst.js:240:31:240:37 | number= | tst.js:240:31:240:36 | number |
|
||||
test_Function_getDocumentation
|
||||
| tst.js:20:1:21:1 | functio ... t() {\\n} | tst.js:16:1:19:3 | /**\\n * ... tor\\n */ |
|
||||
| tst.js:36:34:37:1 | function(node) {\\n} | tst.js:29:1:35:3 | /**\\n * ... ().\\n */ |
|
||||
@@ -293,469 +759,3 @@ test_OtherExpr_getDocumentation
|
||||
| tst.js:371:3:371:13 | fancyMethod | tst.js:368:3:370:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:378:3:378:13 | constructor | tst.js:375:3:377:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:383:3:383:13 | classMethod | tst.js:380:3:382:5 | /**\\n ... p\\n */ |
|
||||
test_JSDocRecordTypeExpr
|
||||
| tst.js:223:12:223:36 | {myNum: number, myObject} | myNum | number |
|
||||
| tst.js:223:12:223:36 | {myNum: number, myObject} | myObject | (none) |
|
||||
test_JSDoc
|
||||
| tst.js:5:1:5:13 | /** @const */ | | tst.js:5:1:5:13 | /** @const */ |
|
||||
| tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ | My namespace's favorite kind of beer. | tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ |
|
||||
| tst.js:14:1:14:13 | /** @const */ | | tst.js:14:1:14:13 | /** @const */ |
|
||||
| tst.js:16:1:19:3 | /**\\n * ... tor\\n */ | A rectangle. | tst.js:16:1:19:3 | /**\\n * ... tor\\n */ |
|
||||
| tst.js:23:1:23:24 | /** @de ... ean} */ | | tst.js:23:1:23:24 | /** @de ... ean} */ |
|
||||
| tst.js:26:1:26:24 | /** @de ... ean} */ | | tst.js:26:1:26:24 | /** @de ... ean} */ |
|
||||
| tst.js:29:1:35:3 | /**\\n * ... ().\\n */ | Determines whether a node is a field. | tst.js:29:1:35:3 | /**\\n * ... ().\\n */ |
|
||||
| tst.js:39:1:42:3 | /**\\n * ... ict\\n */ | | tst.js:39:1:42:3 | /**\\n * ... ict\\n */ |
|
||||
| tst.js:48:12:48:23 | /** @dict */ | | tst.js:48:12:48:23 | /** @dict */ |
|
||||
| tst.js:51:1:54:3 | /**\\n * ... er}\\n */ | Enum for tri-state values. | tst.js:51:1:54:3 | /**\\n * ... er}\\n */ |
|
||||
| tst.js:61:1:61:14 | /** @export */ | | tst.js:61:1:61:14 | /** @export */ |
|
||||
| tst.js:65:1:69:3 | /**\\n * ... st}\\n */ | Immutable empty node list. | tst.js:65:1:69:3 | /**\\n * ... st}\\n */ |
|
||||
| tst.js:73:1:77:3 | /**\\n * ... tor\\n */ | A class that cannot be extended. | tst.js:73:1:77:3 | /**\\n * ... tor\\n */ |
|
||||
| tst.js:80:1:83:3 | /**\\n * ... nal\\n */ | A method that cannot be overridden. | tst.js:80:1:83:3 | /**\\n * ... nal\\n */ |
|
||||
| tst.js:86:1:89:3 | /**\\n * ... ace\\n */ | A shape. | tst.js:86:1:89:3 | /**\\n * ... ace\\n */ |
|
||||
| tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ | | tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ |
|
||||
| tst.js:101:1:103:17 | /**\\n * ... tDoc */ | | tst.js:101:1:103:17 | /**\\n * ... tDoc */ |
|
||||
| tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ | A polygon. | tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ |
|
||||
| tst.js:117:9:117:40 | /** @le ... ype} */ | | tst.js:117:9:117:40 | /** @le ... ype} */ |
|
||||
| tst.js:121:1:126:3 | /**\\n * ... sh:\\n */ | | tst.js:121:1:126:3 | /**\\n * ... sh:\\n */ |
|
||||
| tst.js:128:1:128:21 | /** @no ... ects */ | | tst.js:128:1:128:21 | /** @no ... ects */ |
|
||||
| tst.js:131:1:136:3 | /**\\n * ... age\\n */ | Returns the window object the foreign document resides in. | tst.js:131:1:136:3 | /**\\n * ... age\\n */ |
|
||||
| tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ | Queries a Baz for items. | tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ |
|
||||
| tst.js:149:14:149:26 | /** number */ | number | tst.js:149:14:149:26 | /** number */ |
|
||||
| tst.js:149:31:149:43 | /** number */ | number | tst.js:149:31:149:43 | /** number */ |
|
||||
| tst.js:153:1:157:3 | /**\\n * ... ate\\n */ | Handlers that are listening to this logger. | tst.js:153:1:157:3 | /**\\n * ... ate\\n */ |
|
||||
| tst.js:160:1:165:3 | /**\\n * ... ted\\n */ | Sets the component's root element to the given element.\nConsidered protected and final. | tst.js:160:1:165:3 | /**\\n * ... ted\\n */ |
|
||||
| tst.js:169:1:172:3 | /**\\n * ... ID.\\n */ | Returns the ID of the last item. | tst.js:169:1:172:3 | /**\\n * ... ID.\\n */ |
|
||||
| tst.js:177:10:177:22 | /** number */ | number | tst.js:177:10:177:22 | /** number */ |
|
||||
| tst.js:179:1:182:3 | /**\\n * ... uct\\n */ | | tst.js:179:1:182:3 | /**\\n * ... uct\\n */ |
|
||||
| tst.js:192:12:192:25 | /** @struct */ | | tst.js:192:12:192:25 | /** @struct */ |
|
||||
| tst.js:196:9:200:11 | /**\\n ... */ | Returns the roster widget element. | tst.js:196:9:200:11 | /**\\n ... */ |
|
||||
| tst.js:205:1:207:3 | /**\\n * ... on}\\n */ | | tst.js:205:1:207:3 | /**\\n * ... on}\\n */ |
|
||||
| tst.js:210:1:213:3 | /**\\n * ... ng}\\n */ | The message hex ID. | tst.js:210:1:213:3 | /**\\n * ... ng}\\n */ |
|
||||
| tst.js:216:1:216:33 | /** @ty ... er)} */ | | tst.js:216:1:216:33 | /** @ty ... er)} */ |
|
||||
| tst.js:219:1:219:55 | /** @pa ... ing. */ | | tst.js:219:1:219:55 | /** @pa ... ing. */ |
|
||||
| tst.js:223:1:223:40 | /** @ty ... ct}} */ | | tst.js:223:1:223:40 | /** @ty ... ct}} */ |
|
||||
| tst.js:226:1:226:22 | /** @ty ... er?} */ | | tst.js:226:1:226:22 | /** @ty ... er?} */ |
|
||||
| tst.js:229:1:229:22 | /** @ty ... ect} */ | | tst.js:229:1:229:22 | /** @ty ... ect} */ |
|
||||
| tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ |
|
||||
| tst.js:246:1:249:3 | /**\\n * ... e T\\n */ | | tst.js:246:1:249:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:252:1:252:18 | /** @return {T} */ | | tst.js:252:1:252:18 | /** @return {T} */ |
|
||||
| tst.js:255:1:255:19 | /** @param {T} t */ | | tst.js:255:1:255:19 | /** @param {T} t */ |
|
||||
| tst.js:258:1:258:28 | /** @ty ... ng>} */ | | tst.js:258:1:258:28 | /** @ty ... ng>} */ |
|
||||
| tst.js:259:11:259:38 | /** @ty ... ng>} */ | | tst.js:259:11:259:38 | /** @ty ... ng>} */ |
|
||||
| tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | | tst.js:261:1:265:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:269:1:272:3 | /**\\n * ... Val\\n */ | | tst.js:269:1:272:3 | /**\\n * ... Val\\n */ |
|
||||
| tst.js:275:1:275:37 | /** @ty ... er>} */ | | tst.js:275:1:275:37 | /** @ty ... er>} */ |
|
||||
| tst.js:277:1:279:3 | /**\\n * ... tor\\n */ | | tst.js:277:1:279:3 | /**\\n * ... tor\\n */ |
|
||||
| tst.js:282:1:285:3 | /**\\n * ... tor\\n */ | | tst.js:282:1:285:3 | /**\\n * ... tor\\n */ |
|
||||
| tst.js:288:1:288:22 | /** @ty ... <X>} */ | | tst.js:288:1:288:22 | /** @ty ... <X>} */ |
|
||||
| tst.js:289:1:289:22 | /** @ty ... <Y>} */ | | tst.js:289:1:289:22 | /** @ty ... <Y>} */ |
|
||||
| tst.js:294:1:294:28 | /** @pa ... fooY */ | | tst.js:294:1:294:28 | /** @pa ... fooY */ |
|
||||
| tst.js:300:1:303:3 | /**\\n * ... e T\\n */ | | tst.js:300:1:303:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:306:1:306:19 | /** @param {T} t */ | | tst.js:306:1:306:19 | /** @param {T} t */ |
|
||||
| tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ | | tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ |
|
||||
| tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | | tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ |
|
||||
| tst.js:322:1:325:3 | /**\\n * ... e T\\n */ | | tst.js:322:1:325:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:328:1:328:18 | /** @return {T} */ | | tst.js:328:1:328:18 | /** @return {T} */ |
|
||||
| tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | | tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ |
|
||||
| tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | | tst.js:338:1:342:3 | /**\\n * ... e T\\n */ |
|
||||
| tst.js:345:1:345:21 | /** @ty ... ing} */ | | tst.js:345:1:345:21 | /** @ty ... ing} */ |
|
||||
| tst.js:346:1:346:21 | /** @ty ... ber} */ | | tst.js:346:1:346:21 | /** @ty ... ber} */ |
|
||||
| tst.js:347:1:347:21 | /** @ty ... ber} */ | | tst.js:347:1:347:21 | /** @ty ... ber} */ |
|
||||
| tst.js:349:1:349:31 | /** @ty ... ned} */ | | tst.js:349:1:349:31 | /** @ty ... ned} */ |
|
||||
| tst.js:351:1:353:3 | /**\\n * ... ger\\n */ | | tst.js:351:1:353:3 | /**\\n * ... ger\\n */ |
|
||||
| tst.js:356:1:359:3 | /**\\n * ... ion\\n */ | | tst.js:356:1:359:3 | /**\\n * ... ion\\n */ |
|
||||
| tst.js:363:3:365:5 | /**\\n ... p\\n */ | | tst.js:363:3:365:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:368:3:370:5 | /**\\n ... p\\n */ | | tst.js:368:3:370:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:375:3:377:5 | /**\\n ... p\\n */ | | tst.js:375:3:377:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:380:3:382:5 | /**\\n ... p\\n */ | | tst.js:380:3:382:5 | /**\\n ... p\\n */ |
|
||||
| tst.js:386:1:389:3 | /**\\n * ... } x\\n */ | | tst.js:386:1:389:3 | /**\\n * ... } x\\n */ |
|
||||
test_JSDocTag
|
||||
| tst.js:5:5:5:10 | @const | const | tst.js:5:1:5:13 | /** @const */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:9:4:9:9 | @const | const | tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:10:4:10:8 | @type | type | tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ | 1 | (none) | (none) | string |
|
||||
| tst.js:14:5:14:10 | @const | const | tst.js:14:1:14:13 | /** @const */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:18:4:18:15 | @constructor | constructor | tst.js:16:1:19:3 | /**\\n * ... tor\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:23:5:23:11 | @define | define | tst.js:23:1:23:24 | /** @de ... ean} */ | 0 | (none) | (none) | boolean |
|
||||
| tst.js:26:5:26:11 | @define | define | tst.js:26:1:26:24 | /** @de ... ean} */ | 0 | (none) | (none) | boolean |
|
||||
| tst.js:31:4:31:10 | @return | return | tst.js:29:1:35:3 | /**\\n * ... ().\\n */ | 0 | True if the contents of\nthe element are editable, but the element\nitself is not.\n | (none) | boolean |
|
||||
| tst.js:34:4:34:14 | @deprecated | deprecated | tst.js:29:1:35:3 | /**\\n * ... ().\\n */ | 1 | Use isField(). | (none) | (none) |
|
||||
| tst.js:40:4:40:15 | @constructor | constructor | tst.js:39:1:42:3 | /**\\n * ... ict\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:41:4:41:8 | @dict | dict | tst.js:39:1:42:3 | /**\\n * ... ict\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:48:16:48:20 | @dict | dict | tst.js:48:12:48:23 | /** @dict */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:53:4:53:8 | @enum | enum | tst.js:51:1:54:3 | /**\\n * ... er}\\n */ | 0 | (none) | (none) | number |
|
||||
| tst.js:61:5:61:11 | @export | export | tst.js:61:1:61:14 | /** @export */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:67:4:67:15 | @constructor | constructor | tst.js:65:1:69:3 | /**\\n * ... st}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:68:4:68:11 | @extends | extends | tst.js:65:1:69:3 | /**\\n * ... st}\\n */ | 1 | (none) | (none) | goog.ds.BasicNodeList |
|
||||
| tst.js:75:4:75:9 | @final | final | tst.js:73:1:77:3 | /**\\n * ... tor\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:76:4:76:15 | @constructor | constructor | tst.js:73:1:77:3 | /**\\n * ... tor\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:82:4:82:9 | @final | final | tst.js:80:1:83:3 | /**\\n * ... nal\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:88:4:88:13 | @interface | interface | tst.js:86:1:89:3 | /**\\n * ... ace\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:94:4:94:15 | @constructor | constructor | tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:95:4:95:14 | @implements | implements | tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ | 1 | (none) | (none) | Shape |
|
||||
| tst.js:102:4:102:12 | @override | override | tst.js:101:1:103:17 | /**\\n * ... tDoc */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:103:4:103:14 | @inheritDoc | inheritDoc | tst.js:101:1:103:17 | /**\\n * ... tDoc */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:109:4:109:13 | @interface | interface | tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:110:4:110:11 | @extends | extends | tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ | 1 | (none) | (none) | Shape |
|
||||
| tst.js:117:13:117:18 | @lends | lends | tst.js:117:9:117:40 | /** @le ... ype} */ | 0 | {Button.prototype} | (none) | (none) |
|
||||
| tst.js:122:4:122:12 | @preserve | preserve | tst.js:121:1:126:3 | /**\\n * ... sh:\\n */ | 0 | Copyright 2009 SomeThirdParty.\nHere is the full license text and copyright\nnotice for this file. Note that the notice can span several\nlines and is only terminated by the closing star and slash: | (none) | (none) |
|
||||
| tst.js:128:5:128:18 | @nosideeffects | nosideeffects | tst.js:128:1:128:21 | /** @no ... ects */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:134:4:134:10 | @return | return | tst.js:131:1:136:3 | /**\\n * ... age\\n */ | 0 | The window object of the peer.\n | (none) | Object |
|
||||
| tst.js:135:4:135:11 | @package | package | tst.js:131:1:136:3 | /**\\n * ... age\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:142:4:142:9 | @param | param | tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ | 0 | Subgroup id to query.\n | groupNum | number |
|
||||
| tst.js:143:4:143:9 | @param | param | tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ | 1 | An itemName,\nor itemId, or null to search everything. | term | (string\|number\|null) |
|
||||
| tst.js:155:4:155:8 | @type | type | tst.js:153:1:157:3 | /**\\n * ... ate\\n */ | 0 | (none) | (none) | Array.<Function> |
|
||||
| tst.js:156:4:156:11 | @private | private | tst.js:153:1:157:3 | /**\\n * ... ate\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:163:4:163:9 | @param | param | tst.js:160:1:165:3 | /**\\n * ... ted\\n */ | 0 | Root element for the component.\n | element | Element |
|
||||
| tst.js:164:4:164:13 | @protected | protected | tst.js:160:1:165:3 | /**\\n * ... ted\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:171:4:171:10 | @return | return | tst.js:169:1:172:3 | /**\\n * ... ID.\\n */ | 0 | The hex ID. | (none) | string |
|
||||
| tst.js:180:4:180:15 | @constructor | constructor | tst.js:179:1:182:3 | /**\\n * ... uct\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:181:4:181:10 | @struct | struct | tst.js:179:1:182:3 | /**\\n * ... uct\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:192:16:192:22 | @struct | struct | tst.js:192:12:192:25 | /** @struct */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:198:12:198:16 | @this | this | tst.js:196:9:200:11 | /**\\n ... */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:199:12:199:18 | @return | return | tst.js:196:9:200:11 | /**\\n ... */ | 1 | (none) | (none) | Element |
|
||||
| tst.js:206:4:206:10 | @throws | throws | tst.js:205:1:207:3 | /**\\n * ... on}\\n */ | 0 | (none) | (none) | DOMException |
|
||||
| tst.js:212:4:212:8 | @type | type | tst.js:210:1:213:3 | /**\\n * ... ng}\\n */ | 0 | (none) | (none) | string |
|
||||
| tst.js:216:5:216:12 | @typedef | typedef | tst.js:216:1:216:33 | /** @ty ... er)} */ | 0 | (none) | (none) | (string\|number) |
|
||||
| tst.js:219:5:219:10 | @param | param | tst.js:219:1:219:55 | /** @pa ... ing. */ | 0 | A number or a string. | x | goog.NumberLike |
|
||||
| tst.js:223:5:223:9 | @type | type | tst.js:223:1:223:40 | /** @ty ... ct}} */ | 0 | (none) | (none) | {myNum: number, myObject} |
|
||||
| tst.js:226:5:226:9 | @type | type | tst.js:226:1:226:22 | /** @ty ... er?} */ | 0 | (none) | (none) | number? |
|
||||
| tst.js:229:5:229:9 | @type | type | tst.js:229:1:229:22 | /** @ty ... ect} */ | 0 | (none) | (none) | !Object |
|
||||
| tst.js:233:4:233:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 0 | (none) | p1 | function (string, boolean) |
|
||||
| tst.js:234:4:234:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 1 | (none) | p2 | function (): number |
|
||||
| tst.js:235:4:235:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 2 | (none) | p3 | function (this: goog.ui.Menu, string) |
|
||||
| tst.js:236:4:236:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 3 | (none) | p4 | function (new: goog.ui.Menu, string) |
|
||||
| tst.js:237:4:237:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 4 | (none) | p5 | function (string, ...[number]): number |
|
||||
| tst.js:238:4:238:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 5 | p6\n | var_args | ...number |
|
||||
| tst.js:239:4:239:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 6 | p7\n | opt_argument | number= |
|
||||
| tst.js:240:4:240:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 7 | (none) | p8 | function (?string=, number=) |
|
||||
| tst.js:241:4:241:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 8 | (none) | p9 | * |
|
||||
| tst.js:242:4:242:9 | @param | param | tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | 9 | (none) | p10 | ? |
|
||||
| tst.js:247:4:247:15 | @constructor | constructor | tst.js:246:1:249:3 | /**\\n * ... e T\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:248:4:248:12 | @template | template | tst.js:246:1:249:3 | /**\\n * ... e T\\n */ | 1 | T | (none) | (none) |
|
||||
| tst.js:252:5:252:11 | @return | return | tst.js:252:1:252:18 | /** @return {T} */ | 0 | (none) | (none) | T |
|
||||
| tst.js:255:5:255:10 | @param | param | tst.js:255:1:255:19 | /** @param {T} t */ | 0 | (none) | t | T |
|
||||
| tst.js:258:5:258:9 | @type | type | tst.js:258:1:258:28 | /** @ty ... ng>} */ | 0 | (none) | (none) | !Foo.<string> |
|
||||
| tst.js:259:15:259:19 | @type | type | tst.js:259:11:259:38 | /** @ty ... ng>} */ | 0 | (none) | (none) | !Foo.<string> |
|
||||
| tst.js:262:4:262:9 | @param | param | tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | 0 | (none) | t | T |
|
||||
| tst.js:263:4:263:15 | @constructor | constructor | tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:264:4:264:12 | @template | template | tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | 2 | T | (none) | (none) |
|
||||
| tst.js:270:4:270:15 | @constructor | constructor | tst.js:269:1:272:3 | /**\\n * ... Val\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:271:4:271:12 | @template | template | tst.js:269:1:272:3 | /**\\n * ... Val\\n */ | 1 | Key, Val | (none) | (none) |
|
||||
| tst.js:275:5:275:9 | @type | type | tst.js:275:1:275:37 | /** @ty ... er>} */ | 0 | (none) | (none) | MyMap.<string, number> |
|
||||
| tst.js:278:4:278:15 | @constructor | constructor | tst.js:277:1:279:3 | /**\\n * ... tor\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:283:4:283:11 | @extends | extends | tst.js:282:1:285:3 | /**\\n * ... tor\\n */ | 0 | (none) | (none) | X |
|
||||
| tst.js:284:4:284:15 | @constructor | constructor | tst.js:282:1:285:3 | /**\\n * ... tor\\n */ | 1 | (none) | (none) | (none) |
|
||||
| tst.js:288:5:288:9 | @type | type | tst.js:288:1:288:22 | /** @ty ... <X>} */ | 0 | (none) | (none) | Foo.<X> |
|
||||
| tst.js:289:5:289:9 | @type | type | tst.js:289:1:289:22 | /** @ty ... <Y>} */ | 0 | (none) | (none) | Foo.<Y> |
|
||||
| tst.js:294:5:294:10 | @param | param | tst.js:294:1:294:28 | /** @pa ... fooY */ | 0 | (none) | fooY | Foo.<Y> |
|
||||
| tst.js:301:4:301:15 | @constructor | constructor | tst.js:300:1:303:3 | /**\\n * ... e T\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:302:4:302:12 | @template | template | tst.js:300:1:303:3 | /**\\n * ... e T\\n */ | 1 | T | (none) | (none) |
|
||||
| tst.js:306:5:306:10 | @param | param | tst.js:306:1:306:19 | /** @param {T} t */ | 0 | (none) | t | T |
|
||||
| tst.js:310:4:310:15 | @constructor | constructor | tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:311:4:311:11 | @extends | extends | tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ | 1 | (none) | (none) | A.<string> |
|
||||
| tst.js:316:4:316:15 | @constructor | constructor | tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:317:4:317:12 | @template | template | tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | 1 | U\n | (none) | (none) |
|
||||
| tst.js:318:4:318:11 | @extends | extends | tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | 2 | (none) | (none) | A.<U> |
|
||||
| tst.js:323:4:323:13 | @interface | interface | tst.js:322:1:325:3 | /**\\n * ... e T\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:324:4:324:12 | @template | template | tst.js:322:1:325:3 | /**\\n * ... e T\\n */ | 1 | T | (none) | (none) |
|
||||
| tst.js:328:5:328:11 | @return | return | tst.js:328:1:328:18 | /** @return {T} */ | 0 | (none) | (none) | T |
|
||||
| tst.js:332:4:332:15 | @constructor | constructor | tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | 0 | (none) | (none) | (none) |
|
||||
| tst.js:333:4:333:14 | @implements | implements | tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | 1 | (none) | (none) | Foo.<string> |
|
||||
| tst.js:334:4:334:14 | @implements | implements | tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | 2 | (none) | (none) | Foo.<number> |
|
||||
| tst.js:339:4:339:9 | @param | param | tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | 0 | (none) | a | T |
|
||||
| tst.js:340:4:340:10 | @return | return | tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | 1 | (none) | (none) | T |
|
||||
| tst.js:341:4:341:12 | @template | template | tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | 2 | T | (none) | (none) |
|
||||
| tst.js:345:5:345:9 | @type | type | tst.js:345:1:345:21 | /** @ty ... ing} */ | 0 | (none) | (none) | string |
|
||||
| tst.js:346:5:346:9 | @type | type | tst.js:346:1:346:21 | /** @ty ... ber} */ | 0 | (none) | (none) | number |
|
||||
| tst.js:347:5:347:9 | @type | type | tst.js:347:1:347:21 | /** @ty ... ber} */ | 0 | (none) | (none) | number |
|
||||
| tst.js:349:5:349:9 | @type | type | tst.js:349:1:349:31 | /** @ty ... ned} */ | 0 | (none) | (none) | (string\|undefined) |
|
||||
| tst.js:352:4:352:9 | @param | param | tst.js:351:1:353:3 | /**\\n * ... ger\\n */ | 0 | [int] an integer | (none) | (none) |
|
||||
| tst.js:357:4:357:9 | @param | param | tst.js:356:1:359:3 | /**\\n * ... ion\\n */ | 0 | the array to sort\n | array | Array.<number> |
|
||||
| tst.js:358:4:358:9 | @param | param | tst.js:356:1:359:3 | /**\\n * ... ion\\n */ | 1 | the comparator function | fn | function (x: !number, y: !number): number |
|
||||
| tst.js:364:6:364:11 | @param | param | tst.js:363:3:365:5 | /**\\n ... p\\n */ | 0 | (none) | p | T1 |
|
||||
| tst.js:369:6:369:11 | @param | param | tst.js:368:3:370:5 | /**\\n ... p\\n */ | 0 | (none) | p | T2 |
|
||||
| tst.js:376:6:376:11 | @param | param | tst.js:375:3:377:5 | /**\\n ... p\\n */ | 0 | (none) | p | T3 |
|
||||
| tst.js:381:6:381:11 | @param | param | tst.js:380:3:382:5 | /**\\n ... p\\n */ | 0 | (none) | p | T4 |
|
||||
| tst.js:387:4:387:9 | @param | param | tst.js:386:1:389:3 | /**\\n * ... } x\\n */ | 0 | (none) | x | Array.<number> |
|
||||
test_ObjectExpr_getDocumentation
|
||||
| tst.js:48:25:48:36 | { 'x': 321 } | tst.js:48:12:48:23 | /** @dict */ |
|
||||
| tst.js:55:20:59:1 | {\\n TRU ... BE: 0\\n} | tst.js:51:1:54:3 | /**\\n * ... er}\\n */ |
|
||||
| tst.js:117:43:119:9 | {\\n ... } | tst.js:117:9:117:40 | /** @le ... ype} */ |
|
||||
| tst.js:192:27:192:36 | { x: 321 } | tst.js:192:12:192:25 | /** @struct */ |
|
||||
test_JSDocFunctionTypeExpr
|
||||
| tst.js:233:12:233:36 | function (string, boolean) | (none) | (none) | 0 | tst.js:233:21:233:26 | string | no |
|
||||
| tst.js:233:12:233:36 | function (string, boolean) | (none) | (none) | 1 | tst.js:233:29:233:35 | boolean | no |
|
||||
| tst.js:235:12:235:46 | function (this: goog.ui.Menu, string) | (none) | goog.ui.Menu | 0 | tst.js:235:40:235:45 | string | no |
|
||||
| tst.js:236:12:236:45 | function (new: goog.ui.Menu, string) | (none) | goog.ui.Menu | 0 | tst.js:236:39:236:44 | string | yes |
|
||||
| tst.js:237:12:237:48 | function (string, ...[number]): number | number | (none) | 0 | tst.js:237:21:237:26 | string | no |
|
||||
| tst.js:237:12:237:48 | function (string, ...[number]): number | number | (none) | 1 | tst.js:237:32:237:39 | ...[number] | no |
|
||||
| tst.js:240:12:240:38 | function (?string=, number=) | (none) | (none) | 0 | tst.js:240:21:240:28 | ?string= | no |
|
||||
| tst.js:240:12:240:38 | function (?string=, number=) | (none) | (none) | 1 | tst.js:240:31:240:37 | number= | no |
|
||||
| tst.js:358:12:358:48 | function (x: !number, y: !number): number | number | (none) | 0 | tst.js:358:23:358:29 | !number | no |
|
||||
| tst.js:358:12:358:48 | function (x: !number, y: !number): number | number | (none) | 1 | tst.js:358:34:358:40 | !number | no |
|
||||
test_JSDocNullableTypeExpr
|
||||
| tst.js:226:12:226:18 | number? | tst.js:226:12:226:17 | number | postfix |
|
||||
| tst.js:240:21:240:27 | ?string | tst.js:240:22:240:27 | string | prefix |
|
||||
test_next_token
|
||||
| tst.js:1:1:1:117 | // Test ... mpiler, | tst.js:5:15:5:17 | var |
|
||||
| tst.js:2:1:2:118 | // whic ... se 2.0; | tst.js:5:15:5:17 | var |
|
||||
| tst.js:3:1:3:20 | // see file COPYING. | tst.js:5:15:5:17 | var |
|
||||
| tst.js:5:1:5:13 | /** @const */ | tst.js:5:15:5:17 | var |
|
||||
| tst.js:7:1:11:3 | /**\\n * ... ng}\\n */ | tst.js:12:1:12:11 | mynamespace |
|
||||
| tst.js:14:1:14:13 | /** @const */ | tst.js:14:15:14:21 | MyClass |
|
||||
| tst.js:16:1:19:3 | /**\\n * ... tor\\n */ | tst.js:20:1:20:8 | function |
|
||||
| tst.js:23:1:23:24 | /** @de ... ean} */ | tst.js:24:1:24:3 | var |
|
||||
| tst.js:26:1:26:24 | /** @de ... ean} */ | tst.js:27:1:27:4 | goog |
|
||||
| tst.js:29:1:35:3 | /**\\n * ... ().\\n */ | tst.js:36:1:36:11 | BN_EditUtil |
|
||||
| tst.js:39:1:42:3 | /**\\n * ... ict\\n */ | tst.js:43:1:43:8 | function |
|
||||
| tst.js:46:16:46:25 | // warning | tst.js:48:1:48:3 | var |
|
||||
| tst.js:48:12:48:23 | /** @dict */ | tst.js:48:25:48:25 | { |
|
||||
| tst.js:49:16:49:25 | // warning | tst.js:55:1:55:7 | project |
|
||||
| tst.js:51:1:54:3 | /**\\n * ... er}\\n */ | tst.js:55:1:55:7 | project |
|
||||
| tst.js:61:1:61:14 | /** @export */ | tst.js:62:1:62:3 | foo |
|
||||
| tst.js:65:1:69:3 | /**\\n * ... st}\\n */ | tst.js:70:1:70:4 | goog |
|
||||
| tst.js:73:1:77:3 | /**\\n * ... tor\\n */ | tst.js:78:1:78:5 | sloth |
|
||||
| tst.js:80:1:83:3 | /**\\n * ... nal\\n */ | tst.js:84:1:84:5 | sloth |
|
||||
| tst.js:86:1:89:3 | /**\\n * ... ace\\n */ | tst.js:90:1:90:8 | function |
|
||||
| tst.js:93:1:96:3 | /**\\n * ... pe}\\n */ | tst.js:97:1:97:8 | function |
|
||||
| tst.js:101:1:103:17 | /**\\n * ... tDoc */ | tst.js:104:1:104:7 | project |
|
||||
| tst.js:107:1:111:3 | /**\\n * ... pe}\\n */ | tst.js:112:1:112:8 | function |
|
||||
| tst.js:117:9:117:40 | /** @le ... ype} */ | tst.js:117:42:117:42 | ( |
|
||||
| tst.js:121:1:126:3 | /**\\n * ... sh:\\n */ | tst.js:129:1:129:8 | function |
|
||||
| tst.js:128:1:128:21 | /** @no ... ects */ | tst.js:129:1:129:8 | function |
|
||||
| tst.js:131:1:136:3 | /**\\n * ... age\\n */ | tst.js:137:1:137:4 | goog |
|
||||
| tst.js:140:1:145:3 | /**\\n * ... ng.\\n */ | tst.js:146:1:146:4 | goog |
|
||||
| tst.js:149:14:149:26 | /** number */ | tst.js:149:28:149:28 | a |
|
||||
| tst.js:149:31:149:43 | /** number */ | tst.js:149:45:149:45 | b |
|
||||
| tst.js:153:1:157:3 | /**\\n * ... ate\\n */ | tst.js:158:1:158:4 | this |
|
||||
| tst.js:160:1:165:3 | /**\\n * ... ted\\n */ | tst.js:166:1:166:4 | goog |
|
||||
| tst.js:169:1:172:3 | /**\\n * ... ID.\\n */ | tst.js:173:1:173:4 | goog |
|
||||
| tst.js:177:10:177:22 | /** number */ | tst.js:177:24:177:26 | foo |
|
||||
| tst.js:179:1:182:3 | /**\\n * ... uct\\n */ | tst.js:183:1:183:8 | function |
|
||||
| tst.js:187:24:187:28 | // OK | tst.js:188:1:188:4 | obj1 |
|
||||
| tst.js:188:21:188:25 | // OK | tst.js:189:1:189:4 | obj1 |
|
||||
| tst.js:189:22:189:31 | // warning | tst.js:190:1:190:4 | obj1 |
|
||||
| tst.js:190:14:190:23 | // warning | tst.js:192:1:192:3 | var |
|
||||
| tst.js:192:12:192:25 | /** @struct */ | tst.js:192:27:192:27 | { |
|
||||
| tst.js:193:19:193:28 | // warning | tst.js:195:1:195:4 | chat |
|
||||
| tst.js:196:9:200:11 | /**\\n ... */ | tst.js:201:9:201:16 | function |
|
||||
| tst.js:205:1:207:3 | /**\\n * ... on}\\n */ | tst.js:208:1:208:19 | DOMApplicationCache |
|
||||
| tst.js:210:1:213:3 | /**\\n * ... ng}\\n */ | tst.js:214:1:214:3 | var |
|
||||
| tst.js:216:1:216:33 | /** @ty ... er)} */ | tst.js:217:1:217:4 | goog |
|
||||
| tst.js:219:1:219:55 | /** @pa ... ing. */ | tst.js:220:1:220:4 | goog |
|
||||
| tst.js:223:1:223:40 | /** @ty ... ct}} */ | tst.js:224:1:224:3 | var |
|
||||
| tst.js:226:1:226:22 | /** @ty ... er?} */ | tst.js:227:1:227:3 | var |
|
||||
| tst.js:229:1:229:22 | /** @ty ... ect} */ | tst.js:230:1:230:3 | var |
|
||||
| tst.js:232:1:243:3 | /**\\n * ... p10\\n */ | tst.js:244:1:244:3 | var |
|
||||
| tst.js:246:1:249:3 | /**\\n * ... e T\\n */ | tst.js:250:1:250:3 | var |
|
||||
| tst.js:252:1:252:18 | /** @return {T} */ | tst.js:253:1:253:3 | Foo |
|
||||
| tst.js:255:1:255:19 | /** @param {T} t */ | tst.js:256:1:256:3 | Foo |
|
||||
| tst.js:258:1:258:28 | /** @ty ... ng>} */ | tst.js:258:30:258:32 | var |
|
||||
| tst.js:259:11:259:38 | /** @ty ... ng>} */ | tst.js:259:40:259:40 | ( |
|
||||
| tst.js:261:1:265:3 | /**\\n * ... e T\\n */ | tst.js:266:1:266:3 | Bar |
|
||||
| tst.js:267:29:267:52 | // bar ... string> | tst.js:273:1:273:3 | var |
|
||||
| tst.js:269:1:272:3 | /**\\n * ... Val\\n */ | tst.js:273:1:273:3 | var |
|
||||
| tst.js:275:1:275:37 | /** @ty ... er>} */ | tst.js:275:39:275:41 | var |
|
||||
| tst.js:275:48:275:77 | // Key ... number. | tst.js:280:1:280:1 | X |
|
||||
| tst.js:277:1:279:3 | /**\\n * ... tor\\n */ | tst.js:280:1:280:1 | X |
|
||||
| tst.js:282:1:285:3 | /**\\n * ... tor\\n */ | tst.js:286:1:286:1 | Y |
|
||||
| tst.js:288:1:288:22 | /** @ty ... <X>} */ | tst.js:288:24:288:26 | var |
|
||||
| tst.js:289:1:289:22 | /** @ty ... <Y>} */ | tst.js:289:24:289:26 | var |
|
||||
| tst.js:291:14:291:21 | // Error | tst.js:292:1:292:4 | fooY |
|
||||
| tst.js:292:14:292:21 | // Error | tst.js:295:1:295:9 | takesFooY |
|
||||
| tst.js:294:1:294:28 | /** @pa ... fooY */ | tst.js:295:1:295:9 | takesFooY |
|
||||
| tst.js:297:18:297:23 | // OK. | tst.js:298:1:298:9 | takesFooY |
|
||||
| tst.js:298:18:298:25 | // Error | tst.js:304:1:304:1 | A |
|
||||
| tst.js:300:1:303:3 | /**\\n * ... e T\\n */ | tst.js:304:1:304:1 | A |
|
||||
| tst.js:306:1:306:19 | /** @param {T} t */ | tst.js:307:1:307:1 | A |
|
||||
| tst.js:309:1:312:3 | /**\\n * ... g>}\\n */ | tst.js:313:1:313:1 | B |
|
||||
| tst.js:315:1:319:3 | /**\\n * ... U>}\\n */ | tst.js:320:1:320:1 | C |
|
||||
| tst.js:322:1:325:3 | /**\\n * ... e T\\n */ | tst.js:326:1:326:3 | Foo |
|
||||
| tst.js:328:1:328:18 | /** @return {T} */ | tst.js:329:1:329:3 | Foo |
|
||||
| tst.js:331:1:335:3 | /**\\n * ... r>}\\n */ | tst.js:336:1:336:7 | FooImpl |
|
||||
| tst.js:336:27:336:72 | // Erro ... e twice | tst.js:343:1:343:8 | identity |
|
||||
| tst.js:338:1:342:3 | /**\\n * ... e T\\n */ | tst.js:343:1:343:8 | identity |
|
||||
| tst.js:345:1:345:21 | /** @ty ... ing} */ | tst.js:345:23:345:25 | var |
|
||||
| tst.js:345:72:345:76 | // OK | tst.js:346:23:346:25 | var |
|
||||
| tst.js:346:1:346:21 | /** @ty ... ber} */ | tst.js:346:23:346:25 | var |
|
||||
| tst.js:346:60:346:64 | // OK | tst.js:347:23:347:25 | var |
|
||||
| tst.js:347:1:347:21 | /** @ty ... ber} */ | tst.js:347:23:347:25 | var |
|
||||
| tst.js:347:62:347:77 | // Type mismatch | tst.js:349:33:349:35 | var |
|
||||
| tst.js:349:1:349:31 | /** @ty ... ned} */ | tst.js:349:33:349:35 | var |
|
||||
| tst.js:351:1:353:3 | /**\\n * ... ger\\n */ | tst.js:354:1:354:8 | function |
|
||||
| tst.js:356:1:359:3 | /**\\n * ... ion\\n */ | tst.js:360:1:360:8 | function |
|
||||
| tst.js:363:3:365:5 | /**\\n ... p\\n */ | tst.js:366:3:366:15 | classicMethod |
|
||||
| tst.js:368:3:370:5 | /**\\n ... p\\n */ | tst.js:371:3:371:13 | fancyMethod |
|
||||
| tst.js:375:3:377:5 | /**\\n ... p\\n */ | tst.js:378:3:378:13 | constructor |
|
||||
| tst.js:380:3:382:5 | /**\\n ... p\\n */ | tst.js:383:3:383:13 | classMethod |
|
||||
| tst.js:386:1:389:3 | /**\\n * ... } x\\n */ | tst.js:390:1:390:8 | function |
|
||||
test_JSDocTypeExpr
|
||||
| tst.js:10:11:10:16 | string | tst.js:10:4:10:8 | @type | 0 |
|
||||
| tst.js:23:14:23:20 | boolean | tst.js:23:5:23:11 | @define | 0 |
|
||||
| tst.js:26:14:26:20 | boolean | tst.js:26:5:26:11 | @define | 0 |
|
||||
| tst.js:31:13:31:19 | boolean | tst.js:31:4:31:10 | @return | 0 |
|
||||
| tst.js:53:11:53:16 | number | tst.js:53:4:53:8 | @enum | 0 |
|
||||
| tst.js:68:14:68:34 | goog.ds.BasicNodeList | tst.js:68:4:68:11 | @extends | 0 |
|
||||
| tst.js:95:17:95:21 | Shape | tst.js:95:4:95:14 | @implements | 0 |
|
||||
| tst.js:110:14:110:18 | Shape | tst.js:110:4:110:11 | @extends | 0 |
|
||||
| tst.js:134:13:134:18 | Object | tst.js:134:4:134:10 | @return | 0 |
|
||||
| tst.js:142:12:142:17 | number | tst.js:142:4:142:9 | @param | 0 |
|
||||
| tst.js:143:12:143:17 | string | tst.js:143:12:143:29 | (string\|number\|null) | 0 |
|
||||
| tst.js:143:12:143:29 | (string\|number\|null) | tst.js:143:4:143:9 | @param | 0 |
|
||||
| tst.js:143:19:143:24 | number | tst.js:143:12:143:29 | (string\|number\|null) | 1 |
|
||||
| tst.js:143:26:143:29 | null | tst.js:143:12:143:29 | (string\|number\|null) | 2 |
|
||||
| tst.js:155:11:155:18 | Function | tst.js:155:11:155:20 | Array.<Function> | 0 |
|
||||
| tst.js:155:11:155:20 | Array | tst.js:155:11:155:20 | Array.<Function> | -1 |
|
||||
| tst.js:155:11:155:20 | Array.<Function> | tst.js:155:4:155:8 | @type | 0 |
|
||||
| tst.js:163:12:163:18 | Element | tst.js:163:4:163:9 | @param | 0 |
|
||||
| tst.js:171:13:171:18 | string | tst.js:171:4:171:10 | @return | 0 |
|
||||
| tst.js:199:21:199:27 | Element | tst.js:199:12:199:18 | @return | 0 |
|
||||
| tst.js:206:13:206:24 | DOMException | tst.js:206:4:206:10 | @throws | 0 |
|
||||
| tst.js:212:11:212:16 | string | tst.js:212:4:212:8 | @type | 0 |
|
||||
| tst.js:216:15:216:29 | (string\|number) | tst.js:216:5:216:12 | @typedef | 0 |
|
||||
| tst.js:216:16:216:21 | string | tst.js:216:15:216:29 | (string\|number) | 0 |
|
||||
| tst.js:216:23:216:28 | number | tst.js:216:15:216:29 | (string\|number) | 1 |
|
||||
| tst.js:219:13:219:27 | goog.NumberLike | tst.js:219:5:219:10 | @param | 0 |
|
||||
| tst.js:223:12:223:36 | {myNum: number, myObject} | tst.js:223:5:223:9 | @type | 0 |
|
||||
| tst.js:223:20:223:25 | number | tst.js:223:12:223:36 | {myNum: number, myObject} | 0 |
|
||||
| tst.js:226:12:226:17 | number | tst.js:226:12:226:18 | number? | 0 |
|
||||
| tst.js:226:12:226:18 | number? | tst.js:226:5:226:9 | @type | 0 |
|
||||
| tst.js:229:12:229:18 | !Object | tst.js:229:5:229:9 | @type | 0 |
|
||||
| tst.js:229:13:229:18 | Object | tst.js:229:12:229:18 | !Object | 0 |
|
||||
| tst.js:233:12:233:36 | function (string, boolean) | tst.js:233:4:233:9 | @param | 0 |
|
||||
| tst.js:233:21:233:26 | string | tst.js:233:12:233:36 | function (string, boolean) | 0 |
|
||||
| tst.js:233:29:233:35 | boolean | tst.js:233:12:233:36 | function (string, boolean) | 1 |
|
||||
| tst.js:234:12:234:29 | function (): number | tst.js:234:4:234:9 | @param | 0 |
|
||||
| tst.js:234:24:234:29 | number | tst.js:234:12:234:29 | function (): number | -1 |
|
||||
| tst.js:235:12:235:46 | function (this: goog.ui.Menu, string) | tst.js:235:4:235:9 | @param | 0 |
|
||||
| tst.js:235:26:235:37 | goog.ui.Menu | tst.js:235:12:235:46 | function (this: goog.ui.Menu, string) | -2 |
|
||||
| tst.js:235:40:235:45 | string | tst.js:235:12:235:46 | function (this: goog.ui.Menu, string) | 0 |
|
||||
| tst.js:236:12:236:45 | function (new: goog.ui.Menu, string) | tst.js:236:4:236:9 | @param | 0 |
|
||||
| tst.js:236:25:236:36 | goog.ui.Menu | tst.js:236:12:236:45 | function (new: goog.ui.Menu, string) | -2 |
|
||||
| tst.js:236:39:236:44 | string | tst.js:236:12:236:45 | function (new: goog.ui.Menu, string) | 0 |
|
||||
| tst.js:237:12:237:48 | function (string, ...[number]): number | tst.js:237:4:237:9 | @param | 0 |
|
||||
| tst.js:237:21:237:26 | string | tst.js:237:12:237:48 | function (string, ...[number]): number | 0 |
|
||||
| tst.js:237:32:237:39 | ...[number] | tst.js:237:12:237:48 | function (string, ...[number]): number | 1 |
|
||||
| tst.js:237:32:237:39 | [number] | tst.js:237:32:237:39 | ...[number] | 0 |
|
||||
| tst.js:237:33:237:38 | number | tst.js:237:32:237:39 | [number] | 0 |
|
||||
| tst.js:237:43:237:48 | number | tst.js:237:12:237:48 | function (string, ...[number]): number | -1 |
|
||||
| tst.js:238:12:238:20 | ...number | tst.js:238:4:238:9 | @param | 0 |
|
||||
| tst.js:238:15:238:20 | number | tst.js:238:12:238:20 | ...number | 0 |
|
||||
| tst.js:239:12:239:17 | number | tst.js:239:12:239:18 | number= | 0 |
|
||||
| tst.js:239:12:239:18 | number= | tst.js:239:4:239:9 | @param | 0 |
|
||||
| tst.js:240:12:240:38 | function (?string=, number=) | tst.js:240:4:240:9 | @param | 0 |
|
||||
| tst.js:240:21:240:27 | ?string | tst.js:240:21:240:28 | ?string= | 0 |
|
||||
| tst.js:240:21:240:28 | ?string= | tst.js:240:12:240:38 | function (?string=, number=) | 0 |
|
||||
| tst.js:240:22:240:27 | string | tst.js:240:21:240:27 | ?string | 0 |
|
||||
| tst.js:240:31:240:36 | number | tst.js:240:31:240:37 | number= | 0 |
|
||||
| tst.js:240:31:240:37 | number= | tst.js:240:12:240:38 | function (?string=, number=) | 1 |
|
||||
| tst.js:241:12:241:12 | * | tst.js:241:4:241:9 | @param | 0 |
|
||||
| tst.js:242:12:242:12 | ? | tst.js:242:4:242:9 | @param | 0 |
|
||||
| tst.js:252:14:252:14 | T | tst.js:252:5:252:11 | @return | 0 |
|
||||
| tst.js:255:13:255:13 | T | tst.js:255:5:255:10 | @param | 0 |
|
||||
| tst.js:258:12:258:24 | !Foo.<string> | tst.js:258:5:258:9 | @type | 0 |
|
||||
| tst.js:258:13:258:15 | Foo | tst.js:258:13:258:24 | Foo.<string> | -1 |
|
||||
| tst.js:258:13:258:24 | Foo.<string> | tst.js:258:12:258:24 | !Foo.<string> | 0 |
|
||||
| tst.js:258:18:258:23 | string | tst.js:258:13:258:24 | Foo.<string> | 0 |
|
||||
| tst.js:259:22:259:34 | !Foo.<string> | tst.js:259:15:259:19 | @type | 0 |
|
||||
| tst.js:259:23:259:25 | Foo | tst.js:259:23:259:34 | Foo.<string> | -1 |
|
||||
| tst.js:259:23:259:34 | Foo.<string> | tst.js:259:22:259:34 | !Foo.<string> | 0 |
|
||||
| tst.js:259:28:259:33 | string | tst.js:259:23:259:34 | Foo.<string> | 0 |
|
||||
| tst.js:262:12:262:12 | T | tst.js:262:4:262:9 | @param | 0 |
|
||||
| tst.js:275:12:275:16 | MyMap | tst.js:275:12:275:33 | MyMap.<string, number> | -1 |
|
||||
| tst.js:275:12:275:33 | MyMap.<string, number> | tst.js:275:5:275:9 | @type | 0 |
|
||||
| tst.js:275:19:275:24 | string | tst.js:275:12:275:33 | MyMap.<string, number> | 0 |
|
||||
| tst.js:275:27:275:32 | number | tst.js:275:12:275:33 | MyMap.<string, number> | 1 |
|
||||
| tst.js:283:14:283:14 | X | tst.js:283:4:283:11 | @extends | 0 |
|
||||
| tst.js:288:12:288:14 | Foo | tst.js:288:12:288:18 | Foo.<X> | -1 |
|
||||
| tst.js:288:12:288:18 | Foo.<X> | tst.js:288:5:288:9 | @type | 0 |
|
||||
| tst.js:288:17:288:17 | X | tst.js:288:12:288:18 | Foo.<X> | 0 |
|
||||
| tst.js:289:12:289:14 | Foo | tst.js:289:12:289:18 | Foo.<Y> | -1 |
|
||||
| tst.js:289:12:289:18 | Foo.<Y> | tst.js:289:5:289:9 | @type | 0 |
|
||||
| tst.js:289:17:289:17 | Y | tst.js:289:12:289:18 | Foo.<Y> | 0 |
|
||||
| tst.js:294:13:294:15 | Foo | tst.js:294:13:294:19 | Foo.<Y> | -1 |
|
||||
| tst.js:294:13:294:19 | Foo.<Y> | tst.js:294:5:294:10 | @param | 0 |
|
||||
| tst.js:294:18:294:18 | Y | tst.js:294:13:294:19 | Foo.<Y> | 0 |
|
||||
| tst.js:306:13:306:13 | T | tst.js:306:5:306:10 | @param | 0 |
|
||||
| tst.js:311:14:311:14 | A | tst.js:311:14:311:23 | A.<string> | -1 |
|
||||
| tst.js:311:14:311:23 | A.<string> | tst.js:311:4:311:11 | @extends | 0 |
|
||||
| tst.js:311:17:311:22 | string | tst.js:311:14:311:23 | A.<string> | 0 |
|
||||
| tst.js:318:14:318:14 | A | tst.js:318:14:318:18 | A.<U> | -1 |
|
||||
| tst.js:318:14:318:18 | A.<U> | tst.js:318:4:318:11 | @extends | 0 |
|
||||
| tst.js:318:17:318:17 | U | tst.js:318:14:318:18 | A.<U> | 0 |
|
||||
| tst.js:328:14:328:14 | T | tst.js:328:5:328:11 | @return | 0 |
|
||||
| tst.js:333:17:333:19 | Foo | tst.js:333:17:333:28 | Foo.<string> | -1 |
|
||||
| tst.js:333:17:333:28 | Foo.<string> | tst.js:333:4:333:14 | @implements | 0 |
|
||||
| tst.js:333:22:333:27 | string | tst.js:333:17:333:28 | Foo.<string> | 0 |
|
||||
| tst.js:334:17:334:19 | Foo | tst.js:334:17:334:28 | Foo.<number> | -1 |
|
||||
| tst.js:334:17:334:28 | Foo.<number> | tst.js:334:4:334:14 | @implements | 0 |
|
||||
| tst.js:334:22:334:27 | number | tst.js:334:17:334:28 | Foo.<number> | 0 |
|
||||
| tst.js:339:12:339:12 | T | tst.js:339:4:339:9 | @param | 0 |
|
||||
| tst.js:340:13:340:13 | T | tst.js:340:4:340:10 | @return | 0 |
|
||||
| tst.js:345:12:345:17 | string | tst.js:345:5:345:9 | @type | 0 |
|
||||
| tst.js:346:12:346:17 | number | tst.js:346:5:346:9 | @type | 0 |
|
||||
| tst.js:347:12:347:17 | number | tst.js:347:5:347:9 | @type | 0 |
|
||||
| tst.js:349:12:349:17 | string | tst.js:349:12:349:27 | (string\|undefined) | 0 |
|
||||
| tst.js:349:12:349:27 | (string\|undefined) | tst.js:349:5:349:9 | @type | 0 |
|
||||
| tst.js:349:19:349:27 | undefined | tst.js:349:12:349:27 | (string\|undefined) | 1 |
|
||||
| tst.js:357:12:357:16 | Array | tst.js:357:12:357:25 | Array.<number> | -1 |
|
||||
| tst.js:357:12:357:25 | Array.<number> | tst.js:357:4:357:9 | @param | 0 |
|
||||
| tst.js:357:19:357:24 | number | tst.js:357:12:357:25 | Array.<number> | 0 |
|
||||
| tst.js:358:12:358:48 | function (x: !number, y: !number): number | tst.js:358:4:358:9 | @param | 0 |
|
||||
| tst.js:358:23:358:29 | !number | tst.js:358:12:358:48 | function (x: !number, y: !number): number | 0 |
|
||||
| tst.js:358:24:358:29 | number | tst.js:358:23:358:29 | !number | 0 |
|
||||
| tst.js:358:34:358:40 | !number | tst.js:358:12:358:48 | function (x: !number, y: !number): number | 1 |
|
||||
| tst.js:358:35:358:40 | number | tst.js:358:34:358:40 | !number | 0 |
|
||||
| tst.js:358:43:358:48 | number | tst.js:358:12:358:48 | function (x: !number, y: !number): number | -1 |
|
||||
| tst.js:364:14:364:15 | T1 | tst.js:364:6:364:11 | @param | 0 |
|
||||
| tst.js:369:14:369:15 | T2 | tst.js:369:6:369:11 | @param | 0 |
|
||||
| tst.js:376:14:376:15 | T3 | tst.js:376:6:376:11 | @param | 0 |
|
||||
| tst.js:381:14:381:15 | T4 | tst.js:381:6:381:11 | @param | 0 |
|
||||
| tst.js:387:12:387:16 | Array | tst.js:387:12:388:13 | Array.<number> | -1 |
|
||||
| tst.js:387:12:388:13 | Array.<number> | tst.js:387:4:387:9 | @param | 0 |
|
||||
| tst.js:388:7:388:12 | number | tst.js:387:12:388:13 | Array.<number> | 0 |
|
||||
test_JSDocOptionalParameterTypeExpr
|
||||
| tst.js:239:12:239:18 | number= | tst.js:239:12:239:17 | number |
|
||||
| tst.js:240:21:240:28 | ?string= | tst.js:240:21:240:27 | ?string |
|
||||
| tst.js:240:31:240:37 | number= | tst.js:240:31:240:36 | number |
|
||||
test_getParameterTag
|
||||
| tst.js:146:37:146:44 | groupNum | groupNum | tst.js:142:4:142:9 | @param | groupNum | tst.js:142:12:142:17 | number |
|
||||
| tst.js:146:47:146:50 | term | term | tst.js:143:4:143:9 | @param | term | tst.js:143:12:143:29 | (string\|number\|null) |
|
||||
| tst.js:166:59:166:65 | element | element | tst.js:163:4:163:9 | @param | element | tst.js:163:12:163:18 | Element |
|
||||
| tst.js:220:28:220:28 | x | x | tst.js:219:5:219:10 | @param | x | tst.js:219:13:219:27 | goog.NumberLike |
|
||||
| tst.js:256:30:256:30 | t | t | tst.js:255:5:255:10 | @param | t | tst.js:255:13:255:13 | T |
|
||||
| tst.js:266:16:266:16 | t | t | tst.js:262:4:262:9 | @param | t | tst.js:262:12:262:12 | T |
|
||||
| tst.js:295:22:295:25 | fooY | fooY | tst.js:294:5:294:10 | @param | fooY | tst.js:294:13:294:19 | Foo.<Y> |
|
||||
| tst.js:307:31:307:31 | t | t | tst.js:306:5:306:10 | @param | t | tst.js:306:13:306:13 | T |
|
||||
| tst.js:343:21:343:21 | a | a | tst.js:339:4:339:9 | @param | a | tst.js:339:12:339:12 | T |
|
||||
| tst.js:360:15:360:19 | array | array | tst.js:357:4:357:9 | @param | array | tst.js:357:12:357:25 | Array.<number> |
|
||||
| tst.js:360:22:360:23 | fn | fn | tst.js:358:4:358:9 | @param | fn | tst.js:358:12:358:48 | function (x: !number, y: !number): number |
|
||||
| tst.js:366:27:366:27 | p | p | tst.js:364:6:364:11 | @param | p | tst.js:364:14:364:15 | T1 |
|
||||
| tst.js:371:15:371:15 | p | p | tst.js:369:6:369:11 | @param | p | tst.js:369:14:369:15 | T2 |
|
||||
| tst.js:378:15:378:15 | p | p | tst.js:376:6:376:11 | @param | p | tst.js:376:14:376:15 | T3 |
|
||||
| tst.js:383:15:383:15 | p | p | tst.js:381:6:381:11 | @param | p | tst.js:381:14:381:15 | T4 |
|
||||
| tst.js:390:20:390:20 | x | x | tst.js:387:4:387:9 | @param | x | tst.js:387:12:388:13 | Array.<number> |
|
||||
test_JSDocAppliedTypeExpr
|
||||
| tst.js:155:11:155:20 | Array.<Function> | tst.js:155:11:155:20 | Array | 0 | tst.js:155:11:155:18 | Function |
|
||||
| tst.js:258:13:258:24 | Foo.<string> | tst.js:258:13:258:15 | Foo | 0 | tst.js:258:18:258:23 | string |
|
||||
| tst.js:259:23:259:34 | Foo.<string> | tst.js:259:23:259:25 | Foo | 0 | tst.js:259:28:259:33 | string |
|
||||
| tst.js:275:12:275:33 | MyMap.<string, number> | tst.js:275:12:275:16 | MyMap | 0 | tst.js:275:19:275:24 | string |
|
||||
| tst.js:275:12:275:33 | MyMap.<string, number> | tst.js:275:12:275:16 | MyMap | 1 | tst.js:275:27:275:32 | number |
|
||||
| tst.js:288:12:288:18 | Foo.<X> | tst.js:288:12:288:14 | Foo | 0 | tst.js:288:17:288:17 | X |
|
||||
| tst.js:289:12:289:18 | Foo.<Y> | tst.js:289:12:289:14 | Foo | 0 | tst.js:289:17:289:17 | Y |
|
||||
| tst.js:294:13:294:19 | Foo.<Y> | tst.js:294:13:294:15 | Foo | 0 | tst.js:294:18:294:18 | Y |
|
||||
| tst.js:311:14:311:23 | A.<string> | tst.js:311:14:311:14 | A | 0 | tst.js:311:17:311:22 | string |
|
||||
| tst.js:318:14:318:18 | A.<U> | tst.js:318:14:318:14 | A | 0 | tst.js:318:17:318:17 | U |
|
||||
| tst.js:333:17:333:28 | Foo.<string> | tst.js:333:17:333:19 | Foo | 0 | tst.js:333:22:333:27 | string |
|
||||
| tst.js:334:17:334:28 | Foo.<number> | tst.js:334:17:334:19 | Foo | 0 | tst.js:334:22:334:27 | number |
|
||||
| tst.js:357:12:357:25 | Array.<number> | tst.js:357:12:357:16 | Array | 0 | tst.js:357:19:357:24 | number |
|
||||
| tst.js:387:12:388:13 | Array.<number> | tst.js:387:12:387:16 | Array | 0 | tst.js:388:7:388:12 | number |
|
||||
test_JSDocNonNullableTypeExpr
|
||||
| tst.js:229:12:229:18 | !Object | tst.js:229:13:229:18 | Object | prefix |
|
||||
| tst.js:258:12:258:24 | !Foo.<string> | tst.js:258:13:258:24 | Foo.<string> | prefix |
|
||||
| tst.js:259:22:259:34 | !Foo.<string> | tst.js:259:23:259:34 | Foo.<string> | prefix |
|
||||
| tst.js:358:23:358:29 | !number | tst.js:358:24:358:29 | number | prefix |
|
||||
| tst.js:358:34:358:40 | !number | tst.js:358:35:358:40 | number | prefix |
|
||||
test_ParExpr_getDocumentation
|
||||
| tst.js:117:42:119:10 | ({\\n ... }) | tst.js:117:9:117:40 | /** @le ... ype} */ |
|
||||
| tst.js:259:40:259:50 | (new Foo()) | tst.js:259:11:259:38 | /** @ty ... ng>} */ |
|
||||
|
||||
@@ -1,31 +1,3 @@
|
||||
test_ModuleImportNode
|
||||
| amd1.js:1:25:1:26 | fs | fs | amd1.js:1:25:1:26 | fs | fs |
|
||||
| amd1.js:1:25:1:26 | fs | fs | amd1.js:2:3:2:4 | fs | fs |
|
||||
| amd2.js:2:12:2:24 | require('fs') | fs | amd2.js:3:3:3:4 | fs | fs |
|
||||
| client1.ts:4:28:4:29 | F1 | framework1 | client1.ts:4:28:4:29 | F1 | F1 |
|
||||
| client1.ts:6:9:6:11 | net | net | client1.ts:6:9:6:11 | net | net |
|
||||
| client2.ts:4:28:4:29 | F2 | framework2 | client2.ts:4:28:4:29 | F2 | F2 |
|
||||
| client2_lazy.ts:4:28:4:29 | F2 | framework2 | client2_lazy.ts:4:28:4:29 | F2 | F2 |
|
||||
| instanceThroughDefaultImport.js:1:8:1:42 | myDefau ... nceName | myDefaultImportedModuleInstance | instanceThroughDefaultImport.js:2:1:2:35 | myDefau ... nceName | myDefaultImportedModuleInstanceName |
|
||||
| instanceThroughDefaultImport.js:1:8:1:42 | myDefau ... nceName | myDefaultImportedModuleInstance | instanceThroughDefaultImport.js:4:5:4:39 | myDefau ... nceName | myDefaultImportedModuleInstanceName |
|
||||
| instanceThroughNamespaceImport.js:1:8:1:49 | * as my ... nceName | myNamespaceImportedModuleInstance | instanceThroughNamespaceImport.js:2:1:2:37 | myNames ... nceName | myNamespaceImportedModuleInstanceName |
|
||||
| instanceThroughNamespaceImport.js:1:8:1:49 | * as my ... nceName | myNamespaceImportedModuleInstance | instanceThroughNamespaceImport.js:4:5:4:41 | myNames ... nceName | myNamespaceImportedModuleInstanceName |
|
||||
| instanceThroughRequire.js:1:36:1:70 | require ... tance') | myRequiredModuleInstance | instanceThroughRequire.js:2:1:2:28 | myRequi ... nceName | myRequiredModuleInstanceName |
|
||||
| instanceThroughRequire.js:1:36:1:70 | require ... tance') | myRequiredModuleInstance | instanceThroughRequire.js:4:5:4:32 | myRequi ... nceName | myRequiredModuleInstanceName |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:3:1:3:3 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:5:9:5:11 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:8:9:8:11 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:11:1:11:3 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:13:1:13:3 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:15:5:15:7 | mod | mod |
|
||||
| process2.js:2:10:2:16 | process | process | process2.js:2:10:2:16 | process | process |
|
||||
test_ModuleImportNode_getAConstructorInvocation
|
||||
| client1.ts:4:28:4:29 | F1 | client1.ts:4:24:4:41 | new F1.Component() |
|
||||
| client2.ts:4:28:4:29 | F2 | client2.ts:4:24:4:41 | new F2.Component() |
|
||||
| client2_lazy.ts:4:28:4:29 | F2 | client2_lazy.ts:4:24:4:41 | new F2.Component() |
|
||||
| destructuringES6.js:1:1:1:41 | import ... ctron'; | destructuringES6.js:2:1:2:19 | new BrowserWindow() |
|
||||
| destructuringRequire.js:1:27:1:45 | require('electron') | destructuringRequire.js:2:1:2:19 | new BrowserWindow() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:9:1:9:7 | new K() |
|
||||
test_moduleImport
|
||||
| electron | destructuringES6.js:1:1:1:41 | import ... ctron'; |
|
||||
| electron | destructuringRequire.js:1:27:1:45 | require('electron') |
|
||||
@@ -64,6 +36,43 @@ test_moduleMember
|
||||
| mod | moduleMethod | moduleUses.js:3:1:3:16 | mod.moduleMethod |
|
||||
| myDefaultImportedModuleInstance | default | instanceThroughDefaultImport.js:1:8:1:42 | myDefau ... nceName |
|
||||
| net | createServer | client1.ts:6:9:6:24 | net.createServer |
|
||||
test_ModuleImportNode
|
||||
| amd1.js:1:25:1:26 | fs | fs | amd1.js:1:25:1:26 | fs | fs |
|
||||
| amd1.js:1:25:1:26 | fs | fs | amd1.js:2:3:2:4 | fs | fs |
|
||||
| amd2.js:2:12:2:24 | require('fs') | fs | amd2.js:3:3:3:4 | fs | fs |
|
||||
| client1.ts:4:28:4:29 | F1 | framework1 | client1.ts:4:28:4:29 | F1 | F1 |
|
||||
| client1.ts:6:9:6:11 | net | net | client1.ts:6:9:6:11 | net | net |
|
||||
| client2.ts:4:28:4:29 | F2 | framework2 | client2.ts:4:28:4:29 | F2 | F2 |
|
||||
| client2_lazy.ts:4:28:4:29 | F2 | framework2 | client2_lazy.ts:4:28:4:29 | F2 | F2 |
|
||||
| instanceThroughDefaultImport.js:1:8:1:42 | myDefau ... nceName | myDefaultImportedModuleInstance | instanceThroughDefaultImport.js:2:1:2:35 | myDefau ... nceName | myDefaultImportedModuleInstanceName |
|
||||
| instanceThroughDefaultImport.js:1:8:1:42 | myDefau ... nceName | myDefaultImportedModuleInstance | instanceThroughDefaultImport.js:4:5:4:39 | myDefau ... nceName | myDefaultImportedModuleInstanceName |
|
||||
| instanceThroughNamespaceImport.js:1:8:1:49 | * as my ... nceName | myNamespaceImportedModuleInstance | instanceThroughNamespaceImport.js:2:1:2:37 | myNames ... nceName | myNamespaceImportedModuleInstanceName |
|
||||
| instanceThroughNamespaceImport.js:1:8:1:49 | * as my ... nceName | myNamespaceImportedModuleInstance | instanceThroughNamespaceImport.js:4:5:4:41 | myNames ... nceName | myNamespaceImportedModuleInstanceName |
|
||||
| instanceThroughRequire.js:1:36:1:70 | require ... tance') | myRequiredModuleInstance | instanceThroughRequire.js:2:1:2:28 | myRequi ... nceName | myRequiredModuleInstanceName |
|
||||
| instanceThroughRequire.js:1:36:1:70 | require ... tance') | myRequiredModuleInstance | instanceThroughRequire.js:4:5:4:32 | myRequi ... nceName | myRequiredModuleInstanceName |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:3:1:3:3 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:5:9:5:11 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:8:9:8:11 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:11:1:11:3 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:13:1:13:3 | mod | mod |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | mod | moduleUses.js:15:5:15:7 | mod | mod |
|
||||
| process2.js:2:10:2:16 | process | process | process2.js:2:10:2:16 | process | process |
|
||||
test_moduleImportProp
|
||||
| electron | BrowserWindow | destructuringES6.js:1:10:1:22 | BrowserWindow |
|
||||
| electron | BrowserWindow | destructuringRequire.js:1:9:1:21 | BrowserWindow |
|
||||
| foo | C | declare-module-client2.ts:3:9:3:9 | C |
|
||||
| foo | C | declare-module-client.ts:3:9:3:9 | C |
|
||||
| framework1 | Component | client1.ts:4:28:4:39 | F1.Component |
|
||||
| framework2 | Component | client2.ts:4:28:4:39 | F2.Component |
|
||||
| framework2 | Component | client2_lazy.ts:4:28:4:39 | F2.Component |
|
||||
| fs | readFileSync | amd1.js:2:3:2:17 | fs.readFileSync |
|
||||
| fs | readFileSync | amd2.js:3:3:3:17 | fs.readFileSync |
|
||||
| mod | constructorFunction | moduleUses.js:8:9:8:31 | mod.con ... unction |
|
||||
| mod | moduleField | moduleUses.js:11:1:11:15 | mod.moduleField |
|
||||
| mod | moduleFunction | moduleUses.js:5:9:5:26 | mod.moduleFunction |
|
||||
| mod | moduleMethod | moduleUses.js:3:1:3:16 | mod.moduleMethod |
|
||||
| myDefaultImportedModuleInstance | default | instanceThroughDefaultImport.js:1:8:1:42 | myDefau ... nceName |
|
||||
| net | createServer | client1.ts:6:9:6:24 | net.createServer |
|
||||
test_ModuleImportNode_getPath
|
||||
| amd1.js:1:25:1:26 | fs | fs |
|
||||
| amd2.js:2:12:2:24 | require('fs') | fs |
|
||||
@@ -86,45 +95,17 @@ test_ModuleImportNode_getPath
|
||||
| process2.js:1:1:1:13 | require('fs') | fs |
|
||||
| process2.js:2:10:2:16 | process | process |
|
||||
| process.js:1:10:1:27 | require('process') | process |
|
||||
test_ModuleImportNode_getAMethodCall
|
||||
| amd1.js:1:25:1:26 | fs | amd1.js:2:3:2:29 | fs.read ... a.txt") |
|
||||
| amd2.js:2:12:2:24 | require('fs') | amd2.js:3:3:3:29 | fs.read ... a.txt") |
|
||||
| client1.ts:6:9:6:11 | net | client1.ts:6:9:6:26 | net.createServer() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:3:1:3:18 | mod.moduleMethod() |
|
||||
test_ModuleImportNode_getAMemberInvocation
|
||||
| amd1.js:1:25:1:26 | fs | amd1.js:2:3:2:29 | fs.read ... a.txt") |
|
||||
| amd2.js:2:12:2:24 | require('fs') | amd2.js:3:3:3:29 | fs.read ... a.txt") |
|
||||
| client1.ts:4:28:4:29 | F1 | client1.ts:4:24:4:41 | new F1.Component() |
|
||||
| client1.ts:6:9:6:11 | net | client1.ts:6:9:6:26 | net.createServer() |
|
||||
| client2.ts:4:28:4:29 | F2 | client2.ts:4:24:4:41 | new F2.Component() |
|
||||
| client2_lazy.ts:4:28:4:29 | F2 | client2_lazy.ts:4:24:4:41 | new F2.Component() |
|
||||
| destructuringES6.js:1:1:1:41 | import ... ctron'; | destructuringES6.js:2:1:2:19 | new BrowserWindow() |
|
||||
| destructuringRequire.js:1:27:1:45 | require('electron') | destructuringRequire.js:2:1:2:19 | new BrowserWindow() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:3:1:3:18 | mod.moduleMethod() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:6:1:6:3 | f() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:9:1:9:7 | new K() |
|
||||
test_moduleImportProp
|
||||
| electron | BrowserWindow | destructuringES6.js:1:10:1:22 | BrowserWindow |
|
||||
| electron | BrowserWindow | destructuringRequire.js:1:9:1:21 | BrowserWindow |
|
||||
| foo | C | declare-module-client2.ts:3:9:3:9 | C |
|
||||
| foo | C | declare-module-client.ts:3:9:3:9 | C |
|
||||
| framework1 | Component | client1.ts:4:28:4:39 | F1.Component |
|
||||
| framework2 | Component | client2.ts:4:28:4:39 | F2.Component |
|
||||
| framework2 | Component | client2_lazy.ts:4:28:4:39 | F2.Component |
|
||||
| fs | readFileSync | amd1.js:2:3:2:17 | fs.readFileSync |
|
||||
| fs | readFileSync | amd2.js:3:3:3:17 | fs.readFileSync |
|
||||
| mod | constructorFunction | moduleUses.js:8:9:8:31 | mod.con ... unction |
|
||||
| mod | moduleField | moduleUses.js:11:1:11:15 | mod.moduleField |
|
||||
| mod | moduleFunction | moduleUses.js:5:9:5:26 | mod.moduleFunction |
|
||||
| mod | moduleMethod | moduleUses.js:3:1:3:16 | mod.moduleMethod |
|
||||
| myDefaultImportedModuleInstance | default | instanceThroughDefaultImport.js:1:8:1:42 | myDefau ... nceName |
|
||||
| net | createServer | client1.ts:6:9:6:24 | net.createServer |
|
||||
test_ModuleImportNode_getAMemberCall
|
||||
| amd1.js:1:25:1:26 | fs | amd1.js:2:3:2:29 | fs.read ... a.txt") |
|
||||
| amd2.js:2:12:2:24 | require('fs') | amd2.js:3:3:3:29 | fs.read ... a.txt") |
|
||||
| client1.ts:6:9:6:11 | net | client1.ts:6:9:6:26 | net.createServer() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:3:1:3:18 | mod.moduleMethod() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:6:1:6:3 | f() |
|
||||
test_ModuleImportNode_getAMethodCall
|
||||
| amd1.js:1:25:1:26 | fs | amd1.js:2:3:2:29 | fs.read ... a.txt") |
|
||||
| amd2.js:2:12:2:24 | require('fs') | amd2.js:3:3:3:29 | fs.read ... a.txt") |
|
||||
| client1.ts:6:9:6:11 | net | client1.ts:6:9:6:26 | net.createServer() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:3:1:3:18 | mod.moduleMethod() |
|
||||
test_ModuleImportNode_getAPropertyRead
|
||||
| amd1.js:1:25:1:26 | fs | amd1.js:2:3:2:17 | fs.readFileSync |
|
||||
| amd2.js:2:12:2:24 | require('fs') | amd2.js:3:3:3:17 | fs.readFileSync |
|
||||
@@ -141,3 +122,22 @@ test_ModuleImportNode_getAPropertyRead
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:5:9:5:26 | mod.moduleFunction |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:8:9:8:31 | mod.con ... unction |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:11:1:11:15 | mod.moduleField |
|
||||
test_ModuleImportNode_getAMemberInvocation
|
||||
| amd1.js:1:25:1:26 | fs | amd1.js:2:3:2:29 | fs.read ... a.txt") |
|
||||
| amd2.js:2:12:2:24 | require('fs') | amd2.js:3:3:3:29 | fs.read ... a.txt") |
|
||||
| client1.ts:4:28:4:29 | F1 | client1.ts:4:24:4:41 | new F1.Component() |
|
||||
| client1.ts:6:9:6:11 | net | client1.ts:6:9:6:26 | net.createServer() |
|
||||
| client2.ts:4:28:4:29 | F2 | client2.ts:4:24:4:41 | new F2.Component() |
|
||||
| client2_lazy.ts:4:28:4:29 | F2 | client2_lazy.ts:4:24:4:41 | new F2.Component() |
|
||||
| destructuringES6.js:1:1:1:41 | import ... ctron'; | destructuringES6.js:2:1:2:19 | new BrowserWindow() |
|
||||
| destructuringRequire.js:1:27:1:45 | require('electron') | destructuringRequire.js:2:1:2:19 | new BrowserWindow() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:3:1:3:18 | mod.moduleMethod() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:6:1:6:3 | f() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:9:1:9:7 | new K() |
|
||||
test_ModuleImportNode_getAConstructorInvocation
|
||||
| client1.ts:4:28:4:29 | F1 | client1.ts:4:24:4:41 | new F1.Component() |
|
||||
| client2.ts:4:28:4:29 | F2 | client2.ts:4:24:4:41 | new F2.Component() |
|
||||
| client2_lazy.ts:4:28:4:29 | F2 | client2_lazy.ts:4:24:4:41 | new F2.Component() |
|
||||
| destructuringES6.js:1:1:1:41 | import ... ctron'; | destructuringES6.js:2:1:2:19 | new BrowserWindow() |
|
||||
| destructuringRequire.js:1:27:1:45 | require('electron') | destructuringRequire.js:2:1:2:19 | new BrowserWindow() |
|
||||
| moduleUses.js:1:11:1:24 | require('mod') | moduleUses.js:9:1:9:7 | new K() |
|
||||
|
||||
@@ -1,3 +1,40 @@
|
||||
test_PromiseDefinition
|
||||
| flow.js:7:11:7:59 | new Pro ... ource)) |
|
||||
| flow.js:10:11:10:58 | new Pro ... ource)) |
|
||||
| flow.js:13:11:13:58 | new Pro ... ource)) |
|
||||
| flow.js:24:2:24:49 | new Pro ... ource)) |
|
||||
| flow.js:26:2:26:49 | new Pro ... ource)) |
|
||||
| flow.js:32:2:32:49 | new Pro ... ource)) |
|
||||
| flow.js:40:2:40:49 | new Pro ... ource)) |
|
||||
| flow.js:42:2:42:49 | new Pro ... ource)) |
|
||||
| flow.js:48:2:48:36 | new Pro ... urce }) |
|
||||
| flow.js:55:11:55:58 | new Pro ... ource)) |
|
||||
| flow.js:60:12:60:59 | new Pro ... ource)) |
|
||||
| flow.js:65:9:65:56 | new Pro ... ource)) |
|
||||
| flow.js:74:10:74:57 | new Pro ... ource)) |
|
||||
| flow.js:86:23:86:70 | new Pro ... ource)) |
|
||||
| flow.js:91:21:91:68 | new Pro ... ource)) |
|
||||
| flow.js:100:34:100:81 | new Pro ... ource)) |
|
||||
| flow.js:103:2:103:48 | new Pro ... "BLA")) |
|
||||
| flow.js:105:2:105:48 | new Pro ... "BLA")) |
|
||||
| flow.js:107:17:107:64 | new Pro ... ource)) |
|
||||
| flow.js:109:2:109:48 | new Pro ... "BLA")) |
|
||||
| flow.js:111:2:111:48 | new Pro ... "BLA")) |
|
||||
| flow.js:113:2:113:48 | new Pro ... "BLA")) |
|
||||
| flow.js:117:2:117:48 | new Pro ... "BLA")) |
|
||||
| flow.js:119:2:119:48 | new Pro ... "BLA")) |
|
||||
| flow.js:129:2:129:52 | new Pro ... olved)) |
|
||||
| interflow.js:11:12:15:6 | new Pro ... \\n }) |
|
||||
| promises.js:3:17:5:4 | new Pro ... );\\n }) |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) |
|
||||
| promises.js:33:19:35:6 | new Pro ... \\n }) |
|
||||
| promises.js:43:19:45:6 | Q.Promi ... \\n }) |
|
||||
| promises.js:88:17:90:4 | Q.Promi ... );\\n }) |
|
||||
| promises.js:112:17:112:62 | new RSV ... ct) {}) |
|
||||
| promises.js:124:19:124:30 | when(source) |
|
||||
| promises.js:130:14:130:69 | new Pro ... s'); }) |
|
||||
| promises.js:135:3:137:4 | new Pro ... );\\n }) |
|
||||
| promises.js:148:10:148:49 | new Pro ... ect){}) |
|
||||
test_ResolvedPromiseDefinition
|
||||
| flow2.js:4:2:4:31 | Promise ... lean"]) | flow2.js:4:15:4:20 | source |
|
||||
| flow2.js:4:2:4:31 | Promise ... lean"]) | flow2.js:4:23:4:29 | "clean" |
|
||||
@@ -45,21 +82,6 @@ test_ResolvedPromiseDefinition
|
||||
| promises.js:125:20:125:39 | when.resolve(source) | promises.js:125:33:125:38 | source |
|
||||
| promises.js:143:17:143:50 | Synchro ... source) | promises.js:143:44:143:49 | source |
|
||||
| promises.js:153:17:153:39 | Promise ... source) | promises.js:153:33:153:38 | source |
|
||||
test_PromiseDefinition_getARejectHandler
|
||||
| flow.js:26:2:26:49 | new Pro ... ource)) | flow.js:26:69:26:80 | y => sink(y) |
|
||||
| flow.js:32:2:32:49 | new Pro ... ource)) | flow.js:32:57:32:68 | x => sink(x) |
|
||||
| flow.js:42:2:42:49 | new Pro ... ource)) | flow.js:42:67:42:75 | () => { } |
|
||||
| flow.js:48:2:48:36 | new Pro ... urce }) | flow.js:48:44:48:55 | x => sink(x) |
|
||||
| flow.js:103:2:103:48 | new Pro ... "BLA")) | flow.js:103:56:103:75 | x => {return source} |
|
||||
| flow.js:105:2:105:48 | new Pro ... "BLA")) | flow.js:105:58:105:76 | x => {throw source} |
|
||||
| flow.js:109:2:109:48 | new Pro ... "BLA")) | flow.js:109:58:109:70 | x => rejected |
|
||||
| flow.js:111:2:111:48 | new Pro ... "BLA")) | flow.js:111:56:111:68 | x => rejected |
|
||||
| flow.js:113:2:113:48 | new Pro ... "BLA")) | flow.js:113:56:113:68 | x => rejected |
|
||||
| flow.js:117:2:117:48 | new Pro ... "BLA")) | flow.js:117:56:117:68 | x => resolved |
|
||||
| flow.js:119:2:119:48 | new Pro ... "BLA")) | flow.js:119:56:119:68 | x => resolved |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) | promises.js:20:6:22:3 | (v) => ... v;\\n } |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) | promises.js:23:18:25:3 | (v) => ... v;\\n } |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) | promises.js:26:20:28:3 | (v) => ... v;\\n } |
|
||||
test_PromiseDefinition_getExecutor
|
||||
| flow.js:7:11:7:59 | new Pro ... ource)) | flow.js:7:23:7:58 | (resolv ... source) |
|
||||
| flow.js:10:11:10:58 | new Pro ... ource)) | flow.js:10:23:10:57 | (resolv ... source) |
|
||||
@@ -96,47 +118,34 @@ test_PromiseDefinition_getExecutor
|
||||
| promises.js:130:14:130:69 | new Pro ... s'); }) | promises.js:130:26:130:68 | functio ... ns'); } |
|
||||
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:135:15:137:3 | functio ... a);\\n } |
|
||||
| promises.js:148:10:148:49 | new Pro ... ect){}) | promises.js:148:22:148:48 | functio ... ject){} |
|
||||
test_PromiseDefinition_getACatchHandler
|
||||
| flow.js:32:2:32:49 | new Pro ... ource)) | flow.js:32:57:32:68 | x => sink(x) |
|
||||
| flow.js:48:2:48:36 | new Pro ... urce }) | flow.js:48:44:48:55 | x => sink(x) |
|
||||
| flow.js:103:2:103:48 | new Pro ... "BLA")) | flow.js:103:56:103:75 | x => {return source} |
|
||||
| flow.js:111:2:111:48 | new Pro ... "BLA")) | flow.js:111:56:111:68 | x => rejected |
|
||||
| flow.js:113:2:113:48 | new Pro ... "BLA")) | flow.js:113:56:113:68 | x => rejected |
|
||||
| flow.js:117:2:117:48 | new Pro ... "BLA")) | flow.js:117:56:117:68 | x => resolved |
|
||||
| flow.js:119:2:119:48 | new Pro ... "BLA")) | flow.js:119:56:119:68 | x => resolved |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) | promises.js:23:18:25:3 | (v) => ... v;\\n } |
|
||||
test_PromiseDefinition_getARejectHandler
|
||||
| flow.js:26:2:26:49 | new Pro ... ource)) | flow.js:26:69:26:80 | y => sink(y) |
|
||||
| flow.js:32:2:32:49 | new Pro ... ource)) | flow.js:32:57:32:68 | x => sink(x) |
|
||||
| flow.js:42:2:42:49 | new Pro ... ource)) | flow.js:42:67:42:75 | () => { } |
|
||||
| flow.js:48:2:48:36 | new Pro ... urce }) | flow.js:48:44:48:55 | x => sink(x) |
|
||||
| flow.js:103:2:103:48 | new Pro ... "BLA")) | flow.js:103:56:103:75 | x => {return source} |
|
||||
| flow.js:105:2:105:48 | new Pro ... "BLA")) | flow.js:105:58:105:76 | x => {throw source} |
|
||||
| flow.js:109:2:109:48 | new Pro ... "BLA")) | flow.js:109:58:109:70 | x => rejected |
|
||||
| flow.js:111:2:111:48 | new Pro ... "BLA")) | flow.js:111:56:111:68 | x => rejected |
|
||||
| flow.js:113:2:113:48 | new Pro ... "BLA")) | flow.js:113:56:113:68 | x => rejected |
|
||||
| flow.js:117:2:117:48 | new Pro ... "BLA")) | flow.js:117:56:117:68 | x => resolved |
|
||||
| flow.js:119:2:119:48 | new Pro ... "BLA")) | flow.js:119:56:119:68 | x => resolved |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) | promises.js:20:6:22:3 | (v) => ... v;\\n } |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) | promises.js:23:18:25:3 | (v) => ... v;\\n } |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) | promises.js:26:20:28:3 | (v) => ... v;\\n } |
|
||||
test_PromiseDefinition_getAFinallyHandler
|
||||
| flow.js:105:2:105:48 | new Pro ... "BLA")) | flow.js:105:58:105:76 | x => {throw source} |
|
||||
| flow.js:109:2:109:48 | new Pro ... "BLA")) | flow.js:109:58:109:70 | x => rejected |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) | promises.js:26:20:28:3 | (v) => ... v;\\n } |
|
||||
test_PromiseDefinition
|
||||
| flow.js:7:11:7:59 | new Pro ... ource)) |
|
||||
| flow.js:10:11:10:58 | new Pro ... ource)) |
|
||||
| flow.js:13:11:13:58 | new Pro ... ource)) |
|
||||
| flow.js:24:2:24:49 | new Pro ... ource)) |
|
||||
| flow.js:26:2:26:49 | new Pro ... ource)) |
|
||||
| flow.js:32:2:32:49 | new Pro ... ource)) |
|
||||
| flow.js:40:2:40:49 | new Pro ... ource)) |
|
||||
| flow.js:42:2:42:49 | new Pro ... ource)) |
|
||||
| flow.js:48:2:48:36 | new Pro ... urce }) |
|
||||
| flow.js:55:11:55:58 | new Pro ... ource)) |
|
||||
| flow.js:60:12:60:59 | new Pro ... ource)) |
|
||||
| flow.js:65:9:65:56 | new Pro ... ource)) |
|
||||
| flow.js:74:10:74:57 | new Pro ... ource)) |
|
||||
| flow.js:86:23:86:70 | new Pro ... ource)) |
|
||||
| flow.js:91:21:91:68 | new Pro ... ource)) |
|
||||
| flow.js:100:34:100:81 | new Pro ... ource)) |
|
||||
| flow.js:103:2:103:48 | new Pro ... "BLA")) |
|
||||
| flow.js:105:2:105:48 | new Pro ... "BLA")) |
|
||||
| flow.js:107:17:107:64 | new Pro ... ource)) |
|
||||
| flow.js:109:2:109:48 | new Pro ... "BLA")) |
|
||||
| flow.js:111:2:111:48 | new Pro ... "BLA")) |
|
||||
| flow.js:113:2:113:48 | new Pro ... "BLA")) |
|
||||
| flow.js:117:2:117:48 | new Pro ... "BLA")) |
|
||||
| flow.js:119:2:119:48 | new Pro ... "BLA")) |
|
||||
| flow.js:129:2:129:52 | new Pro ... olved)) |
|
||||
| interflow.js:11:12:15:6 | new Pro ... \\n }) |
|
||||
| promises.js:3:17:5:4 | new Pro ... );\\n }) |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) |
|
||||
| promises.js:33:19:35:6 | new Pro ... \\n }) |
|
||||
| promises.js:43:19:45:6 | Q.Promi ... \\n }) |
|
||||
| promises.js:88:17:90:4 | Q.Promi ... );\\n }) |
|
||||
| promises.js:112:17:112:62 | new RSV ... ct) {}) |
|
||||
| promises.js:124:19:124:30 | when(source) |
|
||||
| promises.js:130:14:130:69 | new Pro ... s'); }) |
|
||||
| promises.js:135:3:137:4 | new Pro ... );\\n }) |
|
||||
| promises.js:148:10:148:49 | new Pro ... ect){}) |
|
||||
test_PromiseDefinition_getAResolveHandler
|
||||
| flow.js:24:2:24:49 | new Pro ... ource)) | flow.js:24:56:24:67 | x => sink(x) |
|
||||
| flow.js:26:2:26:49 | new Pro ... ource)) | flow.js:26:56:26:66 | x => foo(x) |
|
||||
@@ -224,15 +233,6 @@ test_PromiseDefinition_getResolveParameter
|
||||
| promises.js:130:14:130:69 | new Pro ... s'); }) | promises.js:130:36:130:42 | resolve |
|
||||
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:135:25:135:31 | resolve |
|
||||
| promises.js:148:10:148:49 | new Pro ... ect){}) | promises.js:148:31:148:37 | resolve |
|
||||
test_PromiseDefinition_getACatchHandler
|
||||
| flow.js:32:2:32:49 | new Pro ... ource)) | flow.js:32:57:32:68 | x => sink(x) |
|
||||
| flow.js:48:2:48:36 | new Pro ... urce }) | flow.js:48:44:48:55 | x => sink(x) |
|
||||
| flow.js:103:2:103:48 | new Pro ... "BLA")) | flow.js:103:56:103:75 | x => {return source} |
|
||||
| flow.js:111:2:111:48 | new Pro ... "BLA")) | flow.js:111:56:111:68 | x => rejected |
|
||||
| flow.js:113:2:113:48 | new Pro ... "BLA")) | flow.js:113:56:113:68 | x => rejected |
|
||||
| flow.js:117:2:117:48 | new Pro ... "BLA")) | flow.js:117:56:117:68 | x => resolved |
|
||||
| flow.js:119:2:119:48 | new Pro ... "BLA")) | flow.js:119:56:119:68 | x => resolved |
|
||||
| promises.js:10:18:17:4 | new Pro ... );\\n }) | promises.js:23:18:25:3 | (v) => ... v;\\n } |
|
||||
flow
|
||||
| flow2.js:2:15:2:22 | "source" | flow2.js:6:8:6:13 | arr[0] |
|
||||
| flow2.js:2:15:2:22 | "source" | flow2.js:12:7:12:13 | tainted |
|
||||
|
||||
@@ -1,3 +1,100 @@
|
||||
test_PropWrite
|
||||
| classes.ts:3:21:3:20 | constructor() {} |
|
||||
| classes.ts:4:3:4:24 | instanc ... foo(); |
|
||||
| classes.ts:8:3:8:39 | constru ... eld) {} |
|
||||
| classes.ts:8:15:8:35 | public ... erField |
|
||||
| classes.ts:12:5:12:68 | constru ... + 42; } |
|
||||
| classes.ts:12:17:12:37 | public ... erField |
|
||||
| classes.ts:16:5:16:46 | constru ... {}) {} |
|
||||
| classes.ts:16:17:16:37 | public ... erField |
|
||||
| tst.js:2:5:2:8 | x: 4 |
|
||||
| tst.js:3:5:5:5 | func: f ... ;\\n } |
|
||||
| tst.js:6:5:8:5 | f() {\\n ... ;\\n } |
|
||||
| tst.js:11:9:11:8 | constructor() {} |
|
||||
| tst.js:12:3:14:3 | static ... x);\\n } |
|
||||
| tst.js:15:3:17:3 | f(x) {\\n ... x);\\n } |
|
||||
| tst.js:20:1:20:6 | C.prop |
|
||||
| tst.js:23:13:23:27 | onClick={click} |
|
||||
| tst.js:26:3:26:26 | get x() ... null; } |
|
||||
| tst.js:27:3:27:13 | set y(v) {} |
|
||||
| tst.js:31:5:31:8 | n: 1 |
|
||||
| tst.js:32:5:32:10 | [v]: 2 |
|
||||
| tst.js:33:5:33:14 | [vv.pp]: 3 |
|
||||
| tst.js:34:5:34:20 | [vvv.ppp.qqq]: 4 |
|
||||
| tst.js:37:13:37:15 | "a" |
|
||||
| tst.js:37:18:37:20 | "b" |
|
||||
| tst.js:37:23:37:25 | "c" |
|
||||
| tst.js:38:13:38:15 | "a" |
|
||||
| tst.js:38:20:38:22 | "c" |
|
||||
| tst.js:39:15:39:17 | "b" |
|
||||
| tst.js:39:20:39:22 | "c" |
|
||||
| tst.js:40:13:40:15 | "a" |
|
||||
| tst.js:40:18:40:20 | "b" |
|
||||
| tst.js:41:13:41:15 | "a" |
|
||||
| tst.js:41:18:41:24 | ...arr3 |
|
||||
| tst.js:41:27:41:29 | "d" |
|
||||
test_PropWriteRhs
|
||||
| classes.ts:3:21:3:20 | constructor() {} | classes.ts:3:21:3:20 | () {} |
|
||||
| classes.ts:4:3:4:24 | instanc ... foo(); | classes.ts:4:19:4:23 | foo() |
|
||||
| classes.ts:8:3:8:39 | constru ... eld) {} | classes.ts:8:3:8:39 | constru ... eld) {} |
|
||||
| classes.ts:8:15:8:35 | public ... erField | classes.ts:8:22:8:35 | parameterField |
|
||||
| classes.ts:12:5:12:68 | constru ... + 42; } | classes.ts:12:5:12:68 | constru ... + 42; } |
|
||||
| classes.ts:12:17:12:37 | public ... erField | classes.ts:12:24:12:37 | parameterField |
|
||||
| classes.ts:16:5:16:46 | constru ... {}) {} | classes.ts:16:5:16:46 | constru ... {}) {} |
|
||||
| classes.ts:16:17:16:37 | public ... erField | classes.ts:16:24:16:37 | parameterField |
|
||||
| tst.js:2:5:2:8 | x: 4 | tst.js:2:8:2:8 | 4 |
|
||||
| tst.js:3:5:5:5 | func: f ... ;\\n } | tst.js:3:11:5:5 | functio ... ;\\n } |
|
||||
| tst.js:6:5:8:5 | f() {\\n ... ;\\n } | tst.js:6:6:8:5 | () {\\n ... ;\\n } |
|
||||
| tst.js:11:9:11:8 | constructor() {} | tst.js:11:9:11:8 | () {} |
|
||||
| tst.js:12:3:14:3 | static ... x);\\n } | tst.js:12:14:14:3 | (x) {\\n ... x);\\n } |
|
||||
| tst.js:15:3:17:3 | f(x) {\\n ... x);\\n } | tst.js:15:4:17:3 | (x) {\\n ... x);\\n } |
|
||||
| tst.js:20:1:20:6 | C.prop | tst.js:20:10:20:11 | 56 |
|
||||
| tst.js:23:13:23:27 | onClick={click} | tst.js:23:22:23:26 | click |
|
||||
| tst.js:31:5:31:8 | n: 1 | tst.js:31:8:31:8 | 1 |
|
||||
| tst.js:32:5:32:10 | [v]: 2 | tst.js:32:10:32:10 | 2 |
|
||||
| tst.js:33:5:33:14 | [vv.pp]: 3 | tst.js:33:14:33:14 | 3 |
|
||||
| tst.js:34:5:34:20 | [vvv.ppp.qqq]: 4 | tst.js:34:20:34:20 | 4 |
|
||||
| tst.js:37:13:37:15 | "a" | tst.js:37:13:37:15 | "a" |
|
||||
| tst.js:37:18:37:20 | "b" | tst.js:37:18:37:20 | "b" |
|
||||
| tst.js:37:23:37:25 | "c" | tst.js:37:23:37:25 | "c" |
|
||||
| tst.js:38:13:38:15 | "a" | tst.js:38:13:38:15 | "a" |
|
||||
| tst.js:38:20:38:22 | "c" | tst.js:38:20:38:22 | "c" |
|
||||
| tst.js:39:15:39:17 | "b" | tst.js:39:15:39:17 | "b" |
|
||||
| tst.js:39:20:39:22 | "c" | tst.js:39:20:39:22 | "c" |
|
||||
| tst.js:40:13:40:15 | "a" | tst.js:40:13:40:15 | "a" |
|
||||
| tst.js:40:18:40:20 | "b" | tst.js:40:18:40:20 | "b" |
|
||||
| tst.js:41:13:41:15 | "a" | tst.js:41:13:41:15 | "a" |
|
||||
| tst.js:41:18:41:24 | ...arr3 | tst.js:41:18:41:24 | ...arr3 |
|
||||
| tst.js:41:27:41:29 | "d" | tst.js:41:27:41:29 | "d" |
|
||||
test_PropWriteBase
|
||||
| classes.ts:4:3:4:24 | instanc ... foo(); | classes.ts:3:21:3:20 | this |
|
||||
| classes.ts:8:15:8:35 | public ... erField | classes.ts:8:3:8:2 | this |
|
||||
| classes.ts:12:17:12:37 | public ... erField | classes.ts:12:5:12:4 | this |
|
||||
| classes.ts:16:17:16:37 | public ... erField | classes.ts:16:5:16:4 | this |
|
||||
| tst.js:2:5:2:8 | x: 4 | tst.js:1:11:9:1 | {\\n x ... }\\n} |
|
||||
| tst.js:3:5:5:5 | func: f ... ;\\n } | tst.js:1:11:9:1 | {\\n x ... }\\n} |
|
||||
| tst.js:6:5:8:5 | f() {\\n ... ;\\n } | tst.js:1:11:9:1 | {\\n x ... }\\n} |
|
||||
| tst.js:12:3:14:3 | static ... x);\\n } | tst.js:11:1:18:1 | class C ... ;\\n }\\n} |
|
||||
| tst.js:20:1:20:6 | C.prop | tst.js:20:1:20:1 | C |
|
||||
| tst.js:23:13:23:27 | onClick={click} | tst.js:23:8:23:57 | <div on ... }</div> |
|
||||
| tst.js:26:3:26:26 | get x() ... null; } | tst.js:25:2:28:1 | {\\n get ... v) {}\\n} |
|
||||
| tst.js:27:3:27:13 | set y(v) {} | tst.js:25:2:28:1 | {\\n get ... v) {}\\n} |
|
||||
| tst.js:31:5:31:8 | n: 1 | tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} |
|
||||
| tst.js:32:5:32:10 | [v]: 2 | tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} |
|
||||
| tst.js:33:5:33:14 | [vv.pp]: 3 | tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} |
|
||||
| tst.js:34:5:34:20 | [vvv.ppp.qqq]: 4 | tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} |
|
||||
| tst.js:37:13:37:15 | "a" | tst.js:37:12:37:26 | ["a", "b", "c"] |
|
||||
| tst.js:37:18:37:20 | "b" | tst.js:37:12:37:26 | ["a", "b", "c"] |
|
||||
| tst.js:37:23:37:25 | "c" | tst.js:37:12:37:26 | ["a", "b", "c"] |
|
||||
| tst.js:38:13:38:15 | "a" | tst.js:38:12:38:23 | ["a", , "c"] |
|
||||
| tst.js:38:20:38:22 | "c" | tst.js:38:12:38:23 | ["a", , "c"] |
|
||||
| tst.js:39:15:39:17 | "b" | tst.js:39:12:39:23 | [, "b", "c"] |
|
||||
| tst.js:39:20:39:22 | "c" | tst.js:39:12:39:23 | [, "b", "c"] |
|
||||
| tst.js:40:13:40:15 | "a" | tst.js:40:12:40:22 | ["a", "b",] |
|
||||
| tst.js:40:18:40:20 | "b" | tst.js:40:12:40:22 | ["a", "b",] |
|
||||
| tst.js:41:13:41:15 | "a" | tst.js:41:12:41:30 | ["a", ...arr3, "d"] |
|
||||
| tst.js:41:18:41:24 | ...arr3 | tst.js:41:12:41:30 | ["a", ...arr3, "d"] |
|
||||
| tst.js:41:27:41:29 | "d" | tst.js:41:12:41:30 | ["a", ...arr3, "d"] |
|
||||
test_getAPropertyRead
|
||||
| tst.js:1:1:1:0 | this | tst.js:22:15:22:29 | this.someMethod |
|
||||
| tst.js:1:1:1:0 | this | tst.js:23:36:23:45 | this.state |
|
||||
@@ -13,6 +110,106 @@ test_getAPropertyRead
|
||||
| tst.js:46:17:46:21 | array | tst.js:47:10:47:10 | x |
|
||||
| tst.js:46:17:46:21 | array | tst.js:47:13:47:13 | y |
|
||||
| tst.js:46:17:46:21 | array | tst.js:47:16:47:16 | z |
|
||||
test_hasPropertyWrite
|
||||
| classes.ts:3:21:3:20 | this | instanceField | classes.ts:4:19:4:23 | foo() |
|
||||
| classes.ts:8:3:8:2 | this | parameterField | classes.ts:8:22:8:35 | parameterField |
|
||||
| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:24:12:37 | parameterField |
|
||||
| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:24:16:37 | parameterField |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | f | tst.js:6:6:8:5 | () {\\n ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | func | tst.js:3:11:5:5 | functio ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | x | tst.js:2:8:2:8 | 4 |
|
||||
| tst.js:11:1:18:1 | class C ... ;\\n }\\n} | func | tst.js:12:14:14:3 | (x) {\\n ... x);\\n } |
|
||||
| tst.js:20:1:20:1 | C | prop | tst.js:20:10:20:11 | 56 |
|
||||
| tst.js:23:8:23:57 | <div on ... }</div> | onClick | tst.js:23:22:23:26 | click |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | n | tst.js:31:8:31:8 | 1 |
|
||||
test_PropWritePropName
|
||||
| classes.ts:3:21:3:20 | constructor() {} | constructor |
|
||||
| classes.ts:4:3:4:24 | instanc ... foo(); | instanceField |
|
||||
| classes.ts:8:3:8:39 | constru ... eld) {} | constructor |
|
||||
| classes.ts:8:15:8:35 | public ... erField | parameterField |
|
||||
| classes.ts:12:5:12:68 | constru ... + 42; } | constructor |
|
||||
| classes.ts:12:17:12:37 | public ... erField | parameterField |
|
||||
| classes.ts:16:5:16:46 | constru ... {}) {} | constructor |
|
||||
| classes.ts:16:17:16:37 | public ... erField | parameterField |
|
||||
| tst.js:2:5:2:8 | x: 4 | x |
|
||||
| tst.js:3:5:5:5 | func: f ... ;\\n } | func |
|
||||
| tst.js:6:5:8:5 | f() {\\n ... ;\\n } | f |
|
||||
| tst.js:11:9:11:8 | constructor() {} | constructor |
|
||||
| tst.js:12:3:14:3 | static ... x);\\n } | func |
|
||||
| tst.js:15:3:17:3 | f(x) {\\n ... x);\\n } | f |
|
||||
| tst.js:20:1:20:6 | C.prop | prop |
|
||||
| tst.js:23:13:23:27 | onClick={click} | onClick |
|
||||
| tst.js:26:3:26:26 | get x() ... null; } | x |
|
||||
| tst.js:27:3:27:13 | set y(v) {} | y |
|
||||
| tst.js:31:5:31:8 | n: 1 | n |
|
||||
test_getAPropertyRead2
|
||||
| tst.js:1:1:1:0 | this | someMethod | tst.js:22:15:22:29 | this.someMethod |
|
||||
| tst.js:1:1:1:0 | this | state | tst.js:23:36:23:45 | this.state |
|
||||
| tst.js:13:5:13:11 | console | log | tst.js:13:5:13:15 | console.log |
|
||||
| tst.js:16:5:16:11 | console | log | tst.js:16:5:16:15 | console.log |
|
||||
| tst.js:22:15:22:29 | this.someMethod | bind | tst.js:22:15:22:34 | this.someMethod.bind |
|
||||
| tst.js:23:36:23:45 | this.state | name | tst.js:23:36:23:50 | this.state.name |
|
||||
| tst.js:33:6:33:7 | vv | pp | tst.js:33:6:33:10 | vv.pp |
|
||||
| tst.js:34:6:34:8 | vvv | ppp | tst.js:34:6:34:12 | vvv.ppp |
|
||||
| tst.js:34:6:34:12 | vvv.ppp | qqq | tst.js:34:6:34:16 | vvv.ppp.qqq |
|
||||
| tst.js:44:3:44:9 | console | log | tst.js:44:3:44:13 | console.log |
|
||||
| tst.js:46:17:46:21 | array | 0 | tst.js:47:10:47:10 | x |
|
||||
| tst.js:46:17:46:21 | array | 1 | tst.js:47:13:47:13 | y |
|
||||
| tst.js:46:17:46:21 | array | 2 | tst.js:47:16:47:16 | z |
|
||||
test_getAPropertyWrite
|
||||
| classes.ts:3:21:3:20 | this | classes.ts:4:3:4:24 | instanc ... foo(); |
|
||||
| classes.ts:8:3:8:2 | this | classes.ts:8:15:8:35 | public ... erField |
|
||||
| classes.ts:12:5:12:4 | this | classes.ts:12:17:12:37 | public ... erField |
|
||||
| classes.ts:16:5:16:4 | this | classes.ts:16:17:16:37 | public ... erField |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | tst.js:2:5:2:8 | x: 4 |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | tst.js:3:5:5:5 | func: f ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | tst.js:6:5:8:5 | f() {\\n ... ;\\n } |
|
||||
| tst.js:11:1:18:1 | class C ... ;\\n }\\n} | tst.js:12:3:14:3 | static ... x);\\n } |
|
||||
| tst.js:20:1:20:1 | C | tst.js:20:1:20:6 | C.prop |
|
||||
| tst.js:23:8:23:57 | <div on ... }</div> | tst.js:23:13:23:27 | onClick={click} |
|
||||
| tst.js:25:2:28:1 | {\\n get ... v) {}\\n} | tst.js:26:3:26:26 | get x() ... null; } |
|
||||
| tst.js:25:2:28:1 | {\\n get ... v) {}\\n} | tst.js:27:3:27:13 | set y(v) {} |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | tst.js:31:5:31:8 | n: 1 |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | tst.js:32:5:32:10 | [v]: 2 |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | tst.js:33:5:33:14 | [vv.pp]: 3 |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | tst.js:34:5:34:20 | [vvv.ppp.qqq]: 4 |
|
||||
| tst.js:37:12:37:26 | ["a", "b", "c"] | tst.js:37:13:37:15 | "a" |
|
||||
| tst.js:37:12:37:26 | ["a", "b", "c"] | tst.js:37:18:37:20 | "b" |
|
||||
| tst.js:37:12:37:26 | ["a", "b", "c"] | tst.js:37:23:37:25 | "c" |
|
||||
| tst.js:38:12:38:23 | ["a", , "c"] | tst.js:38:13:38:15 | "a" |
|
||||
| tst.js:38:12:38:23 | ["a", , "c"] | tst.js:38:20:38:22 | "c" |
|
||||
| tst.js:39:12:39:23 | [, "b", "c"] | tst.js:39:15:39:17 | "b" |
|
||||
| tst.js:39:12:39:23 | [, "b", "c"] | tst.js:39:20:39:22 | "c" |
|
||||
| tst.js:40:12:40:22 | ["a", "b",] | tst.js:40:13:40:15 | "a" |
|
||||
| tst.js:40:12:40:22 | ["a", "b",] | tst.js:40:18:40:20 | "b" |
|
||||
| tst.js:41:12:41:30 | ["a", ...arr3, "d"] | tst.js:41:13:41:15 | "a" |
|
||||
| tst.js:41:12:41:30 | ["a", ...arr3, "d"] | tst.js:41:18:41:24 | ...arr3 |
|
||||
| tst.js:41:12:41:30 | ["a", ...arr3, "d"] | tst.js:41:27:41:29 | "d" |
|
||||
test_getAPropertySource
|
||||
| classes.ts:3:21:3:20 | this | instanceField | classes.ts:4:19:4:23 | foo() |
|
||||
| classes.ts:8:3:8:2 | this | parameterField | classes.ts:8:22:8:35 | parameterField |
|
||||
| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:24:12:37 | parameterField |
|
||||
| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:41:12:42 | {} |
|
||||
| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:24:16:37 | parameterField |
|
||||
| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:41:16:42 | {} |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | f | tst.js:6:6:8:5 | () {\\n ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | func | tst.js:3:11:5:5 | functio ... ;\\n } |
|
||||
| tst.js:11:1:18:1 | class C ... ;\\n }\\n} | func | tst.js:12:14:14:3 | (x) {\\n ... x);\\n } |
|
||||
| tst.js:23:8:23:57 | <div on ... }</div> | onClick | tst.js:23:22:23:26 | click |
|
||||
test_getAPropertyWrite2
|
||||
| classes.ts:3:21:3:20 | this | instanceField | classes.ts:4:3:4:24 | instanc ... foo(); |
|
||||
| classes.ts:8:3:8:2 | this | parameterField | classes.ts:8:15:8:35 | public ... erField |
|
||||
| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:17:12:37 | public ... erField |
|
||||
| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:17:16:37 | public ... erField |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | f | tst.js:6:5:8:5 | f() {\\n ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | func | tst.js:3:5:5:5 | func: f ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | x | tst.js:2:5:2:8 | x: 4 |
|
||||
| tst.js:11:1:18:1 | class C ... ;\\n }\\n} | func | tst.js:12:3:14:3 | static ... x);\\n } |
|
||||
| tst.js:20:1:20:1 | C | prop | tst.js:20:1:20:6 | C.prop |
|
||||
| tst.js:23:8:23:57 | <div on ... }</div> | onClick | tst.js:23:13:23:27 | onClick={click} |
|
||||
| tst.js:25:2:28:1 | {\\n get ... v) {}\\n} | x | tst.js:26:3:26:26 | get x() ... null; } |
|
||||
| tst.js:25:2:28:1 | {\\n get ... v) {}\\n} | y | tst.js:27:3:27:13 | set y(v) {} |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | n | tst.js:31:5:31:8 | n: 1 |
|
||||
test_getAPropertyReference
|
||||
| classes.ts:3:21:3:20 | this | classes.ts:4:3:4:24 | instanc ... foo(); |
|
||||
| classes.ts:8:3:8:2 | this | classes.ts:8:15:8:35 | public ... erField |
|
||||
@@ -56,51 +253,6 @@ test_getAPropertyReference
|
||||
| tst.js:46:17:46:21 | array | tst.js:47:10:47:10 | x |
|
||||
| tst.js:46:17:46:21 | array | tst.js:47:13:47:13 | y |
|
||||
| tst.js:46:17:46:21 | array | tst.js:47:16:47:16 | z |
|
||||
test_getAPropertySource
|
||||
| classes.ts:3:21:3:20 | this | instanceField | classes.ts:4:19:4:23 | foo() |
|
||||
| classes.ts:8:3:8:2 | this | parameterField | classes.ts:8:22:8:35 | parameterField |
|
||||
| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:24:12:37 | parameterField |
|
||||
| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:41:12:42 | {} |
|
||||
| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:24:16:37 | parameterField |
|
||||
| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:41:16:42 | {} |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | f | tst.js:6:6:8:5 | () {\\n ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | func | tst.js:3:11:5:5 | functio ... ;\\n } |
|
||||
| tst.js:11:1:18:1 | class C ... ;\\n }\\n} | func | tst.js:12:14:14:3 | (x) {\\n ... x);\\n } |
|
||||
| tst.js:23:8:23:57 | <div on ... }</div> | onClick | tst.js:23:22:23:26 | click |
|
||||
test_PropWritePropName
|
||||
| classes.ts:3:21:3:20 | constructor() {} | constructor |
|
||||
| classes.ts:4:3:4:24 | instanc ... foo(); | instanceField |
|
||||
| classes.ts:8:3:8:39 | constru ... eld) {} | constructor |
|
||||
| classes.ts:8:15:8:35 | public ... erField | parameterField |
|
||||
| classes.ts:12:5:12:68 | constru ... + 42; } | constructor |
|
||||
| classes.ts:12:17:12:37 | public ... erField | parameterField |
|
||||
| classes.ts:16:5:16:46 | constru ... {}) {} | constructor |
|
||||
| classes.ts:16:17:16:37 | public ... erField | parameterField |
|
||||
| tst.js:2:5:2:8 | x: 4 | x |
|
||||
| tst.js:3:5:5:5 | func: f ... ;\\n } | func |
|
||||
| tst.js:6:5:8:5 | f() {\\n ... ;\\n } | f |
|
||||
| tst.js:11:9:11:8 | constructor() {} | constructor |
|
||||
| tst.js:12:3:14:3 | static ... x);\\n } | func |
|
||||
| tst.js:15:3:17:3 | f(x) {\\n ... x);\\n } | f |
|
||||
| tst.js:20:1:20:6 | C.prop | prop |
|
||||
| tst.js:23:13:23:27 | onClick={click} | onClick |
|
||||
| tst.js:26:3:26:26 | get x() ... null; } | x |
|
||||
| tst.js:27:3:27:13 | set y(v) {} | y |
|
||||
| tst.js:31:5:31:8 | n: 1 | n |
|
||||
test_getAPropertyRead2
|
||||
| tst.js:1:1:1:0 | this | someMethod | tst.js:22:15:22:29 | this.someMethod |
|
||||
| tst.js:1:1:1:0 | this | state | tst.js:23:36:23:45 | this.state |
|
||||
| tst.js:13:5:13:11 | console | log | tst.js:13:5:13:15 | console.log |
|
||||
| tst.js:16:5:16:11 | console | log | tst.js:16:5:16:15 | console.log |
|
||||
| tst.js:22:15:22:29 | this.someMethod | bind | tst.js:22:15:22:34 | this.someMethod.bind |
|
||||
| tst.js:23:36:23:45 | this.state | name | tst.js:23:36:23:50 | this.state.name |
|
||||
| tst.js:33:6:33:7 | vv | pp | tst.js:33:6:33:10 | vv.pp |
|
||||
| tst.js:34:6:34:8 | vvv | ppp | tst.js:34:6:34:12 | vvv.ppp |
|
||||
| tst.js:34:6:34:12 | vvv.ppp | qqq | tst.js:34:6:34:16 | vvv.ppp.qqq |
|
||||
| tst.js:44:3:44:9 | console | log | tst.js:44:3:44:13 | console.log |
|
||||
| tst.js:46:17:46:21 | array | 0 | tst.js:47:10:47:10 | x |
|
||||
| tst.js:46:17:46:21 | array | 1 | tst.js:47:13:47:13 | y |
|
||||
| tst.js:46:17:46:21 | array | 2 | tst.js:47:16:47:16 | z |
|
||||
test_getAPropertyReference2
|
||||
| classes.ts:3:21:3:20 | this | instanceField | classes.ts:4:3:4:24 | instanc ... foo(); |
|
||||
| classes.ts:8:3:8:2 | this | parameterField | classes.ts:8:15:8:35 | public ... erField |
|
||||
@@ -128,155 +280,3 @@ test_getAPropertyReference2
|
||||
| tst.js:46:17:46:21 | array | 0 | tst.js:47:10:47:10 | x |
|
||||
| tst.js:46:17:46:21 | array | 1 | tst.js:47:13:47:13 | y |
|
||||
| tst.js:46:17:46:21 | array | 2 | tst.js:47:16:47:16 | z |
|
||||
test_hasPropertyWrite
|
||||
| classes.ts:3:21:3:20 | this | instanceField | classes.ts:4:19:4:23 | foo() |
|
||||
| classes.ts:8:3:8:2 | this | parameterField | classes.ts:8:22:8:35 | parameterField |
|
||||
| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:24:12:37 | parameterField |
|
||||
| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:24:16:37 | parameterField |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | f | tst.js:6:6:8:5 | () {\\n ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | func | tst.js:3:11:5:5 | functio ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | x | tst.js:2:8:2:8 | 4 |
|
||||
| tst.js:11:1:18:1 | class C ... ;\\n }\\n} | func | tst.js:12:14:14:3 | (x) {\\n ... x);\\n } |
|
||||
| tst.js:20:1:20:1 | C | prop | tst.js:20:10:20:11 | 56 |
|
||||
| tst.js:23:8:23:57 | <div on ... }</div> | onClick | tst.js:23:22:23:26 | click |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | n | tst.js:31:8:31:8 | 1 |
|
||||
test_PropWriteBase
|
||||
| classes.ts:4:3:4:24 | instanc ... foo(); | classes.ts:3:21:3:20 | this |
|
||||
| classes.ts:8:15:8:35 | public ... erField | classes.ts:8:3:8:2 | this |
|
||||
| classes.ts:12:17:12:37 | public ... erField | classes.ts:12:5:12:4 | this |
|
||||
| classes.ts:16:17:16:37 | public ... erField | classes.ts:16:5:16:4 | this |
|
||||
| tst.js:2:5:2:8 | x: 4 | tst.js:1:11:9:1 | {\\n x ... }\\n} |
|
||||
| tst.js:3:5:5:5 | func: f ... ;\\n } | tst.js:1:11:9:1 | {\\n x ... }\\n} |
|
||||
| tst.js:6:5:8:5 | f() {\\n ... ;\\n } | tst.js:1:11:9:1 | {\\n x ... }\\n} |
|
||||
| tst.js:12:3:14:3 | static ... x);\\n } | tst.js:11:1:18:1 | class C ... ;\\n }\\n} |
|
||||
| tst.js:20:1:20:6 | C.prop | tst.js:20:1:20:1 | C |
|
||||
| tst.js:23:13:23:27 | onClick={click} | tst.js:23:8:23:57 | <div on ... }</div> |
|
||||
| tst.js:26:3:26:26 | get x() ... null; } | tst.js:25:2:28:1 | {\\n get ... v) {}\\n} |
|
||||
| tst.js:27:3:27:13 | set y(v) {} | tst.js:25:2:28:1 | {\\n get ... v) {}\\n} |
|
||||
| tst.js:31:5:31:8 | n: 1 | tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} |
|
||||
| tst.js:32:5:32:10 | [v]: 2 | tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} |
|
||||
| tst.js:33:5:33:14 | [vv.pp]: 3 | tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} |
|
||||
| tst.js:34:5:34:20 | [vvv.ppp.qqq]: 4 | tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} |
|
||||
| tst.js:37:13:37:15 | "a" | tst.js:37:12:37:26 | ["a", "b", "c"] |
|
||||
| tst.js:37:18:37:20 | "b" | tst.js:37:12:37:26 | ["a", "b", "c"] |
|
||||
| tst.js:37:23:37:25 | "c" | tst.js:37:12:37:26 | ["a", "b", "c"] |
|
||||
| tst.js:38:13:38:15 | "a" | tst.js:38:12:38:23 | ["a", , "c"] |
|
||||
| tst.js:38:20:38:22 | "c" | tst.js:38:12:38:23 | ["a", , "c"] |
|
||||
| tst.js:39:15:39:17 | "b" | tst.js:39:12:39:23 | [, "b", "c"] |
|
||||
| tst.js:39:20:39:22 | "c" | tst.js:39:12:39:23 | [, "b", "c"] |
|
||||
| tst.js:40:13:40:15 | "a" | tst.js:40:12:40:22 | ["a", "b",] |
|
||||
| tst.js:40:18:40:20 | "b" | tst.js:40:12:40:22 | ["a", "b",] |
|
||||
| tst.js:41:13:41:15 | "a" | tst.js:41:12:41:30 | ["a", ...arr3, "d"] |
|
||||
| tst.js:41:18:41:24 | ...arr3 | tst.js:41:12:41:30 | ["a", ...arr3, "d"] |
|
||||
| tst.js:41:27:41:29 | "d" | tst.js:41:12:41:30 | ["a", ...arr3, "d"] |
|
||||
test_getAPropertyWrite
|
||||
| classes.ts:3:21:3:20 | this | classes.ts:4:3:4:24 | instanc ... foo(); |
|
||||
| classes.ts:8:3:8:2 | this | classes.ts:8:15:8:35 | public ... erField |
|
||||
| classes.ts:12:5:12:4 | this | classes.ts:12:17:12:37 | public ... erField |
|
||||
| classes.ts:16:5:16:4 | this | classes.ts:16:17:16:37 | public ... erField |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | tst.js:2:5:2:8 | x: 4 |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | tst.js:3:5:5:5 | func: f ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | tst.js:6:5:8:5 | f() {\\n ... ;\\n } |
|
||||
| tst.js:11:1:18:1 | class C ... ;\\n }\\n} | tst.js:12:3:14:3 | static ... x);\\n } |
|
||||
| tst.js:20:1:20:1 | C | tst.js:20:1:20:6 | C.prop |
|
||||
| tst.js:23:8:23:57 | <div on ... }</div> | tst.js:23:13:23:27 | onClick={click} |
|
||||
| tst.js:25:2:28:1 | {\\n get ... v) {}\\n} | tst.js:26:3:26:26 | get x() ... null; } |
|
||||
| tst.js:25:2:28:1 | {\\n get ... v) {}\\n} | tst.js:27:3:27:13 | set y(v) {} |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | tst.js:31:5:31:8 | n: 1 |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | tst.js:32:5:32:10 | [v]: 2 |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | tst.js:33:5:33:14 | [vv.pp]: 3 |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | tst.js:34:5:34:20 | [vvv.ppp.qqq]: 4 |
|
||||
| tst.js:37:12:37:26 | ["a", "b", "c"] | tst.js:37:13:37:15 | "a" |
|
||||
| tst.js:37:12:37:26 | ["a", "b", "c"] | tst.js:37:18:37:20 | "b" |
|
||||
| tst.js:37:12:37:26 | ["a", "b", "c"] | tst.js:37:23:37:25 | "c" |
|
||||
| tst.js:38:12:38:23 | ["a", , "c"] | tst.js:38:13:38:15 | "a" |
|
||||
| tst.js:38:12:38:23 | ["a", , "c"] | tst.js:38:20:38:22 | "c" |
|
||||
| tst.js:39:12:39:23 | [, "b", "c"] | tst.js:39:15:39:17 | "b" |
|
||||
| tst.js:39:12:39:23 | [, "b", "c"] | tst.js:39:20:39:22 | "c" |
|
||||
| tst.js:40:12:40:22 | ["a", "b",] | tst.js:40:13:40:15 | "a" |
|
||||
| tst.js:40:12:40:22 | ["a", "b",] | tst.js:40:18:40:20 | "b" |
|
||||
| tst.js:41:12:41:30 | ["a", ...arr3, "d"] | tst.js:41:13:41:15 | "a" |
|
||||
| tst.js:41:12:41:30 | ["a", ...arr3, "d"] | tst.js:41:18:41:24 | ...arr3 |
|
||||
| tst.js:41:12:41:30 | ["a", ...arr3, "d"] | tst.js:41:27:41:29 | "d" |
|
||||
test_PropWrite
|
||||
| classes.ts:3:21:3:20 | constructor() {} |
|
||||
| classes.ts:4:3:4:24 | instanc ... foo(); |
|
||||
| classes.ts:8:3:8:39 | constru ... eld) {} |
|
||||
| classes.ts:8:15:8:35 | public ... erField |
|
||||
| classes.ts:12:5:12:68 | constru ... + 42; } |
|
||||
| classes.ts:12:17:12:37 | public ... erField |
|
||||
| classes.ts:16:5:16:46 | constru ... {}) {} |
|
||||
| classes.ts:16:17:16:37 | public ... erField |
|
||||
| tst.js:2:5:2:8 | x: 4 |
|
||||
| tst.js:3:5:5:5 | func: f ... ;\\n } |
|
||||
| tst.js:6:5:8:5 | f() {\\n ... ;\\n } |
|
||||
| tst.js:11:9:11:8 | constructor() {} |
|
||||
| tst.js:12:3:14:3 | static ... x);\\n } |
|
||||
| tst.js:15:3:17:3 | f(x) {\\n ... x);\\n } |
|
||||
| tst.js:20:1:20:6 | C.prop |
|
||||
| tst.js:23:13:23:27 | onClick={click} |
|
||||
| tst.js:26:3:26:26 | get x() ... null; } |
|
||||
| tst.js:27:3:27:13 | set y(v) {} |
|
||||
| tst.js:31:5:31:8 | n: 1 |
|
||||
| tst.js:32:5:32:10 | [v]: 2 |
|
||||
| tst.js:33:5:33:14 | [vv.pp]: 3 |
|
||||
| tst.js:34:5:34:20 | [vvv.ppp.qqq]: 4 |
|
||||
| tst.js:37:13:37:15 | "a" |
|
||||
| tst.js:37:18:37:20 | "b" |
|
||||
| tst.js:37:23:37:25 | "c" |
|
||||
| tst.js:38:13:38:15 | "a" |
|
||||
| tst.js:38:20:38:22 | "c" |
|
||||
| tst.js:39:15:39:17 | "b" |
|
||||
| tst.js:39:20:39:22 | "c" |
|
||||
| tst.js:40:13:40:15 | "a" |
|
||||
| tst.js:40:18:40:20 | "b" |
|
||||
| tst.js:41:13:41:15 | "a" |
|
||||
| tst.js:41:18:41:24 | ...arr3 |
|
||||
| tst.js:41:27:41:29 | "d" |
|
||||
test_getAPropertyWrite2
|
||||
| classes.ts:3:21:3:20 | this | instanceField | classes.ts:4:3:4:24 | instanc ... foo(); |
|
||||
| classes.ts:8:3:8:2 | this | parameterField | classes.ts:8:15:8:35 | public ... erField |
|
||||
| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:17:12:37 | public ... erField |
|
||||
| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:17:16:37 | public ... erField |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | f | tst.js:6:5:8:5 | f() {\\n ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | func | tst.js:3:5:5:5 | func: f ... ;\\n } |
|
||||
| tst.js:1:11:9:1 | {\\n x ... }\\n} | x | tst.js:2:5:2:8 | x: 4 |
|
||||
| tst.js:11:1:18:1 | class C ... ;\\n }\\n} | func | tst.js:12:3:14:3 | static ... x);\\n } |
|
||||
| tst.js:20:1:20:1 | C | prop | tst.js:20:1:20:6 | C.prop |
|
||||
| tst.js:23:8:23:57 | <div on ... }</div> | onClick | tst.js:23:13:23:27 | onClick={click} |
|
||||
| tst.js:25:2:28:1 | {\\n get ... v) {}\\n} | x | tst.js:26:3:26:26 | get x() ... null; } |
|
||||
| tst.js:25:2:28:1 | {\\n get ... v) {}\\n} | y | tst.js:27:3:27:13 | set y(v) {} |
|
||||
| tst.js:30:2:35:1 | {\\n n ... q]: 4\\n} | n | tst.js:31:5:31:8 | n: 1 |
|
||||
test_PropWriteRhs
|
||||
| classes.ts:3:21:3:20 | constructor() {} | classes.ts:3:21:3:20 | () {} |
|
||||
| classes.ts:4:3:4:24 | instanc ... foo(); | classes.ts:4:19:4:23 | foo() |
|
||||
| classes.ts:8:3:8:39 | constru ... eld) {} | classes.ts:8:3:8:39 | constru ... eld) {} |
|
||||
| classes.ts:8:15:8:35 | public ... erField | classes.ts:8:22:8:35 | parameterField |
|
||||
| classes.ts:12:5:12:68 | constru ... + 42; } | classes.ts:12:5:12:68 | constru ... + 42; } |
|
||||
| classes.ts:12:17:12:37 | public ... erField | classes.ts:12:24:12:37 | parameterField |
|
||||
| classes.ts:16:5:16:46 | constru ... {}) {} | classes.ts:16:5:16:46 | constru ... {}) {} |
|
||||
| classes.ts:16:17:16:37 | public ... erField | classes.ts:16:24:16:37 | parameterField |
|
||||
| tst.js:2:5:2:8 | x: 4 | tst.js:2:8:2:8 | 4 |
|
||||
| tst.js:3:5:5:5 | func: f ... ;\\n } | tst.js:3:11:5:5 | functio ... ;\\n } |
|
||||
| tst.js:6:5:8:5 | f() {\\n ... ;\\n } | tst.js:6:6:8:5 | () {\\n ... ;\\n } |
|
||||
| tst.js:11:9:11:8 | constructor() {} | tst.js:11:9:11:8 | () {} |
|
||||
| tst.js:12:3:14:3 | static ... x);\\n } | tst.js:12:14:14:3 | (x) {\\n ... x);\\n } |
|
||||
| tst.js:15:3:17:3 | f(x) {\\n ... x);\\n } | tst.js:15:4:17:3 | (x) {\\n ... x);\\n } |
|
||||
| tst.js:20:1:20:6 | C.prop | tst.js:20:10:20:11 | 56 |
|
||||
| tst.js:23:13:23:27 | onClick={click} | tst.js:23:22:23:26 | click |
|
||||
| tst.js:31:5:31:8 | n: 1 | tst.js:31:8:31:8 | 1 |
|
||||
| tst.js:32:5:32:10 | [v]: 2 | tst.js:32:10:32:10 | 2 |
|
||||
| tst.js:33:5:33:14 | [vv.pp]: 3 | tst.js:33:14:33:14 | 3 |
|
||||
| tst.js:34:5:34:20 | [vvv.ppp.qqq]: 4 | tst.js:34:20:34:20 | 4 |
|
||||
| tst.js:37:13:37:15 | "a" | tst.js:37:13:37:15 | "a" |
|
||||
| tst.js:37:18:37:20 | "b" | tst.js:37:18:37:20 | "b" |
|
||||
| tst.js:37:23:37:25 | "c" | tst.js:37:23:37:25 | "c" |
|
||||
| tst.js:38:13:38:15 | "a" | tst.js:38:13:38:15 | "a" |
|
||||
| tst.js:38:20:38:22 | "c" | tst.js:38:20:38:22 | "c" |
|
||||
| tst.js:39:15:39:17 | "b" | tst.js:39:15:39:17 | "b" |
|
||||
| tst.js:39:20:39:22 | "c" | tst.js:39:20:39:22 | "c" |
|
||||
| tst.js:40:13:40:15 | "a" | tst.js:40:13:40:15 | "a" |
|
||||
| tst.js:40:18:40:20 | "b" | tst.js:40:18:40:20 | "b" |
|
||||
| tst.js:41:13:41:15 | "a" | tst.js:41:13:41:15 | "a" |
|
||||
| tst.js:41:18:41:24 | ...arr3 | tst.js:41:18:41:24 | ...arr3 |
|
||||
| tst.js:41:27:41:29 | "d" | tst.js:41:27:41:29 | "d" |
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
underlyingTypeNode
|
||||
| foo | | file://:0:0:0:0 | use moduleImport("foo").getMember("exports") |
|
||||
| foo | | foo.ts:1:8:1:10 | use moduleImport("foo").getMember("exports").getMember("default") |
|
||||
| foo | Bar | foo.ts:3:1:5:1 | use moduleImport("foo").getMember("exports").getMember("Bar").getInstance() |
|
||||
| foo | Bar | foo.ts:3:12:3:12 | use moduleImport("foo").getMember("exports").getMember("Bar").getInstance() |
|
||||
#select
|
||||
| foo.ts:3:12:3:12 | x | foo.Bar in unknown scope |
|
||||
| foo.ts:4:10:4:10 | x | foo.Bar in unknown scope |
|
||||
| tst.ts:8:14:8:16 | arg | Base in global scope |
|
||||
| tst.ts:8:14:8:16 | arg | Sub in global scope |
|
||||
underlyingTypeNode
|
||||
| foo | | file://:0:0:0:0 | use moduleImport("foo").getMember("exports") |
|
||||
| foo | | foo.ts:1:8:1:10 | use moduleImport("foo").getMember("exports").getMember("default") |
|
||||
| foo | Bar | foo.ts:3:1:5:1 | use moduleImport("foo").getMember("exports").getMember("Bar").getInstance() |
|
||||
| foo | Bar | foo.ts:3:12:3:12 | use moduleImport("foo").getMember("exports").getMember("Bar").getInstance() |
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
getImportAssertionFromImport
|
||||
| js-import-assertions.js:1:1:1:40 | import ... son" }; | js-import-assertions.js:1:24:1:39 | { type: "json" } |
|
||||
| js-import-assertions.js:2:1:2:53 | import ... son" }; | js-import-assertions.js:2:37:2:52 | { type: "json" } |
|
||||
| js-import-assertions.js:3:1:3:52 | import ... son" }; | js-import-assertions.js:3:36:3:51 | { type: "json" } |
|
||||
| js-import-assertions.js:4:1:4:48 | import ... son" }; | js-import-assertions.js:4:32:4:47 | { type: "json" } |
|
||||
| ts-import-assertions.ts:3:1:3:40 | import ... son" }; | ts-import-assertions.ts:3:24:3:39 | { type: "json" } |
|
||||
| ts-import-assertions.ts:4:1:4:53 | import ... son" }; | ts-import-assertions.ts:4:37:4:52 | { type: "json" } |
|
||||
| ts-import-assertions.ts:5:1:5:52 | import ... son" }; | ts-import-assertions.ts:5:36:5:51 | { type: "json" } |
|
||||
| ts-import-assertions.ts:6:1:6:48 | import ... son" }; | ts-import-assertions.ts:6:32:6:47 | { type: "json" } |
|
||||
getImportAssertionFromExport
|
||||
| js-import-assertions.js:6:1:6:52 | export ... son" }; | js-import-assertions.js:6:36:6:51 | { type: "json" } |
|
||||
| js-import-assertions.js:7:1:7:47 | export ... son" }; | js-import-assertions.js:7:31:7:46 | { type: "json" } |
|
||||
| js-import-assertions.js:8:1:8:53 | export ... son" }; | js-import-assertions.js:8:37:8:52 | { type: "json" } |
|
||||
| ts-import-assertions.ts:8:1:8:52 | export ... son" }; | ts-import-assertions.ts:8:36:8:51 | { type: "json" } |
|
||||
| ts-import-assertions.ts:9:1:9:47 | export ... son" }; | ts-import-assertions.ts:9:31:9:46 | { type: "json" } |
|
||||
| ts-import-assertions.ts:10:1:10:53 | export ... son" }; | ts-import-assertions.ts:10:37:10:52 | { type: "json" } |
|
||||
getImportAttributes
|
||||
| js-import-assertions.js:10:12:10:57 | import( ... n" } }) | js-import-assertions.js:10:29:10:56 | { asser ... on" } } |
|
||||
| ts-import-assertions.ts:12:12:12:57 | import( ... n" } }) | ts-import-assertions.ts:12:29:12:56 | { asser ... on" } } |
|
||||
errors
|
||||
@@ -1,13 +0,0 @@
|
||||
import javascript
|
||||
|
||||
query Expr getImportAssertionFromImport(ImportDeclaration decl) {
|
||||
result = decl.getImportAssertion()
|
||||
}
|
||||
|
||||
query Expr getImportAssertionFromExport(ExportDeclaration decl) {
|
||||
result = decl.getImportAssertion()
|
||||
}
|
||||
|
||||
query Expr getImportAttributes(DynamicImportExpr imprt) { result = imprt.getImportAttributes() }
|
||||
|
||||
query JSParseError errors() { any() }
|
||||
@@ -1,13 +1,24 @@
|
||||
import "module" with { type: "json" };
|
||||
import * as v1 from "module" with { type: "json" };
|
||||
import { v2 } from "module" with { type: "json" };
|
||||
import v3 from "module" with { type: "json" };
|
||||
|
||||
export { v4 } from "module" with { type: "json" };
|
||||
export * from "module" with { type: "json" };
|
||||
export * as v5 from "module" with { type: "json" };
|
||||
|
||||
const v6 = import("module", { with: { type: "json" } });
|
||||
|
||||
import "module" // missing semicolon
|
||||
assert({type: "json"}); // function call, not import assertion
|
||||
|
||||
import "module" assert { type: "json" };
|
||||
import * as v1 from "module" assert { type: "json" };
|
||||
import { v2 } from "module" assert { type: "json" };
|
||||
import v3 from "module" assert { type: "json" };
|
||||
|
||||
export { v4 } from "module" assert { type: "json" };
|
||||
export { v7 } from "module" assert { type: "json" };
|
||||
export * from "module" assert { type: "json" };
|
||||
export * as v5 from "module" assert { type: "json" };
|
||||
|
||||
const v6 = import("module", { assert: { type: "json" } });
|
||||
|
||||
import "module" // missing semicolon
|
||||
assert({type: "json"}); // function call, not import assertion
|
||||
@@ -0,0 +1,36 @@
|
||||
getImportAttributesFromImport
|
||||
| js-import-attributes.js:1:1:1:38 | import ... son" }; | js-import-attributes.js:1:22:1:37 | { type: "json" } |
|
||||
| js-import-attributes.js:2:1:2:51 | import ... son" }; | js-import-attributes.js:2:35:2:50 | { type: "json" } |
|
||||
| js-import-attributes.js:3:1:3:50 | import ... son" }; | js-import-attributes.js:3:34:3:49 | { type: "json" } |
|
||||
| js-import-attributes.js:4:1:4:46 | import ... son" }; | js-import-attributes.js:4:30:4:45 | { type: "json" } |
|
||||
| js-import-attributes.js:15:1:15:40 | import ... son" }; | js-import-attributes.js:15:24:15:39 | { type: "json" } |
|
||||
| js-import-attributes.js:16:1:16:53 | import ... son" }; | js-import-attributes.js:16:37:16:52 | { type: "json" } |
|
||||
| js-import-attributes.js:17:1:17:52 | import ... son" }; | js-import-attributes.js:17:36:17:51 | { type: "json" } |
|
||||
| js-import-attributes.js:18:1:18:48 | import ... son" }; | js-import-attributes.js:18:32:18:47 | { type: "json" } |
|
||||
| ts-import-attributes.ts:3:1:3:38 | import ... son" }; | ts-import-attributes.ts:3:22:3:37 | { type: "json" } |
|
||||
| ts-import-attributes.ts:4:1:4:51 | import ... son" }; | ts-import-attributes.ts:4:35:4:50 | { type: "json" } |
|
||||
| ts-import-attributes.ts:5:1:5:50 | import ... son" }; | ts-import-attributes.ts:5:34:5:49 | { type: "json" } |
|
||||
| ts-import-attributes.ts:6:1:6:46 | import ... son" }; | ts-import-attributes.ts:6:30:6:45 | { type: "json" } |
|
||||
| ts-import-attributes.ts:17:1:17:40 | import ... son" }; | ts-import-attributes.ts:17:24:17:39 | { type: "json" } |
|
||||
| ts-import-attributes.ts:18:1:18:53 | import ... son" }; | ts-import-attributes.ts:18:37:18:52 | { type: "json" } |
|
||||
| ts-import-attributes.ts:19:1:19:52 | import ... son" }; | ts-import-attributes.ts:19:36:19:51 | { type: "json" } |
|
||||
| ts-import-attributes.ts:20:1:20:48 | import ... son" }; | ts-import-attributes.ts:20:32:20:47 | { type: "json" } |
|
||||
getImportAttributesFromExport
|
||||
| js-import-attributes.js:6:1:6:50 | export ... son" }; | js-import-attributes.js:6:34:6:49 | { type: "json" } |
|
||||
| js-import-attributes.js:7:1:7:45 | export ... son" }; | js-import-attributes.js:7:29:7:44 | { type: "json" } |
|
||||
| js-import-attributes.js:8:1:8:51 | export ... son" }; | js-import-attributes.js:8:35:8:50 | { type: "json" } |
|
||||
| js-import-attributes.js:20:1:20:52 | export ... son" }; | js-import-attributes.js:20:36:20:51 | { type: "json" } |
|
||||
| js-import-attributes.js:21:1:21:47 | export ... son" }; | js-import-attributes.js:21:31:21:46 | { type: "json" } |
|
||||
| js-import-attributes.js:22:1:22:53 | export ... son" }; | js-import-attributes.js:22:37:22:52 | { type: "json" } |
|
||||
| ts-import-attributes.ts:8:1:8:50 | export ... son" }; | ts-import-attributes.ts:8:34:8:49 | { type: "json" } |
|
||||
| ts-import-attributes.ts:9:1:9:45 | export ... son" }; | ts-import-attributes.ts:9:29:9:44 | { type: "json" } |
|
||||
| ts-import-attributes.ts:10:1:10:51 | export ... son" }; | ts-import-attributes.ts:10:35:10:50 | { type: "json" } |
|
||||
| ts-import-attributes.ts:22:1:22:52 | export ... son" }; | ts-import-attributes.ts:22:36:22:51 | { type: "json" } |
|
||||
| ts-import-attributes.ts:23:1:23:47 | export ... son" }; | ts-import-attributes.ts:23:31:23:46 | { type: "json" } |
|
||||
| ts-import-attributes.ts:24:1:24:53 | export ... son" }; | ts-import-attributes.ts:24:37:24:52 | { type: "json" } |
|
||||
getImportOptions
|
||||
| js-import-attributes.js:10:12:10:55 | import( ... n" } }) | js-import-attributes.js:10:29:10:54 | { with: ... on" } } |
|
||||
| js-import-attributes.js:24:12:24:57 | import( ... n" } }) | js-import-attributes.js:24:29:24:56 | { asser ... on" } } |
|
||||
| ts-import-attributes.ts:12:12:12:55 | import( ... n" } }) | ts-import-attributes.ts:12:29:12:54 | { with: ... on" } } |
|
||||
| ts-import-attributes.ts:26:12:26:57 | import( ... n" } }) | ts-import-attributes.ts:26:29:26:56 | { asser ... on" } } |
|
||||
errors
|
||||
@@ -0,0 +1,13 @@
|
||||
import javascript
|
||||
|
||||
query Expr getImportAttributesFromImport(ImportDeclaration decl) {
|
||||
result = decl.getImportAttributes()
|
||||
}
|
||||
|
||||
query Expr getImportAttributesFromExport(ExportDeclaration decl) {
|
||||
result = decl.getImportAttributes()
|
||||
}
|
||||
|
||||
query Expr getImportOptions(DynamicImportExpr imprt) { result = imprt.getImportOptions() }
|
||||
|
||||
query JSParseError errors() { any() }
|
||||
@@ -1,5 +1,19 @@
|
||||
// TypeScript
|
||||
|
||||
import "module" with { type: "json" };
|
||||
import * as v1 from "module" with { type: "json" };
|
||||
import { v2 } from "module" with { type: "json" };
|
||||
import v3 from "module" with { type: "json" };
|
||||
|
||||
export { v4 } from "module" with { type: "json" };
|
||||
export * from "module" with { type: "json" };
|
||||
export * as v5 from "module" with { type: "json" };
|
||||
|
||||
const v6 = import("module", { with: { type: "json" } });
|
||||
|
||||
import "module" // missing semicolon
|
||||
assert({ type: "json" }); // function call, not import assertion
|
||||
|
||||
import "module" assert { type: "json" };
|
||||
import * as v1 from "module" assert { type: "json" };
|
||||
import { v2 } from "module" assert { type: "json" };
|
||||
@@ -10,6 +24,3 @@ export * from "module" assert { type: "json" };
|
||||
export * as v5 from "module" assert { type: "json" };
|
||||
|
||||
const v6 = import("module", { assert: { type: "json" } });
|
||||
|
||||
import "module" // missing semicolon
|
||||
assert({ type: "json" }); // function call, not import assertion
|
||||
@@ -1,17 +0,0 @@
|
||||
| A in namespaces.ts |
|
||||
| A.C in namespaces.ts |
|
||||
| B in namespaces.ts:3 |
|
||||
| B in namespaces.ts:10 |
|
||||
| B.Bx in namespaces.ts:3 |
|
||||
| B.Bx in namespaces.ts:10 |
|
||||
| D in namespaces.ts |
|
||||
| D.F in namespaces.ts |
|
||||
| E in namespaces.ts:17 |
|
||||
| E in namespaces.ts:22 |
|
||||
| G in namespaces.ts |
|
||||
| H in namespaces.ts:27 |
|
||||
| H.I in namespaces.ts:27 |
|
||||
| X in namespaces.ts |
|
||||
| X.Y in namespaces.ts |
|
||||
| X.Y.Z in namespaces.ts |
|
||||
| namespaces.ts |
|
||||
@@ -1,3 +1,12 @@
|
||||
#select
|
||||
| tst.ts:1:1:1:16 | type A = number; | tst.ts:1:6:1:6 | A | 0 | tst.ts:1:10:1:15 | number |
|
||||
| tst.ts:2:1:2:16 | type B<T> = T[]; | tst.ts:2:6:2:6 | B | 1 | tst.ts:2:13:2:15 | T[] |
|
||||
| tst.ts:8:10:8:20 | type C = A; | tst.ts:8:15:8:15 | C | 0 | tst.ts:8:19:8:19 | A |
|
||||
| tst.ts:15:1:15:23 | type Un ... \| Two; | tst.ts:15:6:15:10 | Union | 0 | tst.ts:15:14:15:22 | One \| Two |
|
||||
| tst.ts:17:1:17:36 | type Un ... mber }; | tst.ts:17:6:17:11 | Union2 | 0 | tst.ts:17:15:17:35 | Union & ... umber } |
|
||||
| tst.ts:18:1:18:21 | type Un ... Union2; | tst.ts:18:6:18:11 | Union3 | 0 | tst.ts:18:15:18:20 | Union2 |
|
||||
| tst.ts:19:1:19:21 | type Un ... Union3; | tst.ts:19:6:19:11 | Union4 | 0 | tst.ts:19:15:19:20 | Union3 |
|
||||
| tst.ts:20:1:20:30 | type Un ... number; | tst.ts:20:6:20:11 | Union5 | 0 | tst.ts:20:15:20:29 | Union4 \| number |
|
||||
rightHandSide
|
||||
| tst.ts:1:1:1:16 | type A = number; | number |
|
||||
| tst.ts:2:1:2:16 | type B<T> = T[]; | T[] |
|
||||
@@ -33,12 +42,3 @@ unfold
|
||||
| Union5 | Union5 |
|
||||
| Union5 | number |
|
||||
| Union5 | { x: number; } |
|
||||
#select
|
||||
| tst.ts:1:1:1:16 | type A = number; | tst.ts:1:6:1:6 | A | 0 | tst.ts:1:10:1:15 | number |
|
||||
| tst.ts:2:1:2:16 | type B<T> = T[]; | tst.ts:2:6:2:6 | B | 1 | tst.ts:2:13:2:15 | T[] |
|
||||
| tst.ts:8:10:8:20 | type C = A; | tst.ts:8:15:8:15 | C | 0 | tst.ts:8:19:8:19 | A |
|
||||
| tst.ts:15:1:15:23 | type Un ... \| Two; | tst.ts:15:6:15:10 | Union | 0 | tst.ts:15:14:15:22 | One \| Two |
|
||||
| tst.ts:17:1:17:36 | type Un ... mber }; | tst.ts:17:6:17:11 | Union2 | 0 | tst.ts:17:15:17:35 | Union & ... umber } |
|
||||
| tst.ts:18:1:18:21 | type Un ... Union2; | tst.ts:18:6:18:11 | Union3 | 0 | tst.ts:18:15:18:20 | Union2 |
|
||||
| tst.ts:19:1:19:21 | type Un ... Union3; | tst.ts:19:6:19:11 | Union4 | 0 | tst.ts:19:15:19:20 | Union3 |
|
||||
| tst.ts:20:1:20:30 | type Un ... number; | tst.ts:20:6:20:11 | Union5 | 0 | tst.ts:20:15:20:29 | Union4 \| number |
|
||||
|
||||
@@ -1,33 +1,113 @@
|
||||
test_TypeofTypeExpr
|
||||
| tst.ts:70:17:70:24 | typeof N | tst.ts:70:24:70:24 | N |
|
||||
| tst.ts:71:17:71:26 | typeof N.x | tst.ts:71:24:71:26 | N.x |
|
||||
| tst.ts:72:17:72:35 | typeof qualifiedVar | tst.ts:72:24:72:35 | qualifiedVar |
|
||||
| tst.ts:81:43:81:50 | typeof x | tst.ts:81:50:81:50 | x |
|
||||
| tst.ts:126:21:126:42 | typeof ... value") | tst.ts:126:28:126:42 | import("value") |
|
||||
| tst.ts:127:30:127:53 | typeof ... lue").x | tst.ts:127:53:127:53 | x |
|
||||
test_FunctionTypeParameters
|
||||
| tst.ts:88:20:88:44 | (param: ... number | 0 | 1 | tst.ts:88:21:88:25 | param |
|
||||
| tst.ts:89:20:89:37 | <T>(param: T) => T | 0 | 1 | tst.ts:89:24:89:28 | param |
|
||||
| tst.ts:91:23:91:51 | new (pa ... Object | 0 | 1 | tst.ts:91:28:91:32 | param |
|
||||
| tst.ts:92:23:92:49 | new <T> ... Object | 0 | 1 | tst.ts:92:31:92:35 | param |
|
||||
test_IndexedAccessTypeExpr
|
||||
| tst.ts:42:18:42:41 | Interfa ... Field'] | tst.ts:42:18:42:26 | Interface | tst.ts:42:28:42:40 | 'numberField' |
|
||||
test_UnknownTypeExpr
|
||||
| tst.ts:137:18:137:24 | unknown |
|
||||
test_MappedTypeExpr
|
||||
| tst.ts:113:18:113:46 | { [K in ... umber } | tst.ts:113:21:113:35 | K in keyof Node | tst.ts:113:21:113:21 | K | tst.ts:113:26:113:35 | keyof Node | tst.ts:113:39:113:44 | number |
|
||||
| tst.ts:114:18:114:41 | { [K in ... umber } | tst.ts:114:21:114:30 | K in "foo" | tst.ts:114:21:114:21 | K | tst.ts:114:26:114:30 | "foo" | tst.ts:114:34:114:39 | number |
|
||||
test_ImportTypeExpr
|
||||
| tst.ts:122:19:122:32 | import("type") | type | type |
|
||||
| tst.ts:123:26:123:39 | import("type") | type | type |
|
||||
| tst.ts:124:28:124:46 | import("namespace") | namespace | namespace |
|
||||
| tst.ts:125:35:125:53 | import("namespace") | namespace | namespace |
|
||||
| tst.ts:126:28:126:42 | import("value") | value | value |
|
||||
| tst.ts:127:37:127:51 | import("value") | value | value |
|
||||
| tst.ts:128:38:130:3 | import( ... ce'\\n ) | awkard-namespace | namespace |
|
||||
test_OptionalTypeExpr
|
||||
| tst.ts:133:48:133:54 | number? | tst.ts:133:48:133:53 | number |
|
||||
| tst.ts:136:48:136:54 | string? | tst.ts:136:48:136:53 | string |
|
||||
test_ChildIndex
|
||||
test_FieldTypes
|
||||
| tst.ts:15:3:15:22 | numberField: number; | tst.ts:15:16:15:21 | number |
|
||||
| tst.ts:16:3:16:22 | stringField: string; | tst.ts:16:16:16:21 | string |
|
||||
| tst.ts:17:3:17:28 | interfa ... erface; | tst.ts:17:19:17:27 | Interface |
|
||||
| tst.ts:18:3:18:18 | thisField: this; | tst.ts:18:14:18:17 | this |
|
||||
| tst.ts:83:21:83:30 | x: number; | tst.ts:83:24:83:29 | number |
|
||||
| tst.ts:83:32:83:41 | y: number; | tst.ts:83:35:83:40 | number |
|
||||
test_Parameters
|
||||
| tst.ts:36:27:36:32 | param1 | tst.ts:36:44:36:44 | 1 | tst.ts:36:35:36:40 | number |
|
||||
| tst.ts:36:47:36:52 | param2 | tst.ts:36:64:36:66 | '2' | tst.ts:36:55:36:60 | string |
|
||||
test_IsTypeExpr
|
||||
| tst.ts:75:17:75:28 | this is Leaf | tst.ts:75:17:75:20 | this | tst.ts:75:25:75:28 | Leaf |
|
||||
| tst.ts:76:21:76:32 | that is Leaf | tst.ts:76:21:76:24 | that | tst.ts:76:29:76:32 | Leaf |
|
||||
| tst.ts:80:36:80:55 | x is Generic<Leaf[]> | tst.ts:80:36:80:36 | x | tst.ts:80:41:80:55 | Generic<Leaf[]> |
|
||||
| tst.ts:81:38:81:50 | x is typeof x | tst.ts:81:38:81:38 | x | tst.ts:81:43:81:50 | typeof x |
|
||||
| tst.ts:148:36:148:56 | asserts ... string | tst.ts:148:44:148:46 | val | tst.ts:148:51:148:56 | string |
|
||||
test_ReturnTypes
|
||||
| tst.ts:20:3:20:31 | returnN ... number; | method returnNumberMethod of interface Interface | tst.ts:20:25:20:30 | number |
|
||||
| tst.ts:21:3:21:27 | returnV ... : void; | method returnVoidMethod of interface Interface | tst.ts:21:23:21:26 | void |
|
||||
| tst.ts:22:3:22:27 | returnN ... : null; | method returnNullMethod of interface Interface | tst.ts:22:23:22:26 | null |
|
||||
| tst.ts:23:3:23:27 | returnT ... : this; | method returnThisMethod of interface Interface | tst.ts:23:23:23:26 | this |
|
||||
| tst.ts:30:1:30:53 | functio ... rn 0; } | function returnNumberFunction | tst.ts:30:34:30:39 | number |
|
||||
| tst.ts:31:1:31:49 | functio ... rn 0; } | function returnVoidFunction | tst.ts:31:32:31:35 | void |
|
||||
| tst.ts:32:1:32:49 | functio ... rn 0; } | function returnNullFunction | tst.ts:32:32:32:35 | null |
|
||||
| tst.ts:75:3:75:29 | isThisL ... s Leaf; | method isThisLeaf of interface Node | tst.ts:75:17:75:28 | this is Leaf |
|
||||
| tst.ts:76:3:76:33 | isThatL ... s Leaf; | method isThatLeaf of interface Node | tst.ts:76:21:76:32 | that is Leaf |
|
||||
| tst.ts:80:1:80:73 | functio ... alse; } | function complexIsType | tst.ts:80:36:80:55 | x is Generic<Leaf[]> |
|
||||
| tst.ts:81:1:81:66 | functio ... true } | function obviousIsType | tst.ts:81:38:81:50 | x is typeof x |
|
||||
| tst.ts:85:27:85:40 | foo(): number; | method foo of anonymous interface | tst.ts:85:34:85:39 | number |
|
||||
| tst.ts:87:20:87:31 | () => number | anonymous function type | tst.ts:87:26:87:31 | number |
|
||||
| tst.ts:88:20:88:44 | (param: ... number | anonymous function type | tst.ts:88:39:88:44 | number |
|
||||
| tst.ts:89:20:89:37 | <T>(param: T) => T | anonymous function type | tst.ts:89:37:89:37 | T |
|
||||
| tst.ts:90:23:90:38 | new () => Object | anonymous function type | tst.ts:90:33:90:38 | Object |
|
||||
| tst.ts:91:23:91:51 | new (pa ... Object | anonymous function type | tst.ts:91:46:91:51 | Object |
|
||||
| tst.ts:92:23:92:49 | new <T> ... Object | anonymous function type | tst.ts:92:44:92:49 | Object |
|
||||
| tst.ts:94:1:94:37 | functio ... rn x; } | function f1 | tst.ts:94:23:94:23 | S |
|
||||
| tst.ts:95:1:95:53 | functio ... x,y]; } | function f2 | tst.ts:95:31:95:35 | [S,T] |
|
||||
| tst.ts:96:1:96:52 | functio ... rn x; } | function f3 | tst.ts:96:38:96:38 | S |
|
||||
| tst.ts:142:1:146:1 | functio ... )\\n }\\n} | function assert | tst.ts:142:48:142:64 | asserts condition |
|
||||
| tst.ts:148:1:152:1 | functio ... ;\\n }\\n} | function assertIsString | tst.ts:148:36:148:56 | asserts ... string |
|
||||
| tst.ts:164:1:166:1 | functio ... rr2];\\n} | function concat | tst.ts:164:66:164:77 | [...T, ...U] |
|
||||
| tst.ts:169:1:172:1 | functio ... + b;\\n} | function labelOnTupleElements | tst.ts:169:68:169:73 | number |
|
||||
| tst.ts:192:1:194:1 | functio ... rn x;\\n} | function weirdId | tst.ts:192:47:192:70 | [number ... number] |
|
||||
test_RestTypeExpr
|
||||
| tst.ts:135:36:135:46 | ...string[] | tst.ts:135:39:135:46 | string[] | tst.ts:135:39:135:44 | string |
|
||||
| tst.ts:136:57:136:67 | ...number[] | tst.ts:136:60:136:67 | number[] | tst.ts:136:60:136:65 | number |
|
||||
test_ArrayTypeExpr
|
||||
| tst.ts:38:16:38:23 | string[] | tst.ts:38:16:38:21 | string |
|
||||
| tst.ts:39:17:39:24 | string[] | tst.ts:39:17:39:22 | string |
|
||||
| tst.ts:39:17:39:26 | string[][] | tst.ts:39:17:39:24 | string[] |
|
||||
| tst.ts:40:17:40:24 | string[] | tst.ts:40:17:40:22 | string |
|
||||
| tst.ts:40:17:40:26 | string[][] | tst.ts:40:17:40:24 | string[] |
|
||||
| tst.ts:40:17:40:28 | string[][][] | tst.ts:40:17:40:26 | string[][] |
|
||||
| tst.ts:80:49:80:54 | Leaf[] | tst.ts:80:49:80:52 | Leaf |
|
||||
| tst.ts:81:27:81:34 | string[] | tst.ts:81:27:81:32 | string |
|
||||
| tst.ts:135:39:135:46 | string[] | tst.ts:135:39:135:44 | string |
|
||||
| tst.ts:136:60:136:67 | number[] | tst.ts:136:60:136:65 | number |
|
||||
| tst.ts:157:25:157:29 | any[] | tst.ts:157:25:157:27 | any |
|
||||
| tst.ts:163:21:163:25 | any[] | tst.ts:163:21:163:23 | any |
|
||||
test_KeyofTypeExpr
|
||||
| tst.ts:49:16:49:30 | keyof Interface | tst.ts:49:22:49:30 | Interface |
|
||||
| tst.ts:113:26:113:35 | keyof Node | tst.ts:113:32:113:35 | Node |
|
||||
test_TupleTypeExpr
|
||||
| tst.ts:48:16:48:40 | [number ... oolean] | 0 | 3 | tst.ts:48:17:48:22 | number |
|
||||
| tst.ts:48:16:48:40 | [number ... oolean] | 1 | 3 | tst.ts:48:25:48:30 | string |
|
||||
| tst.ts:48:16:48:40 | [number ... oolean] | 2 | 3 | tst.ts:48:33:48:39 | boolean |
|
||||
| tst.ts:95:31:95:35 | [S,T] | 0 | 2 | tst.ts:95:32:95:32 | S |
|
||||
| tst.ts:95:31:95:35 | [S,T] | 1 | 2 | tst.ts:95:34:95:34 | T |
|
||||
| tst.ts:133:31:133:55 | [number ... umber?] | 0 | 3 | tst.ts:133:32:133:37 | number |
|
||||
| tst.ts:133:31:133:55 | [number ... umber?] | 1 | 3 | tst.ts:133:40:133:45 | string |
|
||||
| tst.ts:133:31:133:55 | [number ... umber?] | 2 | 3 | tst.ts:133:48:133:54 | number? |
|
||||
| tst.ts:135:27:135:47 | [number ... ring[]] | 0 | 2 | tst.ts:135:28:135:33 | number |
|
||||
| tst.ts:135:27:135:47 | [number ... ring[]] | 1 | 2 | tst.ts:135:36:135:46 | ...string[] |
|
||||
| tst.ts:136:39:136:68 | [number ... mber[]] | 0 | 3 | tst.ts:136:40:136:45 | number |
|
||||
| tst.ts:136:39:136:68 | [number ... mber[]] | 1 | 3 | tst.ts:136:48:136:54 | string? |
|
||||
| tst.ts:136:39:136:68 | [number ... mber[]] | 2 | 3 | tst.ts:136:57:136:67 | ...number[] |
|
||||
| tst.ts:157:46:157:56 | [any, ...T] | 0 | 2 | tst.ts:157:47:157:49 | any |
|
||||
| tst.ts:157:46:157:56 | [any, ...T] | 1 | 2 | tst.ts:157:52:157:55 | ...T |
|
||||
| tst.ts:164:66:164:77 | [...T, ...U] | 0 | 2 | tst.ts:164:67:164:70 | ...T |
|
||||
| tst.ts:164:66:164:77 | [...T, ...U] | 1 | 2 | tst.ts:164:73:164:76 | ...U |
|
||||
| tst.ts:169:34:169:64 | [first: ... number] | 0 | 2 | tst.ts:169:42:169:47 | number |
|
||||
| tst.ts:169:34:169:64 | [first: ... number] | 1 | 2 | tst.ts:169:58:169:63 | number |
|
||||
| tst.ts:175:16:175:31 | [string, string] | 0 | 2 | tst.ts:175:17:175:22 | string |
|
||||
| tst.ts:175:16:175:31 | [string, string] | 1 | 2 | tst.ts:175:25:175:30 | string |
|
||||
| tst.ts:176:16:176:31 | [number, number] | 0 | 2 | tst.ts:176:17:176:22 | number |
|
||||
| tst.ts:176:16:176:31 | [number, number] | 1 | 2 | tst.ts:176:25:176:30 | number |
|
||||
| tst.ts:179:21:179:44 | [...Str ... umbers] | 0 | 2 | tst.ts:179:22:179:31 | ...Strings |
|
||||
| tst.ts:179:21:179:44 | [...Str ... umbers] | 1 | 2 | tst.ts:179:34:179:43 | ...Numbers |
|
||||
| tst.ts:192:21:192:43 | [first: ... number] | 0 | 2 | tst.ts:192:29:192:34 | number |
|
||||
| tst.ts:192:21:192:43 | [first: ... number] | 1 | 2 | tst.ts:192:37:192:42 | number |
|
||||
| tst.ts:192:47:192:70 | [number ... number] | 0 | 2 | tst.ts:192:48:192:53 | number |
|
||||
| tst.ts:192:47:192:70 | [number ... number] | 1 | 2 | tst.ts:192:64:192:69 | number |
|
||||
test_TypeArguments
|
||||
| tst.ts:102:13:102:29 | f1<string>("foo") | 0 | 1 | tst.ts:102:16:102:21 | string |
|
||||
| tst.ts:103:13:103:40 | f2<stri ... oo", 5) | 0 | 2 | tst.ts:103:16:103:21 | string |
|
||||
| tst.ts:103:13:103:40 | f2<stri ... oo", 5) | 1 | 2 | tst.ts:103:24:103:29 | number |
|
||||
| tst.ts:104:13:104:25 | f3<number>(5) | 0 | 1 | tst.ts:104:16:104:21 | number |
|
||||
| tst.ts:106:12:106:27 | new C1<string>() | 0 | 1 | tst.ts:106:19:106:24 | string |
|
||||
| tst.ts:107:12:107:35 | new C2< ... mber>() | 0 | 2 | tst.ts:107:19:107:24 | string |
|
||||
| tst.ts:107:12:107:35 | new C2< ... mber>() | 1 | 2 | tst.ts:107:27:107:32 | number |
|
||||
| tst.ts:108:12:108:27 | new C3<number>() | 0 | 1 | tst.ts:108:19:108:24 | number |
|
||||
test_UnionTypeExpr
|
||||
| tst.ts:41:16:41:36 | string\| ... boolean | 0 | 3 | tst.ts:41:16:41:21 | string |
|
||||
| tst.ts:41:16:41:36 | string\| ... boolean | 1 | 3 | tst.ts:41:23:41:28 | number |
|
||||
| tst.ts:41:16:41:36 | string\| ... boolean | 2 | 3 | tst.ts:41:30:41:36 | boolean |
|
||||
| tst.ts:47:19:47:33 | string \| number | 0 | 2 | tst.ts:47:19:47:24 | string |
|
||||
| tst.ts:47:19:47:33 | string \| number | 1 | 2 | tst.ts:47:28:47:33 | number |
|
||||
| tst.ts:47:39:47:54 | boolean \| string | 0 | 2 | tst.ts:47:39:47:45 | boolean |
|
||||
| tst.ts:47:39:47:54 | boolean \| string | 1 | 2 | tst.ts:47:49:47:54 | string |
|
||||
test_VariableTypes
|
||||
| tst.ts:1:5:1:13 | stringVar | stringVar | tst.ts:1:16:1:21 | string |
|
||||
| tst.ts:2:5:2:13 | numberVar | numberVar | tst.ts:2:16:2:21 | number |
|
||||
@@ -117,15 +197,19 @@ test_VariableTypes
|
||||
| tst.ts:185:7:185:8 | a2 | a2 | tst.ts:185:12:185:17 | number |
|
||||
| tst.ts:186:7:186:8 | a3 | a3 | tst.ts:186:12:186:17 | number |
|
||||
| tst.ts:192:18:192:18 | x | x | tst.ts:192:21:192:43 | [first: ... number] |
|
||||
test_QualifiedTypeAccess
|
||||
| tst.ts:63:19:63:21 | N.I | tst.ts:63:19:63:19 | N | tst.ts:63:21:63:21 | I |
|
||||
| tst.ts:64:20:64:24 | N.M.I | tst.ts:64:20:64:22 | N.M | tst.ts:64:24:64:24 | I |
|
||||
| tst.ts:66:18:66:32 | N.InnerGeneric1 | tst.ts:66:18:66:18 | N | tst.ts:66:20:66:32 | InnerGeneric1 |
|
||||
| tst.ts:67:18:67:34 | N.M.InnerGeneric2 | tst.ts:67:18:67:20 | N.M | tst.ts:67:22:67:34 | InnerGeneric2 |
|
||||
| tst.ts:68:26:68:40 | N.InnerGeneric1 | tst.ts:68:26:68:26 | N | tst.ts:68:28:68:40 | InnerGeneric1 |
|
||||
| tst.ts:124:48:124:50 | Foo | tst.ts:124:28:124:46 | import("namespace") | tst.ts:124:48:124:50 | Foo |
|
||||
| tst.ts:125:55:125:57 | Foo | tst.ts:125:35:125:53 | import("namespace") | tst.ts:125:55:125:57 | Foo |
|
||||
| tst.ts:131:4:131:6 | bar | tst.ts:128:38:130:3 | import( ... ce'\\n ) | tst.ts:131:4:131:6 | bar |
|
||||
test_MappedTypeExpr
|
||||
| tst.ts:113:18:113:46 | { [K in ... umber } | tst.ts:113:21:113:35 | K in keyof Node | tst.ts:113:21:113:21 | K | tst.ts:113:26:113:35 | keyof Node | tst.ts:113:39:113:44 | number |
|
||||
| tst.ts:114:18:114:41 | { [K in ... umber } | tst.ts:114:21:114:30 | K in "foo" | tst.ts:114:21:114:21 | K | tst.ts:114:26:114:30 | "foo" | tst.ts:114:34:114:39 | number |
|
||||
test_TypeAssertions
|
||||
| tst.ts:110:14:110:24 | 5 as number | tst.ts:110:14:110:14 | 5 | tst.ts:110:19:110:24 | number |
|
||||
| tst.ts:111:18:111:31 | <string> 'foo' | tst.ts:111:27:111:31 | 'foo' | tst.ts:111:19:111:24 | string |
|
||||
test_TypeofTypeExpr
|
||||
| tst.ts:70:17:70:24 | typeof N | tst.ts:70:24:70:24 | N |
|
||||
| tst.ts:71:17:71:26 | typeof N.x | tst.ts:71:24:71:26 | N.x |
|
||||
| tst.ts:72:17:72:35 | typeof qualifiedVar | tst.ts:72:24:72:35 | qualifiedVar |
|
||||
| tst.ts:81:43:81:50 | typeof x | tst.ts:81:50:81:50 | x |
|
||||
| tst.ts:126:21:126:42 | typeof ... value") | tst.ts:126:28:126:42 | import("value") |
|
||||
| tst.ts:127:30:127:53 | typeof ... lue").x | tst.ts:127:53:127:53 | x |
|
||||
test_GenericTypeExpr
|
||||
| tst.ts:65:18:65:32 | Generic<number> | tst.ts:65:18:65:24 | Generic | 0 | 1 | tst.ts:65:26:65:31 | number |
|
||||
| tst.ts:66:18:66:40 | N.Inner ... number> | tst.ts:66:18:66:32 | N.InnerGeneric1 | 0 | 1 | tst.ts:66:34:66:39 | number |
|
||||
@@ -138,119 +222,15 @@ test_GenericTypeExpr
|
||||
| tst.ts:80:41:80:55 | Generic<Leaf[]> | tst.ts:80:41:80:47 | Generic | 0 | 1 | tst.ts:80:49:80:54 | Leaf[] |
|
||||
| tst.ts:123:26:123:47 | import( ... string> | tst.ts:123:26:123:39 | import("type") | 0 | 1 | tst.ts:123:41:123:46 | string |
|
||||
| tst.ts:125:35:125:65 | import( ... string> | tst.ts:125:55:125:57 | Foo | 0 | 1 | tst.ts:125:59:125:64 | string |
|
||||
test_IntersectionTypeExpr
|
||||
| tst.ts:43:23:43:43 | string& ... boolean | 0 | 3 | tst.ts:43:23:43:28 | string |
|
||||
| tst.ts:43:23:43:43 | string& ... boolean | 1 | 3 | tst.ts:43:30:43:35 | number |
|
||||
| tst.ts:43:23:43:43 | string& ... boolean | 2 | 3 | tst.ts:43:37:43:43 | boolean |
|
||||
| tst.ts:47:18:47:55 | (string ... string) | 0 | 2 | tst.ts:47:18:47:34 | (string \| number) |
|
||||
| tst.ts:47:18:47:55 | (string ... string) | 1 | 2 | tst.ts:47:38:47:55 | (boolean \| string) |
|
||||
test_FunctionTypeReturns
|
||||
| tst.ts:87:20:87:31 | () => number | tst.ts:87:26:87:31 | number |
|
||||
| tst.ts:88:20:88:44 | (param: ... number | tst.ts:88:39:88:44 | number |
|
||||
| tst.ts:89:20:89:37 | <T>(param: T) => T | tst.ts:89:37:89:37 | T |
|
||||
| tst.ts:90:23:90:38 | new () => Object | tst.ts:90:33:90:38 | Object |
|
||||
| tst.ts:91:23:91:51 | new (pa ... Object | tst.ts:91:46:91:51 | Object |
|
||||
| tst.ts:92:23:92:49 | new <T> ... Object | tst.ts:92:44:92:49 | Object |
|
||||
test_UnknownTypeExpr
|
||||
| tst.ts:137:18:137:24 | unknown |
|
||||
test_OptionalTypeExpr
|
||||
| tst.ts:133:48:133:54 | number? | tst.ts:133:48:133:53 | number |
|
||||
| tst.ts:136:48:136:54 | string? | tst.ts:136:48:136:53 | string |
|
||||
test_InterfaceTypeExpr
|
||||
| tst.ts:83:19:83:43 | { x: nu ... mber; } | tst.ts:83:21:83:30 | x: number; |
|
||||
| tst.ts:83:19:83:43 | { x: nu ... mber; } | tst.ts:83:32:83:41 | y: number; |
|
||||
| tst.ts:85:25:85:42 | { foo(): number; } | tst.ts:85:27:85:40 | foo(): number; |
|
||||
test_IsTypeExpr
|
||||
| tst.ts:75:17:75:28 | this is Leaf | tst.ts:75:17:75:20 | this | tst.ts:75:25:75:28 | Leaf |
|
||||
| tst.ts:76:21:76:32 | that is Leaf | tst.ts:76:21:76:24 | that | tst.ts:76:29:76:32 | Leaf |
|
||||
| tst.ts:80:36:80:55 | x is Generic<Leaf[]> | tst.ts:80:36:80:36 | x | tst.ts:80:41:80:55 | Generic<Leaf[]> |
|
||||
| tst.ts:81:38:81:50 | x is typeof x | tst.ts:81:38:81:38 | x | tst.ts:81:43:81:50 | typeof x |
|
||||
| tst.ts:148:36:148:56 | asserts ... string | tst.ts:148:44:148:46 | val | tst.ts:148:51:148:56 | string |
|
||||
test_PredicateTypeExpr
|
||||
| tst.ts:75:17:75:28 | this is Leaf | tst.ts:75:17:75:20 | this |
|
||||
| tst.ts:76:21:76:32 | that is Leaf | tst.ts:76:21:76:24 | that |
|
||||
| tst.ts:80:36:80:55 | x is Generic<Leaf[]> | tst.ts:80:36:80:36 | x |
|
||||
| tst.ts:81:38:81:50 | x is typeof x | tst.ts:81:38:81:38 | x |
|
||||
| tst.ts:142:48:142:64 | asserts condition | tst.ts:142:56:142:64 | condition |
|
||||
| tst.ts:148:36:148:56 | asserts ... string | tst.ts:148:44:148:46 | val |
|
||||
test_hasAssertsKeyword
|
||||
| tst.ts:142:48:142:64 | asserts condition |
|
||||
| tst.ts:148:36:148:56 | asserts ... string |
|
||||
test_ThisParameterTypes
|
||||
| function hasThisParam | tst.ts:116:29:116:32 | void |
|
||||
| method hasThisParam of interface InterfaceWithThisParam | tst.ts:119:22:119:43 | Interfa ... isParam |
|
||||
test_ChildIndex
|
||||
test_TypeArguments
|
||||
| tst.ts:102:13:102:29 | f1<string>("foo") | 0 | 1 | tst.ts:102:16:102:21 | string |
|
||||
| tst.ts:103:13:103:40 | f2<stri ... oo", 5) | 0 | 2 | tst.ts:103:16:103:21 | string |
|
||||
| tst.ts:103:13:103:40 | f2<stri ... oo", 5) | 1 | 2 | tst.ts:103:24:103:29 | number |
|
||||
| tst.ts:104:13:104:25 | f3<number>(5) | 0 | 1 | tst.ts:104:16:104:21 | number |
|
||||
| tst.ts:106:12:106:27 | new C1<string>() | 0 | 1 | tst.ts:106:19:106:24 | string |
|
||||
| tst.ts:107:12:107:35 | new C2< ... mber>() | 0 | 2 | tst.ts:107:19:107:24 | string |
|
||||
| tst.ts:107:12:107:35 | new C2< ... mber>() | 1 | 2 | tst.ts:107:27:107:32 | number |
|
||||
| tst.ts:108:12:108:27 | new C3<number>() | 0 | 1 | tst.ts:108:19:108:24 | number |
|
||||
test_ParenthesizedTypeExpr
|
||||
| tst.ts:44:24:44:31 | (string) | tst.ts:44:25:44:30 | string | tst.ts:44:25:44:30 | string |
|
||||
| tst.ts:45:25:45:34 | ((string)) | tst.ts:45:26:45:33 | (string) | tst.ts:45:27:45:32 | string |
|
||||
| tst.ts:45:26:45:33 | (string) | tst.ts:45:27:45:32 | string | tst.ts:45:27:45:32 | string |
|
||||
| tst.ts:46:25:46:36 | (((string))) | tst.ts:46:26:46:35 | ((string)) | tst.ts:46:28:46:33 | string |
|
||||
| tst.ts:46:26:46:35 | ((string)) | tst.ts:46:27:46:34 | (string) | tst.ts:46:28:46:33 | string |
|
||||
| tst.ts:46:27:46:34 | (string) | tst.ts:46:28:46:33 | string | tst.ts:46:28:46:33 | string |
|
||||
| tst.ts:47:18:47:34 | (string \| number) | tst.ts:47:19:47:33 | string \| number | tst.ts:47:19:47:33 | string \| number |
|
||||
| tst.ts:47:38:47:55 | (boolean \| string) | tst.ts:47:39:47:54 | boolean \| string | tst.ts:47:39:47:54 | boolean \| string |
|
||||
test_TupleTypeExpr
|
||||
| tst.ts:48:16:48:40 | [number ... oolean] | 0 | 3 | tst.ts:48:17:48:22 | number |
|
||||
| tst.ts:48:16:48:40 | [number ... oolean] | 1 | 3 | tst.ts:48:25:48:30 | string |
|
||||
| tst.ts:48:16:48:40 | [number ... oolean] | 2 | 3 | tst.ts:48:33:48:39 | boolean |
|
||||
| tst.ts:95:31:95:35 | [S,T] | 0 | 2 | tst.ts:95:32:95:32 | S |
|
||||
| tst.ts:95:31:95:35 | [S,T] | 1 | 2 | tst.ts:95:34:95:34 | T |
|
||||
| tst.ts:133:31:133:55 | [number ... umber?] | 0 | 3 | tst.ts:133:32:133:37 | number |
|
||||
| tst.ts:133:31:133:55 | [number ... umber?] | 1 | 3 | tst.ts:133:40:133:45 | string |
|
||||
| tst.ts:133:31:133:55 | [number ... umber?] | 2 | 3 | tst.ts:133:48:133:54 | number? |
|
||||
| tst.ts:135:27:135:47 | [number ... ring[]] | 0 | 2 | tst.ts:135:28:135:33 | number |
|
||||
| tst.ts:135:27:135:47 | [number ... ring[]] | 1 | 2 | tst.ts:135:36:135:46 | ...string[] |
|
||||
| tst.ts:136:39:136:68 | [number ... mber[]] | 0 | 3 | tst.ts:136:40:136:45 | number |
|
||||
| tst.ts:136:39:136:68 | [number ... mber[]] | 1 | 3 | tst.ts:136:48:136:54 | string? |
|
||||
| tst.ts:136:39:136:68 | [number ... mber[]] | 2 | 3 | tst.ts:136:57:136:67 | ...number[] |
|
||||
| tst.ts:157:46:157:56 | [any, ...T] | 0 | 2 | tst.ts:157:47:157:49 | any |
|
||||
| tst.ts:157:46:157:56 | [any, ...T] | 1 | 2 | tst.ts:157:52:157:55 | ...T |
|
||||
| tst.ts:164:66:164:77 | [...T, ...U] | 0 | 2 | tst.ts:164:67:164:70 | ...T |
|
||||
| tst.ts:164:66:164:77 | [...T, ...U] | 1 | 2 | tst.ts:164:73:164:76 | ...U |
|
||||
| tst.ts:169:34:169:64 | [first: ... number] | 0 | 2 | tst.ts:169:42:169:47 | number |
|
||||
| tst.ts:169:34:169:64 | [first: ... number] | 1 | 2 | tst.ts:169:58:169:63 | number |
|
||||
| tst.ts:175:16:175:31 | [string, string] | 0 | 2 | tst.ts:175:17:175:22 | string |
|
||||
| tst.ts:175:16:175:31 | [string, string] | 1 | 2 | tst.ts:175:25:175:30 | string |
|
||||
| tst.ts:176:16:176:31 | [number, number] | 0 | 2 | tst.ts:176:17:176:22 | number |
|
||||
| tst.ts:176:16:176:31 | [number, number] | 1 | 2 | tst.ts:176:25:176:30 | number |
|
||||
| tst.ts:179:21:179:44 | [...Str ... umbers] | 0 | 2 | tst.ts:179:22:179:31 | ...Strings |
|
||||
| tst.ts:179:21:179:44 | [...Str ... umbers] | 1 | 2 | tst.ts:179:34:179:43 | ...Numbers |
|
||||
| tst.ts:192:21:192:43 | [first: ... number] | 0 | 2 | tst.ts:192:29:192:34 | number |
|
||||
| tst.ts:192:21:192:43 | [first: ... number] | 1 | 2 | tst.ts:192:37:192:42 | number |
|
||||
| tst.ts:192:47:192:70 | [number ... number] | 0 | 2 | tst.ts:192:48:192:53 | number |
|
||||
| tst.ts:192:47:192:70 | [number ... number] | 1 | 2 | tst.ts:192:64:192:69 | number |
|
||||
test_TupleTypeElementName
|
||||
| tst.ts:169:34:169:64 | [first: ... number] | 0 | tst.ts:169:35:169:39 | first |
|
||||
| tst.ts:169:34:169:64 | [first: ... number] | 1 | tst.ts:169:50:169:55 | second |
|
||||
| tst.ts:192:21:192:43 | [first: ... number] | 0 | tst.ts:192:22:192:26 | first |
|
||||
| tst.ts:192:47:192:70 | [number ... number] | 1 | tst.ts:192:56:192:61 | second |
|
||||
test_FieldTypes
|
||||
| tst.ts:15:3:15:22 | numberField: number; | tst.ts:15:16:15:21 | number |
|
||||
| tst.ts:16:3:16:22 | stringField: string; | tst.ts:16:16:16:21 | string |
|
||||
| tst.ts:17:3:17:28 | interfa ... erface; | tst.ts:17:19:17:27 | Interface |
|
||||
| tst.ts:18:3:18:18 | thisField: this; | tst.ts:18:14:18:17 | this |
|
||||
| tst.ts:83:21:83:30 | x: number; | tst.ts:83:24:83:29 | number |
|
||||
| tst.ts:83:32:83:41 | y: number; | tst.ts:83:35:83:40 | number |
|
||||
test_Parameters
|
||||
| tst.ts:36:27:36:32 | param1 | tst.ts:36:44:36:44 | 1 | tst.ts:36:35:36:40 | number |
|
||||
| tst.ts:36:47:36:52 | param2 | tst.ts:36:64:36:66 | '2' | tst.ts:36:55:36:60 | string |
|
||||
test_ArrayTypeExpr
|
||||
| tst.ts:38:16:38:23 | string[] | tst.ts:38:16:38:21 | string |
|
||||
| tst.ts:39:17:39:24 | string[] | tst.ts:39:17:39:22 | string |
|
||||
| tst.ts:39:17:39:26 | string[][] | tst.ts:39:17:39:24 | string[] |
|
||||
| tst.ts:40:17:40:24 | string[] | tst.ts:40:17:40:22 | string |
|
||||
| tst.ts:40:17:40:26 | string[][] | tst.ts:40:17:40:24 | string[] |
|
||||
| tst.ts:40:17:40:28 | string[][][] | tst.ts:40:17:40:26 | string[][] |
|
||||
| tst.ts:80:49:80:54 | Leaf[] | tst.ts:80:49:80:52 | Leaf |
|
||||
| tst.ts:81:27:81:34 | string[] | tst.ts:81:27:81:32 | string |
|
||||
| tst.ts:135:39:135:46 | string[] | tst.ts:135:39:135:44 | string |
|
||||
| tst.ts:136:60:136:67 | number[] | tst.ts:136:60:136:65 | number |
|
||||
| tst.ts:157:25:157:29 | any[] | tst.ts:157:25:157:27 | any |
|
||||
| tst.ts:163:21:163:25 | any[] | tst.ts:163:21:163:23 | any |
|
||||
test_TypeAccessHelpers
|
||||
| tst.ts:65:18:65:24 | Generic | 1 | 0 | tst.ts:65:26:65:31 | number |
|
||||
| tst.ts:66:18:66:32 | N.InnerGeneric1 | 1 | 0 | tst.ts:66:34:66:39 | number |
|
||||
@@ -263,52 +243,72 @@ test_TypeAccessHelpers
|
||||
| tst.ts:80:41:80:47 | Generic | 1 | 0 | tst.ts:80:49:80:54 | Leaf[] |
|
||||
| tst.ts:123:26:123:39 | import("type") | 1 | 0 | tst.ts:123:41:123:46 | string |
|
||||
| tst.ts:125:55:125:57 | Foo | 1 | 0 | tst.ts:125:59:125:64 | string |
|
||||
test_TypeAssertions
|
||||
| tst.ts:110:14:110:24 | 5 as number | tst.ts:110:14:110:14 | 5 | tst.ts:110:19:110:24 | number |
|
||||
| tst.ts:111:18:111:31 | <string> 'foo' | tst.ts:111:27:111:31 | 'foo' | tst.ts:111:19:111:24 | string |
|
||||
test_UnionTypeExpr
|
||||
| tst.ts:41:16:41:36 | string\| ... boolean | 0 | 3 | tst.ts:41:16:41:21 | string |
|
||||
| tst.ts:41:16:41:36 | string\| ... boolean | 1 | 3 | tst.ts:41:23:41:28 | number |
|
||||
| tst.ts:41:16:41:36 | string\| ... boolean | 2 | 3 | tst.ts:41:30:41:36 | boolean |
|
||||
| tst.ts:47:19:47:33 | string \| number | 0 | 2 | tst.ts:47:19:47:24 | string |
|
||||
| tst.ts:47:19:47:33 | string \| number | 1 | 2 | tst.ts:47:28:47:33 | number |
|
||||
| tst.ts:47:39:47:54 | boolean \| string | 0 | 2 | tst.ts:47:39:47:45 | boolean |
|
||||
| tst.ts:47:39:47:54 | boolean \| string | 1 | 2 | tst.ts:47:49:47:54 | string |
|
||||
test_RestTypeExpr
|
||||
| tst.ts:135:36:135:46 | ...string[] | tst.ts:135:39:135:46 | string[] | tst.ts:135:39:135:44 | string |
|
||||
| tst.ts:136:57:136:67 | ...number[] | tst.ts:136:60:136:67 | number[] | tst.ts:136:60:136:65 | number |
|
||||
test_Containers
|
||||
test_ReturnTypes
|
||||
| tst.ts:20:3:20:31 | returnN ... number; | method returnNumberMethod of interface Interface | tst.ts:20:25:20:30 | number |
|
||||
| tst.ts:21:3:21:27 | returnV ... : void; | method returnVoidMethod of interface Interface | tst.ts:21:23:21:26 | void |
|
||||
| tst.ts:22:3:22:27 | returnN ... : null; | method returnNullMethod of interface Interface | tst.ts:22:23:22:26 | null |
|
||||
| tst.ts:23:3:23:27 | returnT ... : this; | method returnThisMethod of interface Interface | tst.ts:23:23:23:26 | this |
|
||||
| tst.ts:30:1:30:53 | functio ... rn 0; } | function returnNumberFunction | tst.ts:30:34:30:39 | number |
|
||||
| tst.ts:31:1:31:49 | functio ... rn 0; } | function returnVoidFunction | tst.ts:31:32:31:35 | void |
|
||||
| tst.ts:32:1:32:49 | functio ... rn 0; } | function returnNullFunction | tst.ts:32:32:32:35 | null |
|
||||
| tst.ts:75:3:75:29 | isThisL ... s Leaf; | method isThisLeaf of interface Node | tst.ts:75:17:75:28 | this is Leaf |
|
||||
| tst.ts:76:3:76:33 | isThatL ... s Leaf; | method isThatLeaf of interface Node | tst.ts:76:21:76:32 | that is Leaf |
|
||||
| tst.ts:80:1:80:73 | functio ... alse; } | function complexIsType | tst.ts:80:36:80:55 | x is Generic<Leaf[]> |
|
||||
| tst.ts:81:1:81:66 | functio ... true } | function obviousIsType | tst.ts:81:38:81:50 | x is typeof x |
|
||||
| tst.ts:85:27:85:40 | foo(): number; | method foo of anonymous interface | tst.ts:85:34:85:39 | number |
|
||||
| tst.ts:87:20:87:31 | () => number | anonymous function type | tst.ts:87:26:87:31 | number |
|
||||
| tst.ts:88:20:88:44 | (param: ... number | anonymous function type | tst.ts:88:39:88:44 | number |
|
||||
| tst.ts:89:20:89:37 | <T>(param: T) => T | anonymous function type | tst.ts:89:37:89:37 | T |
|
||||
| tst.ts:90:23:90:38 | new () => Object | anonymous function type | tst.ts:90:33:90:38 | Object |
|
||||
| tst.ts:91:23:91:51 | new (pa ... Object | anonymous function type | tst.ts:91:46:91:51 | Object |
|
||||
| tst.ts:92:23:92:49 | new <T> ... Object | anonymous function type | tst.ts:92:44:92:49 | Object |
|
||||
| tst.ts:94:1:94:37 | functio ... rn x; } | function f1 | tst.ts:94:23:94:23 | S |
|
||||
| tst.ts:95:1:95:53 | functio ... x,y]; } | function f2 | tst.ts:95:31:95:35 | [S,T] |
|
||||
| tst.ts:96:1:96:52 | functio ... rn x; } | function f3 | tst.ts:96:38:96:38 | S |
|
||||
| tst.ts:142:1:146:1 | functio ... )\\n }\\n} | function assert | tst.ts:142:48:142:64 | asserts condition |
|
||||
| tst.ts:148:1:152:1 | functio ... ;\\n }\\n} | function assertIsString | tst.ts:148:36:148:56 | asserts ... string |
|
||||
| tst.ts:164:1:166:1 | functio ... rr2];\\n} | function concat | tst.ts:164:66:164:77 | [...T, ...U] |
|
||||
| tst.ts:169:1:172:1 | functio ... + b;\\n} | function labelOnTupleElements | tst.ts:169:68:169:73 | number |
|
||||
| tst.ts:192:1:194:1 | functio ... rn x;\\n} | function weirdId | tst.ts:192:47:192:70 | [number ... number] |
|
||||
test_KeyofTypeExpr
|
||||
| tst.ts:49:16:49:30 | keyof Interface | tst.ts:49:22:49:30 | Interface |
|
||||
| tst.ts:113:26:113:35 | keyof Node | tst.ts:113:32:113:35 | Node |
|
||||
test_ThisParameterTypes
|
||||
| function hasThisParam | tst.ts:116:29:116:32 | void |
|
||||
| method hasThisParam of interface InterfaceWithThisParam | tst.ts:119:22:119:43 | Interfa ... isParam |
|
||||
test_FunctionTypeReturns
|
||||
| tst.ts:87:20:87:31 | () => number | tst.ts:87:26:87:31 | number |
|
||||
| tst.ts:88:20:88:44 | (param: ... number | tst.ts:88:39:88:44 | number |
|
||||
| tst.ts:89:20:89:37 | <T>(param: T) => T | tst.ts:89:37:89:37 | T |
|
||||
| tst.ts:90:23:90:38 | new () => Object | tst.ts:90:33:90:38 | Object |
|
||||
| tst.ts:91:23:91:51 | new (pa ... Object | tst.ts:91:46:91:51 | Object |
|
||||
| tst.ts:92:23:92:49 | new <T> ... Object | tst.ts:92:44:92:49 | Object |
|
||||
test_QualifiedTypeAccess
|
||||
| tst.ts:63:19:63:21 | N.I | tst.ts:63:19:63:19 | N | tst.ts:63:21:63:21 | I |
|
||||
| tst.ts:64:20:64:24 | N.M.I | tst.ts:64:20:64:22 | N.M | tst.ts:64:24:64:24 | I |
|
||||
| tst.ts:66:18:66:32 | N.InnerGeneric1 | tst.ts:66:18:66:18 | N | tst.ts:66:20:66:32 | InnerGeneric1 |
|
||||
| tst.ts:67:18:67:34 | N.M.InnerGeneric2 | tst.ts:67:18:67:20 | N.M | tst.ts:67:22:67:34 | InnerGeneric2 |
|
||||
| tst.ts:68:26:68:40 | N.InnerGeneric1 | tst.ts:68:26:68:26 | N | tst.ts:68:28:68:40 | InnerGeneric1 |
|
||||
| tst.ts:124:48:124:50 | Foo | tst.ts:124:28:124:46 | import("namespace") | tst.ts:124:48:124:50 | Foo |
|
||||
| tst.ts:125:55:125:57 | Foo | tst.ts:125:35:125:53 | import("namespace") | tst.ts:125:55:125:57 | Foo |
|
||||
| tst.ts:131:4:131:6 | bar | tst.ts:128:38:130:3 | import( ... ce'\\n ) | tst.ts:131:4:131:6 | bar |
|
||||
test_IntersectionTypeExpr
|
||||
| tst.ts:43:23:43:43 | string& ... boolean | 0 | 3 | tst.ts:43:23:43:28 | string |
|
||||
| tst.ts:43:23:43:43 | string& ... boolean | 1 | 3 | tst.ts:43:30:43:35 | number |
|
||||
| tst.ts:43:23:43:43 | string& ... boolean | 2 | 3 | tst.ts:43:37:43:43 | boolean |
|
||||
| tst.ts:47:18:47:55 | (string ... string) | 0 | 2 | tst.ts:47:18:47:34 | (string \| number) |
|
||||
| tst.ts:47:18:47:55 | (string ... string) | 1 | 2 | tst.ts:47:38:47:55 | (boolean \| string) |
|
||||
test_IndexedAccessTypeExpr
|
||||
| tst.ts:42:18:42:41 | Interfa ... Field'] | tst.ts:42:18:42:26 | Interface | tst.ts:42:28:42:40 | 'numberField' |
|
||||
test_ParenthesizedTypeExpr
|
||||
| tst.ts:44:24:44:31 | (string) | tst.ts:44:25:44:30 | string | tst.ts:44:25:44:30 | string |
|
||||
| tst.ts:45:25:45:34 | ((string)) | tst.ts:45:26:45:33 | (string) | tst.ts:45:27:45:32 | string |
|
||||
| tst.ts:45:26:45:33 | (string) | tst.ts:45:27:45:32 | string | tst.ts:45:27:45:32 | string |
|
||||
| tst.ts:46:25:46:36 | (((string))) | tst.ts:46:26:46:35 | ((string)) | tst.ts:46:28:46:33 | string |
|
||||
| tst.ts:46:26:46:35 | ((string)) | tst.ts:46:27:46:34 | (string) | tst.ts:46:28:46:33 | string |
|
||||
| tst.ts:46:27:46:34 | (string) | tst.ts:46:28:46:33 | string | tst.ts:46:28:46:33 | string |
|
||||
| tst.ts:47:18:47:34 | (string \| number) | tst.ts:47:19:47:33 | string \| number | tst.ts:47:19:47:33 | string \| number |
|
||||
| tst.ts:47:38:47:55 | (boolean \| string) | tst.ts:47:39:47:54 | boolean \| string | tst.ts:47:39:47:54 | boolean \| string |
|
||||
test_FunctionTypeParameters
|
||||
| tst.ts:88:20:88:44 | (param: ... number | 0 | 1 | tst.ts:88:21:88:25 | param |
|
||||
| tst.ts:89:20:89:37 | <T>(param: T) => T | 0 | 1 | tst.ts:89:24:89:28 | param |
|
||||
| tst.ts:91:23:91:51 | new (pa ... Object | 0 | 1 | tst.ts:91:28:91:32 | param |
|
||||
| tst.ts:92:23:92:49 | new <T> ... Object | 0 | 1 | tst.ts:92:31:92:35 | param |
|
||||
test_TaggedTemplateLiteralTypeArgument
|
||||
| tst.ts:139:37:139:58 | someTag ... `Hello` | 0 | tst.ts:139:45:139:50 | number |
|
||||
| tst.ts:140:37:140:66 | someTag ... `Hello` | 0 | tst.ts:140:45:140:50 | number |
|
||||
| tst.ts:140:37:140:66 | someTag ... `Hello` | 1 | tst.ts:140:53:140:58 | string |
|
||||
test_PredicateTypeExpr
|
||||
| tst.ts:75:17:75:28 | this is Leaf | tst.ts:75:17:75:20 | this |
|
||||
| tst.ts:76:21:76:32 | that is Leaf | tst.ts:76:21:76:24 | that |
|
||||
| tst.ts:80:36:80:55 | x is Generic<Leaf[]> | tst.ts:80:36:80:36 | x |
|
||||
| tst.ts:81:38:81:50 | x is typeof x | tst.ts:81:38:81:38 | x |
|
||||
| tst.ts:142:48:142:64 | asserts condition | tst.ts:142:56:142:64 | condition |
|
||||
| tst.ts:148:36:148:56 | asserts ... string | tst.ts:148:44:148:46 | val |
|
||||
test_TupleTypeElementName
|
||||
| tst.ts:169:34:169:64 | [first: ... number] | 0 | tst.ts:169:35:169:39 | first |
|
||||
| tst.ts:169:34:169:64 | [first: ... number] | 1 | tst.ts:169:50:169:55 | second |
|
||||
| tst.ts:192:21:192:43 | [first: ... number] | 0 | tst.ts:192:22:192:26 | first |
|
||||
| tst.ts:192:47:192:70 | [number ... number] | 1 | tst.ts:192:56:192:61 | second |
|
||||
test_hasAssertsKeyword
|
||||
| tst.ts:142:48:142:64 | asserts condition |
|
||||
| tst.ts:148:36:148:56 | asserts ... string |
|
||||
test_ImportTypeExpr
|
||||
| tst.ts:122:19:122:32 | import("type") | type | type |
|
||||
| tst.ts:123:26:123:39 | import("type") | type | type |
|
||||
| tst.ts:124:28:124:46 | import("namespace") | namespace | namespace |
|
||||
| tst.ts:125:35:125:53 | import("namespace") | namespace | namespace |
|
||||
| tst.ts:126:28:126:42 | import("value") | value | value |
|
||||
| tst.ts:127:37:127:51 | import("value") | value | value |
|
||||
| tst.ts:128:38:130:3 | import( ... ce'\\n ) | awkard-namespace | namespace |
|
||||
test_Containers
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
// Test case taken from babel: https://github.com/babel/babel/blob/main/packages/babel-parser/test/fixtures/typescript/regression/keyword-qualified-type-2/input.ts
|
||||
|
||||
// These are valid TypeScript syntax (the parser doesn't produce any error),
|
||||
// but they are always type-checking errors.
|
||||
interface A extends this.B {}
|
||||
type T = typeof var.bar;
|
||||
@@ -1,81 +1,94 @@
|
||||
nodes
|
||||
| badTypes.ts:5:1:5:29 | [InterfaceDeclaration,TypeDefinition] interfa ... is.B {} | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... is.B {} |
|
||||
| badTypes.ts:5:1:5:29 | [InterfaceDeclaration,TypeDefinition] interfa ... is.B {} | semmle.order | 1 |
|
||||
| badTypes.ts:5:11:5:11 | [Identifier] A | semmle.label | [Identifier] A |
|
||||
| badTypes.ts:5:21:5:24 | [ThisVarTypeAccess] this | semmle.label | [ThisVarTypeAccess] this |
|
||||
| badTypes.ts:5:21:5:26 | [TypeAccess] this.B | semmle.label | [TypeAccess] this.B |
|
||||
| badTypes.ts:5:26:5:26 | [Identifier] B | semmle.label | [Identifier] B |
|
||||
| badTypes.ts:6:1:6:24 | [TypeAliasDeclaration,TypeDefinition] type T ... ar.bar; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type T ... ar.bar; |
|
||||
| badTypes.ts:6:1:6:24 | [TypeAliasDeclaration,TypeDefinition] type T ... ar.bar; | semmle.order | 2 |
|
||||
| badTypes.ts:6:6:6:6 | [Identifier] T | semmle.label | [Identifier] T |
|
||||
| badTypes.ts:6:10:6:23 | [TypeofTypeExpr] typeof var.bar | semmle.label | [TypeofTypeExpr] typeof var.bar |
|
||||
| badTypes.ts:6:17:6:19 | [LocalVarTypeAccess] var | semmle.label | [LocalVarTypeAccess] var |
|
||||
| badTypes.ts:6:17:6:23 | [VarTypeAccess] var.bar | semmle.label | [VarTypeAccess] var.bar |
|
||||
| badTypes.ts:6:21:6:23 | [Identifier] bar | semmle.label | [Identifier] bar |
|
||||
| boolean-type.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.label | [ImportDeclaration] import ... dummy"; |
|
||||
| boolean-type.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 1 |
|
||||
| boolean-type.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 3 |
|
||||
| boolean-type.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | [ImportSpecifier] * as dummy |
|
||||
| boolean-type.ts:1:13:1:17 | [VarDecl] dummy | semmle.label | [VarDecl] dummy |
|
||||
| boolean-type.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | [Literal] "./dummy" |
|
||||
| boolean-type.ts:3:1:3:16 | [DeclStmt] var true1 = ... | semmle.label | [DeclStmt] var true1 = ... |
|
||||
| boolean-type.ts:3:1:3:16 | [DeclStmt] var true1 = ... | semmle.order | 2 |
|
||||
| boolean-type.ts:3:1:3:16 | [DeclStmt] var true1 = ... | semmle.order | 4 |
|
||||
| boolean-type.ts:3:5:3:9 | [VarDecl] true1 | semmle.label | [VarDecl] true1 |
|
||||
| boolean-type.ts:3:5:3:15 | [VariableDeclarator] true1: true | semmle.label | [VariableDeclarator] true1: true |
|
||||
| boolean-type.ts:3:12:3:15 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true |
|
||||
| boolean-type.ts:4:1:4:23 | [DeclStmt] var true2 = ... | semmle.label | [DeclStmt] var true2 = ... |
|
||||
| boolean-type.ts:4:1:4:23 | [DeclStmt] var true2 = ... | semmle.order | 3 |
|
||||
| boolean-type.ts:4:1:4:23 | [DeclStmt] var true2 = ... | semmle.order | 5 |
|
||||
| boolean-type.ts:4:5:4:9 | [VarDecl] true2 | semmle.label | [VarDecl] true2 |
|
||||
| boolean-type.ts:4:5:4:22 | [VariableDeclarator] true2: true \| true | semmle.label | [VariableDeclarator] true2: true \| true |
|
||||
| boolean-type.ts:4:12:4:15 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true |
|
||||
| boolean-type.ts:4:12:4:22 | [UnionTypeExpr] true \| true | semmle.label | [UnionTypeExpr] true \| true |
|
||||
| boolean-type.ts:4:19:4:22 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true |
|
||||
| boolean-type.ts:6:1:6:18 | [DeclStmt] var false1 = ... | semmle.label | [DeclStmt] var false1 = ... |
|
||||
| boolean-type.ts:6:1:6:18 | [DeclStmt] var false1 = ... | semmle.order | 4 |
|
||||
| boolean-type.ts:6:1:6:18 | [DeclStmt] var false1 = ... | semmle.order | 6 |
|
||||
| boolean-type.ts:6:5:6:10 | [VarDecl] false1 | semmle.label | [VarDecl] false1 |
|
||||
| boolean-type.ts:6:5:6:17 | [VariableDeclarator] false1: false | semmle.label | [VariableDeclarator] false1: false |
|
||||
| boolean-type.ts:6:13:6:17 | [LiteralTypeExpr] false | semmle.label | [LiteralTypeExpr] false |
|
||||
| boolean-type.ts:7:1:7:26 | [DeclStmt] var false2 = ... | semmle.label | [DeclStmt] var false2 = ... |
|
||||
| boolean-type.ts:7:1:7:26 | [DeclStmt] var false2 = ... | semmle.order | 5 |
|
||||
| boolean-type.ts:7:1:7:26 | [DeclStmt] var false2 = ... | semmle.order | 7 |
|
||||
| boolean-type.ts:7:5:7:10 | [VarDecl] false2 | semmle.label | [VarDecl] false2 |
|
||||
| boolean-type.ts:7:5:7:25 | [VariableDeclarator] false2: ... \| false | semmle.label | [VariableDeclarator] false2: ... \| false |
|
||||
| boolean-type.ts:7:13:7:17 | [LiteralTypeExpr] false | semmle.label | [LiteralTypeExpr] false |
|
||||
| boolean-type.ts:7:13:7:25 | [UnionTypeExpr] false \| false | semmle.label | [UnionTypeExpr] false \| false |
|
||||
| boolean-type.ts:7:21:7:25 | [LiteralTypeExpr] false | semmle.label | [LiteralTypeExpr] false |
|
||||
| boolean-type.ts:9:1:9:22 | [DeclStmt] var boolean1 = ... | semmle.label | [DeclStmt] var boolean1 = ... |
|
||||
| boolean-type.ts:9:1:9:22 | [DeclStmt] var boolean1 = ... | semmle.order | 6 |
|
||||
| boolean-type.ts:9:1:9:22 | [DeclStmt] var boolean1 = ... | semmle.order | 8 |
|
||||
| boolean-type.ts:9:5:9:12 | [VarDecl] boolean1 | semmle.label | [VarDecl] boolean1 |
|
||||
| boolean-type.ts:9:5:9:21 | [VariableDeclarator] boolean1: boolean | semmle.label | [VariableDeclarator] boolean1: boolean |
|
||||
| boolean-type.ts:9:15:9:21 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean |
|
||||
| boolean-type.ts:10:1:10:27 | [DeclStmt] var boolean2 = ... | semmle.label | [DeclStmt] var boolean2 = ... |
|
||||
| boolean-type.ts:10:1:10:27 | [DeclStmt] var boolean2 = ... | semmle.order | 7 |
|
||||
| boolean-type.ts:10:1:10:27 | [DeclStmt] var boolean2 = ... | semmle.order | 9 |
|
||||
| boolean-type.ts:10:5:10:12 | [VarDecl] boolean2 | semmle.label | [VarDecl] boolean2 |
|
||||
| boolean-type.ts:10:5:10:26 | [VariableDeclarator] boolean ... \| false | semmle.label | [VariableDeclarator] boolean ... \| false |
|
||||
| boolean-type.ts:10:15:10:18 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true |
|
||||
| boolean-type.ts:10:15:10:26 | [UnionTypeExpr] true \| false | semmle.label | [UnionTypeExpr] true \| false |
|
||||
| boolean-type.ts:10:22:10:26 | [LiteralTypeExpr] false | semmle.label | [LiteralTypeExpr] false |
|
||||
| boolean-type.ts:11:1:11:27 | [DeclStmt] var boolean3 = ... | semmle.label | [DeclStmt] var boolean3 = ... |
|
||||
| boolean-type.ts:11:1:11:27 | [DeclStmt] var boolean3 = ... | semmle.order | 8 |
|
||||
| boolean-type.ts:11:1:11:27 | [DeclStmt] var boolean3 = ... | semmle.order | 10 |
|
||||
| boolean-type.ts:11:5:11:12 | [VarDecl] boolean3 | semmle.label | [VarDecl] boolean3 |
|
||||
| boolean-type.ts:11:5:11:26 | [VariableDeclarator] boolean ... \| true | semmle.label | [VariableDeclarator] boolean ... \| true |
|
||||
| boolean-type.ts:11:15:11:19 | [LiteralTypeExpr] false | semmle.label | [LiteralTypeExpr] false |
|
||||
| boolean-type.ts:11:15:11:26 | [UnionTypeExpr] false \| true | semmle.label | [UnionTypeExpr] false \| true |
|
||||
| boolean-type.ts:11:23:11:26 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true |
|
||||
| boolean-type.ts:13:1:13:32 | [DeclStmt] var boolean4 = ... | semmle.label | [DeclStmt] var boolean4 = ... |
|
||||
| boolean-type.ts:13:1:13:32 | [DeclStmt] var boolean4 = ... | semmle.order | 9 |
|
||||
| boolean-type.ts:13:1:13:32 | [DeclStmt] var boolean4 = ... | semmle.order | 11 |
|
||||
| boolean-type.ts:13:5:13:12 | [VarDecl] boolean4 | semmle.label | [VarDecl] boolean4 |
|
||||
| boolean-type.ts:13:5:13:31 | [VariableDeclarator] boolean ... boolean | semmle.label | [VariableDeclarator] boolean ... boolean |
|
||||
| boolean-type.ts:13:15:13:21 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean |
|
||||
| boolean-type.ts:13:15:13:31 | [UnionTypeExpr] boolean \| boolean | semmle.label | [UnionTypeExpr] boolean \| boolean |
|
||||
| boolean-type.ts:13:25:13:31 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean |
|
||||
| boolean-type.ts:14:1:14:29 | [DeclStmt] var boolean5 = ... | semmle.label | [DeclStmt] var boolean5 = ... |
|
||||
| boolean-type.ts:14:1:14:29 | [DeclStmt] var boolean5 = ... | semmle.order | 10 |
|
||||
| boolean-type.ts:14:1:14:29 | [DeclStmt] var boolean5 = ... | semmle.order | 12 |
|
||||
| boolean-type.ts:14:5:14:12 | [VarDecl] boolean5 | semmle.label | [VarDecl] boolean5 |
|
||||
| boolean-type.ts:14:5:14:28 | [VariableDeclarator] boolean ... \| true | semmle.label | [VariableDeclarator] boolean ... \| true |
|
||||
| boolean-type.ts:14:15:14:21 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean |
|
||||
| boolean-type.ts:14:15:14:28 | [UnionTypeExpr] boolean \| true | semmle.label | [UnionTypeExpr] boolean \| true |
|
||||
| boolean-type.ts:14:25:14:28 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true |
|
||||
| boolean-type.ts:15:1:15:30 | [DeclStmt] var boolean6 = ... | semmle.label | [DeclStmt] var boolean6 = ... |
|
||||
| boolean-type.ts:15:1:15:30 | [DeclStmt] var boolean6 = ... | semmle.order | 11 |
|
||||
| boolean-type.ts:15:1:15:30 | [DeclStmt] var boolean6 = ... | semmle.order | 13 |
|
||||
| boolean-type.ts:15:5:15:12 | [VarDecl] boolean6 | semmle.label | [VarDecl] boolean6 |
|
||||
| boolean-type.ts:15:5:15:29 | [VariableDeclarator] boolean ... boolean | semmle.label | [VariableDeclarator] boolean ... boolean |
|
||||
| boolean-type.ts:15:15:15:19 | [LiteralTypeExpr] false | semmle.label | [LiteralTypeExpr] false |
|
||||
| boolean-type.ts:15:15:15:29 | [UnionTypeExpr] false \| boolean | semmle.label | [UnionTypeExpr] false \| boolean |
|
||||
| boolean-type.ts:15:23:15:29 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean |
|
||||
| dummy.ts:2:1:2:17 | [ExportDeclaration] export let x = 5; | semmle.label | [ExportDeclaration] export let x = 5; |
|
||||
| dummy.ts:2:1:2:17 | [ExportDeclaration] export let x = 5; | semmle.order | 12 |
|
||||
| dummy.ts:2:1:2:17 | [ExportDeclaration] export let x = 5; | semmle.order | 14 |
|
||||
| dummy.ts:2:8:2:17 | [DeclStmt] let x = ... | semmle.label | [DeclStmt] let x = ... |
|
||||
| dummy.ts:2:12:2:12 | [VarDecl] x | semmle.label | [VarDecl] x |
|
||||
| dummy.ts:2:12:2:16 | [VariableDeclarator] x = 5 | semmle.label | [VariableDeclarator] x = 5 |
|
||||
| dummy.ts:2:16:2:16 | [Literal] 5 | semmle.label | [Literal] 5 |
|
||||
| dummy.ts:4:1:4:24 | [ExportDeclaration] export ... /ab+c/; | semmle.label | [ExportDeclaration] export ... /ab+c/; |
|
||||
| dummy.ts:4:1:4:24 | [ExportDeclaration] export ... /ab+c/; | semmle.order | 13 |
|
||||
| dummy.ts:4:1:4:24 | [ExportDeclaration] export ... /ab+c/; | semmle.order | 15 |
|
||||
| dummy.ts:4:8:4:24 | [DeclStmt] let reg = ... | semmle.label | [DeclStmt] let reg = ... |
|
||||
| dummy.ts:4:12:4:14 | [VarDecl] reg | semmle.label | [VarDecl] reg |
|
||||
| dummy.ts:4:12:4:23 | [VariableDeclarator] reg = /ab+c/ | semmle.label | [VariableDeclarator] reg = /ab+c/ |
|
||||
@@ -171,7 +184,7 @@ nodes
|
||||
| file://:0:0:0:0 | (TypeParameters) | semmle.label | (TypeParameters) |
|
||||
| file://:0:0:0:0 | (TypeParameters) | semmle.label | (TypeParameters) |
|
||||
| middle-rest.ts:1:1:1:40 | [DeclStmt] let foo = ... | semmle.label | [DeclStmt] let foo = ... |
|
||||
| middle-rest.ts:1:1:1:40 | [DeclStmt] let foo = ... | semmle.order | 14 |
|
||||
| middle-rest.ts:1:1:1:40 | [DeclStmt] let foo = ... | semmle.order | 16 |
|
||||
| middle-rest.ts:1:5:1:7 | [VarDecl] foo | semmle.label | [VarDecl] foo |
|
||||
| middle-rest.ts:1:5:1:39 | [VariableDeclarator] foo: [b ... number] | semmle.label | [VariableDeclarator] foo: [b ... number] |
|
||||
| middle-rest.ts:1:10:1:39 | [TupleTypeExpr] [boolea ... number] | semmle.label | [TupleTypeExpr] [boolea ... number] |
|
||||
@@ -183,55 +196,55 @@ nodes
|
||||
| middle-rest.ts:3:1:3:3 | [VarRef] foo | semmle.label | [VarRef] foo |
|
||||
| middle-rest.ts:3:1:3:26 | [AssignExpr] foo = [ ... ", 123] | semmle.label | [AssignExpr] foo = [ ... ", 123] |
|
||||
| middle-rest.ts:3:1:3:27 | [ExprStmt] foo = [ ... , 123]; | semmle.label | [ExprStmt] foo = [ ... , 123]; |
|
||||
| middle-rest.ts:3:1:3:27 | [ExprStmt] foo = [ ... , 123]; | semmle.order | 15 |
|
||||
| middle-rest.ts:3:1:3:27 | [ExprStmt] foo = [ ... , 123]; | semmle.order | 17 |
|
||||
| middle-rest.ts:3:7:3:26 | [ArrayExpr] [true, "hello", 123] | semmle.label | [ArrayExpr] [true, "hello", 123] |
|
||||
| middle-rest.ts:3:8:3:11 | [Literal] true | semmle.label | [Literal] true |
|
||||
| middle-rest.ts:3:14:3:20 | [Literal] "hello" | semmle.label | [Literal] "hello" |
|
||||
| middle-rest.ts:3:23:3:25 | [Literal] 123 | semmle.label | [Literal] 123 |
|
||||
| tst.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.label | [ImportDeclaration] import ... dummy"; |
|
||||
| tst.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 16 |
|
||||
| tst.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 18 |
|
||||
| tst.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | [ImportSpecifier] * as dummy |
|
||||
| tst.ts:1:13:1:17 | [VarDecl] dummy | semmle.label | [VarDecl] dummy |
|
||||
| tst.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | [Literal] "./dummy" |
|
||||
| tst.ts:3:1:3:19 | [DeclStmt] var numVar = ... | semmle.label | [DeclStmt] var numVar = ... |
|
||||
| tst.ts:3:1:3:19 | [DeclStmt] var numVar = ... | semmle.order | 17 |
|
||||
| tst.ts:3:1:3:19 | [DeclStmt] var numVar = ... | semmle.order | 19 |
|
||||
| tst.ts:3:5:3:10 | [VarDecl] numVar | semmle.label | [VarDecl] numVar |
|
||||
| tst.ts:3:5:3:18 | [VariableDeclarator] numVar: number | semmle.label | [VariableDeclarator] numVar: number |
|
||||
| tst.ts:3:13:3:18 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| tst.ts:5:1:5:18 | [DeclStmt] var num1 = ... | semmle.label | [DeclStmt] var num1 = ... |
|
||||
| tst.ts:5:1:5:18 | [DeclStmt] var num1 = ... | semmle.order | 18 |
|
||||
| tst.ts:5:1:5:18 | [DeclStmt] var num1 = ... | semmle.order | 20 |
|
||||
| tst.ts:5:5:5:8 | [VarDecl] num1 | semmle.label | [VarDecl] num1 |
|
||||
| tst.ts:5:5:5:17 | [VariableDeclarator] num1 = numVar | semmle.label | [VariableDeclarator] num1 = numVar |
|
||||
| tst.ts:5:12:5:17 | [VarRef] numVar | semmle.label | [VarRef] numVar |
|
||||
| tst.ts:6:1:6:13 | [DeclStmt] var num2 = ... | semmle.label | [DeclStmt] var num2 = ... |
|
||||
| tst.ts:6:1:6:13 | [DeclStmt] var num2 = ... | semmle.order | 19 |
|
||||
| tst.ts:6:1:6:13 | [DeclStmt] var num2 = ... | semmle.order | 21 |
|
||||
| tst.ts:6:5:6:8 | [VarDecl] num2 | semmle.label | [VarDecl] num2 |
|
||||
| tst.ts:6:5:6:12 | [VariableDeclarator] num2 = 5 | semmle.label | [VariableDeclarator] num2 = 5 |
|
||||
| tst.ts:6:12:6:12 | [Literal] 5 | semmle.label | [Literal] 5 |
|
||||
| tst.ts:7:1:7:23 | [DeclStmt] var num3 = ... | semmle.label | [DeclStmt] var num3 = ... |
|
||||
| tst.ts:7:1:7:23 | [DeclStmt] var num3 = ... | semmle.order | 20 |
|
||||
| tst.ts:7:1:7:23 | [DeclStmt] var num3 = ... | semmle.order | 22 |
|
||||
| tst.ts:7:5:7:8 | [VarDecl] num3 | semmle.label | [VarDecl] num3 |
|
||||
| tst.ts:7:5:7:22 | [VariableDeclarator] num3 = num1 + num2 | semmle.label | [VariableDeclarator] num3 = num1 + num2 |
|
||||
| tst.ts:7:12:7:15 | [VarRef] num1 | semmle.label | [VarRef] num1 |
|
||||
| tst.ts:7:12:7:22 | [BinaryExpr] num1 + num2 | semmle.label | [BinaryExpr] num1 + num2 |
|
||||
| tst.ts:7:19:7:22 | [VarRef] num2 | semmle.label | [VarRef] num2 |
|
||||
| tst.ts:9:1:9:19 | [DeclStmt] var strVar = ... | semmle.label | [DeclStmt] var strVar = ... |
|
||||
| tst.ts:9:1:9:19 | [DeclStmt] var strVar = ... | semmle.order | 21 |
|
||||
| tst.ts:9:1:9:19 | [DeclStmt] var strVar = ... | semmle.order | 23 |
|
||||
| tst.ts:9:5:9:10 | [VarDecl] strVar | semmle.label | [VarDecl] strVar |
|
||||
| tst.ts:9:5:9:18 | [VariableDeclarator] strVar: string | semmle.label | [VariableDeclarator] strVar: string |
|
||||
| tst.ts:9:13:9:18 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
| tst.ts:10:1:10:20 | [DeclStmt] var hello = ... | semmle.label | [DeclStmt] var hello = ... |
|
||||
| tst.ts:10:1:10:20 | [DeclStmt] var hello = ... | semmle.order | 22 |
|
||||
| tst.ts:10:1:10:20 | [DeclStmt] var hello = ... | semmle.order | 24 |
|
||||
| tst.ts:10:5:10:9 | [VarDecl] hello | semmle.label | [VarDecl] hello |
|
||||
| tst.ts:10:5:10:19 | [VariableDeclarator] hello = "hello" | semmle.label | [VariableDeclarator] hello = "hello" |
|
||||
| tst.ts:10:13:10:19 | [Literal] "hello" | semmle.label | [Literal] "hello" |
|
||||
| tst.ts:11:1:11:20 | [DeclStmt] var world = ... | semmle.label | [DeclStmt] var world = ... |
|
||||
| tst.ts:11:1:11:20 | [DeclStmt] var world = ... | semmle.order | 23 |
|
||||
| tst.ts:11:1:11:20 | [DeclStmt] var world = ... | semmle.order | 25 |
|
||||
| tst.ts:11:5:11:9 | [VarDecl] world | semmle.label | [VarDecl] world |
|
||||
| tst.ts:11:5:11:19 | [VariableDeclarator] world = "world" | semmle.label | [VariableDeclarator] world = "world" |
|
||||
| tst.ts:11:13:11:19 | [Literal] "world" | semmle.label | [Literal] "world" |
|
||||
| tst.ts:12:1:12:30 | [DeclStmt] var msg = ... | semmle.label | [DeclStmt] var msg = ... |
|
||||
| tst.ts:12:1:12:30 | [DeclStmt] var msg = ... | semmle.order | 24 |
|
||||
| tst.ts:12:1:12:30 | [DeclStmt] var msg = ... | semmle.order | 26 |
|
||||
| tst.ts:12:5:12:7 | [VarDecl] msg | semmle.label | [VarDecl] msg |
|
||||
| tst.ts:12:5:12:29 | [VariableDeclarator] msg = h ... + world | semmle.label | [VariableDeclarator] msg = h ... + world |
|
||||
| tst.ts:12:11:12:15 | [VarRef] hello | semmle.label | [VarRef] hello |
|
||||
@@ -240,7 +253,7 @@ nodes
|
||||
| tst.ts:12:19:12:21 | [Literal] " " | semmle.label | [Literal] " " |
|
||||
| tst.ts:12:25:12:29 | [VarRef] world | semmle.label | [VarRef] world |
|
||||
| tst.ts:14:1:14:63 | [FunctionDeclStmt] functio ... + y; } | semmle.label | [FunctionDeclStmt] functio ... + y; } |
|
||||
| tst.ts:14:1:14:63 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 25 |
|
||||
| tst.ts:14:1:14:63 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 27 |
|
||||
| tst.ts:14:10:14:15 | [VarDecl] concat | semmle.label | [VarDecl] concat |
|
||||
| tst.ts:14:17:14:17 | [SimpleParameter] x | semmle.label | [SimpleParameter] x |
|
||||
| tst.ts:14:20:14:25 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
@@ -253,7 +266,7 @@ nodes
|
||||
| tst.ts:14:56:14:60 | [BinaryExpr] x + y | semmle.label | [BinaryExpr] x + y |
|
||||
| tst.ts:14:60:14:60 | [VarRef] y | semmle.label | [VarRef] y |
|
||||
| tst.ts:16:1:16:60 | [FunctionDeclStmt] functio ... + y; } | semmle.label | [FunctionDeclStmt] functio ... + y; } |
|
||||
| tst.ts:16:1:16:60 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 26 |
|
||||
| tst.ts:16:1:16:60 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 28 |
|
||||
| tst.ts:16:10:16:12 | [VarDecl] add | semmle.label | [VarDecl] add |
|
||||
| tst.ts:16:14:16:14 | [SimpleParameter] x | semmle.label | [SimpleParameter] x |
|
||||
| tst.ts:16:17:16:22 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
@@ -266,7 +279,7 @@ nodes
|
||||
| tst.ts:16:53:16:57 | [BinaryExpr] x + y | semmle.label | [BinaryExpr] x + y |
|
||||
| tst.ts:16:57:16:57 | [VarRef] y | semmle.label | [VarRef] y |
|
||||
| tst.ts:18:1:18:40 | [FunctionDeclStmt] functio ... + y; } | semmle.label | [FunctionDeclStmt] functio ... + y; } |
|
||||
| tst.ts:18:1:18:40 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 27 |
|
||||
| tst.ts:18:1:18:40 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 29 |
|
||||
| tst.ts:18:10:18:16 | [VarDecl] untyped | semmle.label | [VarDecl] untyped |
|
||||
| tst.ts:18:18:18:18 | [SimpleParameter] x | semmle.label | [SimpleParameter] x |
|
||||
| tst.ts:18:21:18:21 | [SimpleParameter] y | semmle.label | [SimpleParameter] y |
|
||||
@@ -276,7 +289,7 @@ nodes
|
||||
| tst.ts:18:33:18:37 | [BinaryExpr] x + y | semmle.label | [BinaryExpr] x + y |
|
||||
| tst.ts:18:37:18:37 | [VarRef] y | semmle.label | [VarRef] y |
|
||||
| tst.ts:20:1:20:53 | [FunctionDeclStmt] functio ... + y; } | semmle.label | [FunctionDeclStmt] functio ... + y; } |
|
||||
| tst.ts:20:1:20:53 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 28 |
|
||||
| tst.ts:20:1:20:53 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 30 |
|
||||
| tst.ts:20:10:20:21 | [VarDecl] partialTyped | semmle.label | [VarDecl] partialTyped |
|
||||
| tst.ts:20:23:20:23 | [SimpleParameter] x | semmle.label | [SimpleParameter] x |
|
||||
| tst.ts:20:26:20:26 | [SimpleParameter] y | semmle.label | [SimpleParameter] y |
|
||||
@@ -287,7 +300,7 @@ nodes
|
||||
| tst.ts:20:46:20:50 | [BinaryExpr] x + y | semmle.label | [BinaryExpr] x + y |
|
||||
| tst.ts:20:50:20:50 | [VarRef] y | semmle.label | [VarRef] y |
|
||||
| tst.ts:22:1:22:34 | [ForOfStmt] for (le ... 2]) {} | semmle.label | [ForOfStmt] for (le ... 2]) {} |
|
||||
| tst.ts:22:1:22:34 | [ForOfStmt] for (le ... 2]) {} | semmle.order | 29 |
|
||||
| tst.ts:22:1:22:34 | [ForOfStmt] for (le ... 2]) {} | semmle.order | 31 |
|
||||
| tst.ts:22:6:22:20 | [DeclStmt] let numFromLoop = ... | semmle.label | [DeclStmt] let numFromLoop = ... |
|
||||
| tst.ts:22:10:22:20 | [VarDecl] numFromLoop | semmle.label | [VarDecl] numFromLoop |
|
||||
| tst.ts:22:10:22:20 | [VariableDeclarator] numFromLoop | semmle.label | [VariableDeclarator] numFromLoop |
|
||||
@@ -296,54 +309,54 @@ nodes
|
||||
| tst.ts:22:29:22:29 | [Literal] 2 | semmle.label | [Literal] 2 |
|
||||
| tst.ts:22:33:22:34 | [BlockStmt] {} | semmle.label | [BlockStmt] {} |
|
||||
| tst.ts:24:1:24:20 | [DeclStmt] let array = ... | semmle.label | [DeclStmt] let array = ... |
|
||||
| tst.ts:24:1:24:20 | [DeclStmt] let array = ... | semmle.order | 30 |
|
||||
| tst.ts:24:1:24:20 | [DeclStmt] let array = ... | semmle.order | 32 |
|
||||
| tst.ts:24:5:24:9 | [VarDecl] array | semmle.label | [VarDecl] array |
|
||||
| tst.ts:24:5:24:19 | [VariableDeclarator] array: number[] | semmle.label | [VariableDeclarator] array: number[] |
|
||||
| tst.ts:24:12:24:17 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| tst.ts:24:12:24:19 | [ArrayTypeExpr] number[] | semmle.label | [ArrayTypeExpr] number[] |
|
||||
| tst.ts:26:1:26:25 | [DeclStmt] let voidType = ... | semmle.label | [DeclStmt] let voidType = ... |
|
||||
| tst.ts:26:1:26:25 | [DeclStmt] let voidType = ... | semmle.order | 31 |
|
||||
| tst.ts:26:1:26:25 | [DeclStmt] let voidType = ... | semmle.order | 33 |
|
||||
| tst.ts:26:5:26:12 | [VarDecl] voidType | semmle.label | [VarDecl] voidType |
|
||||
| tst.ts:26:5:26:24 | [VariableDeclarator] voidType: () => void | semmle.label | [VariableDeclarator] voidType: () => void |
|
||||
| tst.ts:26:15:26:24 | [FunctionExpr] () => void | semmle.label | [FunctionExpr] () => void |
|
||||
| tst.ts:26:15:26:24 | [FunctionTypeExpr] () => void | semmle.label | [FunctionTypeExpr] () => void |
|
||||
| tst.ts:26:21:26:24 | [KeywordTypeExpr] void | semmle.label | [KeywordTypeExpr] void |
|
||||
| tst.ts:27:1:27:29 | [DeclStmt] let undefinedType = ... | semmle.label | [DeclStmt] let undefinedType = ... |
|
||||
| tst.ts:27:1:27:29 | [DeclStmt] let undefinedType = ... | semmle.order | 32 |
|
||||
| tst.ts:27:1:27:29 | [DeclStmt] let undefinedType = ... | semmle.order | 34 |
|
||||
| tst.ts:27:5:27:17 | [VarDecl] undefinedType | semmle.label | [VarDecl] undefinedType |
|
||||
| tst.ts:27:5:27:28 | [VariableDeclarator] undefin ... defined | semmle.label | [VariableDeclarator] undefin ... defined |
|
||||
| tst.ts:27:20:27:28 | [KeywordTypeExpr] undefined | semmle.label | [KeywordTypeExpr] undefined |
|
||||
| tst.ts:28:1:28:26 | [DeclStmt] let nullType = ... | semmle.label | [DeclStmt] let nullType = ... |
|
||||
| tst.ts:28:1:28:26 | [DeclStmt] let nullType = ... | semmle.order | 33 |
|
||||
| tst.ts:28:1:28:26 | [DeclStmt] let nullType = ... | semmle.order | 35 |
|
||||
| tst.ts:28:5:28:12 | [VarDecl] nullType | semmle.label | [VarDecl] nullType |
|
||||
| tst.ts:28:5:28:25 | [VariableDeclarator] nullTyp ... = null | semmle.label | [VariableDeclarator] nullTyp ... = null |
|
||||
| tst.ts:28:15:28:18 | [KeywordTypeExpr] null | semmle.label | [KeywordTypeExpr] null |
|
||||
| tst.ts:28:22:28:25 | [Literal] null | semmle.label | [Literal] null |
|
||||
| tst.ts:29:1:29:27 | [DeclStmt] let neverType = ... | semmle.label | [DeclStmt] let neverType = ... |
|
||||
| tst.ts:29:1:29:27 | [DeclStmt] let neverType = ... | semmle.order | 34 |
|
||||
| tst.ts:29:1:29:27 | [DeclStmt] let neverType = ... | semmle.order | 36 |
|
||||
| tst.ts:29:5:29:13 | [VarDecl] neverType | semmle.label | [VarDecl] neverType |
|
||||
| tst.ts:29:5:29:26 | [VariableDeclarator] neverTy ... > never | semmle.label | [VariableDeclarator] neverTy ... > never |
|
||||
| tst.ts:29:16:29:26 | [FunctionExpr] () => never | semmle.label | [FunctionExpr] () => never |
|
||||
| tst.ts:29:16:29:26 | [FunctionTypeExpr] () => never | semmle.label | [FunctionTypeExpr] () => never |
|
||||
| tst.ts:29:22:29:26 | [KeywordTypeExpr] never | semmle.label | [KeywordTypeExpr] never |
|
||||
| tst.ts:30:1:30:23 | [DeclStmt] let symbolType = ... | semmle.label | [DeclStmt] let symbolType = ... |
|
||||
| tst.ts:30:1:30:23 | [DeclStmt] let symbolType = ... | semmle.order | 35 |
|
||||
| tst.ts:30:1:30:23 | [DeclStmt] let symbolType = ... | semmle.order | 37 |
|
||||
| tst.ts:30:5:30:14 | [VarDecl] symbolType | semmle.label | [VarDecl] symbolType |
|
||||
| tst.ts:30:5:30:22 | [VariableDeclarator] symbolType: symbol | semmle.label | [VariableDeclarator] symbolType: symbol |
|
||||
| tst.ts:30:17:30:22 | [KeywordTypeExpr] symbol | semmle.label | [KeywordTypeExpr] symbol |
|
||||
| tst.ts:31:1:31:45 | [DeclStmt] const uniqueSymbolType = ... | semmle.label | [DeclStmt] const uniqueSymbolType = ... |
|
||||
| tst.ts:31:1:31:45 | [DeclStmt] const uniqueSymbolType = ... | semmle.order | 36 |
|
||||
| tst.ts:31:1:31:45 | [DeclStmt] const uniqueSymbolType = ... | semmle.order | 38 |
|
||||
| tst.ts:31:7:31:22 | [VarDecl] uniqueSymbolType | semmle.label | [VarDecl] uniqueSymbolType |
|
||||
| tst.ts:31:7:31:44 | [VariableDeclarator] uniqueS ... = null | semmle.label | [VariableDeclarator] uniqueS ... = null |
|
||||
| tst.ts:31:25:31:37 | [KeywordTypeExpr] unique symbol | semmle.label | [KeywordTypeExpr] unique symbol |
|
||||
| tst.ts:31:41:31:44 | [Literal] null | semmle.label | [Literal] null |
|
||||
| tst.ts:32:1:32:23 | [DeclStmt] let objectType = ... | semmle.label | [DeclStmt] let objectType = ... |
|
||||
| tst.ts:32:1:32:23 | [DeclStmt] let objectType = ... | semmle.order | 37 |
|
||||
| tst.ts:32:1:32:23 | [DeclStmt] let objectType = ... | semmle.order | 39 |
|
||||
| tst.ts:32:5:32:14 | [VarDecl] objectType | semmle.label | [VarDecl] objectType |
|
||||
| tst.ts:32:5:32:22 | [VariableDeclarator] objectType: object | semmle.label | [VariableDeclarator] objectType: object |
|
||||
| tst.ts:32:17:32:22 | [KeywordTypeExpr] object | semmle.label | [KeywordTypeExpr] object |
|
||||
| tst.ts:33:1:33:39 | [DeclStmt] let intersection = ... | semmle.label | [DeclStmt] let intersection = ... |
|
||||
| tst.ts:33:1:33:39 | [DeclStmt] let intersection = ... | semmle.order | 38 |
|
||||
| tst.ts:33:1:33:39 | [DeclStmt] let intersection = ... | semmle.order | 40 |
|
||||
| tst.ts:33:5:33:16 | [VarDecl] intersection | semmle.label | [VarDecl] intersection |
|
||||
| tst.ts:33:5:33:38 | [VariableDeclarator] interse ... string} | semmle.label | [VariableDeclarator] interse ... string} |
|
||||
| tst.ts:33:19:33:24 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
@@ -353,14 +366,14 @@ nodes
|
||||
| tst.ts:33:29:33:37 | [FieldDeclaration] x: string | semmle.label | [FieldDeclaration] x: string |
|
||||
| tst.ts:33:32:33:37 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
| tst.ts:34:1:34:28 | [DeclStmt] let tuple = ... | semmle.label | [DeclStmt] let tuple = ... |
|
||||
| tst.ts:34:1:34:28 | [DeclStmt] let tuple = ... | semmle.order | 39 |
|
||||
| tst.ts:34:1:34:28 | [DeclStmt] let tuple = ... | semmle.order | 41 |
|
||||
| tst.ts:34:5:34:9 | [VarDecl] tuple | semmle.label | [VarDecl] tuple |
|
||||
| tst.ts:34:5:34:27 | [VariableDeclarator] tuple: ... string] | semmle.label | [VariableDeclarator] tuple: ... string] |
|
||||
| tst.ts:34:12:34:27 | [TupleTypeExpr] [number, string] | semmle.label | [TupleTypeExpr] [number, string] |
|
||||
| tst.ts:34:13:34:18 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| tst.ts:34:21:34:26 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
| tst.ts:36:1:36:56 | [DeclStmt] let tupleWithOptionalElement = ... | semmle.label | [DeclStmt] let tupleWithOptionalElement = ... |
|
||||
| tst.ts:36:1:36:56 | [DeclStmt] let tupleWithOptionalElement = ... | semmle.order | 40 |
|
||||
| tst.ts:36:1:36:56 | [DeclStmt] let tupleWithOptionalElement = ... | semmle.order | 42 |
|
||||
| tst.ts:36:5:36:28 | [VarDecl] tupleWithOptionalElement | semmle.label | [VarDecl] tupleWithOptionalElement |
|
||||
| tst.ts:36:5:36:55 | [VariableDeclarator] tupleWi ... umber?] | semmle.label | [VariableDeclarator] tupleWi ... umber?] |
|
||||
| tst.ts:36:31:36:55 | [TupleTypeExpr] [number ... umber?] | semmle.label | [TupleTypeExpr] [number ... umber?] |
|
||||
@@ -369,12 +382,12 @@ nodes
|
||||
| tst.ts:36:48:36:53 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| tst.ts:36:48:36:54 | [OptionalTypeExpr] number? | semmle.label | [OptionalTypeExpr] number? |
|
||||
| tst.ts:37:1:37:19 | [DeclStmt] let emptyTuple = ... | semmle.label | [DeclStmt] let emptyTuple = ... |
|
||||
| tst.ts:37:1:37:19 | [DeclStmt] let emptyTuple = ... | semmle.order | 41 |
|
||||
| tst.ts:37:1:37:19 | [DeclStmt] let emptyTuple = ... | semmle.order | 43 |
|
||||
| tst.ts:37:5:37:14 | [VarDecl] emptyTuple | semmle.label | [VarDecl] emptyTuple |
|
||||
| tst.ts:37:5:37:18 | [VariableDeclarator] emptyTuple: [] | semmle.label | [VariableDeclarator] emptyTuple: [] |
|
||||
| tst.ts:37:17:37:18 | [TupleTypeExpr] [] | semmle.label | [TupleTypeExpr] [] |
|
||||
| tst.ts:38:1:38:48 | [DeclStmt] let tupleWithRestElement = ... | semmle.label | [DeclStmt] let tupleWithRestElement = ... |
|
||||
| tst.ts:38:1:38:48 | [DeclStmt] let tupleWithRestElement = ... | semmle.order | 42 |
|
||||
| tst.ts:38:1:38:48 | [DeclStmt] let tupleWithRestElement = ... | semmle.order | 44 |
|
||||
| tst.ts:38:5:38:24 | [VarDecl] tupleWithRestElement | semmle.label | [VarDecl] tupleWithRestElement |
|
||||
| tst.ts:38:5:38:47 | [VariableDeclarator] tupleWi ... ring[]] | semmle.label | [VariableDeclarator] tupleWi ... ring[]] |
|
||||
| tst.ts:38:27:38:47 | [TupleTypeExpr] [number ... ring[]] | semmle.label | [TupleTypeExpr] [number ... ring[]] |
|
||||
@@ -383,7 +396,7 @@ nodes
|
||||
| tst.ts:38:39:38:44 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
| tst.ts:38:39:38:46 | [ArrayTypeExpr] string[] | semmle.label | [ArrayTypeExpr] string[] |
|
||||
| tst.ts:39:1:39:69 | [DeclStmt] let tupleWithOptionalAndRestElements = ... | semmle.label | [DeclStmt] let tupleWithOptionalAndRestElements = ... |
|
||||
| tst.ts:39:1:39:69 | [DeclStmt] let tupleWithOptionalAndRestElements = ... | semmle.order | 43 |
|
||||
| tst.ts:39:1:39:69 | [DeclStmt] let tupleWithOptionalAndRestElements = ... | semmle.order | 45 |
|
||||
| tst.ts:39:5:39:36 | [VarDecl] tupleWithOptionalAndRestElements | semmle.label | [VarDecl] tupleWithOptionalAndRestElements |
|
||||
| tst.ts:39:5:39:68 | [VariableDeclarator] tupleWi ... mber[]] | semmle.label | [VariableDeclarator] tupleWi ... mber[]] |
|
||||
| tst.ts:39:39:39:68 | [TupleTypeExpr] [number ... mber[]] | semmle.label | [TupleTypeExpr] [number ... mber[]] |
|
||||
@@ -394,12 +407,12 @@ nodes
|
||||
| tst.ts:39:60:39:65 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| tst.ts:39:60:39:67 | [ArrayTypeExpr] number[] | semmle.label | [ArrayTypeExpr] number[] |
|
||||
| tst.ts:40:1:40:25 | [DeclStmt] let unknownType = ... | semmle.label | [DeclStmt] let unknownType = ... |
|
||||
| tst.ts:40:1:40:25 | [DeclStmt] let unknownType = ... | semmle.order | 44 |
|
||||
| tst.ts:40:1:40:25 | [DeclStmt] let unknownType = ... | semmle.order | 46 |
|
||||
| tst.ts:40:5:40:15 | [VarDecl] unknownType | semmle.label | [VarDecl] unknownType |
|
||||
| tst.ts:40:5:40:24 | [VariableDeclarator] unknownType: unknown | semmle.label | [VariableDeclarator] unknownType: unknown |
|
||||
| tst.ts:40:18:40:24 | [KeywordTypeExpr] unknown | semmle.label | [KeywordTypeExpr] unknown |
|
||||
| tst.ts:42:1:42:40 | [DeclStmt] let constArrayLiteral = ... | semmle.label | [DeclStmt] let constArrayLiteral = ... |
|
||||
| tst.ts:42:1:42:40 | [DeclStmt] let constArrayLiteral = ... | semmle.order | 45 |
|
||||
| tst.ts:42:1:42:40 | [DeclStmt] let constArrayLiteral = ... | semmle.order | 47 |
|
||||
| tst.ts:42:5:42:21 | [VarDecl] constArrayLiteral | semmle.label | [VarDecl] constArrayLiteral |
|
||||
| tst.ts:42:5:42:39 | [VariableDeclarator] constAr ... s const | semmle.label | [VariableDeclarator] constAr ... s const |
|
||||
| tst.ts:42:25:42:30 | [ArrayExpr] [1, 2] | semmle.label | [ArrayExpr] [1, 2] |
|
||||
@@ -408,7 +421,7 @@ nodes
|
||||
| tst.ts:42:29:42:29 | [Literal] 2 | semmle.label | [Literal] 2 |
|
||||
| tst.ts:42:35:42:39 | [KeywordTypeExpr] const | semmle.label | [KeywordTypeExpr] const |
|
||||
| tst.ts:43:1:43:49 | [DeclStmt] let constObjectLiteral = ... | semmle.label | [DeclStmt] let constObjectLiteral = ... |
|
||||
| tst.ts:43:1:43:49 | [DeclStmt] let constObjectLiteral = ... | semmle.order | 46 |
|
||||
| tst.ts:43:1:43:49 | [DeclStmt] let constObjectLiteral = ... | semmle.order | 48 |
|
||||
| tst.ts:43:5:43:22 | [VarDecl] constObjectLiteral | semmle.label | [VarDecl] constObjectLiteral |
|
||||
| tst.ts:43:5:43:48 | [VariableDeclarator] constOb ... s const | semmle.label | [VariableDeclarator] constOb ... s const |
|
||||
| tst.ts:43:26:43:39 | [ObjectExpr] {foo: ...} | semmle.label | [ObjectExpr] {foo: ...} |
|
||||
@@ -418,7 +431,7 @@ nodes
|
||||
| tst.ts:43:33:43:37 | [Literal] "foo" | semmle.label | [Literal] "foo" |
|
||||
| tst.ts:43:44:43:48 | [KeywordTypeExpr] const | semmle.label | [KeywordTypeExpr] const |
|
||||
| tst.ts:46:1:51:1 | [TryStmt] try { } ... ; } } | semmle.label | [TryStmt] try { } ... ; } } |
|
||||
| tst.ts:46:1:51:1 | [TryStmt] try { } ... ; } } | semmle.order | 47 |
|
||||
| tst.ts:46:1:51:1 | [TryStmt] try { } ... ; } } | semmle.order | 49 |
|
||||
| tst.ts:46:5:46:7 | [BlockStmt] { } | semmle.label | [BlockStmt] { } |
|
||||
| tst.ts:47:1:51:1 | [CatchClause] catch ( ... ; } } | semmle.label | [CatchClause] catch ( ... ; } } |
|
||||
| tst.ts:47:8:47:8 | [SimpleParameter] e | semmle.label | [SimpleParameter] e |
|
||||
@@ -435,21 +448,21 @@ nodes
|
||||
| tst.ts:49:15:49:20 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
| tst.ts:49:24:49:24 | [VarRef] e | semmle.label | [VarRef] e |
|
||||
| tst.ts:54:1:56:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } |
|
||||
| tst.ts:54:1:56:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.order | 48 |
|
||||
| tst.ts:54:1:56:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.order | 50 |
|
||||
| tst.ts:54:11:54:26 | [Identifier] NonAbstractDummy | semmle.label | [Identifier] NonAbstractDummy |
|
||||
| tst.ts:55:3:55:9 | [Label] getArea | semmle.label | [Label] getArea |
|
||||
| tst.ts:55:3:55:20 | [FunctionExpr] getArea(): number; | semmle.label | [FunctionExpr] getArea(): number; |
|
||||
| tst.ts:55:3:55:20 | [MethodSignature] getArea(): number; | semmle.label | [MethodSignature] getArea(): number; |
|
||||
| tst.ts:55:14:55:19 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| tst.ts:58:1:60:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } |
|
||||
| tst.ts:58:1:60:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.order | 49 |
|
||||
| tst.ts:58:1:60:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.order | 51 |
|
||||
| tst.ts:58:11:58:17 | [Identifier] HasArea | semmle.label | [Identifier] HasArea |
|
||||
| tst.ts:59:3:59:9 | [Label] getArea | semmle.label | [Label] getArea |
|
||||
| tst.ts:59:3:59:20 | [FunctionExpr] getArea(): number; | semmle.label | [FunctionExpr] getArea(): number; |
|
||||
| tst.ts:59:3:59:20 | [MethodSignature] getArea(): number; | semmle.label | [MethodSignature] getArea(): number; |
|
||||
| tst.ts:59:14:59:19 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| tst.ts:63:1:63:45 | [DeclStmt] let Ctor = ... | semmle.label | [DeclStmt] let Ctor = ... |
|
||||
| tst.ts:63:1:63:45 | [DeclStmt] let Ctor = ... | semmle.order | 50 |
|
||||
| tst.ts:63:1:63:45 | [DeclStmt] let Ctor = ... | semmle.order | 52 |
|
||||
| tst.ts:63:5:63:8 | [VarDecl] Ctor | semmle.label | [VarDecl] Ctor |
|
||||
| tst.ts:63:5:63:44 | [VariableDeclarator] Ctor: a ... = Shape | semmle.label | [VariableDeclarator] Ctor: a ... = Shape |
|
||||
| tst.ts:63:11:63:36 | [FunctionExpr] abstrac ... HasArea | semmle.label | [FunctionExpr] abstrac ... HasArea |
|
||||
@@ -457,7 +470,7 @@ nodes
|
||||
| tst.ts:63:30:63:36 | [LocalTypeAccess] HasArea | semmle.label | [LocalTypeAccess] HasArea |
|
||||
| tst.ts:63:40:63:44 | [VarRef] Shape | semmle.label | [VarRef] Shape |
|
||||
| tst.ts:65:1:65:54 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type My ... true}; |
|
||||
| tst.ts:65:1:65:54 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.order | 51 |
|
||||
| tst.ts:65:1:65:54 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.order | 53 |
|
||||
| tst.ts:65:6:65:12 | [Identifier] MyUnion | semmle.label | [Identifier] MyUnion |
|
||||
| tst.ts:65:16:65:30 | [InterfaceTypeExpr] {myUnion: true} | semmle.label | [InterfaceTypeExpr] {myUnion: true} |
|
||||
| tst.ts:65:16:65:53 | [UnionTypeExpr] {myUnio ... : true} | semmle.label | [UnionTypeExpr] {myUnio ... : true} |
|
||||
@@ -469,7 +482,7 @@ nodes
|
||||
| tst.ts:65:35:65:52 | [FieldDeclaration] stillMyUnion: true | semmle.label | [FieldDeclaration] stillMyUnion: true |
|
||||
| tst.ts:65:49:65:52 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true |
|
||||
| tst.ts:66:1:66:38 | [DeclStmt] let union1 = ... | semmle.label | [DeclStmt] let union1 = ... |
|
||||
| tst.ts:66:1:66:38 | [DeclStmt] let union1 = ... | semmle.order | 52 |
|
||||
| tst.ts:66:1:66:38 | [DeclStmt] let union1 = ... | semmle.order | 54 |
|
||||
| tst.ts:66:5:66:10 | [VarDecl] union1 | semmle.label | [VarDecl] union1 |
|
||||
| tst.ts:66:5:66:37 | [VariableDeclarator] union1: ... : true} | semmle.label | [VariableDeclarator] union1: ... : true} |
|
||||
| tst.ts:66:13:66:19 | [LocalTypeAccess] MyUnion | semmle.label | [LocalTypeAccess] MyUnion |
|
||||
@@ -478,7 +491,7 @@ nodes
|
||||
| tst.ts:66:24:66:36 | [Property] myUnion: true | semmle.label | [Property] myUnion: true |
|
||||
| tst.ts:66:33:66:36 | [Literal] true | semmle.label | [Literal] true |
|
||||
| tst.ts:68:1:68:49 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type My ... true}; |
|
||||
| tst.ts:68:1:68:49 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.order | 53 |
|
||||
| tst.ts:68:1:68:49 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.order | 55 |
|
||||
| tst.ts:68:6:68:13 | [Identifier] MyUnion2 | semmle.label | [Identifier] MyUnion2 |
|
||||
| tst.ts:68:17:68:23 | [LocalTypeAccess] MyUnion | semmle.label | [LocalTypeAccess] MyUnion |
|
||||
| tst.ts:68:17:68:48 | [UnionTypeExpr] MyUnion ... : true} | semmle.label | [UnionTypeExpr] MyUnion ... : true} |
|
||||
@@ -487,7 +500,7 @@ nodes
|
||||
| tst.ts:68:28:68:47 | [FieldDeclaration] yetAnotherType: true | semmle.label | [FieldDeclaration] yetAnotherType: true |
|
||||
| tst.ts:68:44:68:47 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true |
|
||||
| tst.ts:69:1:69:46 | [DeclStmt] let union2 = ... | semmle.label | [DeclStmt] let union2 = ... |
|
||||
| tst.ts:69:1:69:46 | [DeclStmt] let union2 = ... | semmle.order | 54 |
|
||||
| tst.ts:69:1:69:46 | [DeclStmt] let union2 = ... | semmle.order | 56 |
|
||||
| tst.ts:69:5:69:10 | [VarDecl] union2 | semmle.label | [VarDecl] union2 |
|
||||
| tst.ts:69:5:69:45 | [VariableDeclarator] union2: ... : true} | semmle.label | [VariableDeclarator] union2: ... : true} |
|
||||
| tst.ts:69:13:69:20 | [LocalTypeAccess] MyUnion2 | semmle.label | [LocalTypeAccess] MyUnion2 |
|
||||
@@ -496,7 +509,7 @@ nodes
|
||||
| tst.ts:69:25:69:44 | [Property] yetAnotherType: true | semmle.label | [Property] yetAnotherType: true |
|
||||
| tst.ts:69:41:69:44 | [Literal] true | semmle.label | [Literal] true |
|
||||
| tst.ts:71:1:130:1 | [NamespaceDeclaration] module ... } } | semmle.label | [NamespaceDeclaration] module ... } } |
|
||||
| tst.ts:71:1:130:1 | [NamespaceDeclaration] module ... } } | semmle.order | 55 |
|
||||
| tst.ts:71:1:130:1 | [NamespaceDeclaration] module ... } } | semmle.order | 57 |
|
||||
| tst.ts:71:8:71:11 | [VarDecl] TS43 | semmle.label | [VarDecl] TS43 |
|
||||
| tst.ts:73:3:76:3 | [InterfaceDeclaration,TypeDefinition] interfa ... n); } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... n); } |
|
||||
| tst.ts:73:13:73:18 | [Identifier] ThingI | semmle.label | [Identifier] ThingI |
|
||||
@@ -661,7 +674,7 @@ nodes
|
||||
| tst.ts:127:14:127:28 | [DotExpr] this.#someValue | semmle.label | [DotExpr] this.#someValue |
|
||||
| tst.ts:127:19:127:28 | [Label] #someValue | semmle.label | [Label] #someValue |
|
||||
| tst.ts:132:1:193:1 | [NamespaceDeclaration] module ... } } | semmle.label | [NamespaceDeclaration] module ... } } |
|
||||
| tst.ts:132:1:193:1 | [NamespaceDeclaration] module ... } } | semmle.order | 56 |
|
||||
| tst.ts:132:1:193:1 | [NamespaceDeclaration] module ... } } | semmle.order | 58 |
|
||||
| tst.ts:132:8:132:11 | [VarDecl] TS44 | semmle.label | [VarDecl] TS44 |
|
||||
| tst.ts:133:3:138:3 | [FunctionDeclStmt] functio ... } } | semmle.label | [FunctionDeclStmt] functio ... } } |
|
||||
| tst.ts:133:12:133:14 | [VarDecl] foo | semmle.label | [VarDecl] foo |
|
||||
@@ -852,7 +865,7 @@ nodes
|
||||
| tst.ts:189:19:189:28 | [DotExpr] Foo.#count | semmle.label | [DotExpr] Foo.#count |
|
||||
| tst.ts:189:23:189:28 | [Label] #count | semmle.label | [Label] #count |
|
||||
| tst.ts:195:1:235:1 | [NamespaceDeclaration] module ... } } } | semmle.label | [NamespaceDeclaration] module ... } } } |
|
||||
| tst.ts:195:1:235:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 57 |
|
||||
| tst.ts:195:1:235:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 59 |
|
||||
| tst.ts:195:8:195:11 | [VarDecl] TS45 | semmle.label | [VarDecl] TS45 |
|
||||
| tst.ts:197:3:197:36 | [TypeAliasDeclaration,TypeDefinition] type A ... ring>>; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type A ... ring>>; |
|
||||
| tst.ts:197:8:197:8 | [Identifier] A | semmle.label | [Identifier] A |
|
||||
@@ -964,22 +977,22 @@ nodes
|
||||
| tst.ts:232:28:232:32 | [VarRef] other | semmle.label | [VarRef] other |
|
||||
| tst.ts:232:28:232:38 | [DotExpr] other.#name | semmle.label | [DotExpr] other.#name |
|
||||
| tst.ts:232:34:232:38 | [Label] #name | semmle.label | [Label] #name |
|
||||
| tst.ts:237:1:237:65 | [ImportDeclaration] import ... son" }; | semmle.label | [ImportDeclaration] import ... son" }; |
|
||||
| tst.ts:237:1:237:65 | [ImportDeclaration] import ... son" }; | semmle.order | 58 |
|
||||
| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | semmle.label | [ImportDeclaration] import ... son" }; |
|
||||
| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | semmle.order | 60 |
|
||||
| tst.ts:237:8:237:16 | [ImportSpecifier] * as Foo3 | semmle.label | [ImportSpecifier] * as Foo3 |
|
||||
| tst.ts:237:13:237:16 | [VarDecl] Foo3 | semmle.label | [VarDecl] Foo3 |
|
||||
| tst.ts:237:23:237:40 | [Literal] "./something.json" | semmle.label | [Literal] "./something.json" |
|
||||
| tst.ts:237:49:237:64 | [ObjectExpr] { type: "json" } | semmle.label | [ObjectExpr] { type: "json" } |
|
||||
| tst.ts:237:51:237:62 | [Property] type: "json" | semmle.label | [Property] type: "json" |
|
||||
| tst.ts:237:47:237:62 | [ObjectExpr] { type: "json" } | semmle.label | [ObjectExpr] { type: "json" } |
|
||||
| tst.ts:237:49:237:60 | [Property] type: "json" | semmle.label | [Property] type: "json" |
|
||||
| tst.ts:238:1:238:19 | [DeclStmt] var foo = ... | semmle.label | [DeclStmt] var foo = ... |
|
||||
| tst.ts:238:1:238:19 | [DeclStmt] var foo = ... | semmle.order | 59 |
|
||||
| tst.ts:238:1:238:19 | [DeclStmt] var foo = ... | semmle.order | 61 |
|
||||
| tst.ts:238:5:238:7 | [VarDecl] foo | semmle.label | [VarDecl] foo |
|
||||
| tst.ts:238:5:238:18 | [VariableDeclarator] foo = Foo3.foo | semmle.label | [VariableDeclarator] foo = Foo3.foo |
|
||||
| tst.ts:238:11:238:14 | [VarRef] Foo3 | semmle.label | [VarRef] Foo3 |
|
||||
| tst.ts:238:11:238:18 | [DotExpr] Foo3.foo | semmle.label | [DotExpr] Foo3.foo |
|
||||
| tst.ts:238:16:238:18 | [Label] foo | semmle.label | [Label] foo |
|
||||
| tst.ts:240:1:296:1 | [NamespaceDeclaration] module ... }; } | semmle.label | [NamespaceDeclaration] module ... }; } |
|
||||
| tst.ts:240:1:296:1 | [NamespaceDeclaration] module ... }; } | semmle.order | 60 |
|
||||
| tst.ts:240:1:296:1 | [NamespaceDeclaration] module ... }; } | semmle.order | 62 |
|
||||
| tst.ts:240:8:240:11 | [VarDecl] TS46 | semmle.label | [VarDecl] TS46 |
|
||||
| tst.ts:241:3:241:15 | [ClassDefinition,TypeDefinition] class Base {} | semmle.label | [ClassDefinition,TypeDefinition] class Base {} |
|
||||
| tst.ts:241:9:241:12 | [VarDecl] Base | semmle.label | [VarDecl] Base |
|
||||
@@ -1174,13 +1187,13 @@ nodes
|
||||
| tst.ts:293:7:293:24 | [ExprStmt] payload.toFixed(); | semmle.label | [ExprStmt] payload.toFixed(); |
|
||||
| tst.ts:293:15:293:21 | [Label] toFixed | semmle.label | [Label] toFixed |
|
||||
| tst.ts:298:1:298:21 | [DeclStmt] const key = ... | semmle.label | [DeclStmt] const key = ... |
|
||||
| tst.ts:298:1:298:21 | [DeclStmt] const key = ... | semmle.order | 61 |
|
||||
| tst.ts:298:1:298:21 | [DeclStmt] const key = ... | semmle.order | 63 |
|
||||
| tst.ts:298:7:298:9 | [VarDecl] key | semmle.label | [VarDecl] key |
|
||||
| tst.ts:298:7:298:20 | [VariableDeclarator] key = Symbol() | semmle.label | [VariableDeclarator] key = Symbol() |
|
||||
| tst.ts:298:13:298:18 | [VarRef] Symbol | semmle.label | [VarRef] Symbol |
|
||||
| tst.ts:298:13:298:20 | [CallExpr] Symbol() | semmle.label | [CallExpr] Symbol() |
|
||||
| tst.ts:300:1:300:58 | [DeclStmt] const numberOrString = ... | semmle.label | [DeclStmt] const numberOrString = ... |
|
||||
| tst.ts:300:1:300:58 | [DeclStmt] const numberOrString = ... | semmle.order | 62 |
|
||||
| tst.ts:300:1:300:58 | [DeclStmt] const numberOrString = ... | semmle.order | 64 |
|
||||
| tst.ts:300:7:300:20 | [VarDecl] numberOrString | semmle.label | [VarDecl] numberOrString |
|
||||
| tst.ts:300:7:300:57 | [VariableDeclarator] numberO ... "hello" | semmle.label | [VariableDeclarator] numberO ... "hello" |
|
||||
| tst.ts:300:24:300:27 | [VarRef] Math | semmle.label | [VarRef] Math |
|
||||
@@ -1193,7 +1206,7 @@ nodes
|
||||
| tst.ts:300:46:300:47 | [Literal] 42 | semmle.label | [Literal] 42 |
|
||||
| tst.ts:300:51:300:57 | [Literal] "hello" | semmle.label | [Literal] "hello" |
|
||||
| tst.ts:302:1:304:2 | [DeclStmt] let obj = ... | semmle.label | [DeclStmt] let obj = ... |
|
||||
| tst.ts:302:1:304:2 | [DeclStmt] let obj = ... | semmle.order | 63 |
|
||||
| tst.ts:302:1:304:2 | [DeclStmt] let obj = ... | semmle.order | 65 |
|
||||
| tst.ts:302:5:302:7 | [VarDecl] obj | semmle.label | [VarDecl] obj |
|
||||
| tst.ts:302:5:304:1 | [VariableDeclarator] obj = { ... ring, } | semmle.label | [VariableDeclarator] obj = { ... ring, } |
|
||||
| tst.ts:302:11:304:1 | [ObjectExpr] { [ke ... ring, } | semmle.label | [ObjectExpr] { [ke ... ring, } |
|
||||
@@ -1201,7 +1214,7 @@ nodes
|
||||
| tst.ts:303:4:303:6 | [VarRef] key | semmle.label | [VarRef] key |
|
||||
| tst.ts:303:10:303:23 | [VarRef] numberOrString | semmle.label | [VarRef] numberOrString |
|
||||
| tst.ts:306:1:309:1 | [IfStmt] if (typ ... se(); } | semmle.label | [IfStmt] if (typ ... se(); } |
|
||||
| tst.ts:306:1:309:1 | [IfStmt] if (typ ... se(); } | semmle.order | 64 |
|
||||
| tst.ts:306:1:309:1 | [IfStmt] if (typ ... se(); } | semmle.order | 66 |
|
||||
| tst.ts:306:5:306:19 | [UnaryExpr] typeof obj[key] | semmle.label | [UnaryExpr] typeof obj[key] |
|
||||
| tst.ts:306:5:306:32 | [BinaryExpr] typeof ... string" | semmle.label | [BinaryExpr] typeof ... string" |
|
||||
| tst.ts:306:12:306:14 | [VarRef] obj | semmle.label | [VarRef] obj |
|
||||
@@ -1221,7 +1234,7 @@ nodes
|
||||
| tst.ts:308:3:308:20 | [ExprStmt] str.toUpperCase(); | semmle.label | [ExprStmt] str.toUpperCase(); |
|
||||
| tst.ts:308:7:308:17 | [Label] toUpperCase | semmle.label | [Label] toUpperCase |
|
||||
| tst.ts:313:1:316:10 | [FunctionDeclStmt] functio ... void {} | semmle.label | [FunctionDeclStmt] functio ... void {} |
|
||||
| tst.ts:313:1:316:10 | [FunctionDeclStmt] functio ... void {} | semmle.order | 65 |
|
||||
| tst.ts:313:1:316:10 | [FunctionDeclStmt] functio ... void {} | semmle.order | 67 |
|
||||
| tst.ts:313:10:313:10 | [VarDecl] f | semmle.label | [VarDecl] f |
|
||||
| tst.ts:313:12:313:12 | [Identifier] T | semmle.label | [Identifier] T |
|
||||
| tst.ts:313:12:313:12 | [TypeParameter] T | semmle.label | [TypeParameter] T |
|
||||
@@ -1244,11 +1257,11 @@ nodes
|
||||
| tst.ts:316:4:316:7 | [KeywordTypeExpr] void | semmle.label | [KeywordTypeExpr] void |
|
||||
| tst.ts:316:9:316:10 | [BlockStmt] {} | semmle.label | [BlockStmt] {} |
|
||||
| tst.ts:316:11:316:11 | [EmptyStmt] ; | semmle.label | [EmptyStmt] ; |
|
||||
| tst.ts:316:11:316:11 | [EmptyStmt] ; | semmle.order | 66 |
|
||||
| tst.ts:316:11:316:11 | [EmptyStmt] ; | semmle.order | 68 |
|
||||
| tst.ts:318:1:318:1 | [VarRef] f | semmle.label | [VarRef] f |
|
||||
| tst.ts:318:1:321:2 | [CallExpr] f({ p ... se() }) | semmle.label | [CallExpr] f({ p ... se() }) |
|
||||
| tst.ts:318:1:321:3 | [ExprStmt] f({ p ... e() }); | semmle.label | [ExprStmt] f({ p ... e() }); |
|
||||
| tst.ts:318:1:321:3 | [ExprStmt] f({ p ... e() }); | semmle.order | 67 |
|
||||
| tst.ts:318:1:321:3 | [ExprStmt] f({ p ... e() }); | semmle.order | 69 |
|
||||
| tst.ts:318:3:321:1 | [ObjectExpr] {produce: ...} | semmle.label | [ObjectExpr] {produce: ...} |
|
||||
| tst.ts:319:3:319:9 | [Label] produce | semmle.label | [Label] produce |
|
||||
| tst.ts:319:3:319:17 | [Property] produce: n => n | semmle.label | [Property] produce: n => n |
|
||||
@@ -1264,7 +1277,7 @@ nodes
|
||||
| tst.ts:320:17:320:31 | [MethodCallExpr] x.toLowerCase() | semmle.label | [MethodCallExpr] x.toLowerCase() |
|
||||
| tst.ts:320:19:320:29 | [Label] toLowerCase | semmle.label | [Label] toLowerCase |
|
||||
| tst.ts:325:1:325:36 | [DeclStmt] const ErrorMap = ... | semmle.label | [DeclStmt] const ErrorMap = ... |
|
||||
| tst.ts:325:1:325:36 | [DeclStmt] const ErrorMap = ... | semmle.order | 68 |
|
||||
| tst.ts:325:1:325:36 | [DeclStmt] const ErrorMap = ... | semmle.order | 70 |
|
||||
| tst.ts:325:7:325:14 | [VarDecl] ErrorMap | semmle.label | [VarDecl] ErrorMap |
|
||||
| tst.ts:325:7:325:35 | [VariableDeclarator] ErrorMa ... Error> | semmle.label | [VariableDeclarator] ErrorMa ... Error> |
|
||||
| tst.ts:325:18:325:20 | [VarRef] Map | semmle.label | [VarRef] Map |
|
||||
@@ -1272,13 +1285,13 @@ nodes
|
||||
| tst.ts:325:22:325:27 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
| tst.ts:325:30:325:34 | [LocalTypeAccess] Error | semmle.label | [LocalTypeAccess] Error |
|
||||
| tst.ts:327:1:327:32 | [DeclStmt] const errorMap = ... | semmle.label | [DeclStmt] const errorMap = ... |
|
||||
| tst.ts:327:1:327:32 | [DeclStmt] const errorMap = ... | semmle.order | 69 |
|
||||
| tst.ts:327:1:327:32 | [DeclStmt] const errorMap = ... | semmle.order | 71 |
|
||||
| tst.ts:327:7:327:14 | [VarDecl] errorMap | semmle.label | [VarDecl] errorMap |
|
||||
| tst.ts:327:7:327:31 | [VariableDeclarator] errorMa ... orMap() | semmle.label | [VariableDeclarator] errorMa ... orMap() |
|
||||
| tst.ts:327:18:327:31 | [NewExpr] new ErrorMap() | semmle.label | [NewExpr] new ErrorMap() |
|
||||
| tst.ts:327:22:327:29 | [VarRef] ErrorMap | semmle.label | [VarRef] ErrorMap |
|
||||
| tst.ts:331:1:334:14 | [TypeAliasDeclaration,TypeDefinition] type Fi ... never; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Fi ... never; |
|
||||
| tst.ts:331:1:334:14 | [TypeAliasDeclaration,TypeDefinition] type Fi ... never; | semmle.order | 70 |
|
||||
| tst.ts:331:1:334:14 | [TypeAliasDeclaration,TypeDefinition] type Fi ... never; | semmle.order | 72 |
|
||||
| tst.ts:331:6:331:16 | [Identifier] FirstString | semmle.label | [Identifier] FirstString |
|
||||
| tst.ts:331:18:331:18 | [Identifier] T | semmle.label | [Identifier] T |
|
||||
| tst.ts:331:18:331:18 | [TypeParameter] T | semmle.label | [TypeParameter] T |
|
||||
@@ -1295,7 +1308,7 @@ nodes
|
||||
| tst.ts:333:9:333:9 | [LocalTypeAccess] S | semmle.label | [LocalTypeAccess] S |
|
||||
| tst.ts:334:9:334:13 | [KeywordTypeExpr] never | semmle.label | [KeywordTypeExpr] never |
|
||||
| tst.ts:336:1:336:51 | [TypeAliasDeclaration,TypeDefinition] type F ... lean]>; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type F ... lean]>; |
|
||||
| tst.ts:336:1:336:51 | [TypeAliasDeclaration,TypeDefinition] type F ... lean]>; | semmle.order | 71 |
|
||||
| tst.ts:336:1:336:51 | [TypeAliasDeclaration,TypeDefinition] type F ... lean]>; | semmle.order | 73 |
|
||||
| tst.ts:336:6:336:6 | [Identifier] F | semmle.label | [Identifier] F |
|
||||
| tst.ts:336:10:336:20 | [LocalTypeAccess] FirstString | semmle.label | [LocalTypeAccess] FirstString |
|
||||
| tst.ts:336:10:336:50 | [GenericTypeExpr] FirstSt ... olean]> | semmle.label | [GenericTypeExpr] FirstSt ... olean]> |
|
||||
@@ -1306,13 +1319,13 @@ nodes
|
||||
| tst.ts:336:34:336:39 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| tst.ts:336:42:336:48 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean |
|
||||
| tst.ts:338:1:338:17 | [DeclStmt] const a = ... | semmle.label | [DeclStmt] const a = ... |
|
||||
| tst.ts:338:1:338:17 | [DeclStmt] const a = ... | semmle.order | 72 |
|
||||
| tst.ts:338:1:338:17 | [DeclStmt] const a = ... | semmle.order | 74 |
|
||||
| tst.ts:338:7:338:7 | [VarDecl] a | semmle.label | [VarDecl] a |
|
||||
| tst.ts:338:7:338:16 | [VariableDeclarator] a: F = 'a' | semmle.label | [VariableDeclarator] a: F = 'a' |
|
||||
| tst.ts:338:10:338:10 | [LocalTypeAccess] F | semmle.label | [LocalTypeAccess] F |
|
||||
| tst.ts:338:14:338:16 | [Literal] 'a' | semmle.label | [Literal] 'a' |
|
||||
| tst.ts:342:1:345:1 | [InterfaceDeclaration,TypeDefinition] interfa ... void; } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... void; } |
|
||||
| tst.ts:342:1:345:1 | [InterfaceDeclaration,TypeDefinition] interfa ... void; } | semmle.order | 73 |
|
||||
| tst.ts:342:1:345:1 | [InterfaceDeclaration,TypeDefinition] interfa ... void; } | semmle.order | 75 |
|
||||
| tst.ts:342:11:342:15 | [Identifier] State | semmle.label | [Identifier] State |
|
||||
| tst.ts:342:17:342:24 | [TypeParameter] in out T | semmle.label | [TypeParameter] in out T |
|
||||
| tst.ts:342:24:342:24 | [Identifier] T | semmle.label | [Identifier] T |
|
||||
@@ -1329,7 +1342,7 @@ nodes
|
||||
| tst.ts:344:16:344:16 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T |
|
||||
| tst.ts:344:22:344:25 | [KeywordTypeExpr] void | semmle.label | [KeywordTypeExpr] void |
|
||||
| tst.ts:347:1:350:1 | [DeclStmt] const state = ... | semmle.label | [DeclStmt] const state = ... |
|
||||
| tst.ts:347:1:350:1 | [DeclStmt] const state = ... | semmle.order | 74 |
|
||||
| tst.ts:347:1:350:1 | [DeclStmt] const state = ... | semmle.order | 76 |
|
||||
| tst.ts:347:7:347:11 | [VarDecl] state | semmle.label | [VarDecl] state |
|
||||
| tst.ts:347:7:350:1 | [VariableDeclarator] state: ... > { } } | semmle.label | [VariableDeclarator] state: ... > { } } |
|
||||
| tst.ts:347:14:347:18 | [LocalTypeAccess] State | semmle.label | [LocalTypeAccess] State |
|
||||
@@ -1346,7 +1359,7 @@ nodes
|
||||
| tst.ts:349:9:349:13 | [SimpleParameter] value | semmle.label | [SimpleParameter] value |
|
||||
| tst.ts:349:19:349:21 | [BlockStmt] { } | semmle.label | [BlockStmt] { } |
|
||||
| tst.ts:352:1:352:29 | [DeclStmt] const fortyTwo = ... | semmle.label | [DeclStmt] const fortyTwo = ... |
|
||||
| tst.ts:352:1:352:29 | [DeclStmt] const fortyTwo = ... | semmle.order | 75 |
|
||||
| tst.ts:352:1:352:29 | [DeclStmt] const fortyTwo = ... | semmle.order | 77 |
|
||||
| tst.ts:352:7:352:14 | [VarDecl] fortyTwo | semmle.label | [VarDecl] fortyTwo |
|
||||
| tst.ts:352:7:352:28 | [VariableDeclarator] fortyTw ... e.get() | semmle.label | [VariableDeclarator] fortyTw ... e.get() |
|
||||
| tst.ts:352:18:352:22 | [VarRef] state | semmle.label | [VarRef] state |
|
||||
@@ -1354,7 +1367,7 @@ nodes
|
||||
| tst.ts:352:18:352:28 | [MethodCallExpr] state.get() | semmle.label | [MethodCallExpr] state.get() |
|
||||
| tst.ts:352:24:352:26 | [Label] get | semmle.label | [Label] get |
|
||||
| tst.ts:356:1:356:44 | [ImportDeclaration] import ... S.mjs'; | semmle.label | [ImportDeclaration] import ... S.mjs'; |
|
||||
| tst.ts:356:1:356:44 | [ImportDeclaration] import ... S.mjs'; | semmle.order | 76 |
|
||||
| tst.ts:356:1:356:44 | [ImportDeclaration] import ... S.mjs'; | semmle.order | 78 |
|
||||
| tst.ts:356:8:356:18 | [ImportSpecifier] tstModuleES | semmle.label | [ImportSpecifier] tstModuleES |
|
||||
| tst.ts:356:8:356:18 | [VarDecl] tstModuleES | semmle.label | [VarDecl] tstModuleES |
|
||||
| tst.ts:356:25:356:43 | [Literal] './tstModuleES.mjs' | semmle.label | [Literal] './tstModuleES.mjs' |
|
||||
@@ -1362,12 +1375,12 @@ nodes
|
||||
| tst.ts:358:1:358:11 | [DotExpr] console.log | semmle.label | [DotExpr] console.log |
|
||||
| tst.ts:358:1:358:26 | [MethodCallExpr] console ... leES()) | semmle.label | [MethodCallExpr] console ... leES()) |
|
||||
| tst.ts:358:1:358:27 | [ExprStmt] console ... eES()); | semmle.label | [ExprStmt] console ... eES()); |
|
||||
| tst.ts:358:1:358:27 | [ExprStmt] console ... eES()); | semmle.order | 77 |
|
||||
| tst.ts:358:1:358:27 | [ExprStmt] console ... eES()); | semmle.order | 79 |
|
||||
| tst.ts:358:9:358:11 | [Label] log | semmle.label | [Label] log |
|
||||
| tst.ts:358:13:358:23 | [VarRef] tstModuleES | semmle.label | [VarRef] tstModuleES |
|
||||
| tst.ts:358:13:358:25 | [CallExpr] tstModuleES() | semmle.label | [CallExpr] tstModuleES() |
|
||||
| tst.ts:360:1:360:50 | [ImportDeclaration] import ... S.cjs'; | semmle.label | [ImportDeclaration] import ... S.cjs'; |
|
||||
| tst.ts:360:1:360:50 | [ImportDeclaration] import ... S.cjs'; | semmle.order | 78 |
|
||||
| tst.ts:360:1:360:50 | [ImportDeclaration] import ... S.cjs'; | semmle.order | 80 |
|
||||
| tst.ts:360:10:360:21 | [ImportSpecifier] tstModuleCJS | semmle.label | [ImportSpecifier] tstModuleCJS |
|
||||
| tst.ts:360:10:360:21 | [Label] tstModuleCJS | semmle.label | [Label] tstModuleCJS |
|
||||
| tst.ts:360:10:360:21 | [VarDecl] tstModuleCJS | semmle.label | [VarDecl] tstModuleCJS |
|
||||
@@ -1376,12 +1389,12 @@ nodes
|
||||
| tst.ts:362:1:362:11 | [DotExpr] console.log | semmle.label | [DotExpr] console.log |
|
||||
| tst.ts:362:1:362:27 | [MethodCallExpr] console ... eCJS()) | semmle.label | [MethodCallExpr] console ... eCJS()) |
|
||||
| tst.ts:362:1:362:28 | [ExprStmt] console ... CJS()); | semmle.label | [ExprStmt] console ... CJS()); |
|
||||
| tst.ts:362:1:362:28 | [ExprStmt] console ... CJS()); | semmle.order | 79 |
|
||||
| tst.ts:362:1:362:28 | [ExprStmt] console ... CJS()); | semmle.order | 81 |
|
||||
| tst.ts:362:9:362:11 | [Label] log | semmle.label | [Label] log |
|
||||
| tst.ts:362:13:362:24 | [VarRef] tstModuleCJS | semmle.label | [VarRef] tstModuleCJS |
|
||||
| tst.ts:362:13:362:26 | [CallExpr] tstModuleCJS() | semmle.label | [CallExpr] tstModuleCJS() |
|
||||
| tst.ts:368:1:368:34 | [ImportDeclaration] import ... ffixA'; | semmle.label | [ImportDeclaration] import ... ffixA'; |
|
||||
| tst.ts:368:1:368:34 | [ImportDeclaration] import ... ffixA'; | semmle.order | 80 |
|
||||
| tst.ts:368:1:368:34 | [ImportDeclaration] import ... ffixA'; | semmle.order | 82 |
|
||||
| tst.ts:368:8:368:13 | [ImportSpecifier] * as A | semmle.label | [ImportSpecifier] * as A |
|
||||
| tst.ts:368:13:368:13 | [VarDecl] A | semmle.label | [VarDecl] A |
|
||||
| tst.ts:368:20:368:33 | [Literal] './tstSuffixA' | semmle.label | [Literal] './tstSuffixA' |
|
||||
@@ -1389,14 +1402,14 @@ nodes
|
||||
| tst.ts:370:1:370:11 | [DotExpr] console.log | semmle.label | [DotExpr] console.log |
|
||||
| tst.ts:370:1:370:29 | [MethodCallExpr] console ... File()) | semmle.label | [MethodCallExpr] console ... File()) |
|
||||
| tst.ts:370:1:370:30 | [ExprStmt] console ... ile()); | semmle.label | [ExprStmt] console ... ile()); |
|
||||
| tst.ts:370:1:370:30 | [ExprStmt] console ... ile()); | semmle.order | 81 |
|
||||
| tst.ts:370:1:370:30 | [ExprStmt] console ... ile()); | semmle.order | 83 |
|
||||
| tst.ts:370:9:370:11 | [Label] log | semmle.label | [Label] log |
|
||||
| tst.ts:370:13:370:13 | [VarRef] A | semmle.label | [VarRef] A |
|
||||
| tst.ts:370:13:370:26 | [DotExpr] A.resolvedFile | semmle.label | [DotExpr] A.resolvedFile |
|
||||
| tst.ts:370:13:370:28 | [MethodCallExpr] A.resolvedFile() | semmle.label | [MethodCallExpr] A.resolvedFile() |
|
||||
| tst.ts:370:15:370:26 | [Label] resolvedFile | semmle.label | [Label] resolvedFile |
|
||||
| tst.ts:372:1:372:34 | [ImportDeclaration] import ... ffixB'; | semmle.label | [ImportDeclaration] import ... ffixB'; |
|
||||
| tst.ts:372:1:372:34 | [ImportDeclaration] import ... ffixB'; | semmle.order | 82 |
|
||||
| tst.ts:372:1:372:34 | [ImportDeclaration] import ... ffixB'; | semmle.order | 84 |
|
||||
| tst.ts:372:8:372:13 | [ImportSpecifier] * as B | semmle.label | [ImportSpecifier] * as B |
|
||||
| tst.ts:372:13:372:13 | [VarDecl] B | semmle.label | [VarDecl] B |
|
||||
| tst.ts:372:20:372:33 | [Literal] './tstSuffixB' | semmle.label | [Literal] './tstSuffixB' |
|
||||
@@ -1404,14 +1417,14 @@ nodes
|
||||
| tst.ts:374:1:374:11 | [DotExpr] console.log | semmle.label | [DotExpr] console.log |
|
||||
| tst.ts:374:1:374:29 | [MethodCallExpr] console ... File()) | semmle.label | [MethodCallExpr] console ... File()) |
|
||||
| tst.ts:374:1:374:30 | [ExprStmt] console ... ile()); | semmle.label | [ExprStmt] console ... ile()); |
|
||||
| tst.ts:374:1:374:30 | [ExprStmt] console ... ile()); | semmle.order | 83 |
|
||||
| tst.ts:374:1:374:30 | [ExprStmt] console ... ile()); | semmle.order | 85 |
|
||||
| tst.ts:374:9:374:11 | [Label] log | semmle.label | [Label] log |
|
||||
| tst.ts:374:13:374:13 | [VarRef] B | semmle.label | [VarRef] B |
|
||||
| tst.ts:374:13:374:26 | [DotExpr] B.resolvedFile | semmle.label | [DotExpr] B.resolvedFile |
|
||||
| tst.ts:374:13:374:28 | [MethodCallExpr] B.resolvedFile() | semmle.label | [MethodCallExpr] B.resolvedFile() |
|
||||
| tst.ts:374:15:374:26 | [Label] resolvedFile | semmle.label | [Label] resolvedFile |
|
||||
| tst.ts:379:1:386:1 | [NamespaceDeclaration] module ... ; } | semmle.label | [NamespaceDeclaration] module ... ; } |
|
||||
| tst.ts:379:1:386:1 | [NamespaceDeclaration] module ... ; } | semmle.order | 84 |
|
||||
| tst.ts:379:1:386:1 | [NamespaceDeclaration] module ... ; } | semmle.order | 86 |
|
||||
| tst.ts:379:8:379:11 | [VarDecl] TS48 | semmle.label | [VarDecl] TS48 |
|
||||
| tst.ts:381:5:381:73 | [TypeAliasDeclaration,TypeDefinition] type So ... never; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type So ... never; |
|
||||
| tst.ts:381:10:381:16 | [Identifier] SomeNum | semmle.label | [Identifier] SomeNum |
|
||||
@@ -1450,7 +1463,7 @@ nodes
|
||||
| tst.ts:385:59:385:63 | [Literal] false | semmle.label | [Literal] false |
|
||||
| tst.ts:385:66:385:71 | [Literal] "bye!" | semmle.label | [Literal] "bye!" |
|
||||
| tst.ts:390:1:426:1 | [NamespaceDeclaration] module ... } } } | semmle.label | [NamespaceDeclaration] module ... } } } |
|
||||
| tst.ts:390:1:426:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 85 |
|
||||
| tst.ts:390:1:426:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 87 |
|
||||
| tst.ts:390:8:390:11 | [VarDecl] TS49 | semmle.label | [VarDecl] TS49 |
|
||||
| tst.ts:391:3:391:41 | [TypeAliasDeclaration,TypeDefinition] type Co ... "blue"; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Co ... "blue"; |
|
||||
| tst.ts:391:8:391:13 | [Identifier] Colors | semmle.label | [Identifier] Colors |
|
||||
@@ -1547,7 +1560,7 @@ nodes
|
||||
| tst.ts:423:12:423:15 | [Label] name | semmle.label | [Label] name |
|
||||
| tst.ts:423:19:423:22 | [VarRef] name | semmle.label | [VarRef] name |
|
||||
| tst.ts:430:1:468:1 | [NamespaceDeclaration] module ... - "b" } | semmle.label | [NamespaceDeclaration] module ... - "b" } |
|
||||
| tst.ts:430:1:468:1 | [NamespaceDeclaration] module ... - "b" } | semmle.order | 86 |
|
||||
| tst.ts:430:1:468:1 | [NamespaceDeclaration] module ... - "b" } | semmle.order | 88 |
|
||||
| tst.ts:430:8:430:11 | [VarDecl] TS50 | semmle.label | [VarDecl] TS50 |
|
||||
| tst.ts:431:5:445:5 | [FunctionDeclStmt] functio ... ; } | semmle.label | [FunctionDeclStmt] functio ... ; } |
|
||||
| tst.ts:431:14:431:25 | [VarDecl] loggedMethod | semmle.label | [VarDecl] loggedMethod |
|
||||
@@ -1697,7 +1710,7 @@ nodes
|
||||
| tst.ts:467:15:467:20 | [IndexExpr] foo[1] | semmle.label | [IndexExpr] foo[1] |
|
||||
| tst.ts:467:19:467:19 | [Literal] 1 | semmle.label | [Literal] 1 |
|
||||
| tst.ts:472:1:484:1 | [NamespaceDeclaration] module ... ng>); } | semmle.label | [NamespaceDeclaration] module ... ng>); } |
|
||||
| tst.ts:472:1:484:1 | [NamespaceDeclaration] module ... ng>); } | semmle.order | 87 |
|
||||
| tst.ts:472:1:484:1 | [NamespaceDeclaration] module ... ng>); } | semmle.order | 89 |
|
||||
| tst.ts:472:8:472:11 | [VarDecl] TS52 | semmle.label | [VarDecl] TS52 |
|
||||
| tst.ts:473:5:476:5 | [ClassDefinition,TypeDefinition] class S ... ; } | semmle.label | [ClassDefinition,TypeDefinition] class S ... ; } |
|
||||
| tst.ts:473:11:473:19 | [VarDecl] SomeClass | semmle.label | [VarDecl] SomeClass |
|
||||
@@ -1745,7 +1758,7 @@ nodes
|
||||
| tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3<string> | semmle.label | [GenericTypeExpr] Pair3<string> |
|
||||
| tst.ts:483:52:483:57 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
| tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.label | [ExportDeclaration] export ... 'b'; } |
|
||||
| tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 88 |
|
||||
| tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 90 |
|
||||
| tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.label | [FunctionDeclStmt] functio ... 'b'; } |
|
||||
| tstModuleCJS.cts:1:17:1:28 | [VarDecl] tstModuleCJS | semmle.label | [VarDecl] tstModuleCJS |
|
||||
| tstModuleCJS.cts:1:33:1:35 | [LiteralTypeExpr] 'a' | semmle.label | [LiteralTypeExpr] 'a' |
|
||||
@@ -1763,7 +1776,7 @@ nodes
|
||||
| tstModuleCJS.cts:2:34:2:36 | [Literal] 'a' | semmle.label | [Literal] 'a' |
|
||||
| tstModuleCJS.cts:2:40:2:42 | [Literal] 'b' | semmle.label | [Literal] 'b' |
|
||||
| tstModuleES.mts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.label | [ExportDeclaration] export ... 'b'; } |
|
||||
| tstModuleES.mts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 89 |
|
||||
| tstModuleES.mts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 91 |
|
||||
| tstModuleES.mts:1:16:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.label | [FunctionDeclStmt] functio ... 'b'; } |
|
||||
| tstModuleES.mts:1:25:1:35 | [VarDecl] tstModuleES | semmle.label | [VarDecl] tstModuleES |
|
||||
| tstModuleES.mts:1:40:1:42 | [LiteralTypeExpr] 'a' | semmle.label | [LiteralTypeExpr] 'a' |
|
||||
@@ -1781,7 +1794,7 @@ nodes
|
||||
| tstModuleES.mts:2:34:2:36 | [Literal] 'a' | semmle.label | [Literal] 'a' |
|
||||
| tstModuleES.mts:2:40:2:42 | [Literal] 'b' | semmle.label | [Literal] 'b' |
|
||||
| tstSuffixA.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.label | [ExportDeclaration] export ... .ts'; } |
|
||||
| tstSuffixA.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 90 |
|
||||
| tstSuffixA.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 92 |
|
||||
| tstSuffixA.ts:1:8:3:1 | [FunctionDeclStmt] functio ... .ts'; } | semmle.label | [FunctionDeclStmt] functio ... .ts'; } |
|
||||
| tstSuffixA.ts:1:17:1:28 | [VarDecl] resolvedFile | semmle.label | [VarDecl] resolvedFile |
|
||||
| tstSuffixA.ts:1:33:1:47 | [LiteralTypeExpr] 'tstSuffixA.ts' | semmle.label | [LiteralTypeExpr] 'tstSuffixA.ts' |
|
||||
@@ -1789,7 +1802,7 @@ nodes
|
||||
| tstSuffixA.ts:2:5:2:27 | [ReturnStmt] return ... xA.ts'; | semmle.label | [ReturnStmt] return ... xA.ts'; |
|
||||
| tstSuffixA.ts:2:12:2:26 | [Literal] 'tstSuffixA.ts' | semmle.label | [Literal] 'tstSuffixA.ts' |
|
||||
| tstSuffixB.ios.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.label | [ExportDeclaration] export ... .ts'; } |
|
||||
| tstSuffixB.ios.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 91 |
|
||||
| tstSuffixB.ios.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 93 |
|
||||
| tstSuffixB.ios.ts:1:8:3:1 | [FunctionDeclStmt] functio ... .ts'; } | semmle.label | [FunctionDeclStmt] functio ... .ts'; } |
|
||||
| tstSuffixB.ios.ts:1:17:1:28 | [VarDecl] resolvedFile | semmle.label | [VarDecl] resolvedFile |
|
||||
| tstSuffixB.ios.ts:1:33:1:51 | [LiteralTypeExpr] 'tstSuffixB.ios.ts' | semmle.label | [LiteralTypeExpr] 'tstSuffixB.ios.ts' |
|
||||
@@ -1797,7 +1810,7 @@ nodes
|
||||
| tstSuffixB.ios.ts:2:5:2:31 | [ReturnStmt] return ... os.ts'; | semmle.label | [ReturnStmt] return ... os.ts'; |
|
||||
| tstSuffixB.ios.ts:2:12:2:30 | [Literal] 'tstSuffixB.ios.ts' | semmle.label | [Literal] 'tstSuffixB.ios.ts' |
|
||||
| tstSuffixB.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.label | [ExportDeclaration] export ... .ts'; } |
|
||||
| tstSuffixB.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 92 |
|
||||
| tstSuffixB.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 94 |
|
||||
| tstSuffixB.ts:1:8:3:1 | [FunctionDeclStmt] functio ... .ts'; } | semmle.label | [FunctionDeclStmt] functio ... .ts'; } |
|
||||
| tstSuffixB.ts:1:17:1:28 | [VarDecl] resolvedFile | semmle.label | [VarDecl] resolvedFile |
|
||||
| tstSuffixB.ts:1:33:1:47 | [LiteralTypeExpr] 'tstSuffixB.ts' | semmle.label | [LiteralTypeExpr] 'tstSuffixB.ts' |
|
||||
@@ -1805,16 +1818,16 @@ nodes
|
||||
| tstSuffixB.ts:2:5:2:27 | [ReturnStmt] return ... xB.ts'; | semmle.label | [ReturnStmt] return ... xB.ts'; |
|
||||
| tstSuffixB.ts:2:12:2:26 | [Literal] 'tstSuffixB.ts' | semmle.label | [Literal] 'tstSuffixB.ts' |
|
||||
| type_alias.ts:1:1:1:17 | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type B = boolean; |
|
||||
| type_alias.ts:1:1:1:17 | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | semmle.order | 93 |
|
||||
| type_alias.ts:1:1:1:17 | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | semmle.order | 95 |
|
||||
| type_alias.ts:1:6:1:6 | [Identifier] B | semmle.label | [Identifier] B |
|
||||
| type_alias.ts:1:10:1:16 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean |
|
||||
| type_alias.ts:3:1:3:9 | [DeclStmt] var b = ... | semmle.label | [DeclStmt] var b = ... |
|
||||
| type_alias.ts:3:1:3:9 | [DeclStmt] var b = ... | semmle.order | 94 |
|
||||
| type_alias.ts:3:1:3:9 | [DeclStmt] var b = ... | semmle.order | 96 |
|
||||
| type_alias.ts:3:5:3:5 | [VarDecl] b | semmle.label | [VarDecl] b |
|
||||
| type_alias.ts:3:5:3:8 | [VariableDeclarator] b: B | semmle.label | [VariableDeclarator] b: B |
|
||||
| type_alias.ts:3:8:3:8 | [LocalTypeAccess] B | semmle.label | [LocalTypeAccess] B |
|
||||
| type_alias.ts:5:1:5:50 | [TypeAliasDeclaration,TypeDefinition] type Va ... ay<T>>; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Va ... ay<T>>; |
|
||||
| type_alias.ts:5:1:5:50 | [TypeAliasDeclaration,TypeDefinition] type Va ... ay<T>>; | semmle.order | 95 |
|
||||
| type_alias.ts:5:1:5:50 | [TypeAliasDeclaration,TypeDefinition] type Va ... ay<T>>; | semmle.order | 97 |
|
||||
| type_alias.ts:5:6:5:17 | [Identifier] ValueOrArray | semmle.label | [Identifier] ValueOrArray |
|
||||
| type_alias.ts:5:19:5:19 | [Identifier] T | semmle.label | [Identifier] T |
|
||||
| type_alias.ts:5:19:5:19 | [TypeParameter] T | semmle.label | [TypeParameter] T |
|
||||
@@ -1826,14 +1839,14 @@ nodes
|
||||
| type_alias.ts:5:34:5:48 | [GenericTypeExpr] ValueOrArray<T> | semmle.label | [GenericTypeExpr] ValueOrArray<T> |
|
||||
| type_alias.ts:5:47:5:47 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T |
|
||||
| type_alias.ts:7:1:7:28 | [DeclStmt] var c = ... | semmle.label | [DeclStmt] var c = ... |
|
||||
| type_alias.ts:7:1:7:28 | [DeclStmt] var c = ... | semmle.order | 96 |
|
||||
| type_alias.ts:7:1:7:28 | [DeclStmt] var c = ... | semmle.order | 98 |
|
||||
| type_alias.ts:7:5:7:5 | [VarDecl] c | semmle.label | [VarDecl] c |
|
||||
| type_alias.ts:7:5:7:27 | [VariableDeclarator] c: Valu ... number> | semmle.label | [VariableDeclarator] c: Valu ... number> |
|
||||
| type_alias.ts:7:8:7:19 | [LocalTypeAccess] ValueOrArray | semmle.label | [LocalTypeAccess] ValueOrArray |
|
||||
| type_alias.ts:7:8:7:27 | [GenericTypeExpr] ValueOrArray<number> | semmle.label | [GenericTypeExpr] ValueOrArray<number> |
|
||||
| type_alias.ts:7:21:7:26 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| type_alias.ts:9:1:15:13 | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; |
|
||||
| type_alias.ts:9:1:15:13 | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | semmle.order | 97 |
|
||||
| type_alias.ts:9:1:15:13 | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | semmle.order | 99 |
|
||||
| type_alias.ts:9:6:9:9 | [Identifier] Json | semmle.label | [Identifier] Json |
|
||||
| type_alias.ts:10:5:15:12 | [UnionTypeExpr] \| strin ... Json[] | semmle.label | [UnionTypeExpr] \| strin ... Json[] |
|
||||
| type_alias.ts:10:7:10:12 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
@@ -1849,12 +1862,12 @@ nodes
|
||||
| type_alias.ts:15:7:15:10 | [LocalTypeAccess] Json | semmle.label | [LocalTypeAccess] Json |
|
||||
| type_alias.ts:15:7:15:12 | [ArrayTypeExpr] Json[] | semmle.label | [ArrayTypeExpr] Json[] |
|
||||
| type_alias.ts:17:1:17:15 | [DeclStmt] var json = ... | semmle.label | [DeclStmt] var json = ... |
|
||||
| type_alias.ts:17:1:17:15 | [DeclStmt] var json = ... | semmle.order | 98 |
|
||||
| type_alias.ts:17:1:17:15 | [DeclStmt] var json = ... | semmle.order | 100 |
|
||||
| type_alias.ts:17:5:17:8 | [VarDecl] json | semmle.label | [VarDecl] json |
|
||||
| type_alias.ts:17:5:17:14 | [VariableDeclarator] json: Json | semmle.label | [VariableDeclarator] json: Json |
|
||||
| type_alias.ts:17:11:17:14 | [LocalTypeAccess] Json | semmle.label | [LocalTypeAccess] Json |
|
||||
| type_alias.ts:19:1:21:57 | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; |
|
||||
| type_alias.ts:19:1:21:57 | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | semmle.order | 99 |
|
||||
| type_alias.ts:19:1:21:57 | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | semmle.order | 101 |
|
||||
| type_alias.ts:19:6:19:16 | [Identifier] VirtualNode | semmle.label | [Identifier] VirtualNode |
|
||||
| type_alias.ts:20:5:21:56 | [UnionTypeExpr] \| strin ... Node[]] | semmle.label | [UnionTypeExpr] \| strin ... Node[]] |
|
||||
| type_alias.ts:20:7:20:12 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string |
|
||||
@@ -1870,7 +1883,7 @@ nodes
|
||||
| type_alias.ts:21:43:21:53 | [LocalTypeAccess] VirtualNode | semmle.label | [LocalTypeAccess] VirtualNode |
|
||||
| type_alias.ts:21:43:21:55 | [ArrayTypeExpr] VirtualNode[] | semmle.label | [ArrayTypeExpr] VirtualNode[] |
|
||||
| type_alias.ts:23:1:27:6 | [DeclStmt] const myNode = ... | semmle.label | [DeclStmt] const myNode = ... |
|
||||
| type_alias.ts:23:1:27:6 | [DeclStmt] const myNode = ... | semmle.order | 100 |
|
||||
| type_alias.ts:23:1:27:6 | [DeclStmt] const myNode = ... | semmle.order | 102 |
|
||||
| type_alias.ts:23:7:23:12 | [VarDecl] myNode | semmle.label | [VarDecl] myNode |
|
||||
| type_alias.ts:23:7:27:5 | [VariableDeclarator] myNode: ... ] ] | semmle.label | [VariableDeclarator] myNode: ... ] ] |
|
||||
| type_alias.ts:23:15:23:25 | [LocalTypeAccess] VirtualNode | semmle.label | [LocalTypeAccess] VirtualNode |
|
||||
@@ -1895,12 +1908,12 @@ nodes
|
||||
| type_alias.ts:26:23:26:36 | [Literal] "second-child" | semmle.label | [Literal] "second-child" |
|
||||
| type_alias.ts:26:41:26:62 | [Literal] "I'm the second child" | semmle.label | [Literal] "I'm the second child" |
|
||||
| type_definition_objects.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.label | [ImportDeclaration] import ... dummy"; |
|
||||
| type_definition_objects.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 101 |
|
||||
| type_definition_objects.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 103 |
|
||||
| type_definition_objects.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | [ImportSpecifier] * as dummy |
|
||||
| type_definition_objects.ts:1:13:1:17 | [VarDecl] dummy | semmle.label | [VarDecl] dummy |
|
||||
| type_definition_objects.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | [Literal] "./dummy" |
|
||||
| type_definition_objects.ts:3:1:3:17 | [ExportDeclaration] export class C {} | semmle.label | [ExportDeclaration] export class C {} |
|
||||
| type_definition_objects.ts:3:1:3:17 | [ExportDeclaration] export class C {} | semmle.order | 102 |
|
||||
| type_definition_objects.ts:3:1:3:17 | [ExportDeclaration] export class C {} | semmle.order | 104 |
|
||||
| type_definition_objects.ts:3:8:3:17 | [ClassDefinition,TypeDefinition] class C {} | semmle.label | [ClassDefinition,TypeDefinition] class C {} |
|
||||
| type_definition_objects.ts:3:14:3:14 | [VarDecl] C | semmle.label | [VarDecl] C |
|
||||
| type_definition_objects.ts:3:16:3:15 | [BlockStmt] {} | semmle.label | [BlockStmt] {} |
|
||||
@@ -1908,36 +1921,36 @@ nodes
|
||||
| type_definition_objects.ts:3:16:3:15 | [FunctionExpr] () {} | semmle.label | [FunctionExpr] () {} |
|
||||
| type_definition_objects.ts:3:16:3:15 | [Label] constructor | semmle.label | [Label] constructor |
|
||||
| type_definition_objects.ts:4:1:4:17 | [DeclStmt] let classObj = ... | semmle.label | [DeclStmt] let classObj = ... |
|
||||
| type_definition_objects.ts:4:1:4:17 | [DeclStmt] let classObj = ... | semmle.order | 103 |
|
||||
| type_definition_objects.ts:4:1:4:17 | [DeclStmt] let classObj = ... | semmle.order | 105 |
|
||||
| type_definition_objects.ts:4:5:4:12 | [VarDecl] classObj | semmle.label | [VarDecl] classObj |
|
||||
| type_definition_objects.ts:4:5:4:16 | [VariableDeclarator] classObj = C | semmle.label | [VariableDeclarator] classObj = C |
|
||||
| type_definition_objects.ts:4:16:4:16 | [VarRef] C | semmle.label | [VarRef] C |
|
||||
| type_definition_objects.ts:6:1:6:16 | [ExportDeclaration] export enum E {} | semmle.label | [ExportDeclaration] export enum E {} |
|
||||
| type_definition_objects.ts:6:1:6:16 | [ExportDeclaration] export enum E {} | semmle.order | 104 |
|
||||
| type_definition_objects.ts:6:1:6:16 | [ExportDeclaration] export enum E {} | semmle.order | 106 |
|
||||
| type_definition_objects.ts:6:8:6:16 | [EnumDeclaration,TypeDefinition] enum E {} | semmle.label | [EnumDeclaration,TypeDefinition] enum E {} |
|
||||
| type_definition_objects.ts:6:13:6:13 | [VarDecl] E | semmle.label | [VarDecl] E |
|
||||
| type_definition_objects.ts:7:1:7:16 | [DeclStmt] let enumObj = ... | semmle.label | [DeclStmt] let enumObj = ... |
|
||||
| type_definition_objects.ts:7:1:7:16 | [DeclStmt] let enumObj = ... | semmle.order | 105 |
|
||||
| type_definition_objects.ts:7:1:7:16 | [DeclStmt] let enumObj = ... | semmle.order | 107 |
|
||||
| type_definition_objects.ts:7:5:7:11 | [VarDecl] enumObj | semmle.label | [VarDecl] enumObj |
|
||||
| type_definition_objects.ts:7:5:7:15 | [VariableDeclarator] enumObj = E | semmle.label | [VariableDeclarator] enumObj = E |
|
||||
| type_definition_objects.ts:7:15:7:15 | [VarRef] E | semmle.label | [VarRef] E |
|
||||
| type_definition_objects.ts:9:1:9:22 | [ExportDeclaration] export ... e N {;} | semmle.label | [ExportDeclaration] export ... e N {;} |
|
||||
| type_definition_objects.ts:9:1:9:22 | [ExportDeclaration] export ... e N {;} | semmle.order | 106 |
|
||||
| type_definition_objects.ts:9:1:9:22 | [ExportDeclaration] export ... e N {;} | semmle.order | 108 |
|
||||
| type_definition_objects.ts:9:8:9:22 | [NamespaceDeclaration] namespace N {;} | semmle.label | [NamespaceDeclaration] namespace N {;} |
|
||||
| type_definition_objects.ts:9:18:9:18 | [VarDecl] N | semmle.label | [VarDecl] N |
|
||||
| type_definition_objects.ts:9:21:9:21 | [EmptyStmt] ; | semmle.label | [EmptyStmt] ; |
|
||||
| type_definition_objects.ts:10:1:10:21 | [DeclStmt] let namespaceObj = ... | semmle.label | [DeclStmt] let namespaceObj = ... |
|
||||
| type_definition_objects.ts:10:1:10:21 | [DeclStmt] let namespaceObj = ... | semmle.order | 107 |
|
||||
| type_definition_objects.ts:10:1:10:21 | [DeclStmt] let namespaceObj = ... | semmle.order | 109 |
|
||||
| type_definition_objects.ts:10:5:10:16 | [VarDecl] namespaceObj | semmle.label | [VarDecl] namespaceObj |
|
||||
| type_definition_objects.ts:10:5:10:20 | [VariableDeclarator] namespaceObj = N | semmle.label | [VariableDeclarator] namespaceObj = N |
|
||||
| type_definition_objects.ts:10:20:10:20 | [VarRef] N | semmle.label | [VarRef] N |
|
||||
| type_definitions.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.label | [ImportDeclaration] import ... dummy"; |
|
||||
| type_definitions.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 108 |
|
||||
| type_definitions.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 110 |
|
||||
| type_definitions.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | [ImportSpecifier] * as dummy |
|
||||
| type_definitions.ts:1:13:1:17 | [VarDecl] dummy | semmle.label | [VarDecl] dummy |
|
||||
| type_definitions.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | [Literal] "./dummy" |
|
||||
| type_definitions.ts:3:1:5:1 | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } |
|
||||
| type_definitions.ts:3:1:5:1 | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | semmle.order | 109 |
|
||||
| type_definitions.ts:3:1:5:1 | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | semmle.order | 111 |
|
||||
| type_definitions.ts:3:11:3:11 | [Identifier] I | semmle.label | [Identifier] I |
|
||||
| type_definitions.ts:3:13:3:13 | [Identifier] S | semmle.label | [Identifier] S |
|
||||
| type_definitions.ts:3:13:3:13 | [TypeParameter] S | semmle.label | [TypeParameter] S |
|
||||
@@ -1945,14 +1958,14 @@ nodes
|
||||
| type_definitions.ts:4:3:4:7 | [FieldDeclaration] x: S; | semmle.label | [FieldDeclaration] x: S; |
|
||||
| type_definitions.ts:4:6:4:6 | [LocalTypeAccess] S | semmle.label | [LocalTypeAccess] S |
|
||||
| type_definitions.ts:6:1:6:16 | [DeclStmt] let i = ... | semmle.label | [DeclStmt] let i = ... |
|
||||
| type_definitions.ts:6:1:6:16 | [DeclStmt] let i = ... | semmle.order | 110 |
|
||||
| type_definitions.ts:6:1:6:16 | [DeclStmt] let i = ... | semmle.order | 112 |
|
||||
| type_definitions.ts:6:5:6:5 | [VarDecl] i | semmle.label | [VarDecl] i |
|
||||
| type_definitions.ts:6:5:6:16 | [VariableDeclarator] i: I<number> | semmle.label | [VariableDeclarator] i: I<number> |
|
||||
| type_definitions.ts:6:8:6:8 | [LocalTypeAccess] I | semmle.label | [LocalTypeAccess] I |
|
||||
| type_definitions.ts:6:8:6:16 | [GenericTypeExpr] I<number> | semmle.label | [GenericTypeExpr] I<number> |
|
||||
| type_definitions.ts:6:10:6:15 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| type_definitions.ts:8:1:10:1 | [ClassDefinition,TypeDefinition] class C ... x: T } | semmle.label | [ClassDefinition,TypeDefinition] class C ... x: T } |
|
||||
| type_definitions.ts:8:1:10:1 | [ClassDefinition,TypeDefinition] class C ... x: T } | semmle.order | 111 |
|
||||
| type_definitions.ts:8:1:10:1 | [ClassDefinition,TypeDefinition] class C ... x: T } | semmle.order | 113 |
|
||||
| type_definitions.ts:8:7:8:7 | [VarDecl] C | semmle.label | [VarDecl] C |
|
||||
| type_definitions.ts:8:8:8:7 | [BlockStmt] {} | semmle.label | [BlockStmt] {} |
|
||||
| type_definitions.ts:8:8:8:7 | [ClassInitializedMember,ConstructorDefinition] constructor() {} | semmle.label | [ClassInitializedMember,ConstructorDefinition] constructor() {} |
|
||||
@@ -1964,14 +1977,14 @@ nodes
|
||||
| type_definitions.ts:9:3:9:6 | [FieldDeclaration] x: T | semmle.label | [FieldDeclaration] x: T |
|
||||
| type_definitions.ts:9:6:9:6 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T |
|
||||
| type_definitions.ts:11:1:11:17 | [DeclStmt] let c = ... | semmle.label | [DeclStmt] let c = ... |
|
||||
| type_definitions.ts:11:1:11:17 | [DeclStmt] let c = ... | semmle.order | 112 |
|
||||
| type_definitions.ts:11:1:11:17 | [DeclStmt] let c = ... | semmle.order | 114 |
|
||||
| type_definitions.ts:11:5:11:5 | [VarDecl] c | semmle.label | [VarDecl] c |
|
||||
| type_definitions.ts:11:5:11:16 | [VariableDeclarator] c: C<number> | semmle.label | [VariableDeclarator] c: C<number> |
|
||||
| type_definitions.ts:11:8:11:8 | [LocalTypeAccess] C | semmle.label | [LocalTypeAccess] C |
|
||||
| type_definitions.ts:11:8:11:16 | [GenericTypeExpr] C<number> | semmle.label | [GenericTypeExpr] C<number> |
|
||||
| type_definitions.ts:11:10:11:15 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
| type_definitions.ts:13:1:15:1 | [EnumDeclaration,TypeDefinition] enum Co ... blue } | semmle.label | [EnumDeclaration,TypeDefinition] enum Co ... blue } |
|
||||
| type_definitions.ts:13:1:15:1 | [EnumDeclaration,TypeDefinition] enum Co ... blue } | semmle.order | 113 |
|
||||
| type_definitions.ts:13:1:15:1 | [EnumDeclaration,TypeDefinition] enum Co ... blue } | semmle.order | 115 |
|
||||
| type_definitions.ts:13:6:13:10 | [VarDecl] Color | semmle.label | [VarDecl] Color |
|
||||
| type_definitions.ts:14:3:14:5 | [EnumMember,TypeDefinition] red | semmle.label | [EnumMember,TypeDefinition] red |
|
||||
| type_definitions.ts:14:3:14:5 | [VarDecl] red | semmle.label | [VarDecl] red |
|
||||
@@ -1980,35 +1993,53 @@ nodes
|
||||
| type_definitions.ts:14:15:14:18 | [EnumMember,TypeDefinition] blue | semmle.label | [EnumMember,TypeDefinition] blue |
|
||||
| type_definitions.ts:14:15:14:18 | [VarDecl] blue | semmle.label | [VarDecl] blue |
|
||||
| type_definitions.ts:16:1:16:17 | [DeclStmt] let color = ... | semmle.label | [DeclStmt] let color = ... |
|
||||
| type_definitions.ts:16:1:16:17 | [DeclStmt] let color = ... | semmle.order | 114 |
|
||||
| type_definitions.ts:16:1:16:17 | [DeclStmt] let color = ... | semmle.order | 116 |
|
||||
| type_definitions.ts:16:5:16:9 | [VarDecl] color | semmle.label | [VarDecl] color |
|
||||
| type_definitions.ts:16:5:16:16 | [VariableDeclarator] color: Color | semmle.label | [VariableDeclarator] color: Color |
|
||||
| type_definitions.ts:16:12:16:16 | [LocalTypeAccess] Color | semmle.label | [LocalTypeAccess] Color |
|
||||
| type_definitions.ts:18:1:18:33 | [EnumDeclaration,TypeDefinition] enum En ... ember } | semmle.label | [EnumDeclaration,TypeDefinition] enum En ... ember } |
|
||||
| type_definitions.ts:18:1:18:33 | [EnumDeclaration,TypeDefinition] enum En ... ember } | semmle.order | 115 |
|
||||
| type_definitions.ts:18:1:18:33 | [EnumDeclaration,TypeDefinition] enum En ... ember } | semmle.order | 117 |
|
||||
| type_definitions.ts:18:6:18:22 | [VarDecl] EnumWithOneMember | semmle.label | [VarDecl] EnumWithOneMember |
|
||||
| type_definitions.ts:18:26:18:31 | [EnumMember,TypeDefinition] member | semmle.label | [EnumMember,TypeDefinition] member |
|
||||
| type_definitions.ts:18:26:18:31 | [VarDecl] member | semmle.label | [VarDecl] member |
|
||||
| type_definitions.ts:19:1:19:25 | [DeclStmt] let e = ... | semmle.label | [DeclStmt] let e = ... |
|
||||
| type_definitions.ts:19:1:19:25 | [DeclStmt] let e = ... | semmle.order | 116 |
|
||||
| type_definitions.ts:19:1:19:25 | [DeclStmt] let e = ... | semmle.order | 118 |
|
||||
| type_definitions.ts:19:5:19:5 | [VarDecl] e | semmle.label | [VarDecl] e |
|
||||
| type_definitions.ts:19:5:19:24 | [VariableDeclarator] e: EnumWithOneMember | semmle.label | [VariableDeclarator] e: EnumWithOneMember |
|
||||
| type_definitions.ts:19:8:19:24 | [LocalTypeAccess] EnumWithOneMember | semmle.label | [LocalTypeAccess] EnumWithOneMember |
|
||||
| type_definitions.ts:21:1:21:20 | [TypeAliasDeclaration,TypeDefinition] type Alias<T> = T[]; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Alias<T> = T[]; |
|
||||
| type_definitions.ts:21:1:21:20 | [TypeAliasDeclaration,TypeDefinition] type Alias<T> = T[]; | semmle.order | 117 |
|
||||
| type_definitions.ts:21:1:21:20 | [TypeAliasDeclaration,TypeDefinition] type Alias<T> = T[]; | semmle.order | 119 |
|
||||
| type_definitions.ts:21:6:21:10 | [Identifier] Alias | semmle.label | [Identifier] Alias |
|
||||
| type_definitions.ts:21:12:21:12 | [Identifier] T | semmle.label | [Identifier] T |
|
||||
| type_definitions.ts:21:12:21:12 | [TypeParameter] T | semmle.label | [TypeParameter] T |
|
||||
| type_definitions.ts:21:17:21:17 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T |
|
||||
| type_definitions.ts:21:17:21:19 | [ArrayTypeExpr] T[] | semmle.label | [ArrayTypeExpr] T[] |
|
||||
| type_definitions.ts:22:1:22:39 | [DeclStmt] let aliasForNumberArray = ... | semmle.label | [DeclStmt] let aliasForNumberArray = ... |
|
||||
| type_definitions.ts:22:1:22:39 | [DeclStmt] let aliasForNumberArray = ... | semmle.order | 118 |
|
||||
| type_definitions.ts:22:1:22:39 | [DeclStmt] let aliasForNumberArray = ... | semmle.order | 120 |
|
||||
| type_definitions.ts:22:5:22:23 | [VarDecl] aliasForNumberArray | semmle.label | [VarDecl] aliasForNumberArray |
|
||||
| type_definitions.ts:22:5:22:38 | [VariableDeclarator] aliasFo ... number> | semmle.label | [VariableDeclarator] aliasFo ... number> |
|
||||
| type_definitions.ts:22:26:22:30 | [LocalTypeAccess] Alias | semmle.label | [LocalTypeAccess] Alias |
|
||||
| type_definitions.ts:22:26:22:38 | [GenericTypeExpr] Alias<number> | semmle.label | [GenericTypeExpr] Alias<number> |
|
||||
| type_definitions.ts:22:32:22:37 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number |
|
||||
edges
|
||||
| badTypes.ts:5:1:5:29 | [InterfaceDeclaration,TypeDefinition] interfa ... is.B {} | badTypes.ts:5:11:5:11 | [Identifier] A | semmle.label | 1 |
|
||||
| badTypes.ts:5:1:5:29 | [InterfaceDeclaration,TypeDefinition] interfa ... is.B {} | badTypes.ts:5:11:5:11 | [Identifier] A | semmle.order | 1 |
|
||||
| badTypes.ts:5:1:5:29 | [InterfaceDeclaration,TypeDefinition] interfa ... is.B {} | badTypes.ts:5:21:5:26 | [TypeAccess] this.B | semmle.label | 2 |
|
||||
| badTypes.ts:5:1:5:29 | [InterfaceDeclaration,TypeDefinition] interfa ... is.B {} | badTypes.ts:5:21:5:26 | [TypeAccess] this.B | semmle.order | 2 |
|
||||
| badTypes.ts:5:21:5:26 | [TypeAccess] this.B | badTypes.ts:5:21:5:24 | [ThisVarTypeAccess] this | semmle.label | 1 |
|
||||
| badTypes.ts:5:21:5:26 | [TypeAccess] this.B | badTypes.ts:5:21:5:24 | [ThisVarTypeAccess] this | semmle.order | 1 |
|
||||
| badTypes.ts:5:21:5:26 | [TypeAccess] this.B | badTypes.ts:5:26:5:26 | [Identifier] B | semmle.label | 2 |
|
||||
| badTypes.ts:5:21:5:26 | [TypeAccess] this.B | badTypes.ts:5:26:5:26 | [Identifier] B | semmle.order | 2 |
|
||||
| badTypes.ts:6:1:6:24 | [TypeAliasDeclaration,TypeDefinition] type T ... ar.bar; | badTypes.ts:6:6:6:6 | [Identifier] T | semmle.label | 1 |
|
||||
| badTypes.ts:6:1:6:24 | [TypeAliasDeclaration,TypeDefinition] type T ... ar.bar; | badTypes.ts:6:6:6:6 | [Identifier] T | semmle.order | 1 |
|
||||
| badTypes.ts:6:1:6:24 | [TypeAliasDeclaration,TypeDefinition] type T ... ar.bar; | badTypes.ts:6:10:6:23 | [TypeofTypeExpr] typeof var.bar | semmle.label | 2 |
|
||||
| badTypes.ts:6:1:6:24 | [TypeAliasDeclaration,TypeDefinition] type T ... ar.bar; | badTypes.ts:6:10:6:23 | [TypeofTypeExpr] typeof var.bar | semmle.order | 2 |
|
||||
| badTypes.ts:6:10:6:23 | [TypeofTypeExpr] typeof var.bar | badTypes.ts:6:17:6:23 | [VarTypeAccess] var.bar | semmle.label | 1 |
|
||||
| badTypes.ts:6:10:6:23 | [TypeofTypeExpr] typeof var.bar | badTypes.ts:6:17:6:23 | [VarTypeAccess] var.bar | semmle.order | 1 |
|
||||
| badTypes.ts:6:17:6:23 | [VarTypeAccess] var.bar | badTypes.ts:6:17:6:19 | [LocalVarTypeAccess] var | semmle.label | 1 |
|
||||
| badTypes.ts:6:17:6:23 | [VarTypeAccess] var.bar | badTypes.ts:6:17:6:19 | [LocalVarTypeAccess] var | semmle.order | 1 |
|
||||
| badTypes.ts:6:17:6:23 | [VarTypeAccess] var.bar | badTypes.ts:6:21:6:23 | [Identifier] bar | semmle.label | 2 |
|
||||
| badTypes.ts:6:17:6:23 | [VarTypeAccess] var.bar | badTypes.ts:6:21:6:23 | [Identifier] bar | semmle.order | 2 |
|
||||
| boolean-type.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | boolean-type.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | 1 |
|
||||
| boolean-type.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | boolean-type.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.order | 1 |
|
||||
| boolean-type.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | boolean-type.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | 2 |
|
||||
@@ -3727,16 +3758,16 @@ edges
|
||||
| tst.ts:232:28:232:38 | [DotExpr] other.#name | tst.ts:232:28:232:32 | [VarRef] other | semmle.order | 1 |
|
||||
| tst.ts:232:28:232:38 | [DotExpr] other.#name | tst.ts:232:34:232:38 | [Label] #name | semmle.label | 2 |
|
||||
| tst.ts:232:28:232:38 | [DotExpr] other.#name | tst.ts:232:34:232:38 | [Label] #name | semmle.order | 2 |
|
||||
| tst.ts:237:1:237:65 | [ImportDeclaration] import ... son" }; | tst.ts:237:8:237:16 | [ImportSpecifier] * as Foo3 | semmle.label | 1 |
|
||||
| tst.ts:237:1:237:65 | [ImportDeclaration] import ... son" }; | tst.ts:237:8:237:16 | [ImportSpecifier] * as Foo3 | semmle.order | 1 |
|
||||
| tst.ts:237:1:237:65 | [ImportDeclaration] import ... son" }; | tst.ts:237:23:237:40 | [Literal] "./something.json" | semmle.label | 2 |
|
||||
| tst.ts:237:1:237:65 | [ImportDeclaration] import ... son" }; | tst.ts:237:23:237:40 | [Literal] "./something.json" | semmle.order | 2 |
|
||||
| tst.ts:237:1:237:65 | [ImportDeclaration] import ... son" }; | tst.ts:237:49:237:64 | [ObjectExpr] { type: "json" } | semmle.label | 3 |
|
||||
| tst.ts:237:1:237:65 | [ImportDeclaration] import ... son" }; | tst.ts:237:49:237:64 | [ObjectExpr] { type: "json" } | semmle.order | 3 |
|
||||
| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | tst.ts:237:8:237:16 | [ImportSpecifier] * as Foo3 | semmle.label | 1 |
|
||||
| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | tst.ts:237:8:237:16 | [ImportSpecifier] * as Foo3 | semmle.order | 1 |
|
||||
| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | tst.ts:237:23:237:40 | [Literal] "./something.json" | semmle.label | 2 |
|
||||
| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | tst.ts:237:23:237:40 | [Literal] "./something.json" | semmle.order | 2 |
|
||||
| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | tst.ts:237:47:237:62 | [ObjectExpr] { type: "json" } | semmle.label | 3 |
|
||||
| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | tst.ts:237:47:237:62 | [ObjectExpr] { type: "json" } | semmle.order | 3 |
|
||||
| tst.ts:237:8:237:16 | [ImportSpecifier] * as Foo3 | tst.ts:237:13:237:16 | [VarDecl] Foo3 | semmle.label | 1 |
|
||||
| tst.ts:237:8:237:16 | [ImportSpecifier] * as Foo3 | tst.ts:237:13:237:16 | [VarDecl] Foo3 | semmle.order | 1 |
|
||||
| tst.ts:237:49:237:64 | [ObjectExpr] { type: "json" } | tst.ts:237:51:237:62 | [Property] type: "json" | semmle.label | 1 |
|
||||
| tst.ts:237:49:237:64 | [ObjectExpr] { type: "json" } | tst.ts:237:51:237:62 | [Property] type: "json" | semmle.order | 1 |
|
||||
| tst.ts:237:47:237:62 | [ObjectExpr] { type: "json" } | tst.ts:237:49:237:60 | [Property] type: "json" | semmle.label | 1 |
|
||||
| tst.ts:237:47:237:62 | [ObjectExpr] { type: "json" } | tst.ts:237:49:237:60 | [Property] type: "json" | semmle.order | 1 |
|
||||
| tst.ts:238:1:238:19 | [DeclStmt] var foo = ... | tst.ts:238:5:238:18 | [VariableDeclarator] foo = Foo3.foo | semmle.label | 1 |
|
||||
| tst.ts:238:1:238:19 | [DeclStmt] var foo = ... | tst.ts:238:5:238:18 | [VariableDeclarator] foo = Foo3.foo | semmle.order | 1 |
|
||||
| tst.ts:238:5:238:18 | [VariableDeclarator] foo = Foo3.foo | tst.ts:238:5:238:7 | [VarDecl] foo | semmle.label | 1 |
|
||||
|
||||
@@ -733,6 +733,8 @@ getExprType
|
||||
| type_definitions.ts:19:5:19:5 | e | EnumWithOneMember |
|
||||
| type_definitions.ts:22:5:22:23 | aliasForNumberArray | Alias<number> |
|
||||
getTypeDefinitionType
|
||||
| badTypes.ts:5:1:5:29 | interfa ... is.B {} | A |
|
||||
| badTypes.ts:6:1:6:24 | type T ... ar.bar; | any |
|
||||
| tst.ts:54:1:56:1 | interfa ... mber;\\n} | NonAbstractDummy |
|
||||
| tst.ts:58:1:60:1 | interfa ... mber;\\n} | HasArea |
|
||||
| tst.ts:65:1:65:54 | type My ... true}; | MyUnion |
|
||||
@@ -783,6 +785,13 @@ getTypeDefinitionType
|
||||
| type_definitions.ts:18:1:18:33 | enum En ... ember } | EnumWithOneMember |
|
||||
| type_definitions.ts:21:1:21:20 | type Alias<T> = T[]; | Alias<T> |
|
||||
getTypeExprType
|
||||
| badTypes.ts:5:11:5:11 | A | A |
|
||||
| badTypes.ts:5:21:5:26 | this.B | any |
|
||||
| badTypes.ts:5:26:5:26 | B | any |
|
||||
| badTypes.ts:6:6:6:6 | T | any |
|
||||
| badTypes.ts:6:10:6:23 | typeof var.bar | any |
|
||||
| badTypes.ts:6:17:6:19 | var | any |
|
||||
| badTypes.ts:6:21:6:23 | bar | any |
|
||||
| boolean-type.ts:3:12:3:15 | true | true |
|
||||
| boolean-type.ts:4:12:4:15 | true | true |
|
||||
| boolean-type.ts:4:12:4:22 | true \| true | true |
|
||||
@@ -1199,6 +1208,7 @@ getTypeExprType
|
||||
| type_definitions.ts:22:32:22:37 | number | number |
|
||||
missingToString
|
||||
referenceDefinition
|
||||
| A | badTypes.ts:5:1:5:29 | interfa ... is.B {} |
|
||||
| Action | tst.ts:252:3:254:50 | type Ac ... ring }; |
|
||||
| Alias<T> | type_definitions.ts:21:1:21:20 | type Alias<T> = T[]; |
|
||||
| Alias<number> | type_definitions.ts:21:1:21:20 | type Alias<T> = T[]; |
|
||||
|
||||
@@ -234,7 +234,7 @@ module TS45 {
|
||||
}
|
||||
}
|
||||
|
||||
import * as Foo3 from "./something.json" assert { type: "json" };
|
||||
import * as Foo3 from "./something.json" with { type: "json" };
|
||||
var foo = Foo3.foo;
|
||||
|
||||
module TS46 {
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
| tst.js:7:9:12:14 | $routeP ... }) | template3.html:1:1:1:6 | <div>...</> | tst.js:9:29:10:17 | functio ... } | - |
|
||||
| tst.js:7:9:17:14 | $routeP ... }) | template4.html:1:1:1:6 | <div>...</> | tst.js:14:29:15:17 | functio ... } | - |
|
||||
| tst.js:7:9:21:14 | $routeP ... }) | template1.html:1:1:1:6 | <div>...</> | tst.js:2:34:3:5 | functio ... {\\n } | - |
|
||||
| tst.js:7:9:26:14 | $routeP ... }) | template1.html:1:1:1:6 | <div>...</> | tst.js:2:34:3:5 | functio ... {\\n } | mc1 |
|
||||
| tst.js:7:9:26:14 | $routeP ... }) | template1.html:1:1:1:6 | <div>...</> | tst.js:2:34:3:5 | functio ... {\\n } | mc1 |
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
| tst.js:5:9:9:14 | $routeP ... }) | tst.js:7:29:8:17 | functio ... } |
|
||||
| tst.js:5:9:13:14 | $routeP ... }) | tst.js:11:29:12:17 | functio ... } |
|
||||
| tst.js:5:9:16:14 | $routeP ... }) | tst.js:2:34:3:5 | functio ... {\\n } |
|
||||
| tst.js:5:9:16:14 | $routeP ... }) | tst.js:2:34:3:5 | functio ... {\\n } |
|
||||
|
||||
@@ -1,23 +1,3 @@
|
||||
test_Encode
|
||||
| Base64.js:4:17:4:33 | Base64.btoa(data) |
|
||||
| Buffer.js:3:10:3:35 | encoded ... ase64') |
|
||||
| base64-js.js:4:17:4:40 | base64. ... y(data) |
|
||||
| base-64.js:4:17:4:35 | base64.encode(data) |
|
||||
| dom.js:2:17:2:26 | btoa(data) |
|
||||
| js-base64.js:4:17:4:35 | base64.encode(data) |
|
||||
| js-base64.js:9:17:9:38 | base64. ... I(data) |
|
||||
| js-base64b.js:4:17:4:35 | base64.encode(data) |
|
||||
| js-base64b.js:9:17:9:38 | base64. ... I(data) |
|
||||
test_Encode_input_output
|
||||
| Base64.js:4:17:4:33 | Base64.btoa(data) | Base64.js:4:29:4:32 | data | Base64.js:4:17:4:33 | Base64.btoa(data) |
|
||||
| Buffer.js:3:10:3:35 | encoded ... ase64') | Buffer.js:3:10:3:16 | encoded | Buffer.js:3:10:3:35 | encoded ... ase64') |
|
||||
| base64-js.js:4:17:4:40 | base64. ... y(data) | base64-js.js:4:36:4:39 | data | base64-js.js:4:17:4:40 | base64. ... y(data) |
|
||||
| base-64.js:4:17:4:35 | base64.encode(data) | base-64.js:4:31:4:34 | data | base-64.js:4:17:4:35 | base64.encode(data) |
|
||||
| dom.js:2:17:2:26 | btoa(data) | dom.js:2:22:2:25 | data | dom.js:2:17:2:26 | btoa(data) |
|
||||
| js-base64.js:4:17:4:35 | base64.encode(data) | js-base64.js:4:31:4:34 | data | js-base64.js:4:17:4:35 | base64.encode(data) |
|
||||
| js-base64.js:9:17:9:38 | base64. ... I(data) | js-base64.js:9:34:9:37 | data | js-base64.js:9:17:9:38 | base64. ... I(data) |
|
||||
| js-base64b.js:4:17:4:35 | base64.encode(data) | js-base64b.js:4:31:4:34 | data | js-base64b.js:4:17:4:35 | base64.encode(data) |
|
||||
| js-base64b.js:9:17:9:38 | base64. ... I(data) | js-base64b.js:9:34:9:37 | data | js-base64b.js:9:17:9:38 | base64. ... I(data) |
|
||||
test_Decode
|
||||
| Base64.js:5:10:5:29 | Base64.atob(encoded) |
|
||||
| Buffer.js:2:17:2:43 | Buffer. ... ase64') |
|
||||
@@ -28,6 +8,16 @@ test_Decode
|
||||
| js-base64.js:10:10:10:31 | base64. ... ncoded) |
|
||||
| js-base64b.js:5:10:5:31 | base64. ... ncoded) |
|
||||
| js-base64b.js:10:10:10:31 | base64. ... ncoded) |
|
||||
test_Encode
|
||||
| Base64.js:4:17:4:33 | Base64.btoa(data) |
|
||||
| Buffer.js:3:10:3:35 | encoded ... ase64') |
|
||||
| base64-js.js:4:17:4:40 | base64. ... y(data) |
|
||||
| base-64.js:4:17:4:35 | base64.encode(data) |
|
||||
| dom.js:2:17:2:26 | btoa(data) |
|
||||
| js-base64.js:4:17:4:35 | base64.encode(data) |
|
||||
| js-base64.js:9:17:9:38 | base64. ... I(data) |
|
||||
| js-base64b.js:4:17:4:35 | base64.encode(data) |
|
||||
| js-base64b.js:9:17:9:38 | base64. ... I(data) |
|
||||
test_Decode_input_output
|
||||
| Base64.js:5:10:5:29 | Base64.atob(encoded) | Base64.js:5:22:5:28 | encoded | Base64.js:5:10:5:29 | Base64.atob(encoded) |
|
||||
| Buffer.js:2:17:2:43 | Buffer. ... ase64') | Buffer.js:2:29:2:32 | data | Buffer.js:2:17:2:43 | Buffer. ... ase64') |
|
||||
@@ -38,3 +28,13 @@ test_Decode_input_output
|
||||
| js-base64.js:10:10:10:31 | base64. ... ncoded) | js-base64.js:10:24:10:30 | encoded | js-base64.js:10:10:10:31 | base64. ... ncoded) |
|
||||
| js-base64b.js:5:10:5:31 | base64. ... ncoded) | js-base64b.js:5:24:5:30 | encoded | js-base64b.js:5:10:5:31 | base64. ... ncoded) |
|
||||
| js-base64b.js:10:10:10:31 | base64. ... ncoded) | js-base64b.js:10:24:10:30 | encoded | js-base64b.js:10:10:10:31 | base64. ... ncoded) |
|
||||
test_Encode_input_output
|
||||
| Base64.js:4:17:4:33 | Base64.btoa(data) | Base64.js:4:29:4:32 | data | Base64.js:4:17:4:33 | Base64.btoa(data) |
|
||||
| Buffer.js:3:10:3:35 | encoded ... ase64') | Buffer.js:3:10:3:16 | encoded | Buffer.js:3:10:3:35 | encoded ... ase64') |
|
||||
| base64-js.js:4:17:4:40 | base64. ... y(data) | base64-js.js:4:36:4:39 | data | base64-js.js:4:17:4:40 | base64. ... y(data) |
|
||||
| base-64.js:4:17:4:35 | base64.encode(data) | base-64.js:4:31:4:34 | data | base-64.js:4:17:4:35 | base64.encode(data) |
|
||||
| dom.js:2:17:2:26 | btoa(data) | dom.js:2:22:2:25 | data | dom.js:2:17:2:26 | btoa(data) |
|
||||
| js-base64.js:4:17:4:35 | base64.encode(data) | js-base64.js:4:31:4:34 | data | js-base64.js:4:17:4:35 | base64.encode(data) |
|
||||
| js-base64.js:9:17:9:38 | base64. ... I(data) | js-base64.js:9:34:9:37 | data | js-base64.js:9:17:9:38 | base64. ... I(data) |
|
||||
| js-base64b.js:4:17:4:35 | base64.encode(data) | js-base64b.js:4:31:4:34 | data | js-base64b.js:4:17:4:35 | base64.encode(data) |
|
||||
| js-base64b.js:9:17:9:38 | base64. ... I(data) | js-base64b.js:9:34:9:37 | data | js-base64b.js:9:17:9:38 | base64. ... I(data) |
|
||||
|
||||
@@ -67,3 +67,9 @@ app.get('/some/non-xss1', function(req, res) {
|
||||
res.send(req.params.foo)
|
||||
foo(res);
|
||||
});
|
||||
|
||||
app.get('/some/xss3', function(req, res) {
|
||||
res.header("Content-Type", "text/html");
|
||||
res.send(req.path)
|
||||
foo(res);
|
||||
});
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,45 +1,50 @@
|
||||
test_isCreateServer
|
||||
| createServer.js:2:1:2:42 | https.c ... es) {}) |
|
||||
| createServer.js:3:1:3:45 | https.c ... es) {}) |
|
||||
| createServer.js:4:1:4:47 | require ... => {}) |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) |
|
||||
| src/http.js:4:14:10:2 | http.cr ... foo;\\n}) |
|
||||
| src/http.js:12:1:16:2 | http.cr ... r");\\n}) |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) |
|
||||
| src/http.js:60:1:60:33 | createS ... res){}) |
|
||||
| src/http.js:62:1:65:2 | http.cr ... 2");\\n}) |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) |
|
||||
| src/http.js:72:1:76:2 | http.cr ... })\\n}) |
|
||||
| src/https.js:4:14:10:2 | https.c ... foo;\\n}) |
|
||||
| src/https.js:12:1:16:2 | https.c ... r");\\n}) |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
test_RequestInputAccess
|
||||
| src/http.js:6:26:6:32 | req.url | url | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:8:3:8:20 | req.headers.cookie | cookie | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:9:3:9:17 | req.headers.foo | header | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:6:26:6:32 | req.url | url | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:8:3:8:20 | req.headers.cookie | cookie | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:9:3:9:17 | req.headers.foo | header | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/indirect.js:17:28:17:34 | req.url | url | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | location | src/http.js:7:3:7:42 | res.wri ... rget }) |
|
||||
| src/http.js:12:19:16:1 | functio ... ar");\\n} | content-type | src/http.js:13:3:13:44 | res.set ... /html') |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | location | src/https.js:7:3:7:42 | res.wri ... rget }) |
|
||||
| src/https.js:12:20:16:1 | functio ... ar");\\n} | content-type | src/https.js:13:3:13:44 | res.set ... /html') |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | content-type | src/indirect2.js:14:3:14:51 | res.set ... /json') |
|
||||
| src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} | content-type | src/indirect2.js:14:3:14:51 | res.set ... /json') |
|
||||
test_HeaderDefinition_defines
|
||||
| src/http.js:13:3:13:44 | res.set ... /html') | content-type | text/html |
|
||||
| src/https.js:13:3:13:44 | res.set ... /html') | content-type | text/html |
|
||||
| src/indirect2.js:14:3:14:51 | res.set ... /json') | content-type | application/json |
|
||||
test_SystemCommandExecution
|
||||
| es6-imported-exec.js:3:1:3:11 | exec("cmd") | es6-imported-exec.js:3:6:3:10 | "cmd" |
|
||||
| exec.js:3:1:3:38 | cp.exec ... "], cb) | exec.js:3:13:3:18 | "node" |
|
||||
| exec.js:4:1:4:47 | cp.exec ... sion"]) | exec.js:4:17:4:20 | "sh" |
|
||||
| exec.js:5:1:5:23 | cp.fork ... "arg"]) | exec.js:5:9:5:13 | "foo" |
|
||||
| exec.js:6:1:6:28 | cp.spaw ... "], cb) | exec.js:6:10:6:15 | "echo" |
|
||||
| exec.js:7:1:7:37 | cp.spaw ... here"]) | exec.js:7:14:7:19 | "echo" |
|
||||
test_Credentials
|
||||
| src/http.js:18:22:18:27 | "auth" | credentials |
|
||||
| src/https.js:18:23:18:28 | "auth" | credentials |
|
||||
test_RequestExpr
|
||||
| createServer.js:2:30:2:32 | req | createServer.js:2:20:2:41 | functio ... res) {} |
|
||||
| createServer.js:3:33:3:35 | req | createServer.js:3:23:3:44 | functio ... res) {} |
|
||||
| createServer.js:4:32:4:34 | req | createServer.js:4:31:4:46 | (req, res) => {} |
|
||||
| createServer.js:25:47:25:49 | req | createServer.js:25:37:27:5 | functio ... ;\\n } |
|
||||
| src/http.js:4:41:4:43 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:4:41:4:43 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:6:26:6:28 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:8:3:8:5 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:9:3:9:5 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:12:28:12:30 | req | src/http.js:12:19:16:1 | functio ... ar");\\n} |
|
||||
| src/http.js:55:21:55:23 | req | src/http.js:55:12:55:30 | function(req,res){} |
|
||||
| src/http.js:60:23:60:25 | req | src/http.js:60:14:60:32 | function(req,res){} |
|
||||
| src/http.js:62:28:62:30 | req | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:62:28:62:30 | req | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:63:17:63:19 | req | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:68:13:68:15 | req | src/http.js:68:12:68:27 | (req,res) => f() |
|
||||
| src/http.js:72:29:72:31 | req | src/http.js:72:19:76:1 | functio ... \\n })\\n} |
|
||||
| src/http.js:72:29:72:31 | req | src/http.js:72:19:76:1 | functio ... \\n })\\n} |
|
||||
| src/http.js:73:3:73:5 | req | src/http.js:72:19:76:1 | functio ... \\n })\\n} |
|
||||
| src/http.js:81:41:81:43 | req | src/http.js:81:22:86:1 | functio ... la");\\n} |
|
||||
| src/http.js:81:41:81:43 | req | src/http.js:81:22:86:1 | functio ... la");\\n} |
|
||||
| src/http.js:82:3:82:5 | req | src/http.js:81:22:86:1 | functio ... la");\\n} |
|
||||
| src/https.js:4:42:4:44 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:4:42:4:44 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:6:26:6:28 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:8:3:8:5 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:9:3:9:5 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:12:29:12:31 | req | src/https.js:12:20:16:1 | functio ... ar");\\n} |
|
||||
| src/indirect2.js:9:14:9:16 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:9:14:9:16 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:10:12:10:14 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:10:42:10:44 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:13:28:13:30 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:13:28:13:30 | req | src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} |
|
||||
| src/indirect.js:16:21:16:23 | req | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:16:21:16:23 | req | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:17:28:17:30 | req | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:19:33:19:35 | req | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:25:25:25:27 | req | src/indirect.js:25:24:27:3 | (req, r ... ");\\n } |
|
||||
| src/indirect.js:28:24:28:26 | req | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
test_HeaderAccess
|
||||
| src/http.js:9:3:9:17 | req.headers.foo | foo |
|
||||
| src/https.js:9:3:9:17 | req.headers.foo | foo |
|
||||
test_ResponseExpr
|
||||
| createServer.js:2:35:2:37 | res | createServer.js:2:20:2:41 | functio ... res) {} |
|
||||
| createServer.js:3:38:3:40 | res | createServer.js:3:23:3:44 | functio ... res) {} |
|
||||
@@ -101,6 +106,47 @@ test_ResponseExpr
|
||||
| src/indirect.js:28:29:28:31 | res | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
| src/indirect.js:28:29:28:31 | res | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
| src/indirect.js:29:5:29:7 | res | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
test_RouteHandler
|
||||
| createServer.js:2:20:2:41 | functio ... res) {} | createServer.js:2:1:2:42 | https.c ... es) {}) |
|
||||
| createServer.js:3:23:3:44 | functio ... res) {} | createServer.js:3:1:3:45 | https.c ... es) {}) |
|
||||
| createServer.js:4:31:4:46 | (req, res) => {} | createServer.js:4:1:4:47 | require ... => {}) |
|
||||
| createServer.js:25:37:27:5 | functio ... ;\\n } | createServer.js:31:17:31:58 | http.cr ... dler()) |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:4:14:10:2 | http.cr ... foo;\\n}) |
|
||||
| src/http.js:12:19:16:1 | functio ... ar");\\n} | src/http.js:12:1:16:2 | http.cr ... r");\\n}) |
|
||||
| src/http.js:55:12:55:30 | function(req,res){} | src/http.js:57:1:57:31 | http.cr ... dler()) |
|
||||
| src/http.js:60:14:60:32 | function(req,res){} | src/http.js:60:1:60:33 | createS ... res){}) |
|
||||
| src/http.js:62:19:65:1 | functio ... r2");\\n} | src/http.js:62:1:65:2 | http.cr ... 2");\\n}) |
|
||||
| src/http.js:68:12:68:27 | (req,res) => f() | src/http.js:70:1:70:36 | http.cr ... dler()) |
|
||||
| src/http.js:72:19:76:1 | functio ... \\n })\\n} | src/http.js:72:1:76:2 | http.cr ... })\\n}) |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:4:14:10:2 | https.c ... foo;\\n}) |
|
||||
| src/https.js:12:20:16:1 | functio ... ar");\\n} | src/https.js:12:1:16:2 | https.c ... r");\\n}) |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:18:14:18:35 | http.cr ... er(get) |
|
||||
| src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} | src/indirect2.js:18:14:18:35 | http.cr ... er(get) |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
| src/indirect.js:25:24:27:3 | (req, r ... ");\\n } | src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
| src/indirect.js:28:15:30:3 | functio ... ");\\n } | src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
test_ClientRequest
|
||||
| http.js:2:1:2:56 | http.re ... fined)) |
|
||||
| src/http.js:18:1:18:30 | http.re ... uth" }) |
|
||||
| src/http.js:21:15:26:6 | http.re ... \\n }) |
|
||||
| src/http.js:27:16:27:73 | http.re ... POST'}) |
|
||||
| src/https.js:18:1:18:31 | https.r ... uth" }) |
|
||||
test_isCreateServer
|
||||
| createServer.js:2:1:2:42 | https.c ... es) {}) |
|
||||
| createServer.js:3:1:3:45 | https.c ... es) {}) |
|
||||
| createServer.js:4:1:4:47 | require ... => {}) |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) |
|
||||
| src/http.js:4:14:10:2 | http.cr ... foo;\\n}) |
|
||||
| src/http.js:12:1:16:2 | http.cr ... r");\\n}) |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) |
|
||||
| src/http.js:60:1:60:33 | createS ... res){}) |
|
||||
| src/http.js:62:1:65:2 | http.cr ... 2");\\n}) |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) |
|
||||
| src/http.js:72:1:76:2 | http.cr ... })\\n}) |
|
||||
| src/https.js:4:14:10:2 | https.c ... foo;\\n}) |
|
||||
| src/https.js:12:1:16:2 | https.c ... r");\\n}) |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
test_HeaderDefinition
|
||||
| src/http.js:7:3:7:42 | res.wri ... rget }) | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:13:3:13:44 | res.set ... /html') | src/http.js:12:19:16:1 | functio ... ar");\\n} |
|
||||
@@ -109,34 +155,6 @@ test_HeaderDefinition
|
||||
| src/https.js:13:3:13:44 | res.set ... /html') | src/https.js:12:20:16:1 | functio ... ar");\\n} |
|
||||
| src/indirect2.js:14:3:14:51 | res.set ... /json') | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:14:3:14:51 | res.set ... /json') | src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} |
|
||||
test_RouteSetup_getServer
|
||||
| createServer.js:2:1:2:42 | https.c ... es) {}) | createServer.js:2:1:2:42 | https.c ... es) {}) |
|
||||
| createServer.js:3:1:3:45 | https.c ... es) {}) | createServer.js:3:1:3:45 | https.c ... es) {}) |
|
||||
| createServer.js:4:1:4:47 | require ... => {}) | createServer.js:4:1:4:47 | require ... => {}) |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:31:17:31:58 | http.cr ... dler()) |
|
||||
| src/http.js:4:14:10:2 | http.cr ... foo;\\n}) | src/http.js:4:14:10:2 | http.cr ... foo;\\n}) |
|
||||
| src/http.js:12:1:16:2 | http.cr ... r");\\n}) | src/http.js:12:1:16:2 | http.cr ... r");\\n}) |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) | src/http.js:57:1:57:31 | http.cr ... dler()) |
|
||||
| src/http.js:60:1:60:33 | createS ... res){}) | src/http.js:60:1:60:33 | createS ... res){}) |
|
||||
| src/http.js:62:1:65:2 | http.cr ... 2");\\n}) | src/http.js:62:1:65:2 | http.cr ... 2");\\n}) |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) | src/http.js:70:1:70:36 | http.cr ... dler()) |
|
||||
| src/http.js:72:1:76:2 | http.cr ... })\\n}) | src/http.js:72:1:76:2 | http.cr ... })\\n}) |
|
||||
| src/https.js:4:14:10:2 | https.c ... foo;\\n}) | src/https.js:4:14:10:2 | https.c ... foo;\\n}) |
|
||||
| src/https.js:12:1:16:2 | https.c ... r");\\n}) | src/https.js:12:1:16:2 | https.c ... r");\\n}) |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) | src/indirect2.js:18:14:18:35 | http.cr ... er(get) |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
test_ClientRequest
|
||||
| http.js:2:1:2:56 | http.re ... fined)) |
|
||||
| src/http.js:18:1:18:30 | http.re ... uth" }) |
|
||||
| src/http.js:21:15:26:6 | http.re ... \\n }) |
|
||||
| src/http.js:27:16:27:73 | http.re ... POST'}) |
|
||||
| src/https.js:18:1:18:31 | https.r ... uth" }) |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/http.js:7:3:7:42 | res.wri ... rget }) | location |
|
||||
| src/http.js:13:3:13:44 | res.set ... /html') | content-type |
|
||||
| src/https.js:7:3:7:42 | res.wri ... rget }) | location |
|
||||
| src/https.js:13:3:13:44 | res.set ... /html') | content-type |
|
||||
| src/indirect2.js:14:3:14:51 | res.set ... /json') | content-type |
|
||||
test_ServerDefinition
|
||||
| createServer.js:2:1:2:42 | https.c ... es) {}) |
|
||||
| createServer.js:3:1:3:45 | https.c ... es) {}) |
|
||||
@@ -153,9 +171,105 @@ test_ServerDefinition
|
||||
| src/https.js:12:1:16:2 | https.c ... r");\\n}) |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
test_HeaderAccess
|
||||
| src/http.js:9:3:9:17 | req.headers.foo | foo |
|
||||
| src/https.js:9:3:9:17 | req.headers.foo | foo |
|
||||
test_RemoteFlowSources
|
||||
| createServer.js:7:24:7:27 | data |
|
||||
| createServer.js:14:24:14:27 | data |
|
||||
| src/http.js:6:26:6:32 | req.url |
|
||||
| src/http.js:8:3:8:20 | req.headers.cookie |
|
||||
| src/http.js:9:3:9:17 | req.headers.foo |
|
||||
| src/http.js:29:26:29:33 | response |
|
||||
| src/http.js:30:28:30:32 | chunk |
|
||||
| src/http.js:40:23:40:30 | authInfo |
|
||||
| src/http.js:45:23:45:27 | error |
|
||||
| src/http.js:63:17:63:33 | req.query.myParam |
|
||||
| src/http.js:73:18:73:22 | chunk |
|
||||
| src/http.js:82:18:82:22 | chunk |
|
||||
| src/https.js:6:26:6:32 | req.url |
|
||||
| src/https.js:8:3:8:20 | req.headers.cookie |
|
||||
| src/https.js:9:3:9:17 | req.headers.foo |
|
||||
| src/indirect2.js:10:12:10:25 | req.params.key |
|
||||
| src/indirect.js:17:28:17:34 | req.url |
|
||||
test_RequestInputAccess
|
||||
| src/http.js:6:26:6:32 | req.url | url | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:8:3:8:20 | req.headers.cookie | cookie | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:9:3:9:17 | req.headers.foo | header | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:6:26:6:32 | req.url | url | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:8:3:8:20 | req.headers.cookie | cookie | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:9:3:9:17 | req.headers.foo | header | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/indirect.js:17:28:17:34 | req.url | url | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
test_ResponseSendArgument
|
||||
| createServer.js:26:17:26:25 | this.data | createServer.js:25:37:27:5 | functio ... ;\\n } |
|
||||
| src/http.js:14:13:14:17 | "foo" | src/http.js:12:19:16:1 | functio ... ar");\\n} |
|
||||
| src/http.js:15:11:15:15 | "bar" | src/http.js:12:19:16:1 | functio ... ar");\\n} |
|
||||
| src/http.js:64:11:64:16 | "bar2" | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:85:11:85:15 | "bla" | src/http.js:81:22:86:1 | functio ... la");\\n} |
|
||||
| src/https.js:14:13:14:17 | "foo" | src/https.js:12:20:16:1 | functio ... ar");\\n} |
|
||||
| src/https.js:15:11:15:15 | "bar" | src/https.js:12:20:16:1 | functio ... ar");\\n} |
|
||||
| src/indirect.js:26:13:26:17 | "foo" | src/indirect.js:25:24:27:3 | (req, r ... ");\\n } |
|
||||
| src/indirect.js:29:13:29:17 | "bar" | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
test_RouteSetup_getServer
|
||||
| createServer.js:2:1:2:42 | https.c ... es) {}) | createServer.js:2:1:2:42 | https.c ... es) {}) |
|
||||
| createServer.js:3:1:3:45 | https.c ... es) {}) | createServer.js:3:1:3:45 | https.c ... es) {}) |
|
||||
| createServer.js:4:1:4:47 | require ... => {}) | createServer.js:4:1:4:47 | require ... => {}) |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:31:17:31:58 | http.cr ... dler()) |
|
||||
| src/http.js:4:14:10:2 | http.cr ... foo;\\n}) | src/http.js:4:14:10:2 | http.cr ... foo;\\n}) |
|
||||
| src/http.js:12:1:16:2 | http.cr ... r");\\n}) | src/http.js:12:1:16:2 | http.cr ... r");\\n}) |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) | src/http.js:57:1:57:31 | http.cr ... dler()) |
|
||||
| src/http.js:60:1:60:33 | createS ... res){}) | src/http.js:60:1:60:33 | createS ... res){}) |
|
||||
| src/http.js:62:1:65:2 | http.cr ... 2");\\n}) | src/http.js:62:1:65:2 | http.cr ... 2");\\n}) |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) | src/http.js:70:1:70:36 | http.cr ... dler()) |
|
||||
| src/http.js:72:1:76:2 | http.cr ... })\\n}) | src/http.js:72:1:76:2 | http.cr ... })\\n}) |
|
||||
| src/https.js:4:14:10:2 | https.c ... foo;\\n}) | src/https.js:4:14:10:2 | https.c ... foo;\\n}) |
|
||||
| src/https.js:12:1:16:2 | https.c ... r");\\n}) | src/https.js:12:1:16:2 | https.c ... r");\\n}) |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) | src/indirect2.js:18:14:18:35 | http.cr ... er(get) |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
test_SystemCommandExecution
|
||||
| es6-imported-exec.js:3:1:3:11 | exec("cmd") | es6-imported-exec.js:3:6:3:10 | "cmd" |
|
||||
| exec.js:3:1:3:38 | cp.exec ... "], cb) | exec.js:3:13:3:18 | "node" |
|
||||
| exec.js:4:1:4:47 | cp.exec ... sion"]) | exec.js:4:17:4:20 | "sh" |
|
||||
| exec.js:5:1:5:23 | cp.fork ... "arg"]) | exec.js:5:9:5:13 | "foo" |
|
||||
| exec.js:6:1:6:28 | cp.spaw ... "], cb) | exec.js:6:10:6:15 | "echo" |
|
||||
| exec.js:7:1:7:37 | cp.spaw ... here"]) | exec.js:7:14:7:19 | "echo" |
|
||||
test_HeaderDefinition_defines
|
||||
| src/http.js:13:3:13:44 | res.set ... /html') | content-type | text/html |
|
||||
| src/https.js:13:3:13:44 | res.set ... /html') | content-type | text/html |
|
||||
| src/indirect2.js:14:3:14:51 | res.set ... /json') | content-type | application/json |
|
||||
test_ClientRequest_getADataNode
|
||||
| src/http.js:27:16:27:73 | http.re ... POST'}) | src/http.js:50:16:50:22 | 'stuff' |
|
||||
| src/http.js:27:16:27:73 | http.re ... POST'}) | src/http.js:51:14:51:25 | 'more stuff' |
|
||||
test_RouteSetup_getARouteHandler
|
||||
| createServer.js:2:1:2:42 | https.c ... es) {}) | createServer.js:2:20:2:41 | functio ... res) {} |
|
||||
| createServer.js:3:1:3:45 | https.c ... es) {}) | createServer.js:3:23:3:44 | functio ... res) {} |
|
||||
| createServer.js:4:1:4:47 | require ... => {}) | createServer.js:4:31:4:46 | (req, res) => {} |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:22:41:24:5 | return of anonymous function |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:23:16:23:33 | this.handleRequest |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:23:16:23:44 | this.ha ... d(this) |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:25:37:27:5 | functio ... ;\\n } |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:31:35:31:57 | app.get ... ndler() |
|
||||
| src/http.js:4:14:10:2 | http.cr ... foo;\\n}) | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:12:1:16:2 | http.cr ... r");\\n}) | src/http.js:12:19:16:1 | functio ... ar");\\n} |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) | src/http.js:54:1:56:1 | return of function getHandler |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) | src/http.js:55:12:55:30 | function(req,res){} |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) | src/http.js:57:19:57:30 | getHandler() |
|
||||
| src/http.js:60:1:60:33 | createS ... res){}) | src/http.js:60:14:60:32 | function(req,res){} |
|
||||
| src/http.js:62:1:65:2 | http.cr ... 2");\\n}) | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) | src/http.js:67:1:69:1 | return of function getArrowHandler |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) | src/http.js:68:12:68:27 | (req,res) => f() |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) | src/http.js:70:19:70:35 | getArrowHandler() |
|
||||
| src/http.js:72:1:76:2 | http.cr ... })\\n}) | src/http.js:72:19:76:1 | functio ... \\n })\\n} |
|
||||
| src/https.js:4:14:10:2 | https.c ... foo;\\n}) | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:12:1:16:2 | https.c ... r");\\n}) | src/https.js:12:20:16:1 | functio ... ar");\\n} |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) | src/indirect2.js:10:3:10:40 | handler ... Case()] |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) | src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:14:19:21:3 | return of method requestHandler |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:16:12:20:16 | functio ... d(this) |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:17:21:17:35 | routes[req.url] |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:17:40:17:50 | routes['*'] |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:25:24:27:3 | (req, r ... ");\\n } |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:34:32:34:57 | appServ ... ndler() |
|
||||
test_HeaderDefinition_getNameExpr
|
||||
| src/http.js:7:3:7:42 | res.wri ... rget }) | src/http.js:7:17:7:19 | 302 |
|
||||
| src/http.js:13:3:13:44 | res.set ... /html') | src/http.js:13:17:13:30 | 'Content-Type' |
|
||||
@@ -163,6 +277,47 @@ test_HeaderDefinition_getNameExpr
|
||||
| src/https.js:7:3:7:42 | res.wri ... rget }) | src/https.js:7:17:7:19 | 302 |
|
||||
| src/https.js:13:3:13:44 | res.set ... /html') | src/https.js:13:17:13:30 | 'Content-Type' |
|
||||
| src/indirect2.js:14:3:14:51 | res.set ... /json') | src/indirect2.js:14:17:14:30 | 'Content-Type' |
|
||||
test_RouteHandler_getARequestExpr
|
||||
| createServer.js:2:20:2:41 | functio ... res) {} | createServer.js:2:30:2:32 | req |
|
||||
| createServer.js:3:23:3:44 | functio ... res) {} | createServer.js:3:33:3:35 | req |
|
||||
| createServer.js:4:31:4:46 | (req, res) => {} | createServer.js:4:32:4:34 | req |
|
||||
| createServer.js:25:37:27:5 | functio ... ;\\n } | createServer.js:25:47:25:49 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:4:41:4:43 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:4:41:4:43 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:6:26:6:28 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:8:3:8:5 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:9:3:9:5 | req |
|
||||
| src/http.js:12:19:16:1 | functio ... ar");\\n} | src/http.js:12:28:12:30 | req |
|
||||
| src/http.js:55:12:55:30 | function(req,res){} | src/http.js:55:21:55:23 | req |
|
||||
| src/http.js:60:14:60:32 | function(req,res){} | src/http.js:60:23:60:25 | req |
|
||||
| src/http.js:62:19:65:1 | functio ... r2");\\n} | src/http.js:62:28:62:30 | req |
|
||||
| src/http.js:62:19:65:1 | functio ... r2");\\n} | src/http.js:62:28:62:30 | req |
|
||||
| src/http.js:62:19:65:1 | functio ... r2");\\n} | src/http.js:63:17:63:19 | req |
|
||||
| src/http.js:68:12:68:27 | (req,res) => f() | src/http.js:68:13:68:15 | req |
|
||||
| src/http.js:72:19:76:1 | functio ... \\n })\\n} | src/http.js:72:29:72:31 | req |
|
||||
| src/http.js:72:19:76:1 | functio ... \\n })\\n} | src/http.js:72:29:72:31 | req |
|
||||
| src/http.js:72:19:76:1 | functio ... \\n })\\n} | src/http.js:73:3:73:5 | req |
|
||||
| src/http.js:81:22:86:1 | functio ... la");\\n} | src/http.js:81:41:81:43 | req |
|
||||
| src/http.js:81:22:86:1 | functio ... la");\\n} | src/http.js:81:41:81:43 | req |
|
||||
| src/http.js:81:22:86:1 | functio ... la");\\n} | src/http.js:82:3:82:5 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:4:42:4:44 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:4:42:4:44 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:6:26:6:28 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:8:3:8:5 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:9:3:9:5 | req |
|
||||
| src/https.js:12:20:16:1 | functio ... ar");\\n} | src/https.js:12:29:12:31 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:9:14:9:16 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:9:14:9:16 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:10:12:10:14 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:10:42:10:44 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:13:28:13:30 | req |
|
||||
| src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} | src/indirect2.js:13:28:13:30 | req |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:16:21:16:23 | req |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:16:21:16:23 | req |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:17:28:17:30 | req |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:19:33:19:35 | req |
|
||||
| src/indirect.js:25:24:27:3 | (req, r ... ");\\n } | src/indirect.js:25:25:25:27 | req |
|
||||
| src/indirect.js:28:15:30:3 | functio ... ");\\n } | src/indirect.js:28:24:28:26 | req |
|
||||
test_RouteHandler_getAResponseExpr
|
||||
| createServer.js:2:20:2:41 | functio ... res) {} | createServer.js:2:35:2:37 | res |
|
||||
| createServer.js:3:23:3:44 | functio ... res) {} | createServer.js:3:38:3:40 | res |
|
||||
@@ -224,6 +379,19 @@ test_RouteHandler_getAResponseExpr
|
||||
| src/indirect.js:28:15:30:3 | functio ... ");\\n } | src/indirect.js:28:29:28:31 | res |
|
||||
| src/indirect.js:28:15:30:3 | functio ... ");\\n } | src/indirect.js:28:29:28:31 | res |
|
||||
| src/indirect.js:28:15:30:3 | functio ... ");\\n } | src/indirect.js:29:5:29:7 | res |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/http.js:7:3:7:42 | res.wri ... rget }) | location |
|
||||
| src/http.js:13:3:13:44 | res.set ... /html') | content-type |
|
||||
| src/https.js:7:3:7:42 | res.wri ... rget }) | location |
|
||||
| src/https.js:13:3:13:44 | res.set ... /html') | content-type |
|
||||
| src/indirect2.js:14:3:14:51 | res.set ... /json') | content-type |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | location | src/http.js:7:3:7:42 | res.wri ... rget }) |
|
||||
| src/http.js:12:19:16:1 | functio ... ar");\\n} | content-type | src/http.js:13:3:13:44 | res.set ... /html') |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | location | src/https.js:7:3:7:42 | res.wri ... rget }) |
|
||||
| src/https.js:12:20:16:1 | functio ... ar");\\n} | content-type | src/https.js:13:3:13:44 | res.set ... /html') |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | content-type | src/indirect2.js:14:3:14:51 | res.set ... /json') |
|
||||
| src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} | content-type | src/indirect2.js:14:3:14:51 | res.set ... /json') |
|
||||
test_ServerDefinition_getARouteHandler
|
||||
| createServer.js:2:1:2:42 | https.c ... es) {}) | createServer.js:2:20:2:41 | functio ... res) {} |
|
||||
| createServer.js:3:1:3:45 | https.c ... es) {}) | createServer.js:3:23:3:44 | functio ... res) {} |
|
||||
@@ -243,177 +411,9 @@ test_ServerDefinition_getARouteHandler
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:25:24:27:3 | (req, r ... ");\\n } |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
test_ResponseSendArgument
|
||||
| createServer.js:26:17:26:25 | this.data | createServer.js:25:37:27:5 | functio ... ;\\n } |
|
||||
| src/http.js:14:13:14:17 | "foo" | src/http.js:12:19:16:1 | functio ... ar");\\n} |
|
||||
| src/http.js:15:11:15:15 | "bar" | src/http.js:12:19:16:1 | functio ... ar");\\n} |
|
||||
| src/http.js:64:11:64:16 | "bar2" | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:85:11:85:15 | "bla" | src/http.js:81:22:86:1 | functio ... la");\\n} |
|
||||
| src/https.js:14:13:14:17 | "foo" | src/https.js:12:20:16:1 | functio ... ar");\\n} |
|
||||
| src/https.js:15:11:15:15 | "bar" | src/https.js:12:20:16:1 | functio ... ar");\\n} |
|
||||
| src/indirect.js:26:13:26:17 | "foo" | src/indirect.js:25:24:27:3 | (req, r ... ");\\n } |
|
||||
| src/indirect.js:29:13:29:17 | "bar" | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
test_RouteSetup_getARouteHandler
|
||||
| createServer.js:2:1:2:42 | https.c ... es) {}) | createServer.js:2:20:2:41 | functio ... res) {} |
|
||||
| createServer.js:3:1:3:45 | https.c ... es) {}) | createServer.js:3:23:3:44 | functio ... res) {} |
|
||||
| createServer.js:4:1:4:47 | require ... => {}) | createServer.js:4:31:4:46 | (req, res) => {} |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:22:41:24:5 | return of anonymous function |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:23:16:23:33 | this.handleRequest |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:23:16:23:44 | this.ha ... d(this) |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:25:37:27:5 | functio ... ;\\n } |
|
||||
| createServer.js:31:17:31:58 | http.cr ... dler()) | createServer.js:31:35:31:57 | app.get ... ndler() |
|
||||
| src/http.js:4:14:10:2 | http.cr ... foo;\\n}) | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:12:1:16:2 | http.cr ... r");\\n}) | src/http.js:12:19:16:1 | functio ... ar");\\n} |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) | src/http.js:54:1:56:1 | return of function getHandler |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) | src/http.js:55:12:55:30 | function(req,res){} |
|
||||
| src/http.js:57:1:57:31 | http.cr ... dler()) | src/http.js:57:19:57:30 | getHandler() |
|
||||
| src/http.js:60:1:60:33 | createS ... res){}) | src/http.js:60:14:60:32 | function(req,res){} |
|
||||
| src/http.js:62:1:65:2 | http.cr ... 2");\\n}) | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) | src/http.js:67:1:69:1 | return of function getArrowHandler |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) | src/http.js:68:12:68:27 | (req,res) => f() |
|
||||
| src/http.js:70:1:70:36 | http.cr ... dler()) | src/http.js:70:19:70:35 | getArrowHandler() |
|
||||
| src/http.js:72:1:76:2 | http.cr ... })\\n}) | src/http.js:72:19:76:1 | functio ... \\n })\\n} |
|
||||
| src/https.js:4:14:10:2 | https.c ... foo;\\n}) | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:12:1:16:2 | https.c ... r");\\n}) | src/https.js:12:20:16:1 | functio ... ar");\\n} |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) | src/indirect2.js:10:3:10:40 | handler ... Case()] |
|
||||
| src/indirect2.js:18:14:18:35 | http.cr ... er(get) | src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:14:19:21:3 | return of method requestHandler |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:16:12:20:16 | functio ... d(this) |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:17:21:17:35 | routes[req.url] |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:17:40:17:50 | routes['*'] |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:25:24:27:3 | (req, r ... ");\\n } |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
| src/indirect.js:34:14:34:58 | http.cr ... dler()) | src/indirect.js:34:32:34:57 | appServ ... ndler() |
|
||||
test_ClientRequest_getADataNode
|
||||
| src/http.js:27:16:27:73 | http.re ... POST'}) | src/http.js:50:16:50:22 | 'stuff' |
|
||||
| src/http.js:27:16:27:73 | http.re ... POST'}) | src/http.js:51:14:51:25 | 'more stuff' |
|
||||
test_RemoteFlowSources
|
||||
| createServer.js:7:24:7:27 | data |
|
||||
| createServer.js:14:24:14:27 | data |
|
||||
| src/http.js:6:26:6:32 | req.url |
|
||||
| src/http.js:8:3:8:20 | req.headers.cookie |
|
||||
| src/http.js:9:3:9:17 | req.headers.foo |
|
||||
| src/http.js:29:26:29:33 | response |
|
||||
| src/http.js:30:28:30:32 | chunk |
|
||||
| src/http.js:40:23:40:30 | authInfo |
|
||||
| src/http.js:45:23:45:27 | error |
|
||||
| src/http.js:63:17:63:33 | req.query.myParam |
|
||||
| src/http.js:73:18:73:22 | chunk |
|
||||
| src/http.js:82:18:82:22 | chunk |
|
||||
| src/https.js:6:26:6:32 | req.url |
|
||||
| src/https.js:8:3:8:20 | req.headers.cookie |
|
||||
| src/https.js:9:3:9:17 | req.headers.foo |
|
||||
| src/indirect2.js:10:12:10:25 | req.params.key |
|
||||
| src/indirect.js:17:28:17:34 | req.url |
|
||||
test_RouteHandler
|
||||
| createServer.js:2:20:2:41 | functio ... res) {} | createServer.js:2:1:2:42 | https.c ... es) {}) |
|
||||
| createServer.js:3:23:3:44 | functio ... res) {} | createServer.js:3:1:3:45 | https.c ... es) {}) |
|
||||
| createServer.js:4:31:4:46 | (req, res) => {} | createServer.js:4:1:4:47 | require ... => {}) |
|
||||
| createServer.js:25:37:27:5 | functio ... ;\\n } | createServer.js:31:17:31:58 | http.cr ... dler()) |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:4:14:10:2 | http.cr ... foo;\\n}) |
|
||||
| src/http.js:12:19:16:1 | functio ... ar");\\n} | src/http.js:12:1:16:2 | http.cr ... r");\\n}) |
|
||||
| src/http.js:55:12:55:30 | function(req,res){} | src/http.js:57:1:57:31 | http.cr ... dler()) |
|
||||
| src/http.js:60:14:60:32 | function(req,res){} | src/http.js:60:1:60:33 | createS ... res){}) |
|
||||
| src/http.js:62:19:65:1 | functio ... r2");\\n} | src/http.js:62:1:65:2 | http.cr ... 2");\\n}) |
|
||||
| src/http.js:68:12:68:27 | (req,res) => f() | src/http.js:70:1:70:36 | http.cr ... dler()) |
|
||||
| src/http.js:72:19:76:1 | functio ... \\n })\\n} | src/http.js:72:1:76:2 | http.cr ... })\\n}) |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:4:14:10:2 | https.c ... foo;\\n}) |
|
||||
| src/https.js:12:20:16:1 | functio ... ar");\\n} | src/https.js:12:1:16:2 | https.c ... r");\\n}) |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:18:14:18:35 | http.cr ... er(get) |
|
||||
| src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} | src/indirect2.js:18:14:18:35 | http.cr ... er(get) |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
| src/indirect.js:25:24:27:3 | (req, r ... ");\\n } | src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
| src/indirect.js:28:15:30:3 | functio ... ");\\n } | src/indirect.js:34:14:34:58 | http.cr ... dler()) |
|
||||
test_RequestExpr
|
||||
| createServer.js:2:30:2:32 | req | createServer.js:2:20:2:41 | functio ... res) {} |
|
||||
| createServer.js:3:33:3:35 | req | createServer.js:3:23:3:44 | functio ... res) {} |
|
||||
| createServer.js:4:32:4:34 | req | createServer.js:4:31:4:46 | (req, res) => {} |
|
||||
| createServer.js:25:47:25:49 | req | createServer.js:25:37:27:5 | functio ... ;\\n } |
|
||||
| src/http.js:4:41:4:43 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:4:41:4:43 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:6:26:6:28 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:8:3:8:5 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:9:3:9:5 | req | src/http.js:4:32:10:1 | functio ... .foo;\\n} |
|
||||
| src/http.js:12:28:12:30 | req | src/http.js:12:19:16:1 | functio ... ar");\\n} |
|
||||
| src/http.js:55:21:55:23 | req | src/http.js:55:12:55:30 | function(req,res){} |
|
||||
| src/http.js:60:23:60:25 | req | src/http.js:60:14:60:32 | function(req,res){} |
|
||||
| src/http.js:62:28:62:30 | req | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:62:28:62:30 | req | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:63:17:63:19 | req | src/http.js:62:19:65:1 | functio ... r2");\\n} |
|
||||
| src/http.js:68:13:68:15 | req | src/http.js:68:12:68:27 | (req,res) => f() |
|
||||
| src/http.js:72:29:72:31 | req | src/http.js:72:19:76:1 | functio ... \\n })\\n} |
|
||||
| src/http.js:72:29:72:31 | req | src/http.js:72:19:76:1 | functio ... \\n })\\n} |
|
||||
| src/http.js:73:3:73:5 | req | src/http.js:72:19:76:1 | functio ... \\n })\\n} |
|
||||
| src/http.js:81:41:81:43 | req | src/http.js:81:22:86:1 | functio ... la");\\n} |
|
||||
| src/http.js:81:41:81:43 | req | src/http.js:81:22:86:1 | functio ... la");\\n} |
|
||||
| src/http.js:82:3:82:5 | req | src/http.js:81:22:86:1 | functio ... la");\\n} |
|
||||
| src/https.js:4:42:4:44 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:4:42:4:44 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:6:26:6:28 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:8:3:8:5 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:9:3:9:5 | req | src/https.js:4:33:10:1 | functio ... .foo;\\n} |
|
||||
| src/https.js:12:29:12:31 | req | src/https.js:12:20:16:1 | functio ... ar");\\n} |
|
||||
| src/indirect2.js:9:14:9:16 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:9:14:9:16 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:10:12:10:14 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:10:42:10:44 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:13:28:13:30 | req | src/indirect2.js:9:1:11:1 | functio ... res);\\n} |
|
||||
| src/indirect2.js:13:28:13:30 | req | src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} |
|
||||
| src/indirect.js:16:21:16:23 | req | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:16:21:16:23 | req | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:17:28:17:30 | req | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:19:33:19:35 | req | src/indirect.js:16:12:20:5 | functio ... ;\\n } |
|
||||
| src/indirect.js:25:25:25:27 | req | src/indirect.js:25:24:27:3 | (req, r ... ");\\n } |
|
||||
| src/indirect.js:28:24:28:26 | req | src/indirect.js:28:15:30:3 | functio ... ");\\n } |
|
||||
test_SystemCommandExecution_getAnArgumentForCommand
|
||||
| exec.js:3:1:3:38 | cp.exec ... "], cb) | exec.js:3:21:3:33 | ["--version"] |
|
||||
| exec.js:4:1:4:47 | cp.exec ... sion"]) | exec.js:4:23:4:46 | ["-c", ... rsion"] |
|
||||
| exec.js:5:1:5:23 | cp.fork ... "arg"]) | exec.js:5:16:5:22 | ["arg"] |
|
||||
| exec.js:6:1:6:28 | cp.spaw ... "], cb) | exec.js:6:18:6:23 | ["Hi"] |
|
||||
| exec.js:7:1:7:37 | cp.spaw ... here"]) | exec.js:7:22:7:36 | ["Hi", "there"] |
|
||||
test_Credentials
|
||||
| src/http.js:18:22:18:27 | "auth" | credentials |
|
||||
| src/https.js:18:23:18:28 | "auth" | credentials |
|
||||
test_RouteHandler_getARequestExpr
|
||||
| createServer.js:2:20:2:41 | functio ... res) {} | createServer.js:2:30:2:32 | req |
|
||||
| createServer.js:3:23:3:44 | functio ... res) {} | createServer.js:3:33:3:35 | req |
|
||||
| createServer.js:4:31:4:46 | (req, res) => {} | createServer.js:4:32:4:34 | req |
|
||||
| createServer.js:25:37:27:5 | functio ... ;\\n } | createServer.js:25:47:25:49 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:4:41:4:43 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:4:41:4:43 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:6:26:6:28 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:8:3:8:5 | req |
|
||||
| src/http.js:4:32:10:1 | functio ... .foo;\\n} | src/http.js:9:3:9:5 | req |
|
||||
| src/http.js:12:19:16:1 | functio ... ar");\\n} | src/http.js:12:28:12:30 | req |
|
||||
| src/http.js:55:12:55:30 | function(req,res){} | src/http.js:55:21:55:23 | req |
|
||||
| src/http.js:60:14:60:32 | function(req,res){} | src/http.js:60:23:60:25 | req |
|
||||
| src/http.js:62:19:65:1 | functio ... r2");\\n} | src/http.js:62:28:62:30 | req |
|
||||
| src/http.js:62:19:65:1 | functio ... r2");\\n} | src/http.js:62:28:62:30 | req |
|
||||
| src/http.js:62:19:65:1 | functio ... r2");\\n} | src/http.js:63:17:63:19 | req |
|
||||
| src/http.js:68:12:68:27 | (req,res) => f() | src/http.js:68:13:68:15 | req |
|
||||
| src/http.js:72:19:76:1 | functio ... \\n })\\n} | src/http.js:72:29:72:31 | req |
|
||||
| src/http.js:72:19:76:1 | functio ... \\n })\\n} | src/http.js:72:29:72:31 | req |
|
||||
| src/http.js:72:19:76:1 | functio ... \\n })\\n} | src/http.js:73:3:73:5 | req |
|
||||
| src/http.js:81:22:86:1 | functio ... la");\\n} | src/http.js:81:41:81:43 | req |
|
||||
| src/http.js:81:22:86:1 | functio ... la");\\n} | src/http.js:81:41:81:43 | req |
|
||||
| src/http.js:81:22:86:1 | functio ... la");\\n} | src/http.js:82:3:82:5 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:4:42:4:44 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:4:42:4:44 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:6:26:6:28 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:8:3:8:5 | req |
|
||||
| src/https.js:4:33:10:1 | functio ... .foo;\\n} | src/https.js:9:3:9:5 | req |
|
||||
| src/https.js:12:20:16:1 | functio ... ar");\\n} | src/https.js:12:29:12:31 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:9:14:9:16 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:9:14:9:16 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:10:12:10:14 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:10:42:10:44 | req |
|
||||
| src/indirect2.js:9:1:11:1 | functio ... res);\\n} | src/indirect2.js:13:28:13:30 | req |
|
||||
| src/indirect2.js:13:1:16:1 | functio ... \\"");\\n} | src/indirect2.js:13:28:13:30 | req |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:16:21:16:23 | req |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:16:21:16:23 | req |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:17:28:17:30 | req |
|
||||
| src/indirect.js:16:12:20:5 | functio ... ;\\n } | src/indirect.js:19:33:19:35 | req |
|
||||
| src/indirect.js:25:24:27:3 | (req, r ... ");\\n } | src/indirect.js:25:25:25:27 | req |
|
||||
| src/indirect.js:28:15:30:3 | functio ... ");\\n } | src/indirect.js:28:24:28:26 | req |
|
||||
|
||||
@@ -1,43 +1,3 @@
|
||||
test_getADirectStateAccess
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:16:9:16:18 | this.state |
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:17:9:17:18 | this.state |
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:18:9:18:18 | this.state |
|
||||
| preact.js:1:1:7:1 | class H ... }\\n} | preact.js:2:19:2:23 | state |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:3:9:3:18 | this.state |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:5:9:5:18 | this.state |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:4:9:4:17 | cmp.state |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:6:9:6:17 | cmp.state |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:10:9:10:17 | cmp.state |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:49:9:49:18 | this.state |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:50:9:50:18 | this.state |
|
||||
test_ReactComponent_getInstanceMethod
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | getDefaultProps | es5.js:6:20:10:3 | functio ... };\\n } |
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | render | es5.js:3:11:5:3 | functio ... v>;\\n } |
|
||||
| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | render | es5.js:19:11:21:3 | functio ... 1>;\\n } |
|
||||
| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | render | es6.js:2:9:4:3 | () {\\n ... v>;\\n } |
|
||||
| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | render | exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} |
|
||||
| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | render | importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} |
|
||||
| plainfn.js:1:1:3:1 | functio ... div>;\\n} | render | plainfn.js:1:1:3:1 | functio ... div>;\\n} |
|
||||
| plainfn.js:5:1:7:1 | functio ... iv");\\n} | render | plainfn.js:5:1:7:1 | functio ... iv");\\n} |
|
||||
| plainfn.js:9:1:12:1 | functio ... rn x;\\n} | render | plainfn.js:9:1:12:1 | functio ... rn x;\\n} |
|
||||
| plainfn.js:20:1:24:1 | functio ... n 42;\\n} | render | plainfn.js:20:1:24:1 | functio ... n 42;\\n} |
|
||||
| preact.js:1:1:7:1 | class H ... }\\n} | render | preact.js:2:11:6:5 | (props, ... ;\\n } |
|
||||
| probably-a-component.js:1:1:6:1 | class H ... }\\n} | render | probably-a-component.js:2:11:5:5 | () {\\n ... ;\\n } |
|
||||
| props.js:13:31:17:5 | {\\n ... }\\n } | getDefaultProps | props.js:14:24:16:9 | () {\\n ... } |
|
||||
| props.js:26:5:28:5 | functio ... ;\\n } | render | props.js:26:5:28:5 | functio ... ;\\n } |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | getSnapshotBeforeUpdate | rare-lifecycle-methods.js:8:28:10:5 | (prevPr ... ;\\n } |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | shouldComponentUpdate | rare-lifecycle-methods.js:5:26:7:5 | (nextPr ... ;\\n } |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | componentDidUpdate | statePropertyReads.js:10:23:12:5 | (prevPr ... ;\\n } |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | getInitialState | statePropertyWrites.js:25:20:29:5 | () { // ... ;\\n } |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | getInitialState | statePropertyWrites.js:40:20:44:3 | functio ... };\\n } |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | render | statePropertyWrites.js:37:11:39:3 | functio ... v>;\\n } |
|
||||
| thisAccesses.js:1:1:16:1 | class C ... }\\n} | someInstanceMethod | thisAccesses.js:13:23:15:5 | () {\\n ... ;\\n } |
|
||||
| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} | render | thisAccesses.js:19:13:24:5 | functio ... ;\\n } |
|
||||
| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} | someInstanceMethod | thisAccesses.js:26:25:28:5 | functio ... ;\\n } |
|
||||
| thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} | render | thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} |
|
||||
| thisAccesses.js:38:19:45:1 | {\\n r ... },\\n} | render | thisAccesses.js:39:13:44:5 | functio ... ;\\n } |
|
||||
| thisAccesses.js:54:1:63:1 | class C ... }\\n} | render | thisAccesses.js:59:11:62:5 | () {\\n ... ;\\n } |
|
||||
| thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | render | thisAccesses_importedMappers.js:5:13:14:5 | functio ... ;\\n } |
|
||||
test_react
|
||||
| es5.js:1:13:1:17 | React |
|
||||
| es6.js:1:21:1:25 | React |
|
||||
@@ -76,11 +36,62 @@ test_react
|
||||
| thisAccesses_importedMappers.js:1:8:1:12 | React |
|
||||
| thisAccesses_importedMappers.js:4:1:4:5 | React |
|
||||
| thisAccesses_importedMappers.js:6:9:6:13 | React |
|
||||
test_ReactComponent_getAPreviousStateSource
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:2:44:2:48 | state |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:8:40:8:48 | prevState |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:7:24:7:32 | prevState |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:10:35:10:43 | prevState |
|
||||
test_JSXname
|
||||
| es5.js:4:12:4:45 | <div>He ... }</div> | es5.js:4:13:4:15 | div | div | Identifier |
|
||||
| es5.js:20:12:20:44 | <h1>Hel ... e}</h1> | es5.js:20:13:20:14 | h1 | h1 | Identifier |
|
||||
| es6.js:3:12:3:45 | <div>He ... }</div> | es6.js:3:13:3:15 | div | div | Identifier |
|
||||
| exportedComponent.jsx:2:12:2:46 | <div st ... lor}}/> | exportedComponent.jsx:2:13:2:15 | div | div | Identifier |
|
||||
| importedComponent.jsx:4:12:4:39 | <MyComp ... olor}/> | importedComponent.jsx:4:13:4:23 | MyComponent | MyComponent | Identifier |
|
||||
| plainfn.js:2:10:2:38 | <div>He ... }</div> | plainfn.js:2:11:2:13 | div | div | Identifier |
|
||||
| preact.js:5:16:5:21 | <div/> | preact.js:5:17:5:19 | div | div | Identifier |
|
||||
| probably-a-component.js:4:16:4:21 | <div/> | probably-a-component.js:4:17:4:19 | div | div | Identifier |
|
||||
| props.js:7:6:7:37 | <C prop ... JSX"}/> | props.js:7:7:7:7 | C | C | Identifier |
|
||||
| props.js:19:6:19:37 | <C prop ... JSX"}/> | props.js:19:7:19:7 | C | C | Identifier |
|
||||
| props.js:27:16:27:21 | <div/> | props.js:27:17:27:19 | div | div | Identifier |
|
||||
| props.js:32:6:32:37 | <C prop ... JSX"}/> | props.js:32:7:32:7 | C | C | Identifier |
|
||||
| statePropertyWrites.js:38:12:38:45 | <div>He ... }</div> | statePropertyWrites.js:38:13:38:15 | div | div | Identifier |
|
||||
| thisAccesses.js:23:16:23:21 | <div/> | thisAccesses.js:23:17:23:19 | div | div | Identifier |
|
||||
| thisAccesses.js:35:12:35:17 | <div/> | thisAccesses.js:35:13:35:15 | div | div | Identifier |
|
||||
| thisAccesses.js:43:16:43:21 | <div/> | thisAccesses.js:43:17:43:19 | div | div | Identifier |
|
||||
| thisAccesses.js:60:19:60:41 | <this.n ... s.name> | thisAccesses.js:60:20:60:28 | this.name | this.name | dot |
|
||||
| thisAccesses.js:61:19:61:41 | <this.t ... s.this> | thisAccesses.js:61:20:61:28 | this.this | this.this | dot |
|
||||
| thisAccesses_importedMappers.js:13:16:13:21 | <div/> | thisAccesses_importedMappers.js:13:17:13:19 | div | div | Identifier |
|
||||
| use-react-router.jsx:5:17:5:87 | <Router ... Router> | use-react-router.jsx:5:18:5:23 | Router | Router | Identifier |
|
||||
| use-react-router.jsx:5:25:5:78 | <Route> ... /Route> | use-react-router.jsx:5:26:5:30 | Route | Route | Identifier |
|
||||
| use-react-router.jsx:5:32:5:70 | <Import ... ponent> | use-react-router.jsx:5:33:5:49 | ImportedComponent | ImportedComponent | Identifier |
|
||||
| useHigherOrderComponent.jsx:5:12:5:39 | <SomeCo ... "red"/> | useHigherOrderComponent.jsx:5:13:5:25 | SomeComponent | SomeComponent | Identifier |
|
||||
| useHigherOrderComponent.jsx:11:12:11:46 | <LazyLo ... lazy"/> | useHigherOrderComponent.jsx:11:13:11:31 | LazyLoadedComponent | LazyLoadedComponent | Identifier |
|
||||
| useHigherOrderComponent.jsx:17:12:17:48 | <LazyLo ... azy2"/> | useHigherOrderComponent.jsx:17:13:17:32 | LazyLoadedComponent2 | LazyLoadedComponent2 | Identifier |
|
||||
test_ReactComponent
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} |
|
||||
| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} |
|
||||
| es6.js:1:1:8:1 | class H ... ;\\n }\\n} |
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} |
|
||||
| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} |
|
||||
| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} |
|
||||
| namedImport.js:3:1:3:28 | class C ... nent {} |
|
||||
| namedImport.js:5:1:5:20 | class D extends C {} |
|
||||
| plainfn.js:1:1:3:1 | functio ... div>;\\n} |
|
||||
| plainfn.js:5:1:7:1 | functio ... iv");\\n} |
|
||||
| plainfn.js:9:1:12:1 | functio ... rn x;\\n} |
|
||||
| plainfn.js:20:1:24:1 | functio ... n 42;\\n} |
|
||||
| preact.js:1:1:7:1 | class H ... }\\n} |
|
||||
| preact.js:9:1:11:1 | class H ... nt {\\n\\n} |
|
||||
| probably-a-component.js:1:1:6:1 | class H ... }\\n} |
|
||||
| props.js:2:5:3:5 | class C ... {\\n } |
|
||||
| props.js:13:31:17:5 | {\\n ... }\\n } |
|
||||
| props.js:26:5:28:5 | functio ... ;\\n } |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} |
|
||||
| thisAccesses.js:1:1:16:1 | class C ... }\\n} |
|
||||
| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} |
|
||||
| thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} |
|
||||
| thisAccesses.js:38:19:45:1 | {\\n r ... },\\n} |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} |
|
||||
| thisAccesses.js:54:1:63:1 | class C ... }\\n} |
|
||||
| thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} |
|
||||
test_ReactComponent_ref
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} |
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | es5.js:3:11:3:10 | this |
|
||||
@@ -181,19 +192,57 @@ test_ReactComponent_ref
|
||||
| thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | thisAccesses_importedMappers.js:9:25:9:24 | this |
|
||||
| thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | thisAccesses_importedMappers.js:10:13:10:16 | this |
|
||||
| thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | thisAccesses_importedMappers.js:11:12:11:15 | this |
|
||||
test_ReactComponent_getACandidateStateSource
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:18:22:18:31 | { baz: 42} |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:3:16:3:17 | {} |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:5:38:5:46 | nextState |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:7:45:7:56 | prevState.p3 |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:8:18:8:19 | {} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:12:18:12:19 | {} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:16:18:16:19 | {} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:20:18:20:19 | {} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:31:13:33:5 | {\\n ... 2\\n } |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | statePropertyWrites.js:41:12:43:5 | {\\n p8: 42\\n } |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:48:18:48:18 | y |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:49:22:49:22 | x |
|
||||
test_getADirectStateAccess
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:16:9:16:18 | this.state |
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:17:9:17:18 | this.state |
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:18:9:18:18 | this.state |
|
||||
| preact.js:1:1:7:1 | class H ... }\\n} | preact.js:2:19:2:23 | state |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:3:9:3:18 | this.state |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:5:9:5:18 | this.state |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:4:9:4:17 | cmp.state |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:6:9:6:17 | cmp.state |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:10:9:10:17 | cmp.state |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:49:9:49:18 | this.state |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:50:9:50:18 | this.state |
|
||||
test_ReactComponent_getAPropRead
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | name | es5.js:4:24:4:38 | this.props.name |
|
||||
| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | name | es5.js:20:24:20:38 | this.props.name |
|
||||
| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | name | es6.js:3:24:3:38 | this.props.name |
|
||||
| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | color | exportedComponent.jsx:2:32:2:42 | props.color |
|
||||
| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | color | importedComponent.jsx:3:25:3:29 | color |
|
||||
| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | location | importedComponent.jsx:3:32:3:39 | location |
|
||||
| plainfn.js:1:1:3:1 | functio ... div>;\\n} | name | plainfn.js:2:22:2:31 | props.name |
|
||||
| preact.js:1:1:7:1 | class H ... }\\n} | name | preact.js:3:9:3:18 | props.name |
|
||||
| probably-a-component.js:1:1:6:1 | class H ... }\\n} | name | probably-a-component.js:3:9:3:23 | this.props.name |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | name | statePropertyWrites.js:38:24:38:38 | this.props.name |
|
||||
test_ReactComponent_getInstanceMethod
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | getDefaultProps | es5.js:6:20:10:3 | functio ... };\\n } |
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | render | es5.js:3:11:5:3 | functio ... v>;\\n } |
|
||||
| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | render | es5.js:19:11:21:3 | functio ... 1>;\\n } |
|
||||
| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | render | es6.js:2:9:4:3 | () {\\n ... v>;\\n } |
|
||||
| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | render | exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} |
|
||||
| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | render | importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} |
|
||||
| plainfn.js:1:1:3:1 | functio ... div>;\\n} | render | plainfn.js:1:1:3:1 | functio ... div>;\\n} |
|
||||
| plainfn.js:5:1:7:1 | functio ... iv");\\n} | render | plainfn.js:5:1:7:1 | functio ... iv");\\n} |
|
||||
| plainfn.js:9:1:12:1 | functio ... rn x;\\n} | render | plainfn.js:9:1:12:1 | functio ... rn x;\\n} |
|
||||
| plainfn.js:20:1:24:1 | functio ... n 42;\\n} | render | plainfn.js:20:1:24:1 | functio ... n 42;\\n} |
|
||||
| preact.js:1:1:7:1 | class H ... }\\n} | render | preact.js:2:11:6:5 | (props, ... ;\\n } |
|
||||
| probably-a-component.js:1:1:6:1 | class H ... }\\n} | render | probably-a-component.js:2:11:5:5 | () {\\n ... ;\\n } |
|
||||
| props.js:13:31:17:5 | {\\n ... }\\n } | getDefaultProps | props.js:14:24:16:9 | () {\\n ... } |
|
||||
| props.js:26:5:28:5 | functio ... ;\\n } | render | props.js:26:5:28:5 | functio ... ;\\n } |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | getSnapshotBeforeUpdate | rare-lifecycle-methods.js:8:28:10:5 | (prevPr ... ;\\n } |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | shouldComponentUpdate | rare-lifecycle-methods.js:5:26:7:5 | (nextPr ... ;\\n } |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | componentDidUpdate | statePropertyReads.js:10:23:12:5 | (prevPr ... ;\\n } |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | getInitialState | statePropertyWrites.js:25:20:29:5 | () { // ... ;\\n } |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | getInitialState | statePropertyWrites.js:40:20:44:3 | functio ... };\\n } |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | render | statePropertyWrites.js:37:11:39:3 | functio ... v>;\\n } |
|
||||
| thisAccesses.js:1:1:16:1 | class C ... }\\n} | someInstanceMethod | thisAccesses.js:13:23:15:5 | () {\\n ... ;\\n } |
|
||||
| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} | render | thisAccesses.js:19:13:24:5 | functio ... ;\\n } |
|
||||
| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} | someInstanceMethod | thisAccesses.js:26:25:28:5 | functio ... ;\\n } |
|
||||
| thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} | render | thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} |
|
||||
| thisAccesses.js:38:19:45:1 | {\\n r ... },\\n} | render | thisAccesses.js:39:13:44:5 | functio ... ;\\n } |
|
||||
| thisAccesses.js:54:1:63:1 | class C ... }\\n} | render | thisAccesses.js:59:11:62:5 | () {\\n ... ;\\n } |
|
||||
| thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | render | thisAccesses_importedMappers.js:5:13:14:5 | functio ... ;\\n } |
|
||||
test_ReactComponent_getADirectPropsSource
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | es5.js:4:24:4:33 | this.props |
|
||||
| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | es5.js:20:24:20:33 | this.props |
|
||||
@@ -233,73 +282,24 @@ test_ReactComponent_getACandidatePropsValue
|
||||
| useHigherOrderComponent.jsx:5:33:5:37 | "red" |
|
||||
| useHigherOrderComponent.jsx:11:39:11:44 | "lazy" |
|
||||
| useHigherOrderComponent.jsx:17:40:17:46 | "lazy2" |
|
||||
test_ReactComponent
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} |
|
||||
| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} |
|
||||
| es6.js:1:1:8:1 | class H ... ;\\n }\\n} |
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} |
|
||||
| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} |
|
||||
| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} |
|
||||
| namedImport.js:3:1:3:28 | class C ... nent {} |
|
||||
| namedImport.js:5:1:5:20 | class D extends C {} |
|
||||
| plainfn.js:1:1:3:1 | functio ... div>;\\n} |
|
||||
| plainfn.js:5:1:7:1 | functio ... iv");\\n} |
|
||||
| plainfn.js:9:1:12:1 | functio ... rn x;\\n} |
|
||||
| plainfn.js:20:1:24:1 | functio ... n 42;\\n} |
|
||||
| preact.js:1:1:7:1 | class H ... }\\n} |
|
||||
| preact.js:9:1:11:1 | class H ... nt {\\n\\n} |
|
||||
| probably-a-component.js:1:1:6:1 | class H ... }\\n} |
|
||||
| props.js:2:5:3:5 | class C ... {\\n } |
|
||||
| props.js:13:31:17:5 | {\\n ... }\\n } |
|
||||
| props.js:26:5:28:5 | functio ... ;\\n } |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} |
|
||||
| thisAccesses.js:1:1:16:1 | class C ... }\\n} |
|
||||
| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} |
|
||||
| thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} |
|
||||
| thisAccesses.js:38:19:45:1 | {\\n r ... },\\n} |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} |
|
||||
| thisAccesses.js:54:1:63:1 | class C ... }\\n} |
|
||||
| thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} |
|
||||
test_ReactComponent_getAPropRead
|
||||
| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | name | es5.js:4:24:4:38 | this.props.name |
|
||||
| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | name | es5.js:20:24:20:38 | this.props.name |
|
||||
| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | name | es6.js:3:24:3:38 | this.props.name |
|
||||
| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | color | exportedComponent.jsx:2:32:2:42 | props.color |
|
||||
| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | color | importedComponent.jsx:3:25:3:29 | color |
|
||||
| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | location | importedComponent.jsx:3:32:3:39 | location |
|
||||
| plainfn.js:1:1:3:1 | functio ... div>;\\n} | name | plainfn.js:2:22:2:31 | props.name |
|
||||
| preact.js:1:1:7:1 | class H ... }\\n} | name | preact.js:3:9:3:18 | props.name |
|
||||
| probably-a-component.js:1:1:6:1 | class H ... }\\n} | name | probably-a-component.js:3:9:3:23 | this.props.name |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | name | statePropertyWrites.js:38:24:38:38 | this.props.name |
|
||||
test_JSXname
|
||||
| es5.js:4:12:4:45 | <div>He ... }</div> | es5.js:4:13:4:15 | div | div | Identifier |
|
||||
| es5.js:20:12:20:44 | <h1>Hel ... e}</h1> | es5.js:20:13:20:14 | h1 | h1 | Identifier |
|
||||
| es6.js:3:12:3:45 | <div>He ... }</div> | es6.js:3:13:3:15 | div | div | Identifier |
|
||||
| exportedComponent.jsx:2:12:2:46 | <div st ... lor}}/> | exportedComponent.jsx:2:13:2:15 | div | div | Identifier |
|
||||
| importedComponent.jsx:4:12:4:39 | <MyComp ... olor}/> | importedComponent.jsx:4:13:4:23 | MyComponent | MyComponent | Identifier |
|
||||
| plainfn.js:2:10:2:38 | <div>He ... }</div> | plainfn.js:2:11:2:13 | div | div | Identifier |
|
||||
| preact.js:5:16:5:21 | <div/> | preact.js:5:17:5:19 | div | div | Identifier |
|
||||
| probably-a-component.js:4:16:4:21 | <div/> | probably-a-component.js:4:17:4:19 | div | div | Identifier |
|
||||
| props.js:7:6:7:37 | <C prop ... JSX"}/> | props.js:7:7:7:7 | C | C | Identifier |
|
||||
| props.js:19:6:19:37 | <C prop ... JSX"}/> | props.js:19:7:19:7 | C | C | Identifier |
|
||||
| props.js:27:16:27:21 | <div/> | props.js:27:17:27:19 | div | div | Identifier |
|
||||
| props.js:32:6:32:37 | <C prop ... JSX"}/> | props.js:32:7:32:7 | C | C | Identifier |
|
||||
| statePropertyWrites.js:38:12:38:45 | <div>He ... }</div> | statePropertyWrites.js:38:13:38:15 | div | div | Identifier |
|
||||
| thisAccesses.js:23:16:23:21 | <div/> | thisAccesses.js:23:17:23:19 | div | div | Identifier |
|
||||
| thisAccesses.js:35:12:35:17 | <div/> | thisAccesses.js:35:13:35:15 | div | div | Identifier |
|
||||
| thisAccesses.js:43:16:43:21 | <div/> | thisAccesses.js:43:17:43:19 | div | div | Identifier |
|
||||
| thisAccesses.js:60:19:60:41 | <this.n ... s.name> | thisAccesses.js:60:20:60:28 | this.name | this.name | dot |
|
||||
| thisAccesses.js:61:19:61:41 | <this.t ... s.this> | thisAccesses.js:61:20:61:28 | this.this | this.this | dot |
|
||||
| thisAccesses_importedMappers.js:13:16:13:21 | <div/> | thisAccesses_importedMappers.js:13:17:13:19 | div | div | Identifier |
|
||||
| use-react-router.jsx:5:17:5:87 | <Router ... Router> | use-react-router.jsx:5:18:5:23 | Router | Router | Identifier |
|
||||
| use-react-router.jsx:5:25:5:78 | <Route> ... /Route> | use-react-router.jsx:5:26:5:30 | Route | Route | Identifier |
|
||||
| use-react-router.jsx:5:32:5:70 | <Import ... ponent> | use-react-router.jsx:5:33:5:49 | ImportedComponent | ImportedComponent | Identifier |
|
||||
| useHigherOrderComponent.jsx:5:12:5:39 | <SomeCo ... "red"/> | useHigherOrderComponent.jsx:5:13:5:25 | SomeComponent | SomeComponent | Identifier |
|
||||
| useHigherOrderComponent.jsx:11:12:11:46 | <LazyLo ... lazy"/> | useHigherOrderComponent.jsx:11:13:11:31 | LazyLoadedComponent | LazyLoadedComponent | Identifier |
|
||||
| useHigherOrderComponent.jsx:17:12:17:48 | <LazyLo ... azy2"/> | useHigherOrderComponent.jsx:17:13:17:32 | LazyLoadedComponent2 | LazyLoadedComponent2 | Identifier |
|
||||
test_ReactComponent_getAPreviousStateSource
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:2:44:2:48 | state |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:8:40:8:48 | prevState |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:7:24:7:32 | prevState |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:10:35:10:43 | prevState |
|
||||
test_ReactComponent_getACandidateStateSource
|
||||
| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:18:22:18:31 | { baz: 42} |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:3:16:3:17 | {} |
|
||||
| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:5:38:5:46 | nextState |
|
||||
| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:7:45:7:56 | prevState.p3 |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:8:18:8:19 | {} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:12:18:12:19 | {} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:16:18:16:19 | {} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:20:18:20:19 | {} |
|
||||
| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:31:13:33:5 | {\\n ... 2\\n } |
|
||||
| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | statePropertyWrites.js:41:12:43:5 | {\\n p8: 42\\n } |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:48:18:48:18 | y |
|
||||
| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:49:22:49:22 | x |
|
||||
test_JsxName_this
|
||||
| es5.js:4:12:4:45 | <div>He ... }</div> | es5.js:4:24:4:27 | this |
|
||||
| es5.js:20:12:20:44 | <h1>Hel ... e}</h1> | es5.js:20:24:20:27 | this |
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
| postgres2.js:12:13:12:20 | 'secret' | password |
|
||||
| postgres4.js:4:9:4:16 | 'dbuser' | user name |
|
||||
| postgres4.js:7:13:7:28 | 'secretpassword' | password |
|
||||
| postgres6.js:8:11:8:20 | 'postgres' | user name |
|
||||
| sequelize2.js:4:45:9:1 | {\\n dia ... word'\\n} | user name |
|
||||
| sequelize2.js:7:13:7:22 | 'username' | user name |
|
||||
| sequelize2.js:8:13:8:22 | 'password' | password |
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
| better-sqlite3.js:6:23:6:25 | sql |
|
||||
| better-sqlite3.js:7:20:7:22 | sql |
|
||||
| better-sqlite3.js:8:14:8:16 | sql |
|
||||
| better-sqlite3.js:12:20:12:22 | sql |
|
||||
| better-sqlite3.js:13:17:13:19 | sql |
|
||||
| better-sqlite3.js:14:14:14:16 | sql |
|
||||
| mssql1.js:7:40:7:72 | select ... e id = |
|
||||
| mssql1.js:7:75:7:79 | value |
|
||||
| mssql1.js:10:19:10:30 | 'SELECT 123' |
|
||||
@@ -32,6 +38,9 @@
|
||||
| postgres2.js:46:26:46:46 | 'SELECT ... users' |
|
||||
| postgres3.js:15:16:15:40 | 'SELECT ... s name' |
|
||||
| postgres5.js:8:21:8:25 | query |
|
||||
| postgres6.js:13:11:13:44 | 'SELECT ... E id=6' |
|
||||
| postgres6.js:16:20:16:27 | queryObj |
|
||||
| postgres6.js:18:11:18:44 | 'SELECT ... E id=7' |
|
||||
| postgres-types.ts:4:18:4:29 | 'SELECT 123' |
|
||||
| postgresImport.js:4:18:4:43 | 'SELECT ... number' |
|
||||
| sequelize2.js:10:17:10:118 | 'SELECT ... Y name' |
|
||||
@@ -70,8 +79,12 @@
|
||||
| spanner.js:26:12:26:38 | 'UPDATE ... = @baz' |
|
||||
| spanner.js:31:18:31:24 | queries |
|
||||
| spannerImport.js:4:8:4:17 | "SQL code" |
|
||||
| sqlite3.js:7:8:7:45 | "UPDATE ... id = ?" |
|
||||
| sqlite3.js:8:8:8:45 | "UPDATE ... id = ?" |
|
||||
| sqlite-types.ts:4:12:4:49 | "UPDATE ... id = ?" |
|
||||
| sqlite.js:7:8:7:45 | "UPDATE ... id = ?" |
|
||||
| sqlite.js:8:8:8:45 | "UPDATE ... id = ?" |
|
||||
| sqlite.js:8:10:8:65 | 'SELECT ... id = 1" |
|
||||
| sqlite.js:11:10:11:65 | 'SELECT ... id = 1" |
|
||||
| sqlite.js:14:10:14:50 | 'SELECT ... id > 5' |
|
||||
| sqlite.js:17:14:18:18 | 'SELECT ... id = 1" |
|
||||
| sqlite.js:24:19:24:74 | 'SELECT ... id = 1" |
|
||||
| sqliteArray.js:6:12:6:49 | "UPDATE ... id = ?" |
|
||||
| sqliteImport.js:2:8:2:44 | "UPDATE ... id = ?" |
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
import Database from 'better-sqlite3';
|
||||
|
||||
const db = new Database('BetterSqlite.db', { verbose: console.log });
|
||||
|
||||
let sql = 'SELECT name, id FROM table1'
|
||||
let stmt = db.prepare(sql);
|
||||
let exec = db.exec(sql);
|
||||
exec.prepare(sql)
|
||||
const db2 = Database('BetterSqlite.db', { verbose: console.log });
|
||||
|
||||
sql = 'SELECT name, id FROM table1'
|
||||
stmt = db2.prepare(sql);
|
||||
exec = db2.exec(sql);
|
||||
exec.prepare(sql)
|
||||
18
javascript/ql/test/library-tests/frameworks/SQL/postgres6.js
Normal file
18
javascript/ql/test/library-tests/frameworks/SQL/postgres6.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import pkg from 'pg';
|
||||
|
||||
const { Query, Client } = pkg;
|
||||
const client = new Client({
|
||||
host: '127.0.0.1',
|
||||
port: 5432,
|
||||
database: 'testsqli',
|
||||
user: 'postgres'
|
||||
})
|
||||
|
||||
const queryObj = {
|
||||
name: 'get-name',
|
||||
text: 'SELECT * FROM "user" WHERE id=6'
|
||||
}
|
||||
|
||||
await client.query(queryObj) // Already Implemented
|
||||
|
||||
new Query('SELECT * FROM "user" WHERE id=7')
|
||||
@@ -1,10 +1,33 @@
|
||||
// Adapted from https://github.com/mapbox/node-sqlite3/wiki/API, which is
|
||||
// part of the node-sqlite3 project, which is licensed under the BSD 3-Clause
|
||||
// License; see file node-sqlite3-LICENSE.
|
||||
var sqlite = require('sqlite3');
|
||||
import sqlite3 from 'sqlite3'
|
||||
import { open } from 'sqlite'
|
||||
|
||||
open({
|
||||
filename: 'database.sqlite',
|
||||
driver: sqlite3.Database
|
||||
}).then(async (db) => {
|
||||
db.get('SELECT name,id FROM table1 WHERE id > 5' + " OR id = 1").then(results => {
|
||||
console.log(results)
|
||||
})
|
||||
db.all('SELECT name,id FROM table1 WHERE id > 5' + " OR id = 1").then(results => {
|
||||
console.log(results)
|
||||
})
|
||||
db.run('SELECT name,id FROM table1 WHERE id > 5').then(results => {
|
||||
console.log(results)
|
||||
})
|
||||
db.prepare('SELECT name,id FROM table1 WHERE id > 5'
|
||||
+ " OR id = 1").then(results => {
|
||||
results.all().then(result => {
|
||||
console.log(result)
|
||||
})
|
||||
})
|
||||
try {
|
||||
await db.each('SELECT name,id FROM table1 WHERE id > 5' + " OR id = 1", (err, row) => {
|
||||
console.log(row)
|
||||
})
|
||||
|
||||
} catch (e) {
|
||||
throw e
|
||||
}
|
||||
})
|
||||
|
||||
var db = new sqlite.Database(":memory:");
|
||||
db.run("UPDATE tbl SET name = ? WHERE id = ?", "bar", 2)
|
||||
.run("UPDATE tbl SET name = ? WHERE id = ?", "foo", 3);
|
||||
|
||||
exports.db = db;
|
||||
|
||||
10
javascript/ql/test/library-tests/frameworks/SQL/sqlite3.js
Normal file
10
javascript/ql/test/library-tests/frameworks/SQL/sqlite3.js
Normal file
@@ -0,0 +1,10 @@
|
||||
// Adapted from https://github.com/mapbox/node-sqlite3/wiki/API, which is
|
||||
// part of the node-sqlite3 project, which is licensed under the BSD 3-Clause
|
||||
// License; see file node-sqlite3-LICENSE.
|
||||
var sqlite = require('sqlite3');
|
||||
|
||||
var db = new sqlite.Database(":memory:");
|
||||
db.run("UPDATE tbl SET name = ? WHERE id = ?", "bar", 2)
|
||||
.run("UPDATE tbl SET name = ? WHERE id = ?", "foo", 3);
|
||||
|
||||
exports.db = db;
|
||||
@@ -1,7 +1,65 @@
|
||||
test_ClientReceiveNode_getEventName
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | message |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | event |
|
||||
| client2.js:18:1:18:41 | sock2.o ... dler')) | message |
|
||||
test_SendNode
|
||||
| tst.js:30:1:30:28 | ns.emit ... event') | socket.io namespace with path '/' |
|
||||
| tst.js:31:1:31:20 | ns.send('a message') | socket.io namespace with path '/' |
|
||||
| tst.js:32:1:32:22 | ns2.wri ... ssage') | socket.io namespace with path '/foo/bar' |
|
||||
| tst.js:39:1:39:31 | io.emit ... ssage') | socket.io namespace with path '/' |
|
||||
| tst.js:40:1:40:20 | io.send('a message') | socket.io namespace with path '/' |
|
||||
| tst.js:41:1:41:21 | io.writ ... ssage') | socket.io namespace with path '/' |
|
||||
| tst.js:51:3:51:22 | socket.emit('event') | socket.io namespace with path '/' |
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:55:3:55:27 | socket. ... ssage') | socket.io namespace with path '/' |
|
||||
| tst.js:66:3:66:36 | socket. ... dcast') | socket.io namespace with path '/' |
|
||||
test_ServerNode
|
||||
| tst.js:1:12:1:33 | require ... .io')() | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:4:13:4:24 | new Server() | tst.js:4:13:4:24 | new Server() |
|
||||
| tst.js:6:13:6:27 | Server.listen() | tst.js:6:13:6:27 | Server.listen() |
|
||||
| tst.js:9:1:9:21 | io.serv ... (false) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:10:1:10:21 | io.set( ... s', []) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:11:1:11:21 | io.path ... npath') | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:12:1:12:15 | io.adapter(foo) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:13:1:13:14 | io.origins([]) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:14:1:14:15 | io.listen(http) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:15:1:15:15 | io.attach(http) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:16:1:16:15 | io.bind(engine) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:17:1:17:23 | io.onco ... socket) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:50:1:67:2 | io.on(' ... t');\\n}) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:68:1:68:35 | io.on(' ... => {}) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:80:1:80:10 | obj.server | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:85:1:85:37 | io.on(' ... , "x")) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
test_SocketNode
|
||||
| tst.js:50:19:50:24 | socket | socket.io namespace with path '/' |
|
||||
| tst.js:51:3:51:22 | socket.emit('event') | socket.io namespace with path '/' |
|
||||
| tst.js:52:3:52:17 | socket.to(room) | socket.io namespace with path '/' |
|
||||
| tst.js:53:3:53:17 | socket.in(room) | socket.io namespace with path '/' |
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:55:3:55:27 | socket. ... ssage') | socket.io namespace with path '/' |
|
||||
| tst.js:56:3:56:19 | socket.join(room) | socket.io namespace with path '/' |
|
||||
| tst.js:57:3:57:20 | socket.leave(room) | socket.io namespace with path '/' |
|
||||
| tst.js:58:3:58:16 | socket.use(cb) | socket.io namespace with path '/' |
|
||||
| tst.js:59:3:59:23 | socket. ... s(true) | socket.io namespace with path '/' |
|
||||
| tst.js:60:3:60:22 | socket.binary(false) | socket.io namespace with path '/' |
|
||||
| tst.js:61:3:61:25 | socket. ... t(true) | socket.io namespace with path '/' |
|
||||
| tst.js:62:3:62:13 | socket.json | socket.io namespace with path '/' |
|
||||
| tst.js:63:3:63:17 | socket.volatile | socket.io namespace with path '/' |
|
||||
| tst.js:64:3:64:18 | socket.broadcast | socket.io namespace with path '/' |
|
||||
| tst.js:65:3:65:14 | socket.local | socket.io namespace with path '/' |
|
||||
| tst.js:66:3:66:18 | socket.broadcast | socket.io namespace with path '/' |
|
||||
| tst.js:66:3:66:36 | socket. ... dcast') | socket.io namespace with path '/' |
|
||||
| tst.js:68:22:68:27 | socket | socket.io namespace with path '/' |
|
||||
| tst.js:69:19:69:24 | socket | socket.io namespace with path '/' |
|
||||
| tst.js:70:22:70:27 | socket | socket.io namespace with path '/' |
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:73:3:73:43 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:84:16:84:21 | socket | socket.io namespace with path '/' |
|
||||
test_ReceiveNode
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | tst.js:70:22:70:27 | socket |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | tst.js:70:22:70:27 | socket |
|
||||
| tst.js:73:3:73:43 | socket. ... => {}) | tst.js:70:22:70:27 | socket |
|
||||
test_ServerObject
|
||||
| tst.js:1:12:1:33 | require ... .io')() | tst.js:1:12:1:33 | require ... .io')() | socket.io namespace with path '/' |
|
||||
| tst.js:4:13:4:24 | new Server() | tst.js:4:13:4:24 | new Server() | socket.io namespace with path '/' |
|
||||
| tst.js:6:13:6:27 | Server.listen() | tst.js:6:13:6:27 | Server.listen() | socket.io namespace with path '/' |
|
||||
test_NamespaceNode
|
||||
| tst.js:25:10:25:19 | io.sockets | socket.io namespace with path '/' |
|
||||
| tst.js:26:11:26:27 | io.of("/foo/bar") | socket.io namespace with path '/foo/bar' |
|
||||
@@ -31,49 +89,29 @@ test_NamespaceNode
|
||||
| tst.js:69:1:69:32 | ns.on(' ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:70:1:74:2 | ns.on(' ... {});\\n}) | socket.io namespace with path '/' |
|
||||
| tst.js:85:1:85:37 | io.on(' ... , "x")) | socket.io namespace with path '/' |
|
||||
test_ClientReceiveNode_getASender
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:30:1:30:28 | ns.emit ... event') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:31:1:31:20 | ns.send('a message') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:39:1:39:31 | io.emit ... ssage') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:40:1:40:20 | io.send('a message') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:41:1:41:21 | io.writ ... ssage') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:51:3:51:22 | socket.emit('event') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:54:3:54:43 | socket. ... => {}) |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:55:3:55:27 | socket. ... ssage') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:66:3:66:36 | socket. ... dcast') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:30:1:30:28 | ns.emit ... event') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:31:1:31:20 | ns.send('a message') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:39:1:39:31 | io.emit ... ssage') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:40:1:40:20 | io.send('a message') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:41:1:41:21 | io.writ ... ssage') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:51:3:51:22 | socket.emit('event') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:54:3:54:43 | socket. ... => {}) |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:55:3:55:27 | socket. ... ssage') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:66:3:66:36 | socket. ... dcast') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:30:1:30:28 | ns.emit ... event') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:31:1:31:20 | ns.send('a message') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:39:1:39:31 | io.emit ... ssage') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:40:1:40:20 | io.send('a message') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:41:1:41:21 | io.writ ... ssage') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:51:3:51:22 | socket.emit('event') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:54:3:54:43 | socket. ... => {}) |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:55:3:55:27 | socket. ... ssage') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:66:3:66:36 | socket. ... dcast') |
|
||||
| client2.js:18:1:18:41 | sock2.o ... dler')) | tst.js:32:1:32:22 | ns2.wri ... ssage') |
|
||||
test_ReceiveNode
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | tst.js:70:22:70:27 | socket |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | tst.js:70:22:70:27 | socket |
|
||||
| tst.js:73:3:73:43 | socket. ... => {}) | tst.js:70:22:70:27 | socket |
|
||||
test_SendNode_getSentItem
|
||||
| tst.js:30:1:30:28 | ns.emit ... event') | 0 | tst.js:30:18:30:27 | 'an event' |
|
||||
| tst.js:31:1:31:20 | ns.send('a message') | 0 | tst.js:31:9:31:19 | 'a message' |
|
||||
| tst.js:32:1:32:22 | ns2.wri ... ssage') | 0 | tst.js:32:11:32:21 | 'a message' |
|
||||
| tst.js:39:1:39:31 | io.emit ... ssage') | 0 | tst.js:39:20:39:30 | 'a message' |
|
||||
| tst.js:40:1:40:20 | io.send('a message') | 0 | tst.js:40:9:40:19 | 'a message' |
|
||||
| tst.js:41:1:41:21 | io.writ ... ssage') | 0 | tst.js:41:10:41:20 | 'a message' |
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | 0 | tst.js:54:15:54:17 | 'a' |
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | 1 | tst.js:54:20:54:28 | 'message' |
|
||||
| tst.js:55:3:55:27 | socket. ... ssage') | 0 | tst.js:55:16:55:26 | 'a message' |
|
||||
test_ClientSendNode
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | client2.js:1:12:1:56 | require ... lhost") | / |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | client2.js:1:12:1:56 | require ... lhost") | / |
|
||||
test_NamespaceObject
|
||||
| socket.io namespace with path '/' | tst.js:1:12:1:33 | require ... .io')() | / |
|
||||
| socket.io namespace with path '/' | tst.js:4:13:4:24 | new Server() | / |
|
||||
| socket.io namespace with path '/' | tst.js:6:13:6:27 | Server.listen() | / |
|
||||
| socket.io namespace with path '/foo/bar' | tst.js:1:12:1:33 | require ... .io')() | /foo/bar |
|
||||
test_SendNode_getAck
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | tst.js:54:31:54:42 | (data) => {} |
|
||||
test_ClientSocketNode
|
||||
| client1.js:1:1:1:4 | io() | / |
|
||||
| client1.js:2:1:2:23 | io.conn ... sages") | /messages |
|
||||
| client2.js:1:12:1:56 | require ... lhost") | / |
|
||||
| client2.js:2:13:2:85 | require ... v#abc") | /foo/bar |
|
||||
| client3.js:3:1:3:4 | io() | / |
|
||||
| client4.js:3:1:3:4 | io() | / |
|
||||
| client4.js:4:1:4:23 | io.conn ... sages") | /messages |
|
||||
test_ClientReceiveNode
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | client2.js:1:12:1:56 | require ... lhost") |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | client2.js:1:12:1:56 | require ... lhost") |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | client2.js:1:12:1:56 | require ... lhost") |
|
||||
| client2.js:18:1:18:41 | sock2.o ... dler')) | client2.js:2:13:2:85 | require ... v#abc") |
|
||||
test_AdditionalFlowStep
|
||||
| client2.js:16:12:16:25 | "do you copy?" | tst.js:71:25:71:27 | msg |
|
||||
| client2.js:16:12:16:25 | "do you copy?" | tst.js:72:27:72:31 | data1 |
|
||||
@@ -95,126 +133,23 @@ test_AdditionalFlowStep
|
||||
| tst.js:54:20:54:28 | 'message' | client2.js:4:24:4:24 | y |
|
||||
| tst.js:55:16:55:26 | 'a message' | client2.js:4:21:4:21 | x |
|
||||
| tst.js:55:16:55:26 | 'a message' | client2.js:8:23:8:25 | msg |
|
||||
test_ClientSendNode_getAck
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | client2.js:16:28:16:35 | () => {} |
|
||||
test_SocketNode
|
||||
| tst.js:50:19:50:24 | socket | socket.io namespace with path '/' |
|
||||
| tst.js:51:3:51:22 | socket.emit('event') | socket.io namespace with path '/' |
|
||||
| tst.js:52:3:52:17 | socket.to(room) | socket.io namespace with path '/' |
|
||||
| tst.js:53:3:53:17 | socket.in(room) | socket.io namespace with path '/' |
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:55:3:55:27 | socket. ... ssage') | socket.io namespace with path '/' |
|
||||
| tst.js:56:3:56:19 | socket.join(room) | socket.io namespace with path '/' |
|
||||
| tst.js:57:3:57:20 | socket.leave(room) | socket.io namespace with path '/' |
|
||||
| tst.js:58:3:58:16 | socket.use(cb) | socket.io namespace with path '/' |
|
||||
| tst.js:59:3:59:23 | socket. ... s(true) | socket.io namespace with path '/' |
|
||||
| tst.js:60:3:60:22 | socket.binary(false) | socket.io namespace with path '/' |
|
||||
| tst.js:61:3:61:25 | socket. ... t(true) | socket.io namespace with path '/' |
|
||||
| tst.js:62:3:62:13 | socket.json | socket.io namespace with path '/' |
|
||||
| tst.js:63:3:63:17 | socket.volatile | socket.io namespace with path '/' |
|
||||
| tst.js:64:3:64:18 | socket.broadcast | socket.io namespace with path '/' |
|
||||
| tst.js:65:3:65:14 | socket.local | socket.io namespace with path '/' |
|
||||
| tst.js:66:3:66:18 | socket.broadcast | socket.io namespace with path '/' |
|
||||
| tst.js:66:3:66:36 | socket. ... dcast') | socket.io namespace with path '/' |
|
||||
| tst.js:68:22:68:27 | socket | socket.io namespace with path '/' |
|
||||
| tst.js:69:19:69:24 | socket | socket.io namespace with path '/' |
|
||||
| tst.js:70:22:70:27 | socket | socket.io namespace with path '/' |
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:73:3:73:43 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:84:16:84:21 | socket | socket.io namespace with path '/' |
|
||||
test_ClientSendNode_getEventName
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | data |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | message |
|
||||
test_ClientSendNode_getSentItem
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | 0 | client2.js:14:19:14:22 | "hi" |
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | 1 | client2.js:14:25:14:31 | "there" |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | 0 | client2.js:16:12:16:25 | "do you copy?" |
|
||||
test_ReceiveNode_getEventName
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | message |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | message |
|
||||
test_ClientSocketNode
|
||||
| client1.js:1:1:1:4 | io() | / |
|
||||
| client1.js:2:1:2:23 | io.conn ... sages") | /messages |
|
||||
| client2.js:1:12:1:56 | require ... lhost") | / |
|
||||
| client2.js:2:13:2:85 | require ... v#abc") | /foo/bar |
|
||||
| client3.js:3:1:3:4 | io() | / |
|
||||
| client4.js:3:1:3:4 | io() | / |
|
||||
| client4.js:4:1:4:23 | io.conn ... sages") | /messages |
|
||||
test_ReceiveNode_getASender
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | client2.js:14:1:14:32 | sock.em ... there") |
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | client2.js:16:1:16:36 | sock.wr ... => {}) |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | client2.js:14:1:14:32 | sock.em ... there") |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | client2.js:16:1:16:36 | sock.wr ... => {}) |
|
||||
| tst.js:73:3:73:43 | socket. ... => {}) | client2.js:14:1:14:32 | sock.em ... there") |
|
||||
| tst.js:73:3:73:43 | socket. ... => {}) | client2.js:16:1:16:36 | sock.wr ... => {}) |
|
||||
test_ReceiveNode_getReceivedItem
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | 0 | tst.js:71:25:71:27 | msg |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | 0 | tst.js:72:27:72:31 | data1 |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | 1 | tst.js:72:34:72:38 | data2 |
|
||||
test_SendNode_getSocket
|
||||
| tst.js:51:3:51:22 | socket.emit('event') | tst.js:50:19:50:24 | socket |
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | tst.js:50:19:50:24 | socket |
|
||||
| tst.js:55:3:55:27 | socket. ... ssage') | tst.js:50:19:50:24 | socket |
|
||||
| tst.js:66:3:66:36 | socket. ... dcast') | tst.js:50:19:50:24 | socket |
|
||||
test_ServerNode
|
||||
| tst.js:1:12:1:33 | require ... .io')() | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:4:13:4:24 | new Server() | tst.js:4:13:4:24 | new Server() |
|
||||
| tst.js:6:13:6:27 | Server.listen() | tst.js:6:13:6:27 | Server.listen() |
|
||||
| tst.js:9:1:9:21 | io.serv ... (false) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:10:1:10:21 | io.set( ... s', []) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:11:1:11:21 | io.path ... npath') | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:12:1:12:15 | io.adapter(foo) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:13:1:13:14 | io.origins([]) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:14:1:14:15 | io.listen(http) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:15:1:15:15 | io.attach(http) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:16:1:16:15 | io.bind(engine) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:17:1:17:23 | io.onco ... socket) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:50:1:67:2 | io.on(' ... t');\\n}) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:68:1:68:35 | io.on(' ... => {}) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:80:1:80:10 | obj.server | tst.js:1:12:1:33 | require ... .io')() |
|
||||
| tst.js:85:1:85:37 | io.on(' ... , "x")) | tst.js:1:12:1:33 | require ... .io')() |
|
||||
test_ClientSendNode_getAReceiver
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | tst.js:71:3:71:35 | socket. ... => {}) |
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | tst.js:72:3:72:46 | socket. ... => {}) |
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | tst.js:73:3:73:43 | socket. ... => {}) |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | tst.js:71:3:71:35 | socket. ... => {}) |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | tst.js:72:3:72:46 | socket. ... => {}) |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | tst.js:73:3:73:43 | socket. ... => {}) |
|
||||
test_ClientReceiveNode_getAck
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | client2.js:10:22:10:23 | cb |
|
||||
test_ClientReceiveNode_getReceivedItem
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | 0 | client2.js:4:21:4:21 | x |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | 1 | client2.js:4:24:4:24 | y |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | 0 | client2.js:8:23:8:25 | msg |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | 0 | client2.js:10:19:10:19 | x |
|
||||
| client2.js:18:1:18:41 | sock2.o ... dler')) | 0 | handler.js:1:19:1:19 | x |
|
||||
test_NamespaceObject
|
||||
| socket.io namespace with path '/' | tst.js:1:12:1:33 | require ... .io')() | / |
|
||||
| socket.io namespace with path '/' | tst.js:4:13:4:24 | new Server() | / |
|
||||
| socket.io namespace with path '/' | tst.js:6:13:6:27 | Server.listen() | / |
|
||||
| socket.io namespace with path '/foo/bar' | tst.js:1:12:1:33 | require ... .io')() | /foo/bar |
|
||||
test_ClientReceiveNode
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | client2.js:1:12:1:56 | require ... lhost") |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | client2.js:1:12:1:56 | require ... lhost") |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | client2.js:1:12:1:56 | require ... lhost") |
|
||||
| client2.js:18:1:18:41 | sock2.o ... dler')) | client2.js:2:13:2:85 | require ... v#abc") |
|
||||
test_ClientSendNode
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | client2.js:1:12:1:56 | require ... lhost") | / |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | client2.js:1:12:1:56 | require ... lhost") | / |
|
||||
test_SendNode_getAck
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | tst.js:54:31:54:42 | (data) => {} |
|
||||
test_SendNode
|
||||
| tst.js:30:1:30:28 | ns.emit ... event') | socket.io namespace with path '/' |
|
||||
| tst.js:31:1:31:20 | ns.send('a message') | socket.io namespace with path '/' |
|
||||
| tst.js:32:1:32:22 | ns2.wri ... ssage') | socket.io namespace with path '/foo/bar' |
|
||||
| tst.js:39:1:39:31 | io.emit ... ssage') | socket.io namespace with path '/' |
|
||||
| tst.js:40:1:40:20 | io.send('a message') | socket.io namespace with path '/' |
|
||||
| tst.js:41:1:41:21 | io.writ ... ssage') | socket.io namespace with path '/' |
|
||||
| tst.js:51:3:51:22 | socket.emit('event') | socket.io namespace with path '/' |
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | socket.io namespace with path '/' |
|
||||
| tst.js:55:3:55:27 | socket. ... ssage') | socket.io namespace with path '/' |
|
||||
| tst.js:66:3:66:36 | socket. ... dcast') | socket.io namespace with path '/' |
|
||||
test_SendNode_getSentItem
|
||||
| tst.js:30:1:30:28 | ns.emit ... event') | 0 | tst.js:30:18:30:27 | 'an event' |
|
||||
| tst.js:31:1:31:20 | ns.send('a message') | 0 | tst.js:31:9:31:19 | 'a message' |
|
||||
| tst.js:32:1:32:22 | ns2.wri ... ssage') | 0 | tst.js:32:11:32:21 | 'a message' |
|
||||
| tst.js:39:1:39:31 | io.emit ... ssage') | 0 | tst.js:39:20:39:30 | 'a message' |
|
||||
| tst.js:40:1:40:20 | io.send('a message') | 0 | tst.js:40:9:40:19 | 'a message' |
|
||||
| tst.js:41:1:41:21 | io.writ ... ssage') | 0 | tst.js:41:10:41:20 | 'a message' |
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | 0 | tst.js:54:15:54:17 | 'a' |
|
||||
| tst.js:54:3:54:43 | socket. ... => {}) | 1 | tst.js:54:20:54:28 | 'message' |
|
||||
| tst.js:55:3:55:27 | socket. ... ssage') | 0 | tst.js:55:16:55:26 | 'a message' |
|
||||
test_ClientSendNode_getAck
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | client2.js:16:28:16:35 | () => {} |
|
||||
test_SendNode_getAReceiver
|
||||
| tst.js:30:1:30:28 | ns.emit ... event') | client2.js:4:1:6:2 | sock.on ... y);\\n}) |
|
||||
| tst.js:30:1:30:28 | ns.emit ... event') | client2.js:8:1:8:33 | sock.on ... => {}) |
|
||||
@@ -244,7 +179,72 @@ test_SendNode_getAReceiver
|
||||
| tst.js:66:3:66:36 | socket. ... dcast') | client2.js:4:1:6:2 | sock.on ... y);\\n}) |
|
||||
| tst.js:66:3:66:36 | socket. ... dcast') | client2.js:8:1:8:33 | sock.on ... => {}) |
|
||||
| tst.js:66:3:66:36 | socket. ... dcast') | client2.js:10:1:12:2 | sock.on ... d");\\n}) |
|
||||
test_ServerObject
|
||||
| tst.js:1:12:1:33 | require ... .io')() | tst.js:1:12:1:33 | require ... .io')() | socket.io namespace with path '/' |
|
||||
| tst.js:4:13:4:24 | new Server() | tst.js:4:13:4:24 | new Server() | socket.io namespace with path '/' |
|
||||
| tst.js:6:13:6:27 | Server.listen() | tst.js:6:13:6:27 | Server.listen() | socket.io namespace with path '/' |
|
||||
test_ReceiveNode_getASender
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | client2.js:14:1:14:32 | sock.em ... there") |
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | client2.js:16:1:16:36 | sock.wr ... => {}) |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | client2.js:14:1:14:32 | sock.em ... there") |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | client2.js:16:1:16:36 | sock.wr ... => {}) |
|
||||
| tst.js:73:3:73:43 | socket. ... => {}) | client2.js:14:1:14:32 | sock.em ... there") |
|
||||
| tst.js:73:3:73:43 | socket. ... => {}) | client2.js:16:1:16:36 | sock.wr ... => {}) |
|
||||
test_ClientReceiveNode_getAck
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | client2.js:10:22:10:23 | cb |
|
||||
test_ReceiveNode_getEventName
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | message |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | message |
|
||||
test_ClientSendNode_getSentItem
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | 0 | client2.js:14:19:14:22 | "hi" |
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | 1 | client2.js:14:25:14:31 | "there" |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | 0 | client2.js:16:12:16:25 | "do you copy?" |
|
||||
test_ClientSendNode_getAReceiver
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | tst.js:71:3:71:35 | socket. ... => {}) |
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | tst.js:72:3:72:46 | socket. ... => {}) |
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | tst.js:73:3:73:43 | socket. ... => {}) |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | tst.js:71:3:71:35 | socket. ... => {}) |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | tst.js:72:3:72:46 | socket. ... => {}) |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | tst.js:73:3:73:43 | socket. ... => {}) |
|
||||
test_ClientSendNode_getEventName
|
||||
| client2.js:14:1:14:32 | sock.em ... there") | data |
|
||||
| client2.js:16:1:16:36 | sock.wr ... => {}) | message |
|
||||
test_ReceiveNode_getReceivedItem
|
||||
| tst.js:71:3:71:35 | socket. ... => {}) | 0 | tst.js:71:25:71:27 | msg |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | 0 | tst.js:72:27:72:31 | data1 |
|
||||
| tst.js:72:3:72:46 | socket. ... => {}) | 1 | tst.js:72:34:72:38 | data2 |
|
||||
test_ClientReceiveNode_getASender
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:30:1:30:28 | ns.emit ... event') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:31:1:31:20 | ns.send('a message') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:39:1:39:31 | io.emit ... ssage') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:40:1:40:20 | io.send('a message') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:41:1:41:21 | io.writ ... ssage') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:51:3:51:22 | socket.emit('event') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:54:3:54:43 | socket. ... => {}) |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:55:3:55:27 | socket. ... ssage') |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | tst.js:66:3:66:36 | socket. ... dcast') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:30:1:30:28 | ns.emit ... event') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:31:1:31:20 | ns.send('a message') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:39:1:39:31 | io.emit ... ssage') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:40:1:40:20 | io.send('a message') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:41:1:41:21 | io.writ ... ssage') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:51:3:51:22 | socket.emit('event') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:54:3:54:43 | socket. ... => {}) |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:55:3:55:27 | socket. ... ssage') |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | tst.js:66:3:66:36 | socket. ... dcast') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:30:1:30:28 | ns.emit ... event') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:31:1:31:20 | ns.send('a message') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:39:1:39:31 | io.emit ... ssage') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:40:1:40:20 | io.send('a message') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:41:1:41:21 | io.writ ... ssage') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:51:3:51:22 | socket.emit('event') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:54:3:54:43 | socket. ... => {}) |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:55:3:55:27 | socket. ... ssage') |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | tst.js:66:3:66:36 | socket. ... dcast') |
|
||||
| client2.js:18:1:18:41 | sock2.o ... dler')) | tst.js:32:1:32:22 | ns2.wri ... ssage') |
|
||||
test_ClientReceiveNode_getEventName
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | message |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | event |
|
||||
| client2.js:18:1:18:41 | sock2.o ... dler')) | message |
|
||||
test_ClientReceiveNode_getReceivedItem
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | 0 | client2.js:4:21:4:21 | x |
|
||||
| client2.js:4:1:6:2 | sock.on ... y);\\n}) | 1 | client2.js:4:24:4:24 | y |
|
||||
| client2.js:8:1:8:33 | sock.on ... => {}) | 0 | client2.js:8:23:8:25 | msg |
|
||||
| client2.js:10:1:12:2 | sock.on ... d");\\n}) | 0 | client2.js:10:19:10:19 | x |
|
||||
| client2.js:18:1:18:41 | sock2.o ... dler')) | 0 | handler.js:1:19:1:19 | x |
|
||||
|
||||
@@ -7,6 +7,35 @@ test_RouteSetup
|
||||
| src/fastify.js:63:1:70:1 | fastify ... ;\\n }\\n) |
|
||||
| src/fastify.js:74:1:81:1 | fastify ... ;\\n }\\n) |
|
||||
| src/fastify.js:85:1:92:1 | fastify ... ;\\n }\\n) |
|
||||
test_HeaderAccess
|
||||
| src/fastify.js:39:5:39:24 | request.headers.name | name |
|
||||
test_RouteHandler
|
||||
| src/fastify.js:5:17:7:3 | async ( ... nse\\n } | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:13:28:13:55 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:14:29:14:56 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:15:32:15:59 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:16:29:16:56 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:17:35:17:71 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:18:25:18:61 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:19:29:19:56 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:20:26:20:47 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:26:17:28:3 | (reques ... nse\\n } | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:34:17:46:3 | functio ... eam\\n } | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:54:17:58:3 | functio ... ms;\\n } | src/fastify.js:50:27:50:46 | require("fastify")() |
|
||||
| src/fastify.js:65:17:69:3 | functio ... ms;\\n } | src/fastify.js:61:27:61:46 | require("fastify")() |
|
||||
| src/fastify.js:76:17:80:3 | functio ... ms;\\n } | src/fastify.js:72:27:72:46 | require("fastify")() |
|
||||
| src/fastify.js:87:17:91:3 | functio ... ms;\\n } | src/fastify.js:83:27:83:46 | require("fastify")() |
|
||||
test_HeaderDefinition
|
||||
| src/fastify.js:42:5:42:33 | reply.h ... value") | src/fastify.js:34:17:46:3 | functio ... eam\\n } |
|
||||
| src/fastify.js:43:5:43:36 | reply.h ... lue" }) | src/fastify.js:34:17:46:3 | functio ... eam\\n } |
|
||||
test_ServerDefinition
|
||||
| src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:50:27:50:46 | require("fastify")() |
|
||||
| src/fastify.js:61:27:61:46 | require("fastify")() |
|
||||
| src/fastify.js:72:27:72:46 | require("fastify")() |
|
||||
| src/fastify.js:83:27:83:46 | require("fastify")() |
|
||||
test_RedirectInvocation
|
||||
| src/fastify.js:44:5:44:29 | reply.r ... e, url) | src/fastify.js:34:17:46:3 | functio ... eam\\n } |
|
||||
test_RequestInputAccess
|
||||
| src/fastify.js:36:5:36:17 | request.query | parameter | src/fastify.js:34:17:46:3 | functio ... eam\\n } | false |
|
||||
| src/fastify.js:37:5:37:16 | request.body | body | src/fastify.js:34:17:46:3 | functio ... eam\\n } | false |
|
||||
@@ -24,15 +53,10 @@ test_RequestInputAccess
|
||||
| src/fastify.js:88:5:88:17 | request.query | parameter | src/fastify.js:87:17:91:3 | functio ... ms;\\n } | false |
|
||||
| src/fastify.js:89:5:89:16 | request.body | body | src/fastify.js:87:17:91:3 | functio ... ms;\\n } | true |
|
||||
| src/fastify.js:90:5:90:18 | request.params | parameter | src/fastify.js:87:17:91:3 | functio ... ms;\\n } | false |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/fastify.js:34:17:46:3 | functio ... eam\\n } | name | src/fastify.js:42:5:42:33 | reply.h ... value") |
|
||||
| src/fastify.js:34:17:46:3 | functio ... eam\\n } | name | src/fastify.js:43:5:43:36 | reply.h ... lue" }) |
|
||||
test_HeaderDefinition_defines
|
||||
| src/fastify.js:42:5:42:33 | reply.h ... value") | name | value |
|
||||
| src/fastify.js:43:5:43:36 | reply.h ... lue" }) | name | value |
|
||||
test_HeaderDefinition
|
||||
| src/fastify.js:42:5:42:33 | reply.h ... value") | src/fastify.js:34:17:46:3 | functio ... eam\\n } |
|
||||
| src/fastify.js:43:5:43:36 | reply.h ... lue" }) | src/fastify.js:34:17:46:3 | functio ... eam\\n } |
|
||||
test_ResponseSendArgument
|
||||
| src/fastify.js:6:12:6:29 | { hello: "world" } | src/fastify.js:5:17:7:3 | async ( ... nse\\n } |
|
||||
| src/fastify.js:27:16:27:33 | { hello: "world" } | src/fastify.js:26:17:28:3 | (reques ... nse\\n } |
|
||||
| src/fastify.js:45:16:45:22 | payload | src/fastify.js:34:17:46:3 | functio ... eam\\n } |
|
||||
test_RouteSetup_getServer
|
||||
| src/fastify.js:3:1:8:1 | fastify ... e\\n }\\n) | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:10:1:21:2 | fastify ... > {}\\n}) | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
@@ -42,17 +66,9 @@ test_RouteSetup_getServer
|
||||
| src/fastify.js:63:1:70:1 | fastify ... ;\\n }\\n) | src/fastify.js:61:27:61:46 | require("fastify")() |
|
||||
| src/fastify.js:74:1:81:1 | fastify ... ;\\n }\\n) | src/fastify.js:72:27:72:46 | require("fastify")() |
|
||||
| src/fastify.js:85:1:92:1 | fastify ... ;\\n }\\n) | src/fastify.js:83:27:83:46 | require("fastify")() |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/fastify.js:42:5:42:33 | reply.h ... value") | name |
|
||||
| src/fastify.js:43:5:43:36 | reply.h ... lue" }) | name |
|
||||
test_ServerDefinition
|
||||
| src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:50:27:50:46 | require("fastify")() |
|
||||
| src/fastify.js:61:27:61:46 | require("fastify")() |
|
||||
| src/fastify.js:72:27:72:46 | require("fastify")() |
|
||||
| src/fastify.js:83:27:83:46 | require("fastify")() |
|
||||
test_HeaderAccess
|
||||
| src/fastify.js:39:5:39:24 | request.headers.name | name |
|
||||
test_HeaderDefinition_defines
|
||||
| src/fastify.js:42:5:42:33 | reply.h ... value") | name | value |
|
||||
| src/fastify.js:43:5:43:36 | reply.h ... lue" }) | name | value |
|
||||
test_RouteSetup_getARouteHandler
|
||||
| src/fastify.js:3:1:8:1 | fastify ... e\\n }\\n) | src/fastify.js:5:17:7:3 | async ( ... nse\\n } |
|
||||
| src/fastify.js:10:1:21:2 | fastify ... > {}\\n}) | src/fastify.js:13:28:13:55 | (reques ... ) => {} |
|
||||
@@ -69,22 +85,6 @@ test_RouteSetup_getARouteHandler
|
||||
| src/fastify.js:63:1:70:1 | fastify ... ;\\n }\\n) | src/fastify.js:65:17:69:3 | functio ... ms;\\n } |
|
||||
| src/fastify.js:74:1:81:1 | fastify ... ;\\n }\\n) | src/fastify.js:76:17:80:3 | functio ... ms;\\n } |
|
||||
| src/fastify.js:85:1:92:1 | fastify ... ;\\n }\\n) | src/fastify.js:87:17:91:3 | functio ... ms;\\n } |
|
||||
test_RouteHandler
|
||||
| src/fastify.js:5:17:7:3 | async ( ... nse\\n } | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:13:28:13:55 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:14:29:14:56 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:15:32:15:59 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:16:29:16:56 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:17:35:17:71 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:18:25:18:61 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:19:29:19:56 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:20:26:20:47 | (reques ... ) => {} | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:26:17:28:3 | (reques ... nse\\n } | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:34:17:46:3 | functio ... eam\\n } | src/fastify.js:1:15:1:34 | require("fastify")() |
|
||||
| src/fastify.js:54:17:58:3 | functio ... ms;\\n } | src/fastify.js:50:27:50:46 | require("fastify")() |
|
||||
| src/fastify.js:65:17:69:3 | functio ... ms;\\n } | src/fastify.js:61:27:61:46 | require("fastify")() |
|
||||
| src/fastify.js:76:17:80:3 | functio ... ms;\\n } | src/fastify.js:72:27:72:46 | require("fastify")() |
|
||||
| src/fastify.js:87:17:91:3 | functio ... ms;\\n } | src/fastify.js:83:27:83:46 | require("fastify")() |
|
||||
test_RouteHandler_getARequestExpr
|
||||
| src/fastify.js:5:17:7:3 | async ( ... nse\\n } | src/fastify.js:5:24:5:30 | request |
|
||||
| src/fastify.js:13:28:13:55 | (reques ... ) => {} | src/fastify.js:13:29:13:35 | request |
|
||||
@@ -122,9 +122,9 @@ test_RouteHandler_getARequestExpr
|
||||
| src/fastify.js:87:17:91:3 | functio ... ms;\\n } | src/fastify.js:88:5:88:11 | request |
|
||||
| src/fastify.js:87:17:91:3 | functio ... ms;\\n } | src/fastify.js:89:5:89:11 | request |
|
||||
| src/fastify.js:87:17:91:3 | functio ... ms;\\n } | src/fastify.js:90:5:90:11 | request |
|
||||
test_ResponseSendArgument
|
||||
| src/fastify.js:6:12:6:29 | { hello: "world" } | src/fastify.js:5:17:7:3 | async ( ... nse\\n } |
|
||||
| src/fastify.js:27:16:27:33 | { hello: "world" } | src/fastify.js:26:17:28:3 | (reques ... nse\\n } |
|
||||
| src/fastify.js:45:16:45:22 | payload | src/fastify.js:34:17:46:3 | functio ... eam\\n } |
|
||||
test_RedirectInvocation
|
||||
| src/fastify.js:44:5:44:29 | reply.r ... e, url) | src/fastify.js:34:17:46:3 | functio ... eam\\n } |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/fastify.js:42:5:42:33 | reply.h ... value") | name |
|
||||
| src/fastify.js:43:5:43:36 | reply.h ... lue" }) | name |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/fastify.js:34:17:46:3 | functio ... eam\\n } | name | src/fastify.js:42:5:42:33 | reply.h ... value") |
|
||||
| src/fastify.js:34:17:46:3 | functio ... eam\\n } | name | src/fastify.js:43:5:43:36 | reply.h ... lue" }) |
|
||||
|
||||
@@ -9,83 +9,6 @@ test_RouteSetup
|
||||
| src/hapiglue.js:17:1:18:2 | server2 ... dler\\n}) |
|
||||
| src/hapiglue.js:31:1:31:20 | server2.route(route) |
|
||||
| src/hapiglue.js:38:1:38:38 | server2 ... ler()}) |
|
||||
test_RequestInputAccess
|
||||
| src/hapi.js:21:3:21:20 | request.rawPayload | body | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:22:3:22:21 | request.payload.foo | body | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:23:3:23:19 | request.query.bar | parameter | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:24:3:24:18 | request.url.path | url | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:25:3:25:21 | request.headers.baz | header | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:26:3:26:21 | request.state.token | cookie | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:21:3:21:20 | request.rawPayload | body | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:22:3:22:21 | request.payload.foo | body | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:23:3:23:19 | request.query.bar | parameter | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:24:3:24:20 | request.params.bar | parameter | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:25:3:25:18 | request.url.path | url | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:26:3:26:20 | request.url.origin | url | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:27:3:27:21 | request.headers.baz | header | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:28:3:28:21 | request.state.token | cookie | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/hapi.js:13:14:15:5 | functio ... n\\n } | header1 | src/hapi.js:14:9:14:46 | request ... 1', '') |
|
||||
| src/hapiglue.js:13:14:15:5 | functio ... n\\n } | header1 | src/hapiglue.js:14:9:14:46 | request ... 1', '') |
|
||||
test_HeaderDefinition_defines
|
||||
| src/hapi.js:14:9:14:46 | request ... 1', '') | header1 | |
|
||||
| src/hapiglue.js:14:9:14:46 | request ... 1', '') | header1 | |
|
||||
test_ResponseExpr
|
||||
| src/hapi.js:14:9:14:24 | request.response | src/hapi.js:13:14:15:5 | functio ... n\\n } |
|
||||
| src/hapiglue.js:14:9:14:24 | request.response | src/hapiglue.js:13:14:15:5 | functio ... n\\n } |
|
||||
test_HeaderDefinition
|
||||
| src/hapi.js:14:9:14:46 | request ... 1', '') | src/hapi.js:13:14:15:5 | functio ... n\\n } |
|
||||
| src/hapiglue.js:14:9:14:46 | request ... 1', '') | src/hapiglue.js:13:14:15:5 | functio ... n\\n } |
|
||||
test_RouteSetup_getServer
|
||||
| src/hapi.js:7:1:9:2 | server2 ... ler1\\n}) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:12:1:15:7 | server2 ... }}) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:17:1:18:2 | server2 ... dler\\n}) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:29:1:29:20 | server2.route(route) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:36:1:36:38 | server2 ... ler()}) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapiglue.js:7:1:9:2 | server2 ... ler1\\n}) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:12:1:15:7 | server2 ... }}) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:17:1:18:2 | server2 ... dler\\n}) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:31:1:31:20 | server2.route(route) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:38:1:38:38 | server2 ... ler()}) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/hapi.js:14:9:14:46 | request ... 1', '') | header1 |
|
||||
| src/hapiglue.js:14:9:14:46 | request ... 1', '') | header1 |
|
||||
test_ServerDefinition
|
||||
| src/hapi.js:1:15:1:44 | new (re ... erver() |
|
||||
| src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapiglue.js:1:15:1:88 | new (re ... ptions) |
|
||||
| src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:43:19:43:24 | server |
|
||||
| src/hapiglue.js:44:45:44:51 | server_ |
|
||||
test_HeaderAccess
|
||||
| src/hapi.js:25:3:25:21 | request.headers.baz | baz |
|
||||
| src/hapiglue.js:27:3:27:21 | request.headers.baz | baz |
|
||||
test_RouteSetup_getARouteHandler
|
||||
| src/hapi.js:7:1:9:2 | server2 ... ler1\\n}) | src/hapi.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/hapi.js:12:1:15:7 | server2 ... }}) | src/hapi.js:13:14:15:5 | functio ... n\\n } |
|
||||
| src/hapi.js:17:1:18:2 | server2 ... dler\\n}) | src/hapi.js:17:30:18:1 | functio ... ndler\\n} |
|
||||
| src/hapi.js:29:1:29:20 | server2.route(route) | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:36:1:36:38 | server2 ... ler()}) | src/hapi.js:33:1:35:1 | return of function getHandler |
|
||||
| src/hapi.js:36:1:36:38 | server2 ... ler()}) | src/hapi.js:34:12:34:30 | function (req, h){} |
|
||||
| src/hapi.js:36:1:36:38 | server2 ... ler()}) | src/hapi.js:36:25:36:36 | getHandler() |
|
||||
| src/hapiglue.js:7:1:9:2 | server2 ... ler1\\n}) | src/hapiglue.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/hapiglue.js:12:1:15:7 | server2 ... }}) | src/hapiglue.js:13:14:15:5 | functio ... n\\n } |
|
||||
| src/hapiglue.js:17:1:18:2 | server2 ... dler\\n}) | src/hapiglue.js:17:30:18:1 | functio ... ndler\\n} |
|
||||
| src/hapiglue.js:31:1:31:20 | server2.route(route) | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:38:1:38:38 | server2 ... ler()}) | src/hapiglue.js:35:1:37:1 | return of function getHandler |
|
||||
| src/hapiglue.js:38:1:38:38 | server2 ... ler()}) | src/hapiglue.js:36:12:36:33 | functio ... hapi){} |
|
||||
| src/hapiglue.js:38:1:38:38 | server2 ... ler()}) | src/hapiglue.js:38:25:38:36 | getHandler() |
|
||||
test_RouteHandler
|
||||
| src/hapi.js:6:1:6:21 | functio ... er1(){} | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:13:14:15:5 | functio ... n\\n } | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:17:30:18:1 | functio ... ndler\\n} | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:20:1:27:1 | functio ... oken;\\n} | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:34:12:34:30 | function (req, h){} | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapiglue.js:6:1:6:21 | functio ... er1(){} | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:13:14:15:5 | functio ... n\\n } | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:17:30:18:1 | functio ... ndler\\n} | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:36:12:36:33 | functio ... hapi){} | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
test_RequestExpr
|
||||
| src/hapi.js:13:32:13:38 | request | src/hapi.js:13:14:15:5 | functio ... n\\n } |
|
||||
| src/hapi.js:13:32:13:38 | request | src/hapi.js:13:14:15:5 | functio ... n\\n } |
|
||||
@@ -115,6 +38,77 @@ test_RequestExpr
|
||||
| src/hapiglue.js:27:3:27:9 | request | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:28:3:28:9 | request | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:36:22:36:24 | req | src/hapiglue.js:36:12:36:33 | functio ... hapi){} |
|
||||
test_HeaderAccess
|
||||
| src/hapi.js:25:3:25:21 | request.headers.baz | baz |
|
||||
| src/hapiglue.js:27:3:27:21 | request.headers.baz | baz |
|
||||
test_ResponseExpr
|
||||
| src/hapi.js:14:9:14:24 | request.response | src/hapi.js:13:14:15:5 | functio ... n\\n } |
|
||||
| src/hapiglue.js:14:9:14:24 | request.response | src/hapiglue.js:13:14:15:5 | functio ... n\\n } |
|
||||
test_RouteHandler
|
||||
| src/hapi.js:6:1:6:21 | functio ... er1(){} | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:13:14:15:5 | functio ... n\\n } | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:17:30:18:1 | functio ... ndler\\n} | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:20:1:27:1 | functio ... oken;\\n} | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:34:12:34:30 | function (req, h){} | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapiglue.js:6:1:6:21 | functio ... er1(){} | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:13:14:15:5 | functio ... n\\n } | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:17:30:18:1 | functio ... ndler\\n} | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:36:12:36:33 | functio ... hapi){} | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
test_HeaderDefinition
|
||||
| src/hapi.js:14:9:14:46 | request ... 1', '') | src/hapi.js:13:14:15:5 | functio ... n\\n } |
|
||||
| src/hapiglue.js:14:9:14:46 | request ... 1', '') | src/hapiglue.js:13:14:15:5 | functio ... n\\n } |
|
||||
test_ServerDefinition
|
||||
| src/hapi.js:1:15:1:44 | new (re ... erver() |
|
||||
| src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapiglue.js:1:15:1:88 | new (re ... ptions) |
|
||||
| src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:43:19:43:24 | server |
|
||||
| src/hapiglue.js:44:45:44:51 | server_ |
|
||||
test_RequestInputAccess
|
||||
| src/hapi.js:21:3:21:20 | request.rawPayload | body | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:22:3:22:21 | request.payload.foo | body | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:23:3:23:19 | request.query.bar | parameter | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:24:3:24:18 | request.url.path | url | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:25:3:25:21 | request.headers.baz | header | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:26:3:26:21 | request.state.token | cookie | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:21:3:21:20 | request.rawPayload | body | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:22:3:22:21 | request.payload.foo | body | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:23:3:23:19 | request.query.bar | parameter | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:24:3:24:20 | request.params.bar | parameter | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:25:3:25:18 | request.url.path | url | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:26:3:26:20 | request.url.origin | url | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:27:3:27:21 | request.headers.baz | header | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:28:3:28:21 | request.state.token | cookie | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
test_RouteSetup_getServer
|
||||
| src/hapi.js:7:1:9:2 | server2 ... ler1\\n}) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:12:1:15:7 | server2 ... }}) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:17:1:18:2 | server2 ... dler\\n}) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:29:1:29:20 | server2.route(route) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapi.js:36:1:36:38 | server2 ... ler()}) | src/hapi.js:4:15:4:31 | new Hapi.Server() |
|
||||
| src/hapiglue.js:7:1:9:2 | server2 ... ler1\\n}) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:12:1:15:7 | server2 ... }}) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:17:1:18:2 | server2 ... dler\\n}) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:31:1:31:20 | server2.route(route) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
| src/hapiglue.js:38:1:38:38 | server2 ... ler()}) | src/hapiglue.js:4:15:4:69 | new Hap ... ptions) |
|
||||
test_HeaderDefinition_defines
|
||||
| src/hapi.js:14:9:14:46 | request ... 1', '') | header1 | |
|
||||
| src/hapiglue.js:14:9:14:46 | request ... 1', '') | header1 | |
|
||||
test_RouteSetup_getARouteHandler
|
||||
| src/hapi.js:7:1:9:2 | server2 ... ler1\\n}) | src/hapi.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/hapi.js:12:1:15:7 | server2 ... }}) | src/hapi.js:13:14:15:5 | functio ... n\\n } |
|
||||
| src/hapi.js:17:1:18:2 | server2 ... dler\\n}) | src/hapi.js:17:30:18:1 | functio ... ndler\\n} |
|
||||
| src/hapi.js:29:1:29:20 | server2.route(route) | src/hapi.js:20:1:27:1 | functio ... oken;\\n} |
|
||||
| src/hapi.js:36:1:36:38 | server2 ... ler()}) | src/hapi.js:33:1:35:1 | return of function getHandler |
|
||||
| src/hapi.js:36:1:36:38 | server2 ... ler()}) | src/hapi.js:34:12:34:30 | function (req, h){} |
|
||||
| src/hapi.js:36:1:36:38 | server2 ... ler()}) | src/hapi.js:36:25:36:36 | getHandler() |
|
||||
| src/hapiglue.js:7:1:9:2 | server2 ... ler1\\n}) | src/hapiglue.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/hapiglue.js:12:1:15:7 | server2 ... }}) | src/hapiglue.js:13:14:15:5 | functio ... n\\n } |
|
||||
| src/hapiglue.js:17:1:18:2 | server2 ... dler\\n}) | src/hapiglue.js:17:30:18:1 | functio ... ndler\\n} |
|
||||
| src/hapiglue.js:31:1:31:20 | server2.route(route) | src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} |
|
||||
| src/hapiglue.js:38:1:38:38 | server2 ... ler()}) | src/hapiglue.js:35:1:37:1 | return of function getHandler |
|
||||
| src/hapiglue.js:38:1:38:38 | server2 ... ler()}) | src/hapiglue.js:36:12:36:33 | functio ... hapi){} |
|
||||
| src/hapiglue.js:38:1:38:38 | server2 ... ler()}) | src/hapiglue.js:38:25:38:36 | getHandler() |
|
||||
test_RouteHandler_getARequestExpr
|
||||
| src/hapi.js:13:14:15:5 | functio ... n\\n } | src/hapi.js:13:32:13:38 | request |
|
||||
| src/hapi.js:13:14:15:5 | functio ... n\\n } | src/hapi.js:13:32:13:38 | request |
|
||||
@@ -144,3 +138,9 @@ test_RouteHandler_getARequestExpr
|
||||
| src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} | src/hapiglue.js:27:3:27:9 | request |
|
||||
| src/hapiglue.js:20:1:29:1 | functio ... oken;\\n} | src/hapiglue.js:28:3:28:9 | request |
|
||||
| src/hapiglue.js:36:12:36:33 | functio ... hapi){} | src/hapiglue.js:36:22:36:24 | req |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/hapi.js:14:9:14:46 | request ... 1', '') | header1 |
|
||||
| src/hapiglue.js:14:9:14:46 | request ... 1', '') | header1 |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/hapi.js:13:14:15:5 | functio ... n\\n } | header1 | src/hapi.js:14:9:14:46 | request ... 1', '') |
|
||||
| src/hapiglue.js:13:14:15:5 | functio ... n\\n } | header1 | src/hapiglue.js:14:9:14:46 | request ... 1', '') |
|
||||
|
||||
@@ -4,164 +4,6 @@ test_RouteSetup
|
||||
| src/koa.js:30:1:45:2 | app2.us ... rl);\\n}) |
|
||||
| src/koa.js:47:1:56:2 | app2.us ... foo;\\n}) |
|
||||
| src/koa.js:59:1:61:2 | app3.us ... url;\\n}) |
|
||||
test_RequestInputAccess
|
||||
| src/koa.js:19:3:19:18 | ctx.request.body | body | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:20:3:20:23 | ctx.req ... ery.foo | parameter | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:21:3:21:17 | ctx.request.url | url | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:22:3:22:25 | ctx.req ... inalUrl | url | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:23:3:23:18 | ctx.request.href | url | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:24:3:24:24 | ctx.req ... der.bar | header | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:25:3:25:25 | ctx.req ... ers.bar | header | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:26:3:26:24 | ctx.req ... ('bar') | header | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:27:3:27:24 | ctx.coo ... ('baz') | cookie | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:33:2:33:14 | ctx.query.foo | parameter | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:34:2:34:8 | ctx.url | url | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:35:2:35:16 | ctx.originalUrl | url | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:36:2:36:9 | ctx.href | url | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:37:2:37:15 | ctx.header.bar | header | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:38:2:38:16 | ctx.headers.bar | header | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:40:2:40:15 | ctx.get('bar') | header | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:42:12:42:27 | ctx.query.target | parameter | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:49:2:49:14 | cookies.get() | cookie | src/koa.js:47:10:56:1 | async c ... .foo;\\n} |
|
||||
| src/koa.js:52:2:52:10 | query.foo | parameter | src/koa.js:47:10:56:1 | async c ... .foo;\\n} |
|
||||
| src/koa.js:55:2:55:12 | headers.foo | header | src/koa.js:47:10:56:1 | async c ... .foo;\\n} |
|
||||
| src/koa.js:60:2:60:17 | this.request.url | url | src/koa.js:59:10:61:1 | functio ... .url;\\n} |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header1 | src/koa.js:11:3:11:25 | this.se ... 1', '') |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header2 | src/koa.js:12:3:12:37 | this.re ... 2', '') |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header3 | src/koa.js:13:3:13:24 | ctx.set ... 3', '') |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header4 | src/koa.js:14:3:14:36 | ctx.res ... 4', '') |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header5 | src/koa.js:16:3:16:27 | rsp.hea ... 5', '') |
|
||||
test_HeaderDefinition_defines
|
||||
| src/koa.js:11:3:11:25 | this.se ... 1', '') | header1 | |
|
||||
| src/koa.js:12:3:12:37 | this.re ... 2', '') | header2 | |
|
||||
| src/koa.js:13:3:13:24 | ctx.set ... 3', '') | header3 | |
|
||||
| src/koa.js:14:3:14:36 | ctx.res ... 4', '') | header4 | |
|
||||
| src/koa.js:16:3:16:27 | rsp.hea ... 5', '') | header5 | |
|
||||
test_ResponseExpr
|
||||
| src/koa.js:12:3:12:15 | this.response | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:14:3:14:14 | ctx.response | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:15:7:15:24 | rsp | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:15:13:15:24 | ctx.response | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:16:3:16:5 | rsp | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:18:3:18:14 | ctx.response | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:44:2:44:13 | ctx.response | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
test_RouteHandler_getAContextExpr
|
||||
| src/koa.js:7:1:7:22 | functio ... r1() {} | src/koa.js:7:1:7:0 | this |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:10:10:10:9 | this |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:10:28:10:30 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:10:28:10:30 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:11:3:11:6 | this |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:12:3:12:6 | this |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:13:3:13:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:14:3:14:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:15:13:15:15 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:18:3:18:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:19:3:19:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:20:3:20:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:21:3:21:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:22:3:22:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:23:3:23:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:24:3:24:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:25:3:25:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:26:3:26:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:27:3:27:5 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:30:16:30:18 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:30:16:30:18 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:31:2:31:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:32:2:32:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:33:2:33:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:34:2:34:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:35:2:35:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:36:2:36:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:37:2:37:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:38:2:38:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:39:2:39:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:40:2:40:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:42:12:42:14 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:43:2:43:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:44:2:44:4 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:47:16:47:18 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:47:16:47:18 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:48:16:48:18 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:51:14:51:16 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:54:16:54:18 | ctx |
|
||||
| src/koa.js:59:10:61:1 | functio ... .url;\\n} | src/koa.js:59:10:59:9 | this |
|
||||
| src/koa.js:59:10:61:1 | functio ... .url;\\n} | src/koa.js:60:2:60:5 | this |
|
||||
test_HeaderDefinition
|
||||
| src/koa.js:11:3:11:25 | this.se ... 1', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:12:3:12:37 | this.re ... 2', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:13:3:13:24 | ctx.set ... 3', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:14:3:14:36 | ctx.res ... 4', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:16:3:16:27 | rsp.hea ... 5', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:39:2:39:15 | ctx.set('bar') | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
test_RouteSetup_getServer
|
||||
| src/koa.js:8:1:8:18 | app2.use(handler1) | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:10:1:28:2 | app2.us ... z');\\n}) | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:30:1:45:2 | app2.us ... rl);\\n}) | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:47:1:56:2 | app2.us ... foo;\\n}) | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:59:1:61:2 | app3.us ... url;\\n}) | src/koa.js:58:12:58:16 | Koa() |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/koa.js:11:3:11:25 | this.se ... 1', '') | header1 |
|
||||
| src/koa.js:12:3:12:37 | this.re ... 2', '') | header2 |
|
||||
| src/koa.js:13:3:13:24 | ctx.set ... 3', '') | header3 |
|
||||
| src/koa.js:14:3:14:36 | ctx.res ... 4', '') | header4 |
|
||||
| src/koa.js:16:3:16:27 | rsp.hea ... 5', '') | header5 |
|
||||
test_HeaderAccess
|
||||
| src/koa.js:24:3:24:24 | ctx.req ... der.bar | bar |
|
||||
| src/koa.js:25:3:25:25 | ctx.req ... ers.bar | bar |
|
||||
| src/koa.js:26:3:26:24 | ctx.req ... ('bar') | bar |
|
||||
| src/koa.js:37:2:37:15 | ctx.header.bar | bar |
|
||||
| src/koa.js:38:2:38:16 | ctx.headers.bar | bar |
|
||||
| src/koa.js:40:2:40:15 | ctx.get('bar') | bar |
|
||||
| src/koa.js:55:2:55:12 | headers.foo | foo |
|
||||
test_RouteHandler_getAResponseExpr
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:12:3:12:15 | this.response |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:14:3:14:14 | ctx.response |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:15:7:15:24 | rsp |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:15:13:15:24 | ctx.response |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:16:3:16:5 | rsp |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:18:3:18:14 | ctx.response |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:44:2:44:13 | ctx.response |
|
||||
test_ResponseSendArgument
|
||||
| src/koa.js:18:23:18:23 | x | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:31:13:31:13 | x | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
test_RouteSetup_getARouteHandler
|
||||
| src/koa.js:8:1:8:18 | app2.use(handler1) | src/koa.js:7:1:7:22 | functio ... r1() {} |
|
||||
| src/koa.js:10:1:28:2 | app2.us ... z');\\n}) | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:30:1:45:2 | app2.us ... rl);\\n}) | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:47:1:56:2 | app2.us ... foo;\\n}) | src/koa.js:47:10:56:1 | async c ... .foo;\\n} |
|
||||
| src/koa.js:59:1:61:2 | app3.us ... url;\\n}) | src/koa.js:59:10:61:1 | functio ... .url;\\n} |
|
||||
test_AppDefinition
|
||||
| src/koa.js:2:12:2:33 | new (re ... oa'))() |
|
||||
| src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:58:12:58:16 | Koa() |
|
||||
test_RouteHandler
|
||||
| src/koa.js:7:1:7:22 | functio ... r1() {} | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:59:10:61:1 | functio ... .url;\\n} | src/koa.js:58:12:58:16 | Koa() |
|
||||
test_RequestExpr
|
||||
| src/koa.js:19:3:19:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:20:3:20:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:21:3:21:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:22:3:22:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:23:3:23:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:24:3:24:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:25:3:25:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:26:3:26:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:60:2:60:13 | this.request | src/koa.js:59:10:61:1 | functio ... .url;\\n} |
|
||||
test_RouteHandler_getARequestExpr
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:19:3:19:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:20:3:20:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:21:3:21:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:22:3:22:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:23:3:23:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:24:3:24:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:25:3:25:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:26:3:26:13 | ctx.request |
|
||||
| src/koa.js:59:10:61:1 | functio ... .url;\\n} | src/koa.js:60:2:60:13 | this.request |
|
||||
test_ContextExpr
|
||||
| src/koa.js:7:1:7:0 | this | src/koa.js:7:1:7:22 | functio ... r1() {} |
|
||||
| src/koa.js:10:10:10:9 | this | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
@@ -204,6 +46,164 @@ test_ContextExpr
|
||||
| src/koa.js:54:16:54:18 | ctx | src/koa.js:47:10:56:1 | async c ... .foo;\\n} |
|
||||
| src/koa.js:59:10:59:9 | this | src/koa.js:59:10:61:1 | functio ... .url;\\n} |
|
||||
| src/koa.js:60:2:60:5 | this | src/koa.js:59:10:61:1 | functio ... .url;\\n} |
|
||||
test_RequestExpr
|
||||
| src/koa.js:19:3:19:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:20:3:20:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:21:3:21:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:22:3:22:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:23:3:23:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:24:3:24:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:25:3:25:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:26:3:26:13 | ctx.request | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:60:2:60:13 | this.request | src/koa.js:59:10:61:1 | functio ... .url;\\n} |
|
||||
test_HeaderAccess
|
||||
| src/koa.js:24:3:24:24 | ctx.req ... der.bar | bar |
|
||||
| src/koa.js:25:3:25:25 | ctx.req ... ers.bar | bar |
|
||||
| src/koa.js:26:3:26:24 | ctx.req ... ('bar') | bar |
|
||||
| src/koa.js:37:2:37:15 | ctx.header.bar | bar |
|
||||
| src/koa.js:38:2:38:16 | ctx.headers.bar | bar |
|
||||
| src/koa.js:40:2:40:15 | ctx.get('bar') | bar |
|
||||
| src/koa.js:55:2:55:12 | headers.foo | foo |
|
||||
test_ResponseExpr
|
||||
| src/koa.js:12:3:12:15 | this.response | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:14:3:14:14 | ctx.response | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:15:7:15:24 | rsp | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:15:13:15:24 | ctx.response | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:16:3:16:5 | rsp | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:18:3:18:14 | ctx.response | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:44:2:44:13 | ctx.response | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
test_RouteHandler
|
||||
| src/koa.js:7:1:7:22 | functio ... r1() {} | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:59:10:61:1 | functio ... .url;\\n} | src/koa.js:58:12:58:16 | Koa() |
|
||||
test_AppDefinition
|
||||
| src/koa.js:2:12:2:33 | new (re ... oa'))() |
|
||||
| src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:58:12:58:16 | Koa() |
|
||||
test_HeaderDefinition
|
||||
| src/koa.js:11:3:11:25 | this.se ... 1', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:12:3:12:37 | this.re ... 2', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:13:3:13:24 | ctx.set ... 3', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:14:3:14:36 | ctx.res ... 4', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:16:3:16:27 | rsp.hea ... 5', '') | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:39:2:39:15 | ctx.set('bar') | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
test_RedirectInvocation
|
||||
| src/koa.js:43:2:43:18 | ctx.redirect(url) | src/koa.js:43:15:43:17 | url | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:44:2:44:27 | ctx.res ... ct(url) | src/koa.js:44:24:44:26 | url | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
test_RequestInputAccess
|
||||
| src/koa.js:19:3:19:18 | ctx.request.body | body | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:20:3:20:23 | ctx.req ... ery.foo | parameter | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:21:3:21:17 | ctx.request.url | url | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:22:3:22:25 | ctx.req ... inalUrl | url | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:23:3:23:18 | ctx.request.href | url | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:24:3:24:24 | ctx.req ... der.bar | header | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:25:3:25:25 | ctx.req ... ers.bar | header | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:26:3:26:24 | ctx.req ... ('bar') | header | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:27:3:27:24 | ctx.coo ... ('baz') | cookie | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:33:2:33:14 | ctx.query.foo | parameter | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:34:2:34:8 | ctx.url | url | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:35:2:35:16 | ctx.originalUrl | url | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:36:2:36:9 | ctx.href | url | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:37:2:37:15 | ctx.header.bar | header | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:38:2:38:16 | ctx.headers.bar | header | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:40:2:40:15 | ctx.get('bar') | header | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:42:12:42:27 | ctx.query.target | parameter | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:49:2:49:14 | cookies.get() | cookie | src/koa.js:47:10:56:1 | async c ... .foo;\\n} |
|
||||
| src/koa.js:52:2:52:10 | query.foo | parameter | src/koa.js:47:10:56:1 | async c ... .foo;\\n} |
|
||||
| src/koa.js:55:2:55:12 | headers.foo | header | src/koa.js:47:10:56:1 | async c ... .foo;\\n} |
|
||||
| src/koa.js:60:2:60:17 | this.request.url | url | src/koa.js:59:10:61:1 | functio ... .url;\\n} |
|
||||
test_ResponseSendArgument
|
||||
| src/koa.js:18:23:18:23 | x | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:31:13:31:13 | x | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
test_RouteSetup_getServer
|
||||
| src/koa.js:8:1:8:18 | app2.use(handler1) | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:10:1:28:2 | app2.us ... z');\\n}) | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:30:1:45:2 | app2.us ... rl);\\n}) | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:47:1:56:2 | app2.us ... foo;\\n}) | src/koa.js:5:12:5:20 | new Koa() |
|
||||
| src/koa.js:59:1:61:2 | app3.us ... url;\\n}) | src/koa.js:58:12:58:16 | Koa() |
|
||||
test_HeaderDefinition_defines
|
||||
| src/koa.js:11:3:11:25 | this.se ... 1', '') | header1 | |
|
||||
| src/koa.js:12:3:12:37 | this.re ... 2', '') | header2 | |
|
||||
| src/koa.js:13:3:13:24 | ctx.set ... 3', '') | header3 | |
|
||||
| src/koa.js:14:3:14:36 | ctx.res ... 4', '') | header4 | |
|
||||
| src/koa.js:16:3:16:27 | rsp.hea ... 5', '') | header5 | |
|
||||
test_RouteSetup_getARouteHandler
|
||||
| src/koa.js:8:1:8:18 | app2.use(handler1) | src/koa.js:7:1:7:22 | functio ... r1() {} |
|
||||
| src/koa.js:10:1:28:2 | app2.us ... z');\\n}) | src/koa.js:10:10:28:1 | functio ... az');\\n} |
|
||||
| src/koa.js:30:1:45:2 | app2.us ... rl);\\n}) | src/koa.js:30:10:45:1 | async c ... url);\\n} |
|
||||
| src/koa.js:47:1:56:2 | app2.us ... foo;\\n}) | src/koa.js:47:10:56:1 | async c ... .foo;\\n} |
|
||||
| src/koa.js:59:1:61:2 | app3.us ... url;\\n}) | src/koa.js:59:10:61:1 | functio ... .url;\\n} |
|
||||
test_RouteHandler_getAContextExpr
|
||||
| src/koa.js:7:1:7:22 | functio ... r1() {} | src/koa.js:7:1:7:0 | this |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:10:10:10:9 | this |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:10:28:10:30 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:10:28:10:30 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:11:3:11:6 | this |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:12:3:12:6 | this |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:13:3:13:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:14:3:14:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:15:13:15:15 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:18:3:18:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:19:3:19:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:20:3:20:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:21:3:21:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:22:3:22:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:23:3:23:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:24:3:24:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:25:3:25:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:26:3:26:5 | ctx |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:27:3:27:5 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:30:16:30:18 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:30:16:30:18 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:31:2:31:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:32:2:32:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:33:2:33:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:34:2:34:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:35:2:35:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:36:2:36:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:37:2:37:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:38:2:38:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:39:2:39:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:40:2:40:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:42:12:42:14 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:43:2:43:4 | ctx |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:44:2:44:4 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:47:16:47:18 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:47:16:47:18 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:48:16:48:18 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:51:14:51:16 | ctx |
|
||||
| src/koa.js:47:10:56:1 | async c ... .foo;\\n} | src/koa.js:54:16:54:18 | ctx |
|
||||
| src/koa.js:59:10:61:1 | functio ... .url;\\n} | src/koa.js:59:10:59:9 | this |
|
||||
| src/koa.js:59:10:61:1 | functio ... .url;\\n} | src/koa.js:60:2:60:5 | this |
|
||||
test_RouteHandler_getARequestExpr
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:19:3:19:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:20:3:20:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:21:3:21:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:22:3:22:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:23:3:23:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:24:3:24:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:25:3:25:13 | ctx.request |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:26:3:26:13 | ctx.request |
|
||||
| src/koa.js:59:10:61:1 | functio ... .url;\\n} | src/koa.js:60:2:60:13 | this.request |
|
||||
test_RouteHandler_getAResponseExpr
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:12:3:12:15 | this.response |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:14:3:14:14 | ctx.response |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:15:7:15:24 | rsp |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:15:13:15:24 | ctx.response |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:16:3:16:5 | rsp |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | src/koa.js:18:3:18:14 | ctx.response |
|
||||
| src/koa.js:30:10:45:1 | async c ... url);\\n} | src/koa.js:44:2:44:13 | ctx.response |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/koa.js:11:3:11:25 | this.se ... 1', '') | header1 |
|
||||
| src/koa.js:12:3:12:37 | this.re ... 2', '') | header2 |
|
||||
| src/koa.js:13:3:13:24 | ctx.set ... 3', '') | header3 |
|
||||
| src/koa.js:14:3:14:36 | ctx.res ... 4', '') | header4 |
|
||||
| src/koa.js:16:3:16:27 | rsp.hea ... 5', '') | header5 |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header1 | src/koa.js:11:3:11:25 | this.se ... 1', '') |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header2 | src/koa.js:12:3:12:37 | this.re ... 2', '') |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header3 | src/koa.js:13:3:13:24 | ctx.set ... 3', '') |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header4 | src/koa.js:14:3:14:36 | ctx.res ... 4', '') |
|
||||
| src/koa.js:10:10:28:1 | functio ... az');\\n} | header5 | src/koa.js:16:3:16:27 | rsp.hea ... 5', '') |
|
||||
|
||||
@@ -2,67 +2,6 @@ test_RouteSetup
|
||||
| src/test.js:7:1:7:26 | server2 ... ndler1) |
|
||||
| src/test.js:9:1:11:2 | server2 ... tion\\n}) |
|
||||
| src/test.js:12:1:22:2 | server2 ... kie;\\n}) |
|
||||
test_RequestInputAccess
|
||||
| src/test.js:14:5:14:26 | request ... y().foo | parameter | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:15:5:15:18 | request.href() | url | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:16:5:16:21 | request.getPath() | url | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:17:5:17:28 | request ... tType() | header | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:18:5:18:23 | request.userAgent() | header | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:19:5:19:26 | request ... ('bar') | header | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:20:5:20:25 | request ... ('baz') | header | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | content-type | src/test.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | content-type | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | header1 | src/test.js:10:5:10:34 | respons ... 1', '') |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | content-type | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | header2 | src/test.js:13:5:13:37 | respons ... 2', '') |
|
||||
test_HeaderDefinition_defines
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | content-type | application/json |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | content-type | application/json |
|
||||
| src/test.js:10:5:10:34 | respons ... 1', '') | header1 | |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | content-type | application/json |
|
||||
| src/test.js:13:5:13:37 | respons ... 2', '') | header2 | |
|
||||
test_ResponseExpr
|
||||
| src/test.js:9:46:9:53 | response | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:9:46:9:53 | response | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:10:5:10:12 | response | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:12:46:12:53 | response | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:12:46:12:53 | response | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:13:5:13:12 | response | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
test_HeaderDefinition
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | src/test.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:10:5:10:34 | respons ... 1', '') | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:13:5:13:37 | respons ... 2', '') | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
test_RouteSetup_getServer
|
||||
| src/test.js:7:1:7:26 | server2 ... ndler1) | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
| src/test.js:9:1:11:2 | server2 ... tion\\n}) | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
| src/test.js:12:1:22:2 | server2 ... kie;\\n}) | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | content-type |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | content-type |
|
||||
| src/test.js:10:5:10:34 | respons ... 1', '') | header1 |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | content-type |
|
||||
| src/test.js:13:5:13:37 | respons ... 2', '') | header2 |
|
||||
test_ServerDefinition
|
||||
| src/test.js:1:15:1:47 | require ... erver() |
|
||||
| src/test.js:4:15:4:36 | restify ... erver() |
|
||||
test_RouteHandler_getAResponseExpr
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:9:46:9:53 | response |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:9:46:9:53 | response |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:10:5:10:12 | response |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:12:46:12:53 | response |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:12:46:12:53 | response |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:13:5:13:12 | response |
|
||||
test_RouteSetup_getARouteHandler
|
||||
| src/test.js:7:1:7:26 | server2 ... ndler1) | src/test.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/test.js:9:1:11:2 | server2 ... tion\\n}) | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:12:1:22:2 | server2 ... kie;\\n}) | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
test_RouteHandler
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
test_RequestExpr
|
||||
| src/test.js:9:37:9:43 | request | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:12:37:12:43 | request | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
@@ -75,6 +14,48 @@ test_RequestExpr
|
||||
| src/test.js:19:5:19:11 | request | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:20:5:20:11 | request | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:21:5:21:11 | request | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
test_ResponseExpr
|
||||
| src/test.js:9:46:9:53 | response | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:9:46:9:53 | response | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:10:5:10:12 | response | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:12:46:12:53 | response | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:12:46:12:53 | response | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:13:5:13:12 | response | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
test_RouteHandler
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
test_HeaderDefinition
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | src/test.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:10:5:10:34 | respons ... 1', '') | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:13:5:13:37 | respons ... 2', '') | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
test_ServerDefinition
|
||||
| src/test.js:1:15:1:47 | require ... erver() |
|
||||
| src/test.js:4:15:4:36 | restify ... erver() |
|
||||
test_RequestInputAccess
|
||||
| src/test.js:14:5:14:26 | request ... y().foo | parameter | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:15:5:15:18 | request.href() | url | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:16:5:16:21 | request.getPath() | url | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:17:5:17:28 | request ... tType() | header | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:18:5:18:23 | request.userAgent() | header | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:19:5:19:26 | request ... ('bar') | header | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:20:5:20:25 | request ... ('baz') | header | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
test_RouteSetup_getServer
|
||||
| src/test.js:7:1:7:26 | server2 ... ndler1) | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
| src/test.js:9:1:11:2 | server2 ... tion\\n}) | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
| src/test.js:12:1:22:2 | server2 ... kie;\\n}) | src/test.js:4:15:4:36 | restify ... erver() |
|
||||
test_HeaderDefinition_defines
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | content-type | application/json |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | content-type | application/json |
|
||||
| src/test.js:10:5:10:34 | respons ... 1', '') | header1 | |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | content-type | application/json |
|
||||
| src/test.js:13:5:13:37 | respons ... 2', '') | header2 | |
|
||||
test_RouteSetup_getARouteHandler
|
||||
| src/test.js:7:1:7:26 | server2 ... ndler1) | src/test.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/test.js:9:1:11:2 | server2 ... tion\\n}) | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:12:1:22:2 | server2 ... kie;\\n}) | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
test_RouteHandler_getARequestExpr
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:9:37:9:43 | request |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:12:37:12:43 | request |
|
||||
@@ -87,3 +68,22 @@ test_RouteHandler_getARequestExpr
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:19:5:19:11 | request |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:20:5:20:11 | request |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:21:5:21:11 | request |
|
||||
test_RouteHandler_getAResponseExpr
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:9:46:9:53 | response |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:9:46:9:53 | response |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | src/test.js:10:5:10:12 | response |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:12:46:12:53 | response |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:12:46:12:53 | response |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | src/test.js:13:5:13:12 | response |
|
||||
test_HeaderDefinition_getAHeaderName
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | content-type |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | content-type |
|
||||
| src/test.js:10:5:10:34 | respons ... 1', '') | header1 |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | content-type |
|
||||
| src/test.js:13:5:13:37 | respons ... 2', '') | header2 |
|
||||
test_RouteHandler_getAResponseHeader
|
||||
| src/test.js:6:1:6:21 | functio ... er1(){} | content-type | src/test.js:6:1:6:21 | functio ... er1(){} |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | content-type | src/test.js:9:19:11:1 | functio ... ition\\n} |
|
||||
| src/test.js:9:19:11:1 | functio ... ition\\n} | header1 | src/test.js:10:5:10:34 | respons ... 1', '') |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | content-type | src/test.js:12:19:22:1 | functio ... okie;\\n} |
|
||||
| src/test.js:12:19:22:1 | functio ... okie;\\n} | header2 | src/test.js:13:5:13:37 | respons ... 2', '') |
|
||||
|
||||
@@ -1,12 +1,105 @@
|
||||
test_LetStmt
|
||||
| legacyletstmt.js:1:1:3:1 | let (x ... + y);\\n} | 0 | legacyletstmt.js:1:6:1:11 | x = 23 | legacyletstmt.js:1:22:3:1 | {\\n con ... + y);\\n} |
|
||||
| legacyletstmt.js:1:1:3:1 | let (x ... + y);\\n} | 1 | legacyletstmt.js:1:14:1:19 | y = 19 | legacyletstmt.js:1:22:3:1 | {\\n con ... + y);\\n} |
|
||||
test_LineTerminators
|
||||
| conditionals.js:12:1:12:1 | } |
|
||||
| functions.js:9:1:9:1 | } |
|
||||
| loops.js:22:1:22:18 | for (x = 0 in xs); |
|
||||
| others.js:4:1:4:14 | var x = 23, y; |
|
||||
| try.js:5:1:5:29 | try {} catch(x) {} finally {} |
|
||||
test_getGuard
|
||||
| guardedCatch.js:4:4:6:2 | catch ( ... !");\\n\\t} | guardedCatch.js:4:16:4:33 | e instanceof Error |
|
||||
test_Containers
|
||||
| conditionals.js:1:1:2:5 | if (true)\\n ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:2:5:2:5 | ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:3:1:6:5 | if (b)\\n ... e\\n ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:4:5:4:5 | ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:6:5:6:5 | ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:7:1:12:1 | switch ... ault:\\n} | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:8:1:8:8 | case 23: | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:9:1:10:10 | case c:\\n break; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:10:5:10:10 | break; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:11:1:11:8 | default: | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| es2015.js:1:1:2:16 | for (va ... log(x); | es2015.js:1:1:3:0 | <toplevel> |
|
||||
| es2015.js:1:6:1:10 | var x | es2015.js:1:1:3:0 | <toplevel> |
|
||||
| es2015.js:2:2:2:16 | console.log(x); | es2015.js:1:1:3:0 | <toplevel> |
|
||||
| foreach.js:1:1:1:12 | var sum = 0; | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:2:1:2:42 | var obj ... p3: 8}; | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:4:1:6:1 | for eac ... item;\\n} | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:4:11:4:18 | var item | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:4:28:6:1 | {\\n sum += item;\\n} | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:5:3:5:14 | sum += item; | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:8:1:8:17 | console.log(sum); | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| functions.js:1:1:3:1 | functio ... x+y;\\n} | functions.js:1:1:9:1 | <toplevel> |
|
||||
| functions.js:1:18:3:1 | {\\n return x+y;\\n} | functions.js:1:1:3:1 | functio ... x+y;\\n} |
|
||||
| functions.js:2:5:2:15 | return x+y; | functions.js:1:1:3:1 | functio ... x+y;\\n} |
|
||||
| functions.js:5:1:5:15 | function h() {} | functions.js:1:1:9:1 | <toplevel> |
|
||||
| functions.js:5:14:5:15 | {} | functions.js:5:1:5:15 | function h() {} |
|
||||
| functions.js:7:1:9:1 | k = fun ... turn;\\n} | functions.js:1:1:9:1 | <toplevel> |
|
||||
| functions.js:7:16:9:1 | {\\n return;\\n} | functions.js:7:5:9:1 | functio ... turn;\\n} |
|
||||
| functions.js:8:5:8:11 | return; | functions.js:7:5:9:1 | functio ... turn;\\n} |
|
||||
| guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} | guardedCatch.js:1:1:10:0 | <toplevel> |
|
||||
| guardedCatch.js:1:15:9:1 | {\\n\\ttry ... );\\n\\t}\\n} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:2:2:8:2 | try {\\n\\t ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:2:6:4:2 | {\\n\\t\\tg();\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:3:3:3:6 | g(); | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:4:4:6:2 | catch ( ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:4:36:6:2 | {\\n\\t\\tcon ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:5:3:5:24 | console ... ror!"); | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:6:4:8:2 | catch ( ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:6:14:8:2 | {\\n\\t\\tcon ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:7:3:7:33 | console ... lse!"); | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| jscript.js:1:1:1:28 | functio ... ad() {} | jscript.js:1:1:4:0 | <toplevel> |
|
||||
| jscript.js:1:27:1:28 | {} | jscript.js:1:1:1:28 | functio ... ad() {} |
|
||||
| jscript.js:3:1:3:36 | window. ... ad() {} | jscript.js:1:1:4:0 | <toplevel> |
|
||||
| jscript.js:3:35:3:36 | {} | jscript.js:3:17:3:36 | function onload() {} |
|
||||
| legacyletstmt.js:1:1:3:1 | let (x ... + y);\\n} | legacyletstmt.js:1:1:4:0 | <toplevel> |
|
||||
| legacyletstmt.js:1:22:3:1 | {\\n con ... + y);\\n} | legacyletstmt.js:1:1:4:0 | <toplevel> |
|
||||
| legacyletstmt.js:2:3:2:21 | console.log(x + y); | legacyletstmt.js:1:1:4:0 | <toplevel> |
|
||||
| loops.js:1:1:2:5 | while(true)\\n ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:2:5:2:5 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:3:1:11:1 | outer: ... inue;\\n} | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:3:8:11:1 | for(a; ... inue;\\n} | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:3:21:11:1 | {\\n f ... inue;\\n} | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:4:5:10:21 | for(;;) ... ntinue; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:5:9:10:21 | if (d)\\n ... ntinue; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:6:13:6:27 | continue outer; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:7:14:10:21 | if (e)\\n ... ntinue; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:8:13:8:24 | break outer; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:10:13:10:21 | continue; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:13:1:15:11 | do {\\n ... ile(a); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:13:4:15:1 | {\\n ;\\n} | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:14:5:14:5 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:17:1:17:29 | for (va ... ; ++i); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:17:6:17:17 | var i=0,n=10 | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:17:29:17:29 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:19:1:19:18 | for (var x in xs); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:19:6:19:10 | var x | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:19:18:19:18 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:20:1:20:14 | for (x in xs); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:20:14:20:14 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:21:1:21:16 | for (x.f in xs); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:21:16:21:16 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:22:1:22:18 | for (x = 0 in xs); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:22:18:22:18 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| others.js:1:1:2:1 | with(a) {\\n} | others.js:1:1:4:14 | <toplevel> |
|
||||
| others.js:1:9:2:1 | {\\n} | others.js:1:1:4:14 | <toplevel> |
|
||||
| others.js:3:1:3:9 | debugger; | others.js:1:1:4:14 | <toplevel> |
|
||||
| others.js:4:1:4:14 | var x = 23, y; | others.js:1:1:4:14 | <toplevel> |
|
||||
| try.js:1:1:3:16 | try {\\n ... ) { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:1:5:3:1 | {\\n throw "!";\\n} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:2:5:2:14 | throw "!"; | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:3:3:3:16 | catch(x) { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:3:12:3:16 | { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:3:14:3:14 | ; | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:4:1:4:20 | try {} finally { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:4:5:4:6 | {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:4:16:4:20 | { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:4:18:4:18 | ; | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:1:5:29 | try {} ... ally {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:5:5:6 | {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:8:5:18 | catch(x) {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:17:5:18 | {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:28:5:29 | {} | try.js:1:1:5:29 | <toplevel> |
|
||||
test_JumpTargets
|
||||
| conditionals.js:10:5:10:10 | break; | (none) | conditionals.js:7:1:12:1 | switch ... ault:\\n} |
|
||||
| loops.js:6:13:6:27 | continue outer; | outer | loops.js:3:1:11:1 | outer: ... inue;\\n} |
|
||||
| loops.js:8:13:8:24 | break outer; | outer | loops.js:3:1:11:1 | outer: ... inue;\\n} |
|
||||
| loops.js:10:13:10:21 | continue; | (none) | loops.js:4:5:10:21 | for(;;) ... ntinue; |
|
||||
test_EnclosingStmt
|
||||
| conditionals.js:1:5:1:8 | true | conditionals.js:1:1:2:5 | if (true)\\n ; |
|
||||
| conditionals.js:3:5:3:5 | b | conditionals.js:3:1:6:5 | if (b)\\n ... e\\n ; |
|
||||
@@ -135,6 +228,12 @@ test_EnclosingStmt
|
||||
| try.js:2:11:2:13 | "!" | try.js:2:5:2:14 | throw "!"; |
|
||||
| try.js:3:9:3:9 | x | try.js:3:3:3:16 | catch(x) { ; } |
|
||||
| try.js:5:14:5:14 | x | try.js:5:8:5:18 | catch(x) {} |
|
||||
test_LineTerminators
|
||||
| conditionals.js:12:1:12:1 | } |
|
||||
| functions.js:9:1:9:1 | } |
|
||||
| loops.js:22:1:22:18 | for (x = 0 in xs); |
|
||||
| others.js:4:1:4:14 | var x = 23, y; |
|
||||
| try.js:5:1:5:29 | try {} catch(x) {} finally {} |
|
||||
test_NumCatchClauses
|
||||
| guardedCatch.js:2:2:8:2 | try {\\n\\t ... !");\\n\\t} | 2 |
|
||||
| try.js:1:1:3:16 | try {\\n ... ) { ; } | 1 |
|
||||
@@ -142,107 +241,8 @@ test_NumCatchClauses
|
||||
| try.js:5:1:5:29 | try {} ... ally {} | 1 |
|
||||
test_DoubleColonMethods
|
||||
| jscript.js:1:1:1:28 | functio ... ad() {} | jscript.js:1:10:1:15 | window | jscript.js:1:18:1:23 | onload | jscript.js:1:1:1:28 | functio ... ad() {} |
|
||||
test_EnhancedForDefault
|
||||
| loops.js:22:1:22:18 | for (x = 0 in xs); | loops.js:22:10:22:10 | 0 |
|
||||
test_SemicolonInsertion
|
||||
| functions.js:7:1:9:1 | k = fun ... turn;\\n} |
|
||||
| jscript.js:3:1:3:36 | window. ... ad() {} |
|
||||
test_getGuard
|
||||
| guardedCatch.js:4:4:6:2 | catch ( ... !");\\n\\t} | guardedCatch.js:4:16:4:33 | e instanceof Error |
|
||||
test_Containers
|
||||
| conditionals.js:1:1:2:5 | if (true)\\n ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:2:5:2:5 | ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:3:1:6:5 | if (b)\\n ... e\\n ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:4:5:4:5 | ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:6:5:6:5 | ; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:7:1:12:1 | switch ... ault:\\n} | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:8:1:8:8 | case 23: | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:9:1:10:10 | case c:\\n break; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:10:5:10:10 | break; | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| conditionals.js:11:1:11:8 | default: | conditionals.js:1:1:12:1 | <toplevel> |
|
||||
| es2015.js:1:1:2:16 | for (va ... log(x); | es2015.js:1:1:3:0 | <toplevel> |
|
||||
| es2015.js:1:6:1:10 | var x | es2015.js:1:1:3:0 | <toplevel> |
|
||||
| es2015.js:2:2:2:16 | console.log(x); | es2015.js:1:1:3:0 | <toplevel> |
|
||||
| foreach.js:1:1:1:12 | var sum = 0; | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:2:1:2:42 | var obj ... p3: 8}; | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:4:1:6:1 | for eac ... item;\\n} | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:4:11:4:18 | var item | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:4:28:6:1 | {\\n sum += item;\\n} | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:5:3:5:14 | sum += item; | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| foreach.js:8:1:8:17 | console.log(sum); | foreach.js:1:1:9:0 | <toplevel> |
|
||||
| functions.js:1:1:3:1 | functio ... x+y;\\n} | functions.js:1:1:9:1 | <toplevel> |
|
||||
| functions.js:1:18:3:1 | {\\n return x+y;\\n} | functions.js:1:1:3:1 | functio ... x+y;\\n} |
|
||||
| functions.js:2:5:2:15 | return x+y; | functions.js:1:1:3:1 | functio ... x+y;\\n} |
|
||||
| functions.js:5:1:5:15 | function h() {} | functions.js:1:1:9:1 | <toplevel> |
|
||||
| functions.js:5:14:5:15 | {} | functions.js:5:1:5:15 | function h() {} |
|
||||
| functions.js:7:1:9:1 | k = fun ... turn;\\n} | functions.js:1:1:9:1 | <toplevel> |
|
||||
| functions.js:7:16:9:1 | {\\n return;\\n} | functions.js:7:5:9:1 | functio ... turn;\\n} |
|
||||
| functions.js:8:5:8:11 | return; | functions.js:7:5:9:1 | functio ... turn;\\n} |
|
||||
| guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} | guardedCatch.js:1:1:10:0 | <toplevel> |
|
||||
| guardedCatch.js:1:15:9:1 | {\\n\\ttry ... );\\n\\t}\\n} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:2:2:8:2 | try {\\n\\t ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:2:6:4:2 | {\\n\\t\\tg();\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:3:3:3:6 | g(); | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:4:4:6:2 | catch ( ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:4:36:6:2 | {\\n\\t\\tcon ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:5:3:5:24 | console ... ror!"); | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:6:4:8:2 | catch ( ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:6:14:8:2 | {\\n\\t\\tcon ... !");\\n\\t} | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| guardedCatch.js:7:3:7:33 | console ... lse!"); | guardedCatch.js:1:1:9:1 | functio ... );\\n\\t}\\n} |
|
||||
| jscript.js:1:1:1:28 | functio ... ad() {} | jscript.js:1:1:4:0 | <toplevel> |
|
||||
| jscript.js:1:27:1:28 | {} | jscript.js:1:1:1:28 | functio ... ad() {} |
|
||||
| jscript.js:3:1:3:36 | window. ... ad() {} | jscript.js:1:1:4:0 | <toplevel> |
|
||||
| jscript.js:3:35:3:36 | {} | jscript.js:3:17:3:36 | function onload() {} |
|
||||
| legacyletstmt.js:1:1:3:1 | let (x ... + y);\\n} | legacyletstmt.js:1:1:4:0 | <toplevel> |
|
||||
| legacyletstmt.js:1:22:3:1 | {\\n con ... + y);\\n} | legacyletstmt.js:1:1:4:0 | <toplevel> |
|
||||
| legacyletstmt.js:2:3:2:21 | console.log(x + y); | legacyletstmt.js:1:1:4:0 | <toplevel> |
|
||||
| loops.js:1:1:2:5 | while(true)\\n ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:2:5:2:5 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:3:1:11:1 | outer: ... inue;\\n} | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:3:8:11:1 | for(a; ... inue;\\n} | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:3:21:11:1 | {\\n f ... inue;\\n} | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:4:5:10:21 | for(;;) ... ntinue; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:5:9:10:21 | if (d)\\n ... ntinue; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:6:13:6:27 | continue outer; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:7:14:10:21 | if (e)\\n ... ntinue; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:8:13:8:24 | break outer; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:10:13:10:21 | continue; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:13:1:15:11 | do {\\n ... ile(a); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:13:4:15:1 | {\\n ;\\n} | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:14:5:14:5 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:17:1:17:29 | for (va ... ; ++i); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:17:6:17:17 | var i=0,n=10 | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:17:29:17:29 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:19:1:19:18 | for (var x in xs); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:19:6:19:10 | var x | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:19:18:19:18 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:20:1:20:14 | for (x in xs); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:20:14:20:14 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:21:1:21:16 | for (x.f in xs); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:21:16:21:16 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:22:1:22:18 | for (x = 0 in xs); | loops.js:1:1:22:18 | <toplevel> |
|
||||
| loops.js:22:18:22:18 | ; | loops.js:1:1:22:18 | <toplevel> |
|
||||
| others.js:1:1:2:1 | with(a) {\\n} | others.js:1:1:4:14 | <toplevel> |
|
||||
| others.js:1:9:2:1 | {\\n} | others.js:1:1:4:14 | <toplevel> |
|
||||
| others.js:3:1:3:9 | debugger; | others.js:1:1:4:14 | <toplevel> |
|
||||
| others.js:4:1:4:14 | var x = 23, y; | others.js:1:1:4:14 | <toplevel> |
|
||||
| try.js:1:1:3:16 | try {\\n ... ) { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:1:5:3:1 | {\\n throw "!";\\n} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:2:5:2:14 | throw "!"; | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:3:3:3:16 | catch(x) { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:3:12:3:16 | { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:3:14:3:14 | ; | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:4:1:4:20 | try {} finally { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:4:5:4:6 | {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:4:16:4:20 | { ; } | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:4:18:4:18 | ; | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:1:5:29 | try {} ... ally {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:5:5:6 | {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:8:5:18 | catch(x) {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:17:5:18 | {} | try.js:1:1:5:29 | <toplevel> |
|
||||
| try.js:5:28:5:29 | {} | try.js:1:1:5:29 | <toplevel> |
|
||||
test_JumpTargets
|
||||
| conditionals.js:10:5:10:10 | break; | (none) | conditionals.js:7:1:12:1 | switch ... ault:\\n} |
|
||||
| loops.js:6:13:6:27 | continue outer; | outer | loops.js:3:1:11:1 | outer: ... inue;\\n} |
|
||||
| loops.js:8:13:8:24 | break outer; | outer | loops.js:3:1:11:1 | outer: ... inue;\\n} |
|
||||
| loops.js:10:13:10:21 | continue; | (none) | loops.js:4:5:10:21 | for(;;) ... ntinue; |
|
||||
test_EnhancedForDefault
|
||||
| loops.js:22:1:22:18 | for (x = 0 in xs); | loops.js:22:10:22:10 | 0 |
|
||||
|
||||
@@ -65,4 +65,7 @@ function f() {
|
||||
<a href="{{ url_for('foo.html', 'foo')}}" target="_blank">Example</a>;
|
||||
|
||||
// OK, nunjucks template
|
||||
<a href="{{ url('foo', query={bla}) }}" target="_blank">Example</a>
|
||||
<a href="{{ url('foo', query={bla}) }}" target="_blank">Example</a>;
|
||||
|
||||
// OK, Django application with internal links
|
||||
<a href="{% url 'admin:auth_user_changelist' %}" target="_blank">Example</a>
|
||||
|
||||
@@ -1 +1 @@
|
||||
| tst.js:1:9:1:13 | 1<<40 | Shift out of range. |
|
||||
| tst.js:1:9:1:13 | 1<<40 | Shift out of range. |
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
| tst.js:4:11:4:26 | arguments.callee | Avoid using arguments.caller and arguments.callee. |
|
||||
| tst.js:12:9:12:24 | arguments.caller | Avoid using arguments.caller and arguments.callee. |
|
||||
| tst.js:12:9:12:24 | arguments.caller | Avoid using arguments.caller and arguments.callee. |
|
||||
|
||||
@@ -1 +1 @@
|
||||
| debuggerStatement.js:2:3:2:11 | debugger; | Do not use 'debugger'. |
|
||||
| debuggerStatement.js:2:3:2:11 | debugger; | Do not use 'debugger'. |
|
||||
|
||||
@@ -1 +1 @@
|
||||
| eval.js:2:3:2:13 | eval("2+2") | Do not use eval or the Function constructor. |
|
||||
| eval.js:2:3:2:13 | eval("2+2") | Do not use eval or the Function constructor. |
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
const fs = require('fs'),
|
||||
http = require('http'),
|
||||
url = require('url');
|
||||
|
||||
const ROOT = "/var/www/";
|
||||
|
||||
var server = http.createServer(function(req, res) {
|
||||
let filePath = url.parse(req.url, true).query.path;
|
||||
|
||||
// BAD: This function uses unsanitized input that can read any file on the file system.
|
||||
res.write(fs.readFileSync(ROOT + filePath, 'utf8'));
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
const fs = require('fs'),
|
||||
http = require('http'),
|
||||
path = require('path'),
|
||||
url = require('url');
|
||||
|
||||
const ROOT = "/var/www/";
|
||||
|
||||
var server = http.createServer(function(req, res) {
|
||||
let filePath = url.parse(req.url, true).query.path;
|
||||
|
||||
// GOOD: Verify that the file path is under the root directory
|
||||
filePath = fs.realpathSync(path.resolve(ROOT, filePath));
|
||||
if (!filePath.startsWith(ROOT)) {
|
||||
res.statusCode = 403;
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
res.write(fs.readFileSync(filePath, 'utf8'));
|
||||
});
|
||||
@@ -26,8 +26,8 @@ edges
|
||||
| tst.js:19:17:19:24 | password | tst.js:19:17:19:24 | password |
|
||||
| tst.js:22:21:22:30 | secretText | tst.js:22:21:22:30 | secretText |
|
||||
#select
|
||||
| tst.js:11:17:11:26 | secretText | tst.js:3:18:3:24 | trusted | tst.js:11:17:11:26 | secretText | A broken or weak cryptographic algorithm depends on $@. | tst.js:3:18:3:24 | trusted | sensitive data from an access to trusted |
|
||||
| tst.js:11:17:11:26 | secretText | tst.js:11:17:11:26 | secretText | tst.js:11:17:11:26 | secretText | A broken or weak cryptographic algorithm depends on $@. | tst.js:11:17:11:26 | secretText | sensitive data from an access to secretText |
|
||||
| tst.js:17:17:17:25 | o.trusted | tst.js:17:17:17:25 | o.trusted | tst.js:17:17:17:25 | o.trusted | A broken or weak cryptographic algorithm depends on $@. | tst.js:17:17:17:25 | o.trusted | sensitive data from an access to trusted |
|
||||
| tst.js:22:21:22:30 | secretText | tst.js:3:18:3:24 | trusted | tst.js:22:21:22:30 | secretText | A broken or weak cryptographic algorithm depends on $@. | tst.js:3:18:3:24 | trusted | sensitive data from an access to trusted |
|
||||
| tst.js:22:21:22:30 | secretText | tst.js:22:21:22:30 | secretText | tst.js:22:21:22:30 | secretText | A broken or weak cryptographic algorithm depends on $@. | tst.js:22:21:22:30 | secretText | sensitive data from an access to secretText |
|
||||
| tst.js:11:17:11:26 | secretText | tst.js:3:18:3:24 | trusted | tst.js:11:17:11:26 | secretText | $@ depends on $@. | tst.js:5:19:5:49 | crypto. ... ', key) | A broken or weak cryptographic algorithm | tst.js:3:18:3:24 | trusted | sensitive data from an access to trusted |
|
||||
| tst.js:11:17:11:26 | secretText | tst.js:11:17:11:26 | secretText | tst.js:11:17:11:26 | secretText | $@ depends on $@. | tst.js:5:19:5:49 | crypto. ... ', key) | A broken or weak cryptographic algorithm | tst.js:11:17:11:26 | secretText | sensitive data from an access to secretText |
|
||||
| tst.js:17:17:17:25 | o.trusted | tst.js:17:17:17:25 | o.trusted | tst.js:17:17:17:25 | o.trusted | $@ depends on $@. | tst.js:5:19:5:49 | crypto. ... ', key) | A broken or weak cryptographic algorithm | tst.js:17:17:17:25 | o.trusted | sensitive data from an access to trusted |
|
||||
| tst.js:22:21:22:30 | secretText | tst.js:3:18:3:24 | trusted | tst.js:22:21:22:30 | secretText | $@ depends on $@. | tst.js:21:22:21:60 | crypto. ... ', key) | A broken or weak cryptographic algorithm | tst.js:3:18:3:24 | trusted | sensitive data from an access to trusted |
|
||||
| tst.js:22:21:22:30 | secretText | tst.js:22:21:22:30 | secretText | tst.js:22:21:22:30 | secretText | $@ depends on $@. | tst.js:21:22:21:60 | crypto. ... ', key) | A broken or weak cryptographic algorithm | tst.js:22:21:22:30 | secretText | sensitive data from an access to secretText |
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
| MissingRateLimiting.js:4:19:8:1 | functio ... ath);\\n} | This route handler performs $@, but is not rate-limited. | MissingRateLimiting.js:7:5:7:22 | res.sendFile(path) | a file system access |
|
||||
| MissingRateLimiting.js:25:19:25:20 | f1 | This route handler performs $@, but is not rate-limited. | MissingRateLimiting.js:13:5:13:22 | res.sendFile(path) | a file system access |
|
||||
| MissingRateLimiting.js:25:27:25:28 | f3 | This route handler performs $@, but is not rate-limited. | MissingRateLimiting.js:22:5:22:22 | res.sendFile(path) | a file system access |
|
||||
| tst.js:22:24:22:40 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization |
|
||||
| tst.js:35:20:35:36 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization |
|
||||
| tst.js:36:20:36:36 | expensiveHandler2 | This route handler performs $@, but is not rate-limited. | tst.js:15:40:15:73 | fs.writ ... quest") | a file system access |
|
||||
| tst.js:37:20:37:36 | expensiveHandler3 | This route handler performs $@, but is not rate-limited. | tst.js:16:40:16:70 | child_p ... /true") | a system command |
|
||||
| tst.js:38:20:38:36 | expensiveHandler4 | This route handler performs $@, but is not rate-limited. | tst.js:17:40:17:83 | connect ... ution') | a database access |
|
||||
| tst.js:64:25:64:63 | functio ... req); } | This route handler performs $@, but is not rate-limited. | tst.js:64:46:64:60 | verifyUser(req) | authorization |
|
||||
| tst.js:76:25:76:53 | catchAs ... ndler1) | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization |
|
||||
| tst.js:88:24:88:40 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization |
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user