mirror of
https://github.com/github/codeql.git
synced 2026-05-01 19:55:15 +02:00
Merge branch 'master' into csharp/autoformat
This commit is contained in:
@@ -25,6 +25,4 @@
|
||||
|
||||
## Changes to QL libraries
|
||||
|
||||
* The class `AccessorCall` (and subclasses `PropertyCall`, `IndexerCall`, and `EventCall`) have been redefined, so the expressions they represent are not necessarily the accesses themselves, but rather the expressions that give rise to the accessor calls. For example, in the property assignment `x.Prop = 0`, the call to the setter for `Prop` is no longer represented by the access `x.Prop`, but instead the whole assignment. Consequently, it is no longer safe to cast directly between `AccessorCall`s and `Access`es, and the predicate `AccessorCall::getAccess()` should be used instead.
|
||||
|
||||
## Changes to the autobuilder
|
||||
|
||||
@@ -8,6 +8,6 @@ int doFoo(Names n) { //wrong: n is passed by value (meaning the entire structure
|
||||
...
|
||||
}
|
||||
|
||||
int doBar(Names &n) { //better, only a reference is passed
|
||||
int doBar(const Names &n) { //better, only a reference is passed
|
||||
...
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* @name Large object passed by value
|
||||
* @description An object larger than 64 bytes is passed by value to a function. Passing large objects by value unnecessarily use up scarce stack space, increase the cost of calling a function and can be a security risk. Use a pointer to the object instead.
|
||||
* @description An object larger than 64 bytes is passed by value to a function. Passing large objects by value unnecessarily use up scarce stack space, increase the cost of calling a function and can be a security risk. Use a const pointer to the object instead.
|
||||
* @kind problem
|
||||
* @problem.severity warning
|
||||
* @precision high
|
||||
@@ -20,5 +20,5 @@ where f.getAParameter() = p
|
||||
and not t.getUnderlyingType() instanceof ArrayType
|
||||
and not f instanceof CopyAssignmentOperator
|
||||
select
|
||||
p, "This parameter of type $@ is " + size.toString() + " bytes - consider passing a pointer/reference instead.",
|
||||
p, "This parameter of type $@ is " + size.toString() + " bytes - consider passing a const pointer/reference instead.",
|
||||
t, t.toString()
|
||||
|
||||
@@ -159,24 +159,13 @@ private cached module Cached {
|
||||
not startsBasicBlock(i2)
|
||||
}
|
||||
|
||||
/** Gets the index of `i` in its `IRBlock`. */
|
||||
private int getMemberIndex(Instruction i) {
|
||||
startsBasicBlock(i) and
|
||||
result = 0
|
||||
or
|
||||
exists(Instruction iPrev |
|
||||
adjacentInBlock(iPrev, i) and
|
||||
result = getMemberIndex(iPrev) + 1
|
||||
)
|
||||
}
|
||||
/** Holds if `i` is the `index`th instruction the block starting with `first`. */
|
||||
private Instruction getInstructionFromFirst(Instruction first, int index) =
|
||||
shortestDistances(startsBasicBlock/1, adjacentInBlock/2)(first, result, index)
|
||||
|
||||
/** Holds if `i` is the `index`th instruction in `block`. */
|
||||
cached Instruction getInstruction(TIRBlock block, int index) {
|
||||
exists(Instruction first |
|
||||
block = MkIRBlock(first) and
|
||||
index = getMemberIndex(result) and
|
||||
adjacentInBlock*(first, result)
|
||||
)
|
||||
result = getInstructionFromFirst(getFirstInstruction(block), index)
|
||||
}
|
||||
|
||||
cached int getInstructionCount(TIRBlock block) {
|
||||
|
||||
@@ -3,31 +3,7 @@ import FunctionIR
|
||||
import cpp
|
||||
import semmle.code.cpp.ir.implementation.TempVariableTag
|
||||
private import semmle.code.cpp.ir.internal.TempVariableTag
|
||||
|
||||
private newtype TIRVariable =
|
||||
TIRAutomaticUserVariable(LocalScopeVariable var, FunctionIR funcIR) {
|
||||
exists(Function func |
|
||||
func = funcIR.getFunction() and
|
||||
(
|
||||
var.getFunction() = func or
|
||||
var.(Parameter).getCatchBlock().getEnclosingFunction() = func
|
||||
)
|
||||
)
|
||||
} or
|
||||
TIRStaticUserVariable(Variable var, FunctionIR funcIR) {
|
||||
(
|
||||
var instanceof GlobalOrNamespaceVariable or
|
||||
var instanceof MemberVariable and not var instanceof Field
|
||||
) and
|
||||
exists(VariableAccess access |
|
||||
access.getTarget() = var and
|
||||
access.getEnclosingFunction() = funcIR.getFunction()
|
||||
)
|
||||
} or
|
||||
TIRTempVariable(FunctionIR funcIR, Locatable ast, TempVariableTag tag,
|
||||
Type type) {
|
||||
Construction::hasTempVariable(funcIR.getFunction(), ast, tag, type)
|
||||
}
|
||||
private import semmle.code.cpp.ir.internal.TIRVariable
|
||||
|
||||
IRUserVariable getIRUserVariable(Function func, Variable var) {
|
||||
result.getVariable() = var and
|
||||
@@ -40,7 +16,7 @@ IRUserVariable getIRUserVariable(Function func, Variable var) {
|
||||
* generated by the AST-to-IR translation (`IRTempVariable`).
|
||||
*/
|
||||
abstract class IRVariable extends TIRVariable {
|
||||
FunctionIR funcIR;
|
||||
Function func;
|
||||
|
||||
abstract string toString();
|
||||
|
||||
@@ -72,14 +48,14 @@ abstract class IRVariable extends TIRVariable {
|
||||
* Gets the IR for the function that references this variable.
|
||||
*/
|
||||
final FunctionIR getFunctionIR() {
|
||||
result = funcIR
|
||||
result.getFunction() = func
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the function that references this variable.
|
||||
*/
|
||||
final Function getFunction() {
|
||||
result = funcIR.getFunction()
|
||||
result = func
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,7 +102,7 @@ class IRAutomaticUserVariable extends IRUserVariable, IRAutomaticVariable,
|
||||
LocalScopeVariable localVar;
|
||||
|
||||
IRAutomaticUserVariable() {
|
||||
this = TIRAutomaticUserVariable(localVar, funcIR) and
|
||||
this = TIRAutomaticUserVariable(localVar, func) and
|
||||
var = localVar
|
||||
}
|
||||
|
||||
@@ -137,7 +113,7 @@ class IRAutomaticUserVariable extends IRUserVariable, IRAutomaticVariable,
|
||||
|
||||
class IRStaticUserVariable extends IRUserVariable, TIRStaticUserVariable {
|
||||
IRStaticUserVariable() {
|
||||
this = TIRStaticUserVariable(var, funcIR)
|
||||
this = TIRStaticUserVariable(var, func)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +128,7 @@ class IRTempVariable extends IRVariable, IRAutomaticVariable, TIRTempVariable {
|
||||
Type type;
|
||||
|
||||
IRTempVariable() {
|
||||
this = TIRTempVariable(funcIR, ast, tag, type)
|
||||
this = TIRTempVariable(func, ast, tag, type)
|
||||
}
|
||||
|
||||
override final Type getType() {
|
||||
|
||||
@@ -10,8 +10,6 @@ import semmle.code.cpp.ir.implementation.Opcode
|
||||
private import semmle.code.cpp.ir.implementation.Opcode
|
||||
private import semmle.code.cpp.ir.internal.OperandTag
|
||||
|
||||
class InstructionTag = Construction::InstructionTagType;
|
||||
|
||||
module InstructionSanity {
|
||||
/**
|
||||
* Holds if the instruction `instr` should be expected to have an operand
|
||||
@@ -211,17 +209,6 @@ module InstructionSanity {
|
||||
* Represents a single operation in the IR.
|
||||
*/
|
||||
class Instruction extends Construction::TInstruction {
|
||||
Opcode opcode;
|
||||
Locatable ast;
|
||||
InstructionTag instructionTag;
|
||||
Type resultType;
|
||||
FunctionIR funcIR;
|
||||
boolean glvalue;
|
||||
|
||||
Instruction() {
|
||||
this = Construction::MkInstruction(funcIR, opcode, ast, instructionTag, resultType, glvalue)
|
||||
}
|
||||
|
||||
final string toString() {
|
||||
result = getOpcode().toString() + ": " + getAST().toString()
|
||||
}
|
||||
@@ -244,9 +231,9 @@ class Instruction extends Construction::TInstruction {
|
||||
*/
|
||||
final string getOperationString() {
|
||||
if exists(getImmediateString()) then
|
||||
result = getOperationPrefix() + opcode.toString() + "[" + getImmediateString() + "]"
|
||||
result = getOperationPrefix() + getOpcode().toString() + "[" + getImmediateString() + "]"
|
||||
else
|
||||
result = getOperationPrefix() + opcode.toString()
|
||||
result = getOperationPrefix() + getOpcode().toString()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -264,7 +251,7 @@ class Instruction extends Construction::TInstruction {
|
||||
}
|
||||
|
||||
private string getResultPrefix() {
|
||||
if resultType instanceof VoidType then
|
||||
if getResultType() instanceof VoidType then
|
||||
result = "v"
|
||||
else if hasMemoryResult() then
|
||||
if isResultModeled() then
|
||||
@@ -309,8 +296,8 @@ class Instruction extends Construction::TInstruction {
|
||||
|
||||
private string getResultTypeString() {
|
||||
exists(string valcat |
|
||||
valcat = getValueCategoryString(resultType.toString()) and
|
||||
if (resultType instanceof UnknownType and
|
||||
valcat = getValueCategoryString(getResultType().toString()) and
|
||||
if (getResultType() instanceof UnknownType and
|
||||
not isGLValue() and
|
||||
exists(getResultSize())) then (
|
||||
result = valcat + "[" + getResultSize().toString() + "]"
|
||||
@@ -378,28 +365,28 @@ class Instruction extends Construction::TInstruction {
|
||||
* Gets the function that contains this instruction.
|
||||
*/
|
||||
final Function getFunction() {
|
||||
result = funcIR.getFunction()
|
||||
result = getFunctionIR().getFunction()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the FunctionIR object that contains the IR for this instruction.
|
||||
*/
|
||||
final FunctionIR getFunctionIR() {
|
||||
result = funcIR
|
||||
result = Construction::getInstructionEnclosingFunctionIR(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the AST that caused this instruction to be generated.
|
||||
*/
|
||||
final Locatable getAST() {
|
||||
result = ast
|
||||
result = Construction::getInstructionAST(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the location of the source code for this instruction.
|
||||
*/
|
||||
final Location getLocation() {
|
||||
result = ast.getLocation()
|
||||
result = getAST().getLocation()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -421,7 +408,7 @@ class Instruction extends Construction::TInstruction {
|
||||
* instruction does not produce a result, its result type will be `VoidType`.
|
||||
*/
|
||||
final Type getResultType() {
|
||||
result = resultType
|
||||
Construction::instructionHasType(this, result, _)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -443,7 +430,7 @@ class Instruction extends Construction::TInstruction {
|
||||
* the integer value loaded from variable `x`.
|
||||
*/
|
||||
final predicate isGLValue() {
|
||||
glvalue = true
|
||||
Construction::instructionHasType(this, _, true)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -460,10 +447,10 @@ class Instruction extends Construction::TInstruction {
|
||||
result = nullptr.getSize()
|
||||
)
|
||||
)
|
||||
else if resultType instanceof UnknownType then
|
||||
else if getResultType() instanceof UnknownType then
|
||||
result = Construction::getInstructionResultSize(this)
|
||||
else (
|
||||
result = resultType.getSize()
|
||||
result = getResultType().getSize()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -471,11 +458,7 @@ class Instruction extends Construction::TInstruction {
|
||||
* Gets the opcode that specifies the operation performed by this instruction.
|
||||
*/
|
||||
final Opcode getOpcode() {
|
||||
result = opcode
|
||||
}
|
||||
|
||||
final InstructionTag getTag() {
|
||||
result = instructionTag
|
||||
result = Construction::getInstructionOpcode(this)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -644,19 +627,19 @@ class ConstantValueInstruction extends Instruction {
|
||||
|
||||
class EnterFunctionInstruction extends Instruction {
|
||||
EnterFunctionInstruction() {
|
||||
opcode instanceof Opcode::EnterFunction
|
||||
getOpcode() instanceof Opcode::EnterFunction
|
||||
}
|
||||
}
|
||||
|
||||
class VariableAddressInstruction extends VariableInstruction {
|
||||
VariableAddressInstruction() {
|
||||
opcode instanceof Opcode::VariableAddress
|
||||
getOpcode() instanceof Opcode::VariableAddress
|
||||
}
|
||||
}
|
||||
|
||||
class InitializeParameterInstruction extends VariableInstruction {
|
||||
InitializeParameterInstruction() {
|
||||
opcode instanceof Opcode::InitializeParameter
|
||||
getOpcode() instanceof Opcode::InitializeParameter
|
||||
}
|
||||
|
||||
final Parameter getParameter() {
|
||||
@@ -673,13 +656,13 @@ class InitializeParameterInstruction extends VariableInstruction {
|
||||
*/
|
||||
class InitializeThisInstruction extends Instruction {
|
||||
InitializeThisInstruction() {
|
||||
opcode instanceof Opcode::InitializeThis
|
||||
getOpcode() instanceof Opcode::InitializeThis
|
||||
}
|
||||
}
|
||||
|
||||
class FieldAddressInstruction extends FieldInstruction {
|
||||
FieldAddressInstruction() {
|
||||
opcode instanceof Opcode::FieldAddress
|
||||
getOpcode() instanceof Opcode::FieldAddress
|
||||
}
|
||||
|
||||
final Instruction getObjectAddress() {
|
||||
@@ -689,7 +672,7 @@ class FieldAddressInstruction extends FieldInstruction {
|
||||
|
||||
class UninitializedInstruction extends VariableInstruction {
|
||||
UninitializedInstruction() {
|
||||
opcode instanceof Opcode::Uninitialized
|
||||
getOpcode() instanceof Opcode::Uninitialized
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -706,25 +689,25 @@ class UninitializedInstruction extends VariableInstruction {
|
||||
|
||||
class NoOpInstruction extends Instruction {
|
||||
NoOpInstruction() {
|
||||
opcode instanceof Opcode::NoOp
|
||||
getOpcode() instanceof Opcode::NoOp
|
||||
}
|
||||
}
|
||||
|
||||
class ReturnInstruction extends Instruction {
|
||||
ReturnInstruction() {
|
||||
opcode instanceof ReturnOpcode
|
||||
getOpcode() instanceof ReturnOpcode
|
||||
}
|
||||
}
|
||||
|
||||
class ReturnVoidInstruction extends ReturnInstruction {
|
||||
ReturnVoidInstruction() {
|
||||
opcode instanceof Opcode::ReturnVoid
|
||||
getOpcode() instanceof Opcode::ReturnVoid
|
||||
}
|
||||
}
|
||||
|
||||
class ReturnValueInstruction extends ReturnInstruction {
|
||||
ReturnValueInstruction() {
|
||||
opcode instanceof Opcode::ReturnValue
|
||||
getOpcode() instanceof Opcode::ReturnValue
|
||||
}
|
||||
|
||||
final Instruction getReturnValue() {
|
||||
@@ -734,7 +717,7 @@ class ReturnValueInstruction extends ReturnInstruction {
|
||||
|
||||
class CopyInstruction extends Instruction {
|
||||
CopyInstruction() {
|
||||
opcode instanceof CopyOpcode
|
||||
getOpcode() instanceof CopyOpcode
|
||||
}
|
||||
|
||||
final Instruction getSourceValue() {
|
||||
@@ -744,13 +727,13 @@ class CopyInstruction extends Instruction {
|
||||
|
||||
class CopyValueInstruction extends CopyInstruction {
|
||||
CopyValueInstruction() {
|
||||
opcode instanceof Opcode::CopyValue
|
||||
getOpcode() instanceof Opcode::CopyValue
|
||||
}
|
||||
}
|
||||
|
||||
class LoadInstruction extends CopyInstruction {
|
||||
LoadInstruction() {
|
||||
opcode instanceof Opcode::Load
|
||||
getOpcode() instanceof Opcode::Load
|
||||
}
|
||||
|
||||
final Instruction getSourceAddress() {
|
||||
@@ -760,7 +743,7 @@ class LoadInstruction extends CopyInstruction {
|
||||
|
||||
class StoreInstruction extends CopyInstruction {
|
||||
StoreInstruction() {
|
||||
opcode instanceof Opcode::Store
|
||||
getOpcode() instanceof Opcode::Store
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -774,7 +757,7 @@ class StoreInstruction extends CopyInstruction {
|
||||
|
||||
class ConditionalBranchInstruction extends Instruction {
|
||||
ConditionalBranchInstruction() {
|
||||
opcode instanceof Opcode::ConditionalBranch
|
||||
getOpcode() instanceof Opcode::ConditionalBranch
|
||||
}
|
||||
|
||||
final Instruction getCondition() {
|
||||
@@ -792,25 +775,25 @@ class ConditionalBranchInstruction extends Instruction {
|
||||
|
||||
class ExitFunctionInstruction extends Instruction {
|
||||
ExitFunctionInstruction() {
|
||||
opcode instanceof Opcode::ExitFunction
|
||||
getOpcode() instanceof Opcode::ExitFunction
|
||||
}
|
||||
}
|
||||
|
||||
class ConstantInstruction extends ConstantValueInstruction {
|
||||
ConstantInstruction() {
|
||||
opcode instanceof Opcode::Constant
|
||||
getOpcode() instanceof Opcode::Constant
|
||||
}
|
||||
}
|
||||
|
||||
class IntegerConstantInstruction extends ConstantInstruction {
|
||||
IntegerConstantInstruction() {
|
||||
resultType instanceof IntegralType
|
||||
getResultType() instanceof IntegralType
|
||||
}
|
||||
}
|
||||
|
||||
class FloatConstantInstruction extends ConstantInstruction {
|
||||
FloatConstantInstruction() {
|
||||
resultType instanceof FloatingPointType
|
||||
getResultType() instanceof FloatingPointType
|
||||
}
|
||||
}
|
||||
|
||||
@@ -832,7 +815,7 @@ class StringConstantInstruction extends Instruction {
|
||||
|
||||
class BinaryInstruction extends Instruction {
|
||||
BinaryInstruction() {
|
||||
opcode instanceof BinaryOpcode
|
||||
getOpcode() instanceof BinaryOpcode
|
||||
}
|
||||
|
||||
final Instruction getLeftOperand() {
|
||||
@@ -855,67 +838,67 @@ class BinaryInstruction extends Instruction {
|
||||
|
||||
class AddInstruction extends BinaryInstruction {
|
||||
AddInstruction() {
|
||||
opcode instanceof Opcode::Add
|
||||
getOpcode() instanceof Opcode::Add
|
||||
}
|
||||
}
|
||||
|
||||
class SubInstruction extends BinaryInstruction {
|
||||
SubInstruction() {
|
||||
opcode instanceof Opcode::Sub
|
||||
getOpcode() instanceof Opcode::Sub
|
||||
}
|
||||
}
|
||||
|
||||
class MulInstruction extends BinaryInstruction {
|
||||
MulInstruction() {
|
||||
opcode instanceof Opcode::Mul
|
||||
getOpcode() instanceof Opcode::Mul
|
||||
}
|
||||
}
|
||||
|
||||
class DivInstruction extends BinaryInstruction {
|
||||
DivInstruction() {
|
||||
opcode instanceof Opcode::Div
|
||||
getOpcode() instanceof Opcode::Div
|
||||
}
|
||||
}
|
||||
|
||||
class RemInstruction extends BinaryInstruction {
|
||||
RemInstruction() {
|
||||
opcode instanceof Opcode::Rem
|
||||
getOpcode() instanceof Opcode::Rem
|
||||
}
|
||||
}
|
||||
|
||||
class NegateInstruction extends UnaryInstruction {
|
||||
NegateInstruction() {
|
||||
opcode instanceof Opcode::Negate
|
||||
getOpcode() instanceof Opcode::Negate
|
||||
}
|
||||
}
|
||||
|
||||
class BitAndInstruction extends BinaryInstruction {
|
||||
BitAndInstruction() {
|
||||
opcode instanceof Opcode::BitAnd
|
||||
getOpcode() instanceof Opcode::BitAnd
|
||||
}
|
||||
}
|
||||
|
||||
class BitOrInstruction extends BinaryInstruction {
|
||||
BitOrInstruction() {
|
||||
opcode instanceof Opcode::BitOr
|
||||
getOpcode() instanceof Opcode::BitOr
|
||||
}
|
||||
}
|
||||
|
||||
class BitXorInstruction extends BinaryInstruction {
|
||||
BitXorInstruction() {
|
||||
opcode instanceof Opcode::BitXor
|
||||
getOpcode() instanceof Opcode::BitXor
|
||||
}
|
||||
}
|
||||
|
||||
class ShiftLeftInstruction extends BinaryInstruction {
|
||||
ShiftLeftInstruction() {
|
||||
opcode instanceof Opcode::ShiftLeft
|
||||
getOpcode() instanceof Opcode::ShiftLeft
|
||||
}
|
||||
}
|
||||
|
||||
class ShiftRightInstruction extends BinaryInstruction {
|
||||
ShiftRightInstruction() {
|
||||
opcode instanceof Opcode::ShiftRight
|
||||
getOpcode() instanceof Opcode::ShiftRight
|
||||
}
|
||||
}
|
||||
|
||||
@@ -923,7 +906,7 @@ class PointerArithmeticInstruction extends BinaryInstruction {
|
||||
int elementSize;
|
||||
|
||||
PointerArithmeticInstruction() {
|
||||
opcode instanceof PointerArithmeticOpcode and
|
||||
getOpcode() instanceof PointerArithmeticOpcode and
|
||||
elementSize = Construction::getInstructionElementSize(this)
|
||||
}
|
||||
|
||||
@@ -938,31 +921,31 @@ class PointerArithmeticInstruction extends BinaryInstruction {
|
||||
|
||||
class PointerOffsetInstruction extends PointerArithmeticInstruction {
|
||||
PointerOffsetInstruction() {
|
||||
opcode instanceof PointerOffsetOpcode
|
||||
getOpcode() instanceof PointerOffsetOpcode
|
||||
}
|
||||
}
|
||||
|
||||
class PointerAddInstruction extends PointerOffsetInstruction {
|
||||
PointerAddInstruction() {
|
||||
opcode instanceof Opcode::PointerAdd
|
||||
getOpcode() instanceof Opcode::PointerAdd
|
||||
}
|
||||
}
|
||||
|
||||
class PointerSubInstruction extends PointerOffsetInstruction {
|
||||
PointerSubInstruction() {
|
||||
opcode instanceof Opcode::PointerSub
|
||||
getOpcode() instanceof Opcode::PointerSub
|
||||
}
|
||||
}
|
||||
|
||||
class PointerDiffInstruction extends PointerArithmeticInstruction {
|
||||
PointerDiffInstruction() {
|
||||
opcode instanceof Opcode::PointerDiff
|
||||
getOpcode() instanceof Opcode::PointerDiff
|
||||
}
|
||||
}
|
||||
|
||||
class UnaryInstruction extends Instruction {
|
||||
UnaryInstruction() {
|
||||
opcode instanceof UnaryOpcode
|
||||
getOpcode() instanceof UnaryOpcode
|
||||
}
|
||||
|
||||
final Instruction getOperand() {
|
||||
@@ -972,7 +955,7 @@ class UnaryInstruction extends Instruction {
|
||||
|
||||
class ConvertInstruction extends UnaryInstruction {
|
||||
ConvertInstruction() {
|
||||
opcode instanceof Opcode::Convert
|
||||
getOpcode() instanceof Opcode::Convert
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1024,7 +1007,7 @@ class InheritanceConversionInstruction extends UnaryInstruction {
|
||||
*/
|
||||
class ConvertToBaseInstruction extends InheritanceConversionInstruction {
|
||||
ConvertToBaseInstruction() {
|
||||
opcode instanceof Opcode::ConvertToBase
|
||||
getOpcode() instanceof Opcode::ConvertToBase
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1034,7 +1017,7 @@ class ConvertToBaseInstruction extends InheritanceConversionInstruction {
|
||||
*/
|
||||
class ConvertToVirtualBaseInstruction extends InheritanceConversionInstruction {
|
||||
ConvertToVirtualBaseInstruction() {
|
||||
opcode instanceof Opcode::ConvertToVirtualBase
|
||||
getOpcode() instanceof Opcode::ConvertToVirtualBase
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1044,37 +1027,37 @@ class ConvertToVirtualBaseInstruction extends InheritanceConversionInstruction {
|
||||
*/
|
||||
class ConvertToDerivedInstruction extends InheritanceConversionInstruction {
|
||||
ConvertToDerivedInstruction() {
|
||||
opcode instanceof Opcode::ConvertToDerived
|
||||
getOpcode() instanceof Opcode::ConvertToDerived
|
||||
}
|
||||
}
|
||||
|
||||
class BitComplementInstruction extends UnaryInstruction {
|
||||
BitComplementInstruction() {
|
||||
opcode instanceof Opcode::BitComplement
|
||||
getOpcode() instanceof Opcode::BitComplement
|
||||
}
|
||||
}
|
||||
|
||||
class LogicalNotInstruction extends UnaryInstruction {
|
||||
LogicalNotInstruction() {
|
||||
opcode instanceof Opcode::LogicalNot
|
||||
getOpcode() instanceof Opcode::LogicalNot
|
||||
}
|
||||
}
|
||||
|
||||
class CompareInstruction extends BinaryInstruction {
|
||||
CompareInstruction() {
|
||||
opcode instanceof CompareOpcode
|
||||
getOpcode() instanceof CompareOpcode
|
||||
}
|
||||
}
|
||||
|
||||
class CompareEQInstruction extends CompareInstruction {
|
||||
CompareEQInstruction() {
|
||||
opcode instanceof Opcode::CompareEQ
|
||||
getOpcode() instanceof Opcode::CompareEQ
|
||||
}
|
||||
}
|
||||
|
||||
class CompareNEInstruction extends CompareInstruction {
|
||||
CompareNEInstruction() {
|
||||
opcode instanceof Opcode::CompareNE
|
||||
getOpcode() instanceof Opcode::CompareNE
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1083,7 +1066,7 @@ class CompareNEInstruction extends CompareInstruction {
|
||||
*/
|
||||
class RelationalInstruction extends CompareInstruction {
|
||||
RelationalInstruction() {
|
||||
opcode instanceof RelationalOpcode
|
||||
getOpcode() instanceof RelationalOpcode
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1116,7 +1099,7 @@ class RelationalInstruction extends CompareInstruction {
|
||||
|
||||
class CompareLTInstruction extends RelationalInstruction {
|
||||
CompareLTInstruction() {
|
||||
opcode instanceof Opcode::CompareLT
|
||||
getOpcode() instanceof Opcode::CompareLT
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1134,7 +1117,7 @@ class CompareLTInstruction extends RelationalInstruction {
|
||||
|
||||
class CompareGTInstruction extends RelationalInstruction {
|
||||
CompareGTInstruction() {
|
||||
opcode instanceof Opcode::CompareGT
|
||||
getOpcode() instanceof Opcode::CompareGT
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1152,7 +1135,7 @@ class CompareGTInstruction extends RelationalInstruction {
|
||||
|
||||
class CompareLEInstruction extends RelationalInstruction {
|
||||
CompareLEInstruction() {
|
||||
opcode instanceof Opcode::CompareLE
|
||||
getOpcode() instanceof Opcode::CompareLE
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1170,7 +1153,7 @@ class CompareLEInstruction extends RelationalInstruction {
|
||||
|
||||
class CompareGEInstruction extends RelationalInstruction {
|
||||
CompareGEInstruction() {
|
||||
opcode instanceof Opcode::CompareGE
|
||||
getOpcode() instanceof Opcode::CompareGE
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1188,7 +1171,7 @@ class CompareGEInstruction extends RelationalInstruction {
|
||||
|
||||
class SwitchInstruction extends Instruction {
|
||||
SwitchInstruction() {
|
||||
opcode instanceof Opcode::Switch
|
||||
getOpcode() instanceof Opcode::Switch
|
||||
}
|
||||
|
||||
final Instruction getExpression() {
|
||||
@@ -1211,7 +1194,7 @@ class SwitchInstruction extends Instruction {
|
||||
*/
|
||||
class CallInstruction extends Instruction {
|
||||
CallInstruction() {
|
||||
opcode instanceof Opcode::Call
|
||||
getOpcode() instanceof Opcode::Call
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1254,7 +1237,7 @@ class CallInstruction extends Instruction {
|
||||
*/
|
||||
class SideEffectInstruction extends Instruction {
|
||||
SideEffectInstruction() {
|
||||
opcode instanceof SideEffectOpcode
|
||||
getOpcode() instanceof SideEffectOpcode
|
||||
}
|
||||
|
||||
final Instruction getPrimaryInstruction() {
|
||||
@@ -1268,7 +1251,7 @@ class SideEffectInstruction extends Instruction {
|
||||
*/
|
||||
class CallSideEffectInstruction extends SideEffectInstruction {
|
||||
CallSideEffectInstruction() {
|
||||
opcode instanceof Opcode::CallSideEffect
|
||||
getOpcode() instanceof Opcode::CallSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1282,7 +1265,7 @@ class CallSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class CallReadSideEffectInstruction extends SideEffectInstruction {
|
||||
CallReadSideEffectInstruction() {
|
||||
opcode instanceof Opcode::CallReadSideEffect
|
||||
getOpcode() instanceof Opcode::CallReadSideEffect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1291,7 +1274,7 @@ class CallReadSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class IndirectReadSideEffectInstruction extends SideEffectInstruction {
|
||||
IndirectReadSideEffectInstruction() {
|
||||
opcode instanceof Opcode::IndirectReadSideEffect
|
||||
getOpcode() instanceof Opcode::IndirectReadSideEffect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1300,7 +1283,7 @@ class IndirectReadSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class BufferReadSideEffectInstruction extends SideEffectInstruction {
|
||||
BufferReadSideEffectInstruction() {
|
||||
opcode instanceof Opcode::BufferReadSideEffect
|
||||
getOpcode() instanceof Opcode::BufferReadSideEffect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1309,7 +1292,7 @@ class BufferReadSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class IndirectWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
IndirectWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::IndirectWriteSideEffect
|
||||
getOpcode() instanceof Opcode::IndirectWriteSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1323,7 +1306,7 @@ class IndirectWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class BufferWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
BufferWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::BufferWriteSideEffect
|
||||
getOpcode() instanceof Opcode::BufferWriteSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1338,7 +1321,7 @@ class BufferWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class IndirectMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
IndirectMayWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::IndirectMayWriteSideEffect
|
||||
getOpcode() instanceof Opcode::IndirectMayWriteSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1352,7 +1335,7 @@ class IndirectMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class BufferMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
BufferMayWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::BufferMayWriteSideEffect
|
||||
getOpcode() instanceof Opcode::BufferMayWriteSideEffect
|
||||
}
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
result instanceof BufferMayMemoryAccess
|
||||
@@ -1364,7 +1347,7 @@ class BufferMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class ThrowInstruction extends Instruction {
|
||||
ThrowInstruction() {
|
||||
opcode instanceof ThrowOpcode
|
||||
getOpcode() instanceof ThrowOpcode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1373,7 +1356,7 @@ class ThrowInstruction extends Instruction {
|
||||
*/
|
||||
class ThrowValueInstruction extends ThrowInstruction {
|
||||
ThrowValueInstruction() {
|
||||
opcode instanceof Opcode::ThrowValue
|
||||
getOpcode() instanceof Opcode::ThrowValue
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1396,7 +1379,7 @@ class ThrowValueInstruction extends ThrowInstruction {
|
||||
*/
|
||||
class ReThrowInstruction extends ThrowInstruction {
|
||||
ReThrowInstruction() {
|
||||
opcode instanceof Opcode::ReThrow
|
||||
getOpcode() instanceof Opcode::ReThrow
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1405,7 +1388,7 @@ class ReThrowInstruction extends ThrowInstruction {
|
||||
*/
|
||||
class UnwindInstruction extends Instruction {
|
||||
UnwindInstruction() {
|
||||
opcode instanceof Opcode::Unwind
|
||||
getOpcode() instanceof Opcode::Unwind
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1414,7 +1397,7 @@ class UnwindInstruction extends Instruction {
|
||||
*/
|
||||
class CatchInstruction extends Instruction {
|
||||
CatchInstruction() {
|
||||
opcode instanceof CatchOpcode
|
||||
getOpcode() instanceof CatchOpcode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1425,7 +1408,7 @@ class CatchByTypeInstruction extends CatchInstruction {
|
||||
Type exceptionType;
|
||||
|
||||
CatchByTypeInstruction() {
|
||||
opcode instanceof Opcode::CatchByType and
|
||||
getOpcode() instanceof Opcode::CatchByType and
|
||||
exceptionType = Construction::getInstructionExceptionType(this)
|
||||
}
|
||||
|
||||
@@ -1446,13 +1429,13 @@ class CatchByTypeInstruction extends CatchInstruction {
|
||||
*/
|
||||
class CatchAnyInstruction extends CatchInstruction {
|
||||
CatchAnyInstruction() {
|
||||
opcode instanceof Opcode::CatchAny
|
||||
getOpcode() instanceof Opcode::CatchAny
|
||||
}
|
||||
}
|
||||
|
||||
class UnmodeledDefinitionInstruction extends Instruction {
|
||||
UnmodeledDefinitionInstruction() {
|
||||
opcode instanceof Opcode::UnmodeledDefinition
|
||||
getOpcode() instanceof Opcode::UnmodeledDefinition
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1465,7 +1448,7 @@ class UnmodeledDefinitionInstruction extends Instruction {
|
||||
*/
|
||||
class AliasedDefinitionInstruction extends Instruction {
|
||||
AliasedDefinitionInstruction() {
|
||||
opcode instanceof Opcode::AliasedDefinition
|
||||
getOpcode() instanceof Opcode::AliasedDefinition
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1475,7 +1458,7 @@ class AliasedDefinitionInstruction extends Instruction {
|
||||
|
||||
class UnmodeledUseInstruction extends Instruction {
|
||||
UnmodeledUseInstruction() {
|
||||
opcode instanceof Opcode::UnmodeledUse
|
||||
getOpcode() instanceof Opcode::UnmodeledUse
|
||||
}
|
||||
|
||||
override string getOperandsString() {
|
||||
@@ -1495,7 +1478,7 @@ class UnmodeledUseInstruction extends Instruction {
|
||||
*/
|
||||
class PhiInstruction extends Instruction {
|
||||
PhiInstruction() {
|
||||
opcode instanceof Opcode::Phi
|
||||
getOpcode() instanceof Opcode::Phi
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1547,7 +1530,7 @@ class PhiInstruction extends Instruction {
|
||||
*/
|
||||
class ChiInstruction extends Instruction {
|
||||
ChiInstruction() {
|
||||
opcode instanceof Opcode::Chi
|
||||
getOpcode() instanceof Opcode::Chi
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1577,7 +1560,7 @@ class ChiInstruction extends Instruction {
|
||||
*/
|
||||
class UnreachedInstruction extends Instruction {
|
||||
UnreachedInstruction() {
|
||||
opcode instanceof Opcode::Unreached
|
||||
getOpcode() instanceof Opcode::Unreached
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1587,6 +1570,6 @@ class UnreachedInstruction extends Instruction {
|
||||
*/
|
||||
class BuiltInInstruction extends Instruction {
|
||||
BuiltInInstruction() {
|
||||
opcode instanceof BuiltInOpcode
|
||||
getOpcode() instanceof BuiltInOpcode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,25 +14,6 @@ cached private module Cached {
|
||||
result.getFirstInstruction() = getNewInstruction(oldBlock.getFirstInstruction())
|
||||
}
|
||||
|
||||
cached newtype TInstructionTag =
|
||||
WrappedInstructionTag(OldInstruction oldInstruction) {
|
||||
not oldInstruction instanceof OldIR::PhiInstruction
|
||||
} or
|
||||
PhiTag(Alias::VirtualVariable vvar, OldBlock block) {
|
||||
hasPhiNode(vvar, block)
|
||||
} or
|
||||
ChiTag(OldInstruction oldInstruction) {
|
||||
not oldInstruction instanceof OldIR::PhiInstruction and
|
||||
hasChiNode(_, oldInstruction)
|
||||
} or
|
||||
UnreachedTag()
|
||||
|
||||
cached class InstructionTagType extends TInstructionTag {
|
||||
cached final string toString() {
|
||||
result = "Tag"
|
||||
}
|
||||
}
|
||||
|
||||
cached predicate functionHasIR(Function func) {
|
||||
exists(OldIR::FunctionIR funcIR |
|
||||
funcIR.getFunction() = func
|
||||
@@ -40,7 +21,7 @@ cached private module Cached {
|
||||
}
|
||||
|
||||
cached OldInstruction getOldInstruction(Instruction instr) {
|
||||
instr.getTag() = WrappedInstructionTag(result)
|
||||
instr = WrappedInstruction(result)
|
||||
}
|
||||
|
||||
private Instruction getNewInstruction(OldInstruction instr) {
|
||||
@@ -52,90 +33,35 @@ cached private module Cached {
|
||||
* corresponding to `instr` if there is no `Chi` node.
|
||||
*/
|
||||
private Instruction getNewFinalInstruction(OldInstruction instr) {
|
||||
result = getChiInstruction(instr)
|
||||
result = Chi(instr)
|
||||
or
|
||||
not exists(getChiInstruction(instr)) and
|
||||
not exists(Chi(instr)) and
|
||||
result = getNewInstruction(instr)
|
||||
}
|
||||
|
||||
private PhiInstruction getPhiInstruction(Function func, OldBlock oldBlock,
|
||||
Alias::VirtualVariable vvar) {
|
||||
result.getFunction() = func and
|
||||
result.getAST() = oldBlock.getFirstInstruction().getAST() and
|
||||
result.getTag() = PhiTag(vvar, oldBlock)
|
||||
}
|
||||
|
||||
private ChiInstruction getChiInstruction (OldInstruction instr) {
|
||||
hasChiNode(_, instr) and
|
||||
result.getTag() = ChiTag(instr)
|
||||
}
|
||||
|
||||
private IRVariable getNewIRVariable(OldIR::IRVariable var) {
|
||||
result.getFunction() = var.getFunction() and
|
||||
(
|
||||
exists(OldIR::IRUserVariable userVar, IRUserVariable newUserVar |
|
||||
userVar = var and
|
||||
newUserVar.getVariable() = userVar.getVariable() and
|
||||
result = newUserVar
|
||||
) or
|
||||
exists(OldIR::IRTempVariable tempVar, IRTempVariable newTempVar |
|
||||
tempVar = var and
|
||||
newTempVar.getAST() = tempVar.getAST() and
|
||||
newTempVar.getTag() = tempVar.getTag() and
|
||||
result = newTempVar
|
||||
)
|
||||
)
|
||||
// This is just a type cast. Both classes derive from the same newtype.
|
||||
result = var
|
||||
}
|
||||
|
||||
cached newtype TInstruction =
|
||||
MkInstruction(FunctionIR funcIR, Opcode opcode, Locatable ast,
|
||||
InstructionTag tag, Type resultType, boolean isGLValue) {
|
||||
hasInstruction(funcIR.getFunction(), opcode, ast, tag,
|
||||
resultType, isGLValue)
|
||||
WrappedInstruction(OldInstruction oldInstruction) {
|
||||
not oldInstruction instanceof OldIR::PhiInstruction
|
||||
} or
|
||||
Phi(OldBlock block, Alias::VirtualVariable vvar) {
|
||||
hasPhiNode(vvar, block)
|
||||
} or
|
||||
Chi(OldInstruction oldInstruction) {
|
||||
not oldInstruction instanceof OldIR::PhiInstruction and
|
||||
hasChiNode(_, oldInstruction)
|
||||
} or
|
||||
Unreached(Function function) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
function = oldInstruction.getFunction() and
|
||||
Reachability::isInfeasibleInstructionSuccessor(oldInstruction, _)
|
||||
)
|
||||
}
|
||||
|
||||
private predicate hasInstruction(Function func, Opcode opcode, Locatable ast,
|
||||
InstructionTag tag, Type resultType, boolean isGLValue) {
|
||||
exists(OldInstruction instr |
|
||||
instr.getFunction() = func and
|
||||
instr.getOpcode() = opcode and
|
||||
instr.getAST() = ast and
|
||||
WrappedInstructionTag(instr) = tag and
|
||||
instr.getResultType() = resultType and
|
||||
if instr.isGLValue() then
|
||||
isGLValue = true
|
||||
else
|
||||
isGLValue = false
|
||||
) or
|
||||
exists(OldBlock block, Alias::VirtualVariable vvar |
|
||||
hasPhiNode(vvar, block) and
|
||||
block.getFunction() = func and
|
||||
opcode instanceof Opcode::Phi and
|
||||
ast = block.getFirstInstruction().getAST() and
|
||||
tag = PhiTag(vvar, block) and
|
||||
resultType = vvar.getType() and
|
||||
isGLValue = false
|
||||
) or
|
||||
exists(OldInstruction instr, Alias::VirtualVariable vvar |
|
||||
hasChiNode(vvar, instr) and
|
||||
instr.getFunction() = func and
|
||||
opcode instanceof Opcode::Chi and
|
||||
ast = instr.getAST() and
|
||||
tag = ChiTag(instr) and
|
||||
resultType = vvar.getType() and
|
||||
isGLValue = false
|
||||
) or
|
||||
exists(OldInstruction oldInstruction |
|
||||
func = oldInstruction.getFunction() and
|
||||
Reachability::isInfeasibleInstructionSuccessor(oldInstruction, _) and
|
||||
tag = UnreachedTag() and
|
||||
opcode instanceof Opcode::Unreached and
|
||||
ast = func and
|
||||
resultType instanceof VoidType and
|
||||
isGLValue = false
|
||||
)
|
||||
}
|
||||
|
||||
cached predicate hasTempVariable(Function func, Locatable ast, TempVariableTag tag,
|
||||
Type type) {
|
||||
exists(OldIR::IRTempVariable var |
|
||||
@@ -169,7 +95,7 @@ cached private module Cached {
|
||||
if defIndex >= 0 then
|
||||
result = getNewFinalInstruction(defBlock.getInstruction(defIndex))
|
||||
else
|
||||
result = getPhiInstruction(instruction.getFunction(), defBlock, vvar)
|
||||
result = Phi(defBlock, vvar)
|
||||
)
|
||||
)
|
||||
else (
|
||||
@@ -189,7 +115,7 @@ cached private module Cached {
|
||||
else
|
||||
result = getNewInstruction(oldOperand.getDefinitionInstruction())
|
||||
) or
|
||||
instruction.getTag() = ChiTag(getOldInstruction(result)) and
|
||||
instruction = Chi(getOldInstruction(result)) and
|
||||
tag instanceof ChiPartialOperandTag
|
||||
or
|
||||
exists(FunctionIR f |
|
||||
@@ -208,21 +134,21 @@ cached private module Cached {
|
||||
OldBlock defBlock, int defRank, int defIndex, OldBlock predBlock |
|
||||
hasPhiNode(vvar, phiBlock) and
|
||||
predBlock = phiBlock.getAFeasiblePredecessor() and
|
||||
instr.getTag() = PhiTag(vvar, phiBlock) and
|
||||
instr = Phi(phiBlock, vvar) and
|
||||
newPredecessorBlock = getNewBlock(predBlock) and
|
||||
hasDefinitionAtRank(vvar, defBlock, defRank, defIndex) and
|
||||
definitionReachesEndOfBlock(vvar, defBlock, defRank, predBlock) and
|
||||
if defIndex >= 0 then
|
||||
result = getNewFinalInstruction(defBlock.getInstruction(defIndex))
|
||||
else
|
||||
result = getPhiInstruction(instr.getFunction(), defBlock, vvar)
|
||||
result = Phi(defBlock, vvar)
|
||||
)
|
||||
}
|
||||
|
||||
cached Instruction getChiInstructionTotalOperand(ChiInstruction chiInstr) {
|
||||
exists(Alias::VirtualVariable vvar, OldInstruction oldInstr, OldBlock defBlock,
|
||||
int defRank, int defIndex, OldBlock useBlock, int useRank |
|
||||
ChiTag(oldInstr) = chiInstr.getTag() and
|
||||
chiInstr = Chi(oldInstr) and
|
||||
vvar = Alias::getResultMemoryAccess(oldInstr).getVirtualVariable() and
|
||||
hasDefinitionAtRank(vvar, defBlock, defRank, defIndex) and
|
||||
hasUseAtRank(vvar, useBlock, useRank, oldInstr) and
|
||||
@@ -230,13 +156,13 @@ cached private module Cached {
|
||||
if defIndex >= 0 then
|
||||
result = getNewFinalInstruction(defBlock.getInstruction(defIndex))
|
||||
else
|
||||
result = getPhiInstruction(chiInstr.getFunction(), defBlock, vvar)
|
||||
result = Phi(defBlock, vvar)
|
||||
)
|
||||
}
|
||||
|
||||
cached Instruction getPhiInstructionBlockStart(PhiInstruction instr) {
|
||||
exists(OldBlock oldBlock |
|
||||
instr.getTag() = PhiTag(_, oldBlock) and
|
||||
instr = Phi(oldBlock, _) and
|
||||
result = getNewInstruction(oldBlock.getFirstInstruction())
|
||||
)
|
||||
}
|
||||
@@ -257,15 +183,14 @@ cached private module Cached {
|
||||
cached Instruction getInstructionSuccessor(Instruction instruction, EdgeKind kind) {
|
||||
if(hasChiNode(_, getOldInstruction(instruction)))
|
||||
then
|
||||
result = getChiInstruction(getOldInstruction(instruction)) and
|
||||
result = Chi(getOldInstruction(instruction)) and
|
||||
kind instanceof GotoEdge
|
||||
else (
|
||||
exists(OldInstruction oldInstruction |
|
||||
oldInstruction = getOldInstruction(instruction) and
|
||||
(
|
||||
if Reachability::isInfeasibleInstructionSuccessor(oldInstruction, kind) then (
|
||||
result.getTag() = UnreachedTag() and
|
||||
result.getFunction() = instruction.getFunction()
|
||||
result = Unreached(instruction.getFunction())
|
||||
)
|
||||
else (
|
||||
result = getNewInstruction(oldInstruction.getSuccessor(kind))
|
||||
@@ -273,7 +198,7 @@ cached private module Cached {
|
||||
)
|
||||
) or
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = getChiInstruction(oldInstruction) and
|
||||
instruction = Chi(oldInstruction) and
|
||||
result = getNewInstruction(oldInstruction.getSuccessor(kind))
|
||||
)
|
||||
)
|
||||
@@ -291,11 +216,88 @@ cached private module Cached {
|
||||
// `oldInstruction`, in which case the back edge should come out of the
|
||||
// chi node instead.
|
||||
if hasChiNode(_, oldInstruction)
|
||||
then instruction = getChiInstruction(oldInstruction)
|
||||
then instruction = Chi(oldInstruction)
|
||||
else instruction = getNewInstruction(oldInstruction)
|
||||
)
|
||||
}
|
||||
|
||||
cached Locatable getInstructionAST(Instruction instruction) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = WrappedInstruction(oldInstruction)
|
||||
or
|
||||
instruction = Chi(oldInstruction)
|
||||
|
|
||||
result = oldInstruction.getAST()
|
||||
)
|
||||
or
|
||||
exists(OldBlock block |
|
||||
instruction = Phi(block, _) and
|
||||
result = block.getFirstInstruction().getAST()
|
||||
)
|
||||
or
|
||||
instruction = Unreached(result)
|
||||
}
|
||||
|
||||
cached predicate instructionHasType(Instruction instruction, Type type, boolean isGLValue) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = WrappedInstruction(oldInstruction) and
|
||||
type = oldInstruction.getResultType() and
|
||||
if oldInstruction.isGLValue()
|
||||
then isGLValue = true
|
||||
else isGLValue = false
|
||||
)
|
||||
or
|
||||
exists(OldInstruction oldInstruction, Alias::VirtualVariable vvar |
|
||||
instruction = Chi(oldInstruction) and
|
||||
hasChiNode(vvar, oldInstruction) and
|
||||
type = vvar.getType() and
|
||||
isGLValue = false
|
||||
)
|
||||
or
|
||||
exists(Alias::VirtualVariable vvar |
|
||||
instruction = Phi(_, vvar) and
|
||||
type = vvar.getType() and
|
||||
isGLValue = false
|
||||
)
|
||||
or
|
||||
instruction = Unreached(_) and
|
||||
type instanceof VoidType and
|
||||
isGLValue = false
|
||||
}
|
||||
|
||||
cached Opcode getInstructionOpcode(Instruction instruction) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = WrappedInstruction(oldInstruction) and
|
||||
result = oldInstruction.getOpcode()
|
||||
)
|
||||
or
|
||||
instruction instanceof Chi and
|
||||
result instanceof Opcode::Chi
|
||||
or
|
||||
instruction instanceof Phi and
|
||||
result instanceof Opcode::Phi
|
||||
or
|
||||
instruction instanceof Unreached and
|
||||
result instanceof Opcode::Unreached
|
||||
}
|
||||
|
||||
cached FunctionIR getInstructionEnclosingFunctionIR(Instruction instruction) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = WrappedInstruction(oldInstruction)
|
||||
or
|
||||
instruction = Chi(oldInstruction)
|
||||
|
|
||||
result.getFunction() = oldInstruction.getFunction()
|
||||
)
|
||||
or
|
||||
exists(OldBlock block |
|
||||
instruction = Phi(block, _) and
|
||||
result.getFunction() = block.getFunction()
|
||||
)
|
||||
or
|
||||
instruction = Unreached(result.getFunction())
|
||||
}
|
||||
|
||||
cached IRVariable getInstructionVariable(Instruction instruction) {
|
||||
result = getNewIRVariable(getOldInstruction(instruction).(OldIR::VariableInstruction).getVariable())
|
||||
}
|
||||
@@ -346,13 +348,13 @@ cached private module Cached {
|
||||
)
|
||||
or
|
||||
exists(OldIR::Instruction oldInstruction |
|
||||
instruction.getTag() = ChiTag(oldInstruction) and
|
||||
instruction = Chi(oldInstruction) and
|
||||
result = getNewInstruction(oldInstruction)
|
||||
)
|
||||
}
|
||||
|
||||
private predicate ssa_variableUpdate(Alias::VirtualVariable vvar,
|
||||
OldInstruction instr, OldBlock block, int index) {
|
||||
OldBlock block, int index, OldInstruction instr) {
|
||||
block.getInstruction(index) = instr and
|
||||
Alias::getResultMemoryAccess(instr).getVirtualVariable() = vvar
|
||||
}
|
||||
@@ -370,11 +372,11 @@ cached private module Cached {
|
||||
}
|
||||
|
||||
private predicate defUseRank(Alias::VirtualVariable vvar, OldBlock block, int rankIndex, int index) {
|
||||
index = rank[rankIndex](int j | hasDefinition(vvar, block, j) or hasUse(vvar, _, block, j))
|
||||
index = rank[rankIndex](int j | hasDefinition(vvar, block, j) or hasUse(vvar, block, j, _))
|
||||
}
|
||||
|
||||
private predicate hasUse(Alias::VirtualVariable vvar, OldInstruction use, OldBlock block,
|
||||
int index) {
|
||||
private predicate hasUse(Alias::VirtualVariable vvar, OldBlock block, int index,
|
||||
OldInstruction use) {
|
||||
exists(Alias::MemoryAccess access |
|
||||
(
|
||||
access = Alias::getOperandMemoryAccess(use.getAnOperand())
|
||||
@@ -392,10 +394,16 @@ cached private module Cached {
|
||||
}
|
||||
|
||||
private predicate variableLiveOnEntryToBlock(Alias::VirtualVariable vvar, OldBlock block) {
|
||||
exists (int index | hasUse(vvar, _, block, index) |
|
||||
not exists (int j | ssa_variableUpdate(vvar, _, block, j) | j < index)
|
||||
) or
|
||||
(variableLiveOnExitFromBlock(vvar, block) and not ssa_variableUpdate(vvar, _, block, _))
|
||||
exists(int firstAccess |
|
||||
hasUse(vvar, block, firstAccess, _) and
|
||||
firstAccess = min(int index |
|
||||
hasUse(vvar, block, index, _)
|
||||
or
|
||||
ssa_variableUpdate(vvar, block, index, _)
|
||||
)
|
||||
)
|
||||
or
|
||||
(variableLiveOnExitFromBlock(vvar, block) and not ssa_variableUpdate(vvar, block, _, _))
|
||||
}
|
||||
|
||||
pragma[noinline]
|
||||
@@ -422,7 +430,7 @@ cached private module Cached {
|
||||
private predicate hasUseAtRank(Alias::VirtualVariable vvar, OldBlock block, int rankIndex,
|
||||
OldInstruction use) {
|
||||
exists(int index |
|
||||
hasUse(vvar, use, block, index) and
|
||||
hasUse(vvar, block, index, use) and
|
||||
defUseRank(vvar, block, rankIndex, index)
|
||||
)
|
||||
}
|
||||
@@ -535,11 +543,11 @@ cached private module CachedForDebugging {
|
||||
result = "NonSSA: " + oldInstr.getUniqueId()
|
||||
) or
|
||||
exists(Alias::VirtualVariable vvar, OldBlock phiBlock |
|
||||
instr.getTag() = PhiTag(vvar, phiBlock) and
|
||||
instr = Phi(phiBlock, vvar) and
|
||||
result = "Phi Block(" + phiBlock.getUniqueId() + "): " + vvar.getUniqueId()
|
||||
) or
|
||||
(
|
||||
instr.getTag() = UnreachedTag() and
|
||||
instr = Unreached(_) and
|
||||
result = "Unreached"
|
||||
)
|
||||
}
|
||||
|
||||
@@ -159,24 +159,13 @@ private cached module Cached {
|
||||
not startsBasicBlock(i2)
|
||||
}
|
||||
|
||||
/** Gets the index of `i` in its `IRBlock`. */
|
||||
private int getMemberIndex(Instruction i) {
|
||||
startsBasicBlock(i) and
|
||||
result = 0
|
||||
or
|
||||
exists(Instruction iPrev |
|
||||
adjacentInBlock(iPrev, i) and
|
||||
result = getMemberIndex(iPrev) + 1
|
||||
)
|
||||
}
|
||||
/** Holds if `i` is the `index`th instruction the block starting with `first`. */
|
||||
private Instruction getInstructionFromFirst(Instruction first, int index) =
|
||||
shortestDistances(startsBasicBlock/1, adjacentInBlock/2)(first, result, index)
|
||||
|
||||
/** Holds if `i` is the `index`th instruction in `block`. */
|
||||
cached Instruction getInstruction(TIRBlock block, int index) {
|
||||
exists(Instruction first |
|
||||
block = MkIRBlock(first) and
|
||||
index = getMemberIndex(result) and
|
||||
adjacentInBlock*(first, result)
|
||||
)
|
||||
result = getInstructionFromFirst(getFirstInstruction(block), index)
|
||||
}
|
||||
|
||||
cached int getInstructionCount(TIRBlock block) {
|
||||
|
||||
@@ -3,31 +3,7 @@ import FunctionIR
|
||||
import cpp
|
||||
import semmle.code.cpp.ir.implementation.TempVariableTag
|
||||
private import semmle.code.cpp.ir.internal.TempVariableTag
|
||||
|
||||
private newtype TIRVariable =
|
||||
TIRAutomaticUserVariable(LocalScopeVariable var, FunctionIR funcIR) {
|
||||
exists(Function func |
|
||||
func = funcIR.getFunction() and
|
||||
(
|
||||
var.getFunction() = func or
|
||||
var.(Parameter).getCatchBlock().getEnclosingFunction() = func
|
||||
)
|
||||
)
|
||||
} or
|
||||
TIRStaticUserVariable(Variable var, FunctionIR funcIR) {
|
||||
(
|
||||
var instanceof GlobalOrNamespaceVariable or
|
||||
var instanceof MemberVariable and not var instanceof Field
|
||||
) and
|
||||
exists(VariableAccess access |
|
||||
access.getTarget() = var and
|
||||
access.getEnclosingFunction() = funcIR.getFunction()
|
||||
)
|
||||
} or
|
||||
TIRTempVariable(FunctionIR funcIR, Locatable ast, TempVariableTag tag,
|
||||
Type type) {
|
||||
Construction::hasTempVariable(funcIR.getFunction(), ast, tag, type)
|
||||
}
|
||||
private import semmle.code.cpp.ir.internal.TIRVariable
|
||||
|
||||
IRUserVariable getIRUserVariable(Function func, Variable var) {
|
||||
result.getVariable() = var and
|
||||
@@ -40,7 +16,7 @@ IRUserVariable getIRUserVariable(Function func, Variable var) {
|
||||
* generated by the AST-to-IR translation (`IRTempVariable`).
|
||||
*/
|
||||
abstract class IRVariable extends TIRVariable {
|
||||
FunctionIR funcIR;
|
||||
Function func;
|
||||
|
||||
abstract string toString();
|
||||
|
||||
@@ -72,14 +48,14 @@ abstract class IRVariable extends TIRVariable {
|
||||
* Gets the IR for the function that references this variable.
|
||||
*/
|
||||
final FunctionIR getFunctionIR() {
|
||||
result = funcIR
|
||||
result.getFunction() = func
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the function that references this variable.
|
||||
*/
|
||||
final Function getFunction() {
|
||||
result = funcIR.getFunction()
|
||||
result = func
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,7 +102,7 @@ class IRAutomaticUserVariable extends IRUserVariable, IRAutomaticVariable,
|
||||
LocalScopeVariable localVar;
|
||||
|
||||
IRAutomaticUserVariable() {
|
||||
this = TIRAutomaticUserVariable(localVar, funcIR) and
|
||||
this = TIRAutomaticUserVariable(localVar, func) and
|
||||
var = localVar
|
||||
}
|
||||
|
||||
@@ -137,7 +113,7 @@ class IRAutomaticUserVariable extends IRUserVariable, IRAutomaticVariable,
|
||||
|
||||
class IRStaticUserVariable extends IRUserVariable, TIRStaticUserVariable {
|
||||
IRStaticUserVariable() {
|
||||
this = TIRStaticUserVariable(var, funcIR)
|
||||
this = TIRStaticUserVariable(var, func)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +128,7 @@ class IRTempVariable extends IRVariable, IRAutomaticVariable, TIRTempVariable {
|
||||
Type type;
|
||||
|
||||
IRTempVariable() {
|
||||
this = TIRTempVariable(funcIR, ast, tag, type)
|
||||
this = TIRTempVariable(func, ast, tag, type)
|
||||
}
|
||||
|
||||
override final Type getType() {
|
||||
|
||||
@@ -10,8 +10,6 @@ import semmle.code.cpp.ir.implementation.Opcode
|
||||
private import semmle.code.cpp.ir.implementation.Opcode
|
||||
private import semmle.code.cpp.ir.internal.OperandTag
|
||||
|
||||
class InstructionTag = Construction::InstructionTagType;
|
||||
|
||||
module InstructionSanity {
|
||||
/**
|
||||
* Holds if the instruction `instr` should be expected to have an operand
|
||||
@@ -211,17 +209,6 @@ module InstructionSanity {
|
||||
* Represents a single operation in the IR.
|
||||
*/
|
||||
class Instruction extends Construction::TInstruction {
|
||||
Opcode opcode;
|
||||
Locatable ast;
|
||||
InstructionTag instructionTag;
|
||||
Type resultType;
|
||||
FunctionIR funcIR;
|
||||
boolean glvalue;
|
||||
|
||||
Instruction() {
|
||||
this = Construction::MkInstruction(funcIR, opcode, ast, instructionTag, resultType, glvalue)
|
||||
}
|
||||
|
||||
final string toString() {
|
||||
result = getOpcode().toString() + ": " + getAST().toString()
|
||||
}
|
||||
@@ -244,9 +231,9 @@ class Instruction extends Construction::TInstruction {
|
||||
*/
|
||||
final string getOperationString() {
|
||||
if exists(getImmediateString()) then
|
||||
result = getOperationPrefix() + opcode.toString() + "[" + getImmediateString() + "]"
|
||||
result = getOperationPrefix() + getOpcode().toString() + "[" + getImmediateString() + "]"
|
||||
else
|
||||
result = getOperationPrefix() + opcode.toString()
|
||||
result = getOperationPrefix() + getOpcode().toString()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -264,7 +251,7 @@ class Instruction extends Construction::TInstruction {
|
||||
}
|
||||
|
||||
private string getResultPrefix() {
|
||||
if resultType instanceof VoidType then
|
||||
if getResultType() instanceof VoidType then
|
||||
result = "v"
|
||||
else if hasMemoryResult() then
|
||||
if isResultModeled() then
|
||||
@@ -309,8 +296,8 @@ class Instruction extends Construction::TInstruction {
|
||||
|
||||
private string getResultTypeString() {
|
||||
exists(string valcat |
|
||||
valcat = getValueCategoryString(resultType.toString()) and
|
||||
if (resultType instanceof UnknownType and
|
||||
valcat = getValueCategoryString(getResultType().toString()) and
|
||||
if (getResultType() instanceof UnknownType and
|
||||
not isGLValue() and
|
||||
exists(getResultSize())) then (
|
||||
result = valcat + "[" + getResultSize().toString() + "]"
|
||||
@@ -378,28 +365,28 @@ class Instruction extends Construction::TInstruction {
|
||||
* Gets the function that contains this instruction.
|
||||
*/
|
||||
final Function getFunction() {
|
||||
result = funcIR.getFunction()
|
||||
result = getFunctionIR().getFunction()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the FunctionIR object that contains the IR for this instruction.
|
||||
*/
|
||||
final FunctionIR getFunctionIR() {
|
||||
result = funcIR
|
||||
result = Construction::getInstructionEnclosingFunctionIR(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the AST that caused this instruction to be generated.
|
||||
*/
|
||||
final Locatable getAST() {
|
||||
result = ast
|
||||
result = Construction::getInstructionAST(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the location of the source code for this instruction.
|
||||
*/
|
||||
final Location getLocation() {
|
||||
result = ast.getLocation()
|
||||
result = getAST().getLocation()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -421,7 +408,7 @@ class Instruction extends Construction::TInstruction {
|
||||
* instruction does not produce a result, its result type will be `VoidType`.
|
||||
*/
|
||||
final Type getResultType() {
|
||||
result = resultType
|
||||
Construction::instructionHasType(this, result, _)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -443,7 +430,7 @@ class Instruction extends Construction::TInstruction {
|
||||
* the integer value loaded from variable `x`.
|
||||
*/
|
||||
final predicate isGLValue() {
|
||||
glvalue = true
|
||||
Construction::instructionHasType(this, _, true)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -460,10 +447,10 @@ class Instruction extends Construction::TInstruction {
|
||||
result = nullptr.getSize()
|
||||
)
|
||||
)
|
||||
else if resultType instanceof UnknownType then
|
||||
else if getResultType() instanceof UnknownType then
|
||||
result = Construction::getInstructionResultSize(this)
|
||||
else (
|
||||
result = resultType.getSize()
|
||||
result = getResultType().getSize()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -471,11 +458,7 @@ class Instruction extends Construction::TInstruction {
|
||||
* Gets the opcode that specifies the operation performed by this instruction.
|
||||
*/
|
||||
final Opcode getOpcode() {
|
||||
result = opcode
|
||||
}
|
||||
|
||||
final InstructionTag getTag() {
|
||||
result = instructionTag
|
||||
result = Construction::getInstructionOpcode(this)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -644,19 +627,19 @@ class ConstantValueInstruction extends Instruction {
|
||||
|
||||
class EnterFunctionInstruction extends Instruction {
|
||||
EnterFunctionInstruction() {
|
||||
opcode instanceof Opcode::EnterFunction
|
||||
getOpcode() instanceof Opcode::EnterFunction
|
||||
}
|
||||
}
|
||||
|
||||
class VariableAddressInstruction extends VariableInstruction {
|
||||
VariableAddressInstruction() {
|
||||
opcode instanceof Opcode::VariableAddress
|
||||
getOpcode() instanceof Opcode::VariableAddress
|
||||
}
|
||||
}
|
||||
|
||||
class InitializeParameterInstruction extends VariableInstruction {
|
||||
InitializeParameterInstruction() {
|
||||
opcode instanceof Opcode::InitializeParameter
|
||||
getOpcode() instanceof Opcode::InitializeParameter
|
||||
}
|
||||
|
||||
final Parameter getParameter() {
|
||||
@@ -673,13 +656,13 @@ class InitializeParameterInstruction extends VariableInstruction {
|
||||
*/
|
||||
class InitializeThisInstruction extends Instruction {
|
||||
InitializeThisInstruction() {
|
||||
opcode instanceof Opcode::InitializeThis
|
||||
getOpcode() instanceof Opcode::InitializeThis
|
||||
}
|
||||
}
|
||||
|
||||
class FieldAddressInstruction extends FieldInstruction {
|
||||
FieldAddressInstruction() {
|
||||
opcode instanceof Opcode::FieldAddress
|
||||
getOpcode() instanceof Opcode::FieldAddress
|
||||
}
|
||||
|
||||
final Instruction getObjectAddress() {
|
||||
@@ -689,7 +672,7 @@ class FieldAddressInstruction extends FieldInstruction {
|
||||
|
||||
class UninitializedInstruction extends VariableInstruction {
|
||||
UninitializedInstruction() {
|
||||
opcode instanceof Opcode::Uninitialized
|
||||
getOpcode() instanceof Opcode::Uninitialized
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -706,25 +689,25 @@ class UninitializedInstruction extends VariableInstruction {
|
||||
|
||||
class NoOpInstruction extends Instruction {
|
||||
NoOpInstruction() {
|
||||
opcode instanceof Opcode::NoOp
|
||||
getOpcode() instanceof Opcode::NoOp
|
||||
}
|
||||
}
|
||||
|
||||
class ReturnInstruction extends Instruction {
|
||||
ReturnInstruction() {
|
||||
opcode instanceof ReturnOpcode
|
||||
getOpcode() instanceof ReturnOpcode
|
||||
}
|
||||
}
|
||||
|
||||
class ReturnVoidInstruction extends ReturnInstruction {
|
||||
ReturnVoidInstruction() {
|
||||
opcode instanceof Opcode::ReturnVoid
|
||||
getOpcode() instanceof Opcode::ReturnVoid
|
||||
}
|
||||
}
|
||||
|
||||
class ReturnValueInstruction extends ReturnInstruction {
|
||||
ReturnValueInstruction() {
|
||||
opcode instanceof Opcode::ReturnValue
|
||||
getOpcode() instanceof Opcode::ReturnValue
|
||||
}
|
||||
|
||||
final Instruction getReturnValue() {
|
||||
@@ -734,7 +717,7 @@ class ReturnValueInstruction extends ReturnInstruction {
|
||||
|
||||
class CopyInstruction extends Instruction {
|
||||
CopyInstruction() {
|
||||
opcode instanceof CopyOpcode
|
||||
getOpcode() instanceof CopyOpcode
|
||||
}
|
||||
|
||||
final Instruction getSourceValue() {
|
||||
@@ -744,13 +727,13 @@ class CopyInstruction extends Instruction {
|
||||
|
||||
class CopyValueInstruction extends CopyInstruction {
|
||||
CopyValueInstruction() {
|
||||
opcode instanceof Opcode::CopyValue
|
||||
getOpcode() instanceof Opcode::CopyValue
|
||||
}
|
||||
}
|
||||
|
||||
class LoadInstruction extends CopyInstruction {
|
||||
LoadInstruction() {
|
||||
opcode instanceof Opcode::Load
|
||||
getOpcode() instanceof Opcode::Load
|
||||
}
|
||||
|
||||
final Instruction getSourceAddress() {
|
||||
@@ -760,7 +743,7 @@ class LoadInstruction extends CopyInstruction {
|
||||
|
||||
class StoreInstruction extends CopyInstruction {
|
||||
StoreInstruction() {
|
||||
opcode instanceof Opcode::Store
|
||||
getOpcode() instanceof Opcode::Store
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -774,7 +757,7 @@ class StoreInstruction extends CopyInstruction {
|
||||
|
||||
class ConditionalBranchInstruction extends Instruction {
|
||||
ConditionalBranchInstruction() {
|
||||
opcode instanceof Opcode::ConditionalBranch
|
||||
getOpcode() instanceof Opcode::ConditionalBranch
|
||||
}
|
||||
|
||||
final Instruction getCondition() {
|
||||
@@ -792,25 +775,25 @@ class ConditionalBranchInstruction extends Instruction {
|
||||
|
||||
class ExitFunctionInstruction extends Instruction {
|
||||
ExitFunctionInstruction() {
|
||||
opcode instanceof Opcode::ExitFunction
|
||||
getOpcode() instanceof Opcode::ExitFunction
|
||||
}
|
||||
}
|
||||
|
||||
class ConstantInstruction extends ConstantValueInstruction {
|
||||
ConstantInstruction() {
|
||||
opcode instanceof Opcode::Constant
|
||||
getOpcode() instanceof Opcode::Constant
|
||||
}
|
||||
}
|
||||
|
||||
class IntegerConstantInstruction extends ConstantInstruction {
|
||||
IntegerConstantInstruction() {
|
||||
resultType instanceof IntegralType
|
||||
getResultType() instanceof IntegralType
|
||||
}
|
||||
}
|
||||
|
||||
class FloatConstantInstruction extends ConstantInstruction {
|
||||
FloatConstantInstruction() {
|
||||
resultType instanceof FloatingPointType
|
||||
getResultType() instanceof FloatingPointType
|
||||
}
|
||||
}
|
||||
|
||||
@@ -832,7 +815,7 @@ class StringConstantInstruction extends Instruction {
|
||||
|
||||
class BinaryInstruction extends Instruction {
|
||||
BinaryInstruction() {
|
||||
opcode instanceof BinaryOpcode
|
||||
getOpcode() instanceof BinaryOpcode
|
||||
}
|
||||
|
||||
final Instruction getLeftOperand() {
|
||||
@@ -855,67 +838,67 @@ class BinaryInstruction extends Instruction {
|
||||
|
||||
class AddInstruction extends BinaryInstruction {
|
||||
AddInstruction() {
|
||||
opcode instanceof Opcode::Add
|
||||
getOpcode() instanceof Opcode::Add
|
||||
}
|
||||
}
|
||||
|
||||
class SubInstruction extends BinaryInstruction {
|
||||
SubInstruction() {
|
||||
opcode instanceof Opcode::Sub
|
||||
getOpcode() instanceof Opcode::Sub
|
||||
}
|
||||
}
|
||||
|
||||
class MulInstruction extends BinaryInstruction {
|
||||
MulInstruction() {
|
||||
opcode instanceof Opcode::Mul
|
||||
getOpcode() instanceof Opcode::Mul
|
||||
}
|
||||
}
|
||||
|
||||
class DivInstruction extends BinaryInstruction {
|
||||
DivInstruction() {
|
||||
opcode instanceof Opcode::Div
|
||||
getOpcode() instanceof Opcode::Div
|
||||
}
|
||||
}
|
||||
|
||||
class RemInstruction extends BinaryInstruction {
|
||||
RemInstruction() {
|
||||
opcode instanceof Opcode::Rem
|
||||
getOpcode() instanceof Opcode::Rem
|
||||
}
|
||||
}
|
||||
|
||||
class NegateInstruction extends UnaryInstruction {
|
||||
NegateInstruction() {
|
||||
opcode instanceof Opcode::Negate
|
||||
getOpcode() instanceof Opcode::Negate
|
||||
}
|
||||
}
|
||||
|
||||
class BitAndInstruction extends BinaryInstruction {
|
||||
BitAndInstruction() {
|
||||
opcode instanceof Opcode::BitAnd
|
||||
getOpcode() instanceof Opcode::BitAnd
|
||||
}
|
||||
}
|
||||
|
||||
class BitOrInstruction extends BinaryInstruction {
|
||||
BitOrInstruction() {
|
||||
opcode instanceof Opcode::BitOr
|
||||
getOpcode() instanceof Opcode::BitOr
|
||||
}
|
||||
}
|
||||
|
||||
class BitXorInstruction extends BinaryInstruction {
|
||||
BitXorInstruction() {
|
||||
opcode instanceof Opcode::BitXor
|
||||
getOpcode() instanceof Opcode::BitXor
|
||||
}
|
||||
}
|
||||
|
||||
class ShiftLeftInstruction extends BinaryInstruction {
|
||||
ShiftLeftInstruction() {
|
||||
opcode instanceof Opcode::ShiftLeft
|
||||
getOpcode() instanceof Opcode::ShiftLeft
|
||||
}
|
||||
}
|
||||
|
||||
class ShiftRightInstruction extends BinaryInstruction {
|
||||
ShiftRightInstruction() {
|
||||
opcode instanceof Opcode::ShiftRight
|
||||
getOpcode() instanceof Opcode::ShiftRight
|
||||
}
|
||||
}
|
||||
|
||||
@@ -923,7 +906,7 @@ class PointerArithmeticInstruction extends BinaryInstruction {
|
||||
int elementSize;
|
||||
|
||||
PointerArithmeticInstruction() {
|
||||
opcode instanceof PointerArithmeticOpcode and
|
||||
getOpcode() instanceof PointerArithmeticOpcode and
|
||||
elementSize = Construction::getInstructionElementSize(this)
|
||||
}
|
||||
|
||||
@@ -938,31 +921,31 @@ class PointerArithmeticInstruction extends BinaryInstruction {
|
||||
|
||||
class PointerOffsetInstruction extends PointerArithmeticInstruction {
|
||||
PointerOffsetInstruction() {
|
||||
opcode instanceof PointerOffsetOpcode
|
||||
getOpcode() instanceof PointerOffsetOpcode
|
||||
}
|
||||
}
|
||||
|
||||
class PointerAddInstruction extends PointerOffsetInstruction {
|
||||
PointerAddInstruction() {
|
||||
opcode instanceof Opcode::PointerAdd
|
||||
getOpcode() instanceof Opcode::PointerAdd
|
||||
}
|
||||
}
|
||||
|
||||
class PointerSubInstruction extends PointerOffsetInstruction {
|
||||
PointerSubInstruction() {
|
||||
opcode instanceof Opcode::PointerSub
|
||||
getOpcode() instanceof Opcode::PointerSub
|
||||
}
|
||||
}
|
||||
|
||||
class PointerDiffInstruction extends PointerArithmeticInstruction {
|
||||
PointerDiffInstruction() {
|
||||
opcode instanceof Opcode::PointerDiff
|
||||
getOpcode() instanceof Opcode::PointerDiff
|
||||
}
|
||||
}
|
||||
|
||||
class UnaryInstruction extends Instruction {
|
||||
UnaryInstruction() {
|
||||
opcode instanceof UnaryOpcode
|
||||
getOpcode() instanceof UnaryOpcode
|
||||
}
|
||||
|
||||
final Instruction getOperand() {
|
||||
@@ -972,7 +955,7 @@ class UnaryInstruction extends Instruction {
|
||||
|
||||
class ConvertInstruction extends UnaryInstruction {
|
||||
ConvertInstruction() {
|
||||
opcode instanceof Opcode::Convert
|
||||
getOpcode() instanceof Opcode::Convert
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1024,7 +1007,7 @@ class InheritanceConversionInstruction extends UnaryInstruction {
|
||||
*/
|
||||
class ConvertToBaseInstruction extends InheritanceConversionInstruction {
|
||||
ConvertToBaseInstruction() {
|
||||
opcode instanceof Opcode::ConvertToBase
|
||||
getOpcode() instanceof Opcode::ConvertToBase
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1034,7 +1017,7 @@ class ConvertToBaseInstruction extends InheritanceConversionInstruction {
|
||||
*/
|
||||
class ConvertToVirtualBaseInstruction extends InheritanceConversionInstruction {
|
||||
ConvertToVirtualBaseInstruction() {
|
||||
opcode instanceof Opcode::ConvertToVirtualBase
|
||||
getOpcode() instanceof Opcode::ConvertToVirtualBase
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1044,37 +1027,37 @@ class ConvertToVirtualBaseInstruction extends InheritanceConversionInstruction {
|
||||
*/
|
||||
class ConvertToDerivedInstruction extends InheritanceConversionInstruction {
|
||||
ConvertToDerivedInstruction() {
|
||||
opcode instanceof Opcode::ConvertToDerived
|
||||
getOpcode() instanceof Opcode::ConvertToDerived
|
||||
}
|
||||
}
|
||||
|
||||
class BitComplementInstruction extends UnaryInstruction {
|
||||
BitComplementInstruction() {
|
||||
opcode instanceof Opcode::BitComplement
|
||||
getOpcode() instanceof Opcode::BitComplement
|
||||
}
|
||||
}
|
||||
|
||||
class LogicalNotInstruction extends UnaryInstruction {
|
||||
LogicalNotInstruction() {
|
||||
opcode instanceof Opcode::LogicalNot
|
||||
getOpcode() instanceof Opcode::LogicalNot
|
||||
}
|
||||
}
|
||||
|
||||
class CompareInstruction extends BinaryInstruction {
|
||||
CompareInstruction() {
|
||||
opcode instanceof CompareOpcode
|
||||
getOpcode() instanceof CompareOpcode
|
||||
}
|
||||
}
|
||||
|
||||
class CompareEQInstruction extends CompareInstruction {
|
||||
CompareEQInstruction() {
|
||||
opcode instanceof Opcode::CompareEQ
|
||||
getOpcode() instanceof Opcode::CompareEQ
|
||||
}
|
||||
}
|
||||
|
||||
class CompareNEInstruction extends CompareInstruction {
|
||||
CompareNEInstruction() {
|
||||
opcode instanceof Opcode::CompareNE
|
||||
getOpcode() instanceof Opcode::CompareNE
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1083,7 +1066,7 @@ class CompareNEInstruction extends CompareInstruction {
|
||||
*/
|
||||
class RelationalInstruction extends CompareInstruction {
|
||||
RelationalInstruction() {
|
||||
opcode instanceof RelationalOpcode
|
||||
getOpcode() instanceof RelationalOpcode
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1116,7 +1099,7 @@ class RelationalInstruction extends CompareInstruction {
|
||||
|
||||
class CompareLTInstruction extends RelationalInstruction {
|
||||
CompareLTInstruction() {
|
||||
opcode instanceof Opcode::CompareLT
|
||||
getOpcode() instanceof Opcode::CompareLT
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1134,7 +1117,7 @@ class CompareLTInstruction extends RelationalInstruction {
|
||||
|
||||
class CompareGTInstruction extends RelationalInstruction {
|
||||
CompareGTInstruction() {
|
||||
opcode instanceof Opcode::CompareGT
|
||||
getOpcode() instanceof Opcode::CompareGT
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1152,7 +1135,7 @@ class CompareGTInstruction extends RelationalInstruction {
|
||||
|
||||
class CompareLEInstruction extends RelationalInstruction {
|
||||
CompareLEInstruction() {
|
||||
opcode instanceof Opcode::CompareLE
|
||||
getOpcode() instanceof Opcode::CompareLE
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1170,7 +1153,7 @@ class CompareLEInstruction extends RelationalInstruction {
|
||||
|
||||
class CompareGEInstruction extends RelationalInstruction {
|
||||
CompareGEInstruction() {
|
||||
opcode instanceof Opcode::CompareGE
|
||||
getOpcode() instanceof Opcode::CompareGE
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1188,7 +1171,7 @@ class CompareGEInstruction extends RelationalInstruction {
|
||||
|
||||
class SwitchInstruction extends Instruction {
|
||||
SwitchInstruction() {
|
||||
opcode instanceof Opcode::Switch
|
||||
getOpcode() instanceof Opcode::Switch
|
||||
}
|
||||
|
||||
final Instruction getExpression() {
|
||||
@@ -1211,7 +1194,7 @@ class SwitchInstruction extends Instruction {
|
||||
*/
|
||||
class CallInstruction extends Instruction {
|
||||
CallInstruction() {
|
||||
opcode instanceof Opcode::Call
|
||||
getOpcode() instanceof Opcode::Call
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1254,7 +1237,7 @@ class CallInstruction extends Instruction {
|
||||
*/
|
||||
class SideEffectInstruction extends Instruction {
|
||||
SideEffectInstruction() {
|
||||
opcode instanceof SideEffectOpcode
|
||||
getOpcode() instanceof SideEffectOpcode
|
||||
}
|
||||
|
||||
final Instruction getPrimaryInstruction() {
|
||||
@@ -1268,7 +1251,7 @@ class SideEffectInstruction extends Instruction {
|
||||
*/
|
||||
class CallSideEffectInstruction extends SideEffectInstruction {
|
||||
CallSideEffectInstruction() {
|
||||
opcode instanceof Opcode::CallSideEffect
|
||||
getOpcode() instanceof Opcode::CallSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1282,7 +1265,7 @@ class CallSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class CallReadSideEffectInstruction extends SideEffectInstruction {
|
||||
CallReadSideEffectInstruction() {
|
||||
opcode instanceof Opcode::CallReadSideEffect
|
||||
getOpcode() instanceof Opcode::CallReadSideEffect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1291,7 +1274,7 @@ class CallReadSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class IndirectReadSideEffectInstruction extends SideEffectInstruction {
|
||||
IndirectReadSideEffectInstruction() {
|
||||
opcode instanceof Opcode::IndirectReadSideEffect
|
||||
getOpcode() instanceof Opcode::IndirectReadSideEffect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1300,7 +1283,7 @@ class IndirectReadSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class BufferReadSideEffectInstruction extends SideEffectInstruction {
|
||||
BufferReadSideEffectInstruction() {
|
||||
opcode instanceof Opcode::BufferReadSideEffect
|
||||
getOpcode() instanceof Opcode::BufferReadSideEffect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1309,7 +1292,7 @@ class BufferReadSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class IndirectWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
IndirectWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::IndirectWriteSideEffect
|
||||
getOpcode() instanceof Opcode::IndirectWriteSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1323,7 +1306,7 @@ class IndirectWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class BufferWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
BufferWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::BufferWriteSideEffect
|
||||
getOpcode() instanceof Opcode::BufferWriteSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1338,7 +1321,7 @@ class BufferWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class IndirectMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
IndirectMayWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::IndirectMayWriteSideEffect
|
||||
getOpcode() instanceof Opcode::IndirectMayWriteSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1352,7 +1335,7 @@ class IndirectMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class BufferMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
BufferMayWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::BufferMayWriteSideEffect
|
||||
getOpcode() instanceof Opcode::BufferMayWriteSideEffect
|
||||
}
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
result instanceof BufferMayMemoryAccess
|
||||
@@ -1364,7 +1347,7 @@ class BufferMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class ThrowInstruction extends Instruction {
|
||||
ThrowInstruction() {
|
||||
opcode instanceof ThrowOpcode
|
||||
getOpcode() instanceof ThrowOpcode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1373,7 +1356,7 @@ class ThrowInstruction extends Instruction {
|
||||
*/
|
||||
class ThrowValueInstruction extends ThrowInstruction {
|
||||
ThrowValueInstruction() {
|
||||
opcode instanceof Opcode::ThrowValue
|
||||
getOpcode() instanceof Opcode::ThrowValue
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1396,7 +1379,7 @@ class ThrowValueInstruction extends ThrowInstruction {
|
||||
*/
|
||||
class ReThrowInstruction extends ThrowInstruction {
|
||||
ReThrowInstruction() {
|
||||
opcode instanceof Opcode::ReThrow
|
||||
getOpcode() instanceof Opcode::ReThrow
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1405,7 +1388,7 @@ class ReThrowInstruction extends ThrowInstruction {
|
||||
*/
|
||||
class UnwindInstruction extends Instruction {
|
||||
UnwindInstruction() {
|
||||
opcode instanceof Opcode::Unwind
|
||||
getOpcode() instanceof Opcode::Unwind
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1414,7 +1397,7 @@ class UnwindInstruction extends Instruction {
|
||||
*/
|
||||
class CatchInstruction extends Instruction {
|
||||
CatchInstruction() {
|
||||
opcode instanceof CatchOpcode
|
||||
getOpcode() instanceof CatchOpcode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1425,7 +1408,7 @@ class CatchByTypeInstruction extends CatchInstruction {
|
||||
Type exceptionType;
|
||||
|
||||
CatchByTypeInstruction() {
|
||||
opcode instanceof Opcode::CatchByType and
|
||||
getOpcode() instanceof Opcode::CatchByType and
|
||||
exceptionType = Construction::getInstructionExceptionType(this)
|
||||
}
|
||||
|
||||
@@ -1446,13 +1429,13 @@ class CatchByTypeInstruction extends CatchInstruction {
|
||||
*/
|
||||
class CatchAnyInstruction extends CatchInstruction {
|
||||
CatchAnyInstruction() {
|
||||
opcode instanceof Opcode::CatchAny
|
||||
getOpcode() instanceof Opcode::CatchAny
|
||||
}
|
||||
}
|
||||
|
||||
class UnmodeledDefinitionInstruction extends Instruction {
|
||||
UnmodeledDefinitionInstruction() {
|
||||
opcode instanceof Opcode::UnmodeledDefinition
|
||||
getOpcode() instanceof Opcode::UnmodeledDefinition
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1465,7 +1448,7 @@ class UnmodeledDefinitionInstruction extends Instruction {
|
||||
*/
|
||||
class AliasedDefinitionInstruction extends Instruction {
|
||||
AliasedDefinitionInstruction() {
|
||||
opcode instanceof Opcode::AliasedDefinition
|
||||
getOpcode() instanceof Opcode::AliasedDefinition
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1475,7 +1458,7 @@ class AliasedDefinitionInstruction extends Instruction {
|
||||
|
||||
class UnmodeledUseInstruction extends Instruction {
|
||||
UnmodeledUseInstruction() {
|
||||
opcode instanceof Opcode::UnmodeledUse
|
||||
getOpcode() instanceof Opcode::UnmodeledUse
|
||||
}
|
||||
|
||||
override string getOperandsString() {
|
||||
@@ -1495,7 +1478,7 @@ class UnmodeledUseInstruction extends Instruction {
|
||||
*/
|
||||
class PhiInstruction extends Instruction {
|
||||
PhiInstruction() {
|
||||
opcode instanceof Opcode::Phi
|
||||
getOpcode() instanceof Opcode::Phi
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1547,7 +1530,7 @@ class PhiInstruction extends Instruction {
|
||||
*/
|
||||
class ChiInstruction extends Instruction {
|
||||
ChiInstruction() {
|
||||
opcode instanceof Opcode::Chi
|
||||
getOpcode() instanceof Opcode::Chi
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1577,7 +1560,7 @@ class ChiInstruction extends Instruction {
|
||||
*/
|
||||
class UnreachedInstruction extends Instruction {
|
||||
UnreachedInstruction() {
|
||||
opcode instanceof Opcode::Unreached
|
||||
getOpcode() instanceof Opcode::Unreached
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1587,6 +1570,6 @@ class UnreachedInstruction extends Instruction {
|
||||
*/
|
||||
class BuiltInInstruction extends Instruction {
|
||||
BuiltInInstruction() {
|
||||
opcode instanceof BuiltInOpcode
|
||||
getOpcode() instanceof BuiltInOpcode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,28 +8,12 @@ private import TranslatedExpr
|
||||
private import TranslatedStmt
|
||||
private import TranslatedFunction
|
||||
|
||||
class InstructionTagType extends TInstructionTag {
|
||||
final string toString() {
|
||||
result = "Tag"
|
||||
}
|
||||
TranslatedElement getInstructionTranslatedElement(Instruction instruction) {
|
||||
instruction = MkInstruction(result, _)
|
||||
}
|
||||
|
||||
private TranslatedElement getInstructionTranslatedElement(
|
||||
Instruction instruction) {
|
||||
result = getInstructionTranslatedElementAndTag(instruction, _)
|
||||
}
|
||||
|
||||
private TranslatedElement getInstructionTranslatedElementAndTag(
|
||||
Instruction instruction, InstructionTag tag) {
|
||||
result.getAST() = instruction.getAST() and
|
||||
tag = instruction.getTag() and
|
||||
result.hasInstruction(_, tag, _, _)
|
||||
}
|
||||
|
||||
private TranslatedElement getTempVariableTranslatedElement(
|
||||
IRTempVariable var) {
|
||||
result.getAST() = var.getAST() and
|
||||
result.hasTempVariable(var.getTag(), _)
|
||||
InstructionTag getInstructionTag(Instruction instruction) {
|
||||
instruction = MkInstruction(_, result)
|
||||
}
|
||||
|
||||
import Cached
|
||||
@@ -39,21 +23,10 @@ cached private module Cached {
|
||||
}
|
||||
|
||||
cached newtype TInstruction =
|
||||
MkInstruction(FunctionIR funcIR, Opcode opcode, Locatable ast,
|
||||
InstructionTag tag, Type resultType, boolean isGLValue) {
|
||||
hasInstruction(funcIR.getFunction(), opcode, ast, tag,
|
||||
resultType, isGLValue)
|
||||
MkInstruction(TranslatedElement element, InstructionTag tag) {
|
||||
element.hasInstruction(_, tag, _, _)
|
||||
}
|
||||
|
||||
private predicate hasInstruction(Function func, Opcode opcode, Locatable ast,
|
||||
InstructionTag tag, Type resultType, boolean isGLValue) {
|
||||
exists(TranslatedElement element |
|
||||
element.getAST() = ast and
|
||||
func = element.getFunction() and
|
||||
element.hasInstruction(opcode, tag, resultType, isGLValue)
|
||||
)
|
||||
}
|
||||
|
||||
cached predicate hasTempVariable(Function func, Locatable ast, TempVariableTag tag,
|
||||
Type type) {
|
||||
exists(TranslatedElement element |
|
||||
@@ -88,7 +61,7 @@ cached private module Cached {
|
||||
|
||||
cached Instruction getInstructionOperandDefinition(Instruction instruction, OperandTag tag) {
|
||||
result = getInstructionTranslatedElement(instruction).getInstructionOperand(
|
||||
instruction.getTag(), tag)
|
||||
getInstructionTag(instruction), tag)
|
||||
}
|
||||
|
||||
cached Instruction getPhiInstructionOperandDefinition(Instruction instruction,
|
||||
@@ -102,7 +75,7 @@ cached private module Cached {
|
||||
|
||||
cached Instruction getInstructionSuccessor(Instruction instruction, EdgeKind kind) {
|
||||
result = getInstructionTranslatedElement(instruction).getInstructionSuccessor(
|
||||
instruction.getTag(), kind)
|
||||
getInstructionTag(instruction), kind)
|
||||
}
|
||||
|
||||
// This predicate has pragma[noopt] because otherwise the `getAChild*` calls
|
||||
@@ -187,9 +160,27 @@ cached private module Cached {
|
||||
goto.getLocation().isBefore(goto.getTarget().getLocation())
|
||||
}
|
||||
|
||||
cached Locatable getInstructionAST(Instruction instruction) {
|
||||
result = getInstructionTranslatedElement(instruction).getAST()
|
||||
}
|
||||
|
||||
cached predicate instructionHasType(Instruction instruction, Type type, boolean isGLValue) {
|
||||
getInstructionTranslatedElement(instruction)
|
||||
.hasInstruction(_, getInstructionTag(instruction), type, isGLValue)
|
||||
}
|
||||
|
||||
cached Opcode getInstructionOpcode(Instruction instruction) {
|
||||
getInstructionTranslatedElement(instruction)
|
||||
.hasInstruction(result, getInstructionTag(instruction), _, _)
|
||||
}
|
||||
|
||||
cached FunctionIR getInstructionEnclosingFunctionIR(Instruction instruction) {
|
||||
result.getFunction() = getInstructionTranslatedElement(instruction).getFunction()
|
||||
}
|
||||
|
||||
cached IRVariable getInstructionVariable(Instruction instruction) {
|
||||
result = getInstructionTranslatedElement(instruction).getInstructionVariable(
|
||||
instruction.getTag())
|
||||
getInstructionTag(instruction))
|
||||
}
|
||||
|
||||
cached Field getInstructionField(Instruction instruction) {
|
||||
@@ -200,41 +191,39 @@ cached private module Cached {
|
||||
}
|
||||
|
||||
cached Function getInstructionFunction(Instruction instruction) {
|
||||
exists(InstructionTag tag |
|
||||
result = getInstructionTranslatedElementAndTag(instruction, tag)
|
||||
.getInstructionFunction(tag)
|
||||
)
|
||||
result = getInstructionTranslatedElement(instruction)
|
||||
.getInstructionFunction(getInstructionTag(instruction))
|
||||
}
|
||||
|
||||
cached string getInstructionConstantValue(Instruction instruction) {
|
||||
result =
|
||||
getInstructionTranslatedElement(instruction).getInstructionConstantValue(
|
||||
instruction.getTag())
|
||||
getInstructionTag(instruction))
|
||||
}
|
||||
|
||||
cached StringLiteral getInstructionStringLiteral(Instruction instruction) {
|
||||
result =
|
||||
getInstructionTranslatedElement(instruction).getInstructionStringLiteral(
|
||||
instruction.getTag())
|
||||
getInstructionTag(instruction))
|
||||
}
|
||||
|
||||
cached Type getInstructionExceptionType(Instruction instruction) {
|
||||
result =
|
||||
getInstructionTranslatedElement(instruction).getInstructionExceptionType(
|
||||
instruction.getTag())
|
||||
getInstructionTag(instruction))
|
||||
}
|
||||
|
||||
cached predicate getInstructionInheritance(Instruction instruction,
|
||||
Class baseClass, Class derivedClass) {
|
||||
getInstructionTranslatedElement(instruction).getInstructionInheritance(
|
||||
instruction.getTag(), baseClass, derivedClass)
|
||||
getInstructionTag(instruction), baseClass, derivedClass)
|
||||
}
|
||||
|
||||
pragma[noinline]
|
||||
private predicate instructionOrigin(Instruction instruction,
|
||||
TranslatedElement element, InstructionTag tag) {
|
||||
element = getInstructionTranslatedElement(instruction) and
|
||||
tag = instruction.getTag()
|
||||
tag = getInstructionTag(instruction)
|
||||
}
|
||||
|
||||
cached int getInstructionElementSize(Instruction instruction) {
|
||||
@@ -262,12 +251,14 @@ cached private module Cached {
|
||||
import CachedForDebugging
|
||||
cached private module CachedForDebugging {
|
||||
cached string getTempVariableUniqueId(IRTempVariable var) {
|
||||
result = getTempVariableTranslatedElement(var).getId() + ":" +
|
||||
getTempVariableTagId(var.getTag())
|
||||
exists(TranslatedElement element |
|
||||
var = element.getTempVariable(_) and
|
||||
result = element.getId() + ":" + getTempVariableTagId(var.getTag())
|
||||
)
|
||||
}
|
||||
|
||||
cached string getInstructionUniqueId(Instruction instruction) {
|
||||
result = getInstructionTranslatedElement(instruction).getId() + ":" +
|
||||
getInstructionTagId(instruction.getTag())
|
||||
getInstructionTagId(getInstructionTag(instruction))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,6 +86,12 @@ newtype TInstructionTag =
|
||||
elementIsInitialized(elementIndex)
|
||||
}
|
||||
|
||||
class InstructionTag extends TInstructionTag {
|
||||
final string toString() {
|
||||
result = "Tag"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a unique string for the instruction tag. Primarily used for generating
|
||||
* instruction IDs to ensure stable IR dumps.
|
||||
|
||||
@@ -9,6 +9,7 @@ private import InstructionTag
|
||||
private import TranslatedCondition
|
||||
private import TranslatedFunction
|
||||
private import TranslatedStmt
|
||||
private import IRConstruction
|
||||
|
||||
/**
|
||||
* Gets the built-in `int` type.
|
||||
@@ -35,15 +36,18 @@ private Element getRealParent(Expr expr) {
|
||||
*/
|
||||
predicate isIRConstant(Expr expr) { exists(expr.getValue()) }
|
||||
|
||||
// Pulled out to work around QL-796
|
||||
private predicate isOrphan(Expr expr) {
|
||||
not exists(getRealParent(expr))
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `expr` and all of its descendants should be ignored for the purposes
|
||||
* of IR generation due to some property of `expr` itself. Unlike
|
||||
* `ignoreExpr()`, this predicate does not ignore an expression solely because
|
||||
* it is a descendant of an ignored element.
|
||||
* Holds if `expr` should be ignored for the purposes of IR generation due to
|
||||
* some property of `expr` or one of its ancestors.
|
||||
*/
|
||||
private predicate ignoreExprAndDescendants(Expr expr) {
|
||||
// Ignore parentless expressions
|
||||
not exists(getRealParent(expr)) or
|
||||
isOrphan(expr) or
|
||||
// Ignore the constants in SwitchCase, since their values are embedded in the
|
||||
// CaseEdge.
|
||||
getRealParent(expr) instanceof SwitchCase or
|
||||
@@ -59,7 +63,8 @@ private predicate ignoreExprAndDescendants(Expr expr) {
|
||||
// REVIEW: Ignore initializers for `NewArrayExpr` until we determine how to
|
||||
// represent them.
|
||||
newExpr.getInitializer().getFullyConverted() = expr
|
||||
)
|
||||
) or
|
||||
ignoreExprAndDescendants(getRealParent(expr)) // recursive case
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -80,7 +85,7 @@ private predicate ignoreExprOnly(Expr expr) {
|
||||
*/
|
||||
private predicate ignoreExpr(Expr expr) {
|
||||
ignoreExprOnly(expr) or
|
||||
ignoreExprAndDescendants(getRealParent*(expr))
|
||||
ignoreExprAndDescendants(expr)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -623,8 +628,8 @@ abstract class TranslatedElement extends TTranslatedElement {
|
||||
* Gets the instruction generated by this element with tag `tag`.
|
||||
*/
|
||||
final Instruction getInstruction(InstructionTag tag) {
|
||||
result.getAST() = getAST() and
|
||||
result.getTag() = tag
|
||||
getInstructionTranslatedElement(result) = this and
|
||||
getInstructionTag(result) = tag
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -632,7 +637,8 @@ abstract class TranslatedElement extends TTranslatedElement {
|
||||
*/
|
||||
final IRTempVariable getTempVariable(TempVariableTag tag) {
|
||||
result.getAST() = getAST() and
|
||||
result.getTag() = tag
|
||||
result.getTag() = tag and
|
||||
hasTempVariable(tag, _)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -159,24 +159,13 @@ private cached module Cached {
|
||||
not startsBasicBlock(i2)
|
||||
}
|
||||
|
||||
/** Gets the index of `i` in its `IRBlock`. */
|
||||
private int getMemberIndex(Instruction i) {
|
||||
startsBasicBlock(i) and
|
||||
result = 0
|
||||
or
|
||||
exists(Instruction iPrev |
|
||||
adjacentInBlock(iPrev, i) and
|
||||
result = getMemberIndex(iPrev) + 1
|
||||
)
|
||||
}
|
||||
/** Holds if `i` is the `index`th instruction the block starting with `first`. */
|
||||
private Instruction getInstructionFromFirst(Instruction first, int index) =
|
||||
shortestDistances(startsBasicBlock/1, adjacentInBlock/2)(first, result, index)
|
||||
|
||||
/** Holds if `i` is the `index`th instruction in `block`. */
|
||||
cached Instruction getInstruction(TIRBlock block, int index) {
|
||||
exists(Instruction first |
|
||||
block = MkIRBlock(first) and
|
||||
index = getMemberIndex(result) and
|
||||
adjacentInBlock*(first, result)
|
||||
)
|
||||
result = getInstructionFromFirst(getFirstInstruction(block), index)
|
||||
}
|
||||
|
||||
cached int getInstructionCount(TIRBlock block) {
|
||||
|
||||
@@ -3,31 +3,7 @@ import FunctionIR
|
||||
import cpp
|
||||
import semmle.code.cpp.ir.implementation.TempVariableTag
|
||||
private import semmle.code.cpp.ir.internal.TempVariableTag
|
||||
|
||||
private newtype TIRVariable =
|
||||
TIRAutomaticUserVariable(LocalScopeVariable var, FunctionIR funcIR) {
|
||||
exists(Function func |
|
||||
func = funcIR.getFunction() and
|
||||
(
|
||||
var.getFunction() = func or
|
||||
var.(Parameter).getCatchBlock().getEnclosingFunction() = func
|
||||
)
|
||||
)
|
||||
} or
|
||||
TIRStaticUserVariable(Variable var, FunctionIR funcIR) {
|
||||
(
|
||||
var instanceof GlobalOrNamespaceVariable or
|
||||
var instanceof MemberVariable and not var instanceof Field
|
||||
) and
|
||||
exists(VariableAccess access |
|
||||
access.getTarget() = var and
|
||||
access.getEnclosingFunction() = funcIR.getFunction()
|
||||
)
|
||||
} or
|
||||
TIRTempVariable(FunctionIR funcIR, Locatable ast, TempVariableTag tag,
|
||||
Type type) {
|
||||
Construction::hasTempVariable(funcIR.getFunction(), ast, tag, type)
|
||||
}
|
||||
private import semmle.code.cpp.ir.internal.TIRVariable
|
||||
|
||||
IRUserVariable getIRUserVariable(Function func, Variable var) {
|
||||
result.getVariable() = var and
|
||||
@@ -40,7 +16,7 @@ IRUserVariable getIRUserVariable(Function func, Variable var) {
|
||||
* generated by the AST-to-IR translation (`IRTempVariable`).
|
||||
*/
|
||||
abstract class IRVariable extends TIRVariable {
|
||||
FunctionIR funcIR;
|
||||
Function func;
|
||||
|
||||
abstract string toString();
|
||||
|
||||
@@ -72,14 +48,14 @@ abstract class IRVariable extends TIRVariable {
|
||||
* Gets the IR for the function that references this variable.
|
||||
*/
|
||||
final FunctionIR getFunctionIR() {
|
||||
result = funcIR
|
||||
result.getFunction() = func
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the function that references this variable.
|
||||
*/
|
||||
final Function getFunction() {
|
||||
result = funcIR.getFunction()
|
||||
result = func
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,7 +102,7 @@ class IRAutomaticUserVariable extends IRUserVariable, IRAutomaticVariable,
|
||||
LocalScopeVariable localVar;
|
||||
|
||||
IRAutomaticUserVariable() {
|
||||
this = TIRAutomaticUserVariable(localVar, funcIR) and
|
||||
this = TIRAutomaticUserVariable(localVar, func) and
|
||||
var = localVar
|
||||
}
|
||||
|
||||
@@ -137,7 +113,7 @@ class IRAutomaticUserVariable extends IRUserVariable, IRAutomaticVariable,
|
||||
|
||||
class IRStaticUserVariable extends IRUserVariable, TIRStaticUserVariable {
|
||||
IRStaticUserVariable() {
|
||||
this = TIRStaticUserVariable(var, funcIR)
|
||||
this = TIRStaticUserVariable(var, func)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +128,7 @@ class IRTempVariable extends IRVariable, IRAutomaticVariable, TIRTempVariable {
|
||||
Type type;
|
||||
|
||||
IRTempVariable() {
|
||||
this = TIRTempVariable(funcIR, ast, tag, type)
|
||||
this = TIRTempVariable(func, ast, tag, type)
|
||||
}
|
||||
|
||||
override final Type getType() {
|
||||
|
||||
@@ -10,8 +10,6 @@ import semmle.code.cpp.ir.implementation.Opcode
|
||||
private import semmle.code.cpp.ir.implementation.Opcode
|
||||
private import semmle.code.cpp.ir.internal.OperandTag
|
||||
|
||||
class InstructionTag = Construction::InstructionTagType;
|
||||
|
||||
module InstructionSanity {
|
||||
/**
|
||||
* Holds if the instruction `instr` should be expected to have an operand
|
||||
@@ -211,17 +209,6 @@ module InstructionSanity {
|
||||
* Represents a single operation in the IR.
|
||||
*/
|
||||
class Instruction extends Construction::TInstruction {
|
||||
Opcode opcode;
|
||||
Locatable ast;
|
||||
InstructionTag instructionTag;
|
||||
Type resultType;
|
||||
FunctionIR funcIR;
|
||||
boolean glvalue;
|
||||
|
||||
Instruction() {
|
||||
this = Construction::MkInstruction(funcIR, opcode, ast, instructionTag, resultType, glvalue)
|
||||
}
|
||||
|
||||
final string toString() {
|
||||
result = getOpcode().toString() + ": " + getAST().toString()
|
||||
}
|
||||
@@ -244,9 +231,9 @@ class Instruction extends Construction::TInstruction {
|
||||
*/
|
||||
final string getOperationString() {
|
||||
if exists(getImmediateString()) then
|
||||
result = getOperationPrefix() + opcode.toString() + "[" + getImmediateString() + "]"
|
||||
result = getOperationPrefix() + getOpcode().toString() + "[" + getImmediateString() + "]"
|
||||
else
|
||||
result = getOperationPrefix() + opcode.toString()
|
||||
result = getOperationPrefix() + getOpcode().toString()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -264,7 +251,7 @@ class Instruction extends Construction::TInstruction {
|
||||
}
|
||||
|
||||
private string getResultPrefix() {
|
||||
if resultType instanceof VoidType then
|
||||
if getResultType() instanceof VoidType then
|
||||
result = "v"
|
||||
else if hasMemoryResult() then
|
||||
if isResultModeled() then
|
||||
@@ -309,8 +296,8 @@ class Instruction extends Construction::TInstruction {
|
||||
|
||||
private string getResultTypeString() {
|
||||
exists(string valcat |
|
||||
valcat = getValueCategoryString(resultType.toString()) and
|
||||
if (resultType instanceof UnknownType and
|
||||
valcat = getValueCategoryString(getResultType().toString()) and
|
||||
if (getResultType() instanceof UnknownType and
|
||||
not isGLValue() and
|
||||
exists(getResultSize())) then (
|
||||
result = valcat + "[" + getResultSize().toString() + "]"
|
||||
@@ -378,28 +365,28 @@ class Instruction extends Construction::TInstruction {
|
||||
* Gets the function that contains this instruction.
|
||||
*/
|
||||
final Function getFunction() {
|
||||
result = funcIR.getFunction()
|
||||
result = getFunctionIR().getFunction()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the FunctionIR object that contains the IR for this instruction.
|
||||
*/
|
||||
final FunctionIR getFunctionIR() {
|
||||
result = funcIR
|
||||
result = Construction::getInstructionEnclosingFunctionIR(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the AST that caused this instruction to be generated.
|
||||
*/
|
||||
final Locatable getAST() {
|
||||
result = ast
|
||||
result = Construction::getInstructionAST(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the location of the source code for this instruction.
|
||||
*/
|
||||
final Location getLocation() {
|
||||
result = ast.getLocation()
|
||||
result = getAST().getLocation()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -421,7 +408,7 @@ class Instruction extends Construction::TInstruction {
|
||||
* instruction does not produce a result, its result type will be `VoidType`.
|
||||
*/
|
||||
final Type getResultType() {
|
||||
result = resultType
|
||||
Construction::instructionHasType(this, result, _)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -443,7 +430,7 @@ class Instruction extends Construction::TInstruction {
|
||||
* the integer value loaded from variable `x`.
|
||||
*/
|
||||
final predicate isGLValue() {
|
||||
glvalue = true
|
||||
Construction::instructionHasType(this, _, true)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -460,10 +447,10 @@ class Instruction extends Construction::TInstruction {
|
||||
result = nullptr.getSize()
|
||||
)
|
||||
)
|
||||
else if resultType instanceof UnknownType then
|
||||
else if getResultType() instanceof UnknownType then
|
||||
result = Construction::getInstructionResultSize(this)
|
||||
else (
|
||||
result = resultType.getSize()
|
||||
result = getResultType().getSize()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -471,11 +458,7 @@ class Instruction extends Construction::TInstruction {
|
||||
* Gets the opcode that specifies the operation performed by this instruction.
|
||||
*/
|
||||
final Opcode getOpcode() {
|
||||
result = opcode
|
||||
}
|
||||
|
||||
final InstructionTag getTag() {
|
||||
result = instructionTag
|
||||
result = Construction::getInstructionOpcode(this)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -644,19 +627,19 @@ class ConstantValueInstruction extends Instruction {
|
||||
|
||||
class EnterFunctionInstruction extends Instruction {
|
||||
EnterFunctionInstruction() {
|
||||
opcode instanceof Opcode::EnterFunction
|
||||
getOpcode() instanceof Opcode::EnterFunction
|
||||
}
|
||||
}
|
||||
|
||||
class VariableAddressInstruction extends VariableInstruction {
|
||||
VariableAddressInstruction() {
|
||||
opcode instanceof Opcode::VariableAddress
|
||||
getOpcode() instanceof Opcode::VariableAddress
|
||||
}
|
||||
}
|
||||
|
||||
class InitializeParameterInstruction extends VariableInstruction {
|
||||
InitializeParameterInstruction() {
|
||||
opcode instanceof Opcode::InitializeParameter
|
||||
getOpcode() instanceof Opcode::InitializeParameter
|
||||
}
|
||||
|
||||
final Parameter getParameter() {
|
||||
@@ -673,13 +656,13 @@ class InitializeParameterInstruction extends VariableInstruction {
|
||||
*/
|
||||
class InitializeThisInstruction extends Instruction {
|
||||
InitializeThisInstruction() {
|
||||
opcode instanceof Opcode::InitializeThis
|
||||
getOpcode() instanceof Opcode::InitializeThis
|
||||
}
|
||||
}
|
||||
|
||||
class FieldAddressInstruction extends FieldInstruction {
|
||||
FieldAddressInstruction() {
|
||||
opcode instanceof Opcode::FieldAddress
|
||||
getOpcode() instanceof Opcode::FieldAddress
|
||||
}
|
||||
|
||||
final Instruction getObjectAddress() {
|
||||
@@ -689,7 +672,7 @@ class FieldAddressInstruction extends FieldInstruction {
|
||||
|
||||
class UninitializedInstruction extends VariableInstruction {
|
||||
UninitializedInstruction() {
|
||||
opcode instanceof Opcode::Uninitialized
|
||||
getOpcode() instanceof Opcode::Uninitialized
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -706,25 +689,25 @@ class UninitializedInstruction extends VariableInstruction {
|
||||
|
||||
class NoOpInstruction extends Instruction {
|
||||
NoOpInstruction() {
|
||||
opcode instanceof Opcode::NoOp
|
||||
getOpcode() instanceof Opcode::NoOp
|
||||
}
|
||||
}
|
||||
|
||||
class ReturnInstruction extends Instruction {
|
||||
ReturnInstruction() {
|
||||
opcode instanceof ReturnOpcode
|
||||
getOpcode() instanceof ReturnOpcode
|
||||
}
|
||||
}
|
||||
|
||||
class ReturnVoidInstruction extends ReturnInstruction {
|
||||
ReturnVoidInstruction() {
|
||||
opcode instanceof Opcode::ReturnVoid
|
||||
getOpcode() instanceof Opcode::ReturnVoid
|
||||
}
|
||||
}
|
||||
|
||||
class ReturnValueInstruction extends ReturnInstruction {
|
||||
ReturnValueInstruction() {
|
||||
opcode instanceof Opcode::ReturnValue
|
||||
getOpcode() instanceof Opcode::ReturnValue
|
||||
}
|
||||
|
||||
final Instruction getReturnValue() {
|
||||
@@ -734,7 +717,7 @@ class ReturnValueInstruction extends ReturnInstruction {
|
||||
|
||||
class CopyInstruction extends Instruction {
|
||||
CopyInstruction() {
|
||||
opcode instanceof CopyOpcode
|
||||
getOpcode() instanceof CopyOpcode
|
||||
}
|
||||
|
||||
final Instruction getSourceValue() {
|
||||
@@ -744,13 +727,13 @@ class CopyInstruction extends Instruction {
|
||||
|
||||
class CopyValueInstruction extends CopyInstruction {
|
||||
CopyValueInstruction() {
|
||||
opcode instanceof Opcode::CopyValue
|
||||
getOpcode() instanceof Opcode::CopyValue
|
||||
}
|
||||
}
|
||||
|
||||
class LoadInstruction extends CopyInstruction {
|
||||
LoadInstruction() {
|
||||
opcode instanceof Opcode::Load
|
||||
getOpcode() instanceof Opcode::Load
|
||||
}
|
||||
|
||||
final Instruction getSourceAddress() {
|
||||
@@ -760,7 +743,7 @@ class LoadInstruction extends CopyInstruction {
|
||||
|
||||
class StoreInstruction extends CopyInstruction {
|
||||
StoreInstruction() {
|
||||
opcode instanceof Opcode::Store
|
||||
getOpcode() instanceof Opcode::Store
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -774,7 +757,7 @@ class StoreInstruction extends CopyInstruction {
|
||||
|
||||
class ConditionalBranchInstruction extends Instruction {
|
||||
ConditionalBranchInstruction() {
|
||||
opcode instanceof Opcode::ConditionalBranch
|
||||
getOpcode() instanceof Opcode::ConditionalBranch
|
||||
}
|
||||
|
||||
final Instruction getCondition() {
|
||||
@@ -792,25 +775,25 @@ class ConditionalBranchInstruction extends Instruction {
|
||||
|
||||
class ExitFunctionInstruction extends Instruction {
|
||||
ExitFunctionInstruction() {
|
||||
opcode instanceof Opcode::ExitFunction
|
||||
getOpcode() instanceof Opcode::ExitFunction
|
||||
}
|
||||
}
|
||||
|
||||
class ConstantInstruction extends ConstantValueInstruction {
|
||||
ConstantInstruction() {
|
||||
opcode instanceof Opcode::Constant
|
||||
getOpcode() instanceof Opcode::Constant
|
||||
}
|
||||
}
|
||||
|
||||
class IntegerConstantInstruction extends ConstantInstruction {
|
||||
IntegerConstantInstruction() {
|
||||
resultType instanceof IntegralType
|
||||
getResultType() instanceof IntegralType
|
||||
}
|
||||
}
|
||||
|
||||
class FloatConstantInstruction extends ConstantInstruction {
|
||||
FloatConstantInstruction() {
|
||||
resultType instanceof FloatingPointType
|
||||
getResultType() instanceof FloatingPointType
|
||||
}
|
||||
}
|
||||
|
||||
@@ -832,7 +815,7 @@ class StringConstantInstruction extends Instruction {
|
||||
|
||||
class BinaryInstruction extends Instruction {
|
||||
BinaryInstruction() {
|
||||
opcode instanceof BinaryOpcode
|
||||
getOpcode() instanceof BinaryOpcode
|
||||
}
|
||||
|
||||
final Instruction getLeftOperand() {
|
||||
@@ -855,67 +838,67 @@ class BinaryInstruction extends Instruction {
|
||||
|
||||
class AddInstruction extends BinaryInstruction {
|
||||
AddInstruction() {
|
||||
opcode instanceof Opcode::Add
|
||||
getOpcode() instanceof Opcode::Add
|
||||
}
|
||||
}
|
||||
|
||||
class SubInstruction extends BinaryInstruction {
|
||||
SubInstruction() {
|
||||
opcode instanceof Opcode::Sub
|
||||
getOpcode() instanceof Opcode::Sub
|
||||
}
|
||||
}
|
||||
|
||||
class MulInstruction extends BinaryInstruction {
|
||||
MulInstruction() {
|
||||
opcode instanceof Opcode::Mul
|
||||
getOpcode() instanceof Opcode::Mul
|
||||
}
|
||||
}
|
||||
|
||||
class DivInstruction extends BinaryInstruction {
|
||||
DivInstruction() {
|
||||
opcode instanceof Opcode::Div
|
||||
getOpcode() instanceof Opcode::Div
|
||||
}
|
||||
}
|
||||
|
||||
class RemInstruction extends BinaryInstruction {
|
||||
RemInstruction() {
|
||||
opcode instanceof Opcode::Rem
|
||||
getOpcode() instanceof Opcode::Rem
|
||||
}
|
||||
}
|
||||
|
||||
class NegateInstruction extends UnaryInstruction {
|
||||
NegateInstruction() {
|
||||
opcode instanceof Opcode::Negate
|
||||
getOpcode() instanceof Opcode::Negate
|
||||
}
|
||||
}
|
||||
|
||||
class BitAndInstruction extends BinaryInstruction {
|
||||
BitAndInstruction() {
|
||||
opcode instanceof Opcode::BitAnd
|
||||
getOpcode() instanceof Opcode::BitAnd
|
||||
}
|
||||
}
|
||||
|
||||
class BitOrInstruction extends BinaryInstruction {
|
||||
BitOrInstruction() {
|
||||
opcode instanceof Opcode::BitOr
|
||||
getOpcode() instanceof Opcode::BitOr
|
||||
}
|
||||
}
|
||||
|
||||
class BitXorInstruction extends BinaryInstruction {
|
||||
BitXorInstruction() {
|
||||
opcode instanceof Opcode::BitXor
|
||||
getOpcode() instanceof Opcode::BitXor
|
||||
}
|
||||
}
|
||||
|
||||
class ShiftLeftInstruction extends BinaryInstruction {
|
||||
ShiftLeftInstruction() {
|
||||
opcode instanceof Opcode::ShiftLeft
|
||||
getOpcode() instanceof Opcode::ShiftLeft
|
||||
}
|
||||
}
|
||||
|
||||
class ShiftRightInstruction extends BinaryInstruction {
|
||||
ShiftRightInstruction() {
|
||||
opcode instanceof Opcode::ShiftRight
|
||||
getOpcode() instanceof Opcode::ShiftRight
|
||||
}
|
||||
}
|
||||
|
||||
@@ -923,7 +906,7 @@ class PointerArithmeticInstruction extends BinaryInstruction {
|
||||
int elementSize;
|
||||
|
||||
PointerArithmeticInstruction() {
|
||||
opcode instanceof PointerArithmeticOpcode and
|
||||
getOpcode() instanceof PointerArithmeticOpcode and
|
||||
elementSize = Construction::getInstructionElementSize(this)
|
||||
}
|
||||
|
||||
@@ -938,31 +921,31 @@ class PointerArithmeticInstruction extends BinaryInstruction {
|
||||
|
||||
class PointerOffsetInstruction extends PointerArithmeticInstruction {
|
||||
PointerOffsetInstruction() {
|
||||
opcode instanceof PointerOffsetOpcode
|
||||
getOpcode() instanceof PointerOffsetOpcode
|
||||
}
|
||||
}
|
||||
|
||||
class PointerAddInstruction extends PointerOffsetInstruction {
|
||||
PointerAddInstruction() {
|
||||
opcode instanceof Opcode::PointerAdd
|
||||
getOpcode() instanceof Opcode::PointerAdd
|
||||
}
|
||||
}
|
||||
|
||||
class PointerSubInstruction extends PointerOffsetInstruction {
|
||||
PointerSubInstruction() {
|
||||
opcode instanceof Opcode::PointerSub
|
||||
getOpcode() instanceof Opcode::PointerSub
|
||||
}
|
||||
}
|
||||
|
||||
class PointerDiffInstruction extends PointerArithmeticInstruction {
|
||||
PointerDiffInstruction() {
|
||||
opcode instanceof Opcode::PointerDiff
|
||||
getOpcode() instanceof Opcode::PointerDiff
|
||||
}
|
||||
}
|
||||
|
||||
class UnaryInstruction extends Instruction {
|
||||
UnaryInstruction() {
|
||||
opcode instanceof UnaryOpcode
|
||||
getOpcode() instanceof UnaryOpcode
|
||||
}
|
||||
|
||||
final Instruction getOperand() {
|
||||
@@ -972,7 +955,7 @@ class UnaryInstruction extends Instruction {
|
||||
|
||||
class ConvertInstruction extends UnaryInstruction {
|
||||
ConvertInstruction() {
|
||||
opcode instanceof Opcode::Convert
|
||||
getOpcode() instanceof Opcode::Convert
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1024,7 +1007,7 @@ class InheritanceConversionInstruction extends UnaryInstruction {
|
||||
*/
|
||||
class ConvertToBaseInstruction extends InheritanceConversionInstruction {
|
||||
ConvertToBaseInstruction() {
|
||||
opcode instanceof Opcode::ConvertToBase
|
||||
getOpcode() instanceof Opcode::ConvertToBase
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1034,7 +1017,7 @@ class ConvertToBaseInstruction extends InheritanceConversionInstruction {
|
||||
*/
|
||||
class ConvertToVirtualBaseInstruction extends InheritanceConversionInstruction {
|
||||
ConvertToVirtualBaseInstruction() {
|
||||
opcode instanceof Opcode::ConvertToVirtualBase
|
||||
getOpcode() instanceof Opcode::ConvertToVirtualBase
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1044,37 +1027,37 @@ class ConvertToVirtualBaseInstruction extends InheritanceConversionInstruction {
|
||||
*/
|
||||
class ConvertToDerivedInstruction extends InheritanceConversionInstruction {
|
||||
ConvertToDerivedInstruction() {
|
||||
opcode instanceof Opcode::ConvertToDerived
|
||||
getOpcode() instanceof Opcode::ConvertToDerived
|
||||
}
|
||||
}
|
||||
|
||||
class BitComplementInstruction extends UnaryInstruction {
|
||||
BitComplementInstruction() {
|
||||
opcode instanceof Opcode::BitComplement
|
||||
getOpcode() instanceof Opcode::BitComplement
|
||||
}
|
||||
}
|
||||
|
||||
class LogicalNotInstruction extends UnaryInstruction {
|
||||
LogicalNotInstruction() {
|
||||
opcode instanceof Opcode::LogicalNot
|
||||
getOpcode() instanceof Opcode::LogicalNot
|
||||
}
|
||||
}
|
||||
|
||||
class CompareInstruction extends BinaryInstruction {
|
||||
CompareInstruction() {
|
||||
opcode instanceof CompareOpcode
|
||||
getOpcode() instanceof CompareOpcode
|
||||
}
|
||||
}
|
||||
|
||||
class CompareEQInstruction extends CompareInstruction {
|
||||
CompareEQInstruction() {
|
||||
opcode instanceof Opcode::CompareEQ
|
||||
getOpcode() instanceof Opcode::CompareEQ
|
||||
}
|
||||
}
|
||||
|
||||
class CompareNEInstruction extends CompareInstruction {
|
||||
CompareNEInstruction() {
|
||||
opcode instanceof Opcode::CompareNE
|
||||
getOpcode() instanceof Opcode::CompareNE
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1083,7 +1066,7 @@ class CompareNEInstruction extends CompareInstruction {
|
||||
*/
|
||||
class RelationalInstruction extends CompareInstruction {
|
||||
RelationalInstruction() {
|
||||
opcode instanceof RelationalOpcode
|
||||
getOpcode() instanceof RelationalOpcode
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1116,7 +1099,7 @@ class RelationalInstruction extends CompareInstruction {
|
||||
|
||||
class CompareLTInstruction extends RelationalInstruction {
|
||||
CompareLTInstruction() {
|
||||
opcode instanceof Opcode::CompareLT
|
||||
getOpcode() instanceof Opcode::CompareLT
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1134,7 +1117,7 @@ class CompareLTInstruction extends RelationalInstruction {
|
||||
|
||||
class CompareGTInstruction extends RelationalInstruction {
|
||||
CompareGTInstruction() {
|
||||
opcode instanceof Opcode::CompareGT
|
||||
getOpcode() instanceof Opcode::CompareGT
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1152,7 +1135,7 @@ class CompareGTInstruction extends RelationalInstruction {
|
||||
|
||||
class CompareLEInstruction extends RelationalInstruction {
|
||||
CompareLEInstruction() {
|
||||
opcode instanceof Opcode::CompareLE
|
||||
getOpcode() instanceof Opcode::CompareLE
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1170,7 +1153,7 @@ class CompareLEInstruction extends RelationalInstruction {
|
||||
|
||||
class CompareGEInstruction extends RelationalInstruction {
|
||||
CompareGEInstruction() {
|
||||
opcode instanceof Opcode::CompareGE
|
||||
getOpcode() instanceof Opcode::CompareGE
|
||||
}
|
||||
|
||||
override Instruction getLesserOperand() {
|
||||
@@ -1188,7 +1171,7 @@ class CompareGEInstruction extends RelationalInstruction {
|
||||
|
||||
class SwitchInstruction extends Instruction {
|
||||
SwitchInstruction() {
|
||||
opcode instanceof Opcode::Switch
|
||||
getOpcode() instanceof Opcode::Switch
|
||||
}
|
||||
|
||||
final Instruction getExpression() {
|
||||
@@ -1211,7 +1194,7 @@ class SwitchInstruction extends Instruction {
|
||||
*/
|
||||
class CallInstruction extends Instruction {
|
||||
CallInstruction() {
|
||||
opcode instanceof Opcode::Call
|
||||
getOpcode() instanceof Opcode::Call
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1254,7 +1237,7 @@ class CallInstruction extends Instruction {
|
||||
*/
|
||||
class SideEffectInstruction extends Instruction {
|
||||
SideEffectInstruction() {
|
||||
opcode instanceof SideEffectOpcode
|
||||
getOpcode() instanceof SideEffectOpcode
|
||||
}
|
||||
|
||||
final Instruction getPrimaryInstruction() {
|
||||
@@ -1268,7 +1251,7 @@ class SideEffectInstruction extends Instruction {
|
||||
*/
|
||||
class CallSideEffectInstruction extends SideEffectInstruction {
|
||||
CallSideEffectInstruction() {
|
||||
opcode instanceof Opcode::CallSideEffect
|
||||
getOpcode() instanceof Opcode::CallSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1282,7 +1265,7 @@ class CallSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class CallReadSideEffectInstruction extends SideEffectInstruction {
|
||||
CallReadSideEffectInstruction() {
|
||||
opcode instanceof Opcode::CallReadSideEffect
|
||||
getOpcode() instanceof Opcode::CallReadSideEffect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1291,7 +1274,7 @@ class CallReadSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class IndirectReadSideEffectInstruction extends SideEffectInstruction {
|
||||
IndirectReadSideEffectInstruction() {
|
||||
opcode instanceof Opcode::IndirectReadSideEffect
|
||||
getOpcode() instanceof Opcode::IndirectReadSideEffect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1300,7 +1283,7 @@ class IndirectReadSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class BufferReadSideEffectInstruction extends SideEffectInstruction {
|
||||
BufferReadSideEffectInstruction() {
|
||||
opcode instanceof Opcode::BufferReadSideEffect
|
||||
getOpcode() instanceof Opcode::BufferReadSideEffect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1309,7 +1292,7 @@ class BufferReadSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class IndirectWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
IndirectWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::IndirectWriteSideEffect
|
||||
getOpcode() instanceof Opcode::IndirectWriteSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1323,7 +1306,7 @@ class IndirectWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class BufferWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
BufferWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::BufferWriteSideEffect
|
||||
getOpcode() instanceof Opcode::BufferWriteSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1338,7 +1321,7 @@ class BufferWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class IndirectMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
IndirectMayWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::IndirectMayWriteSideEffect
|
||||
getOpcode() instanceof Opcode::IndirectMayWriteSideEffect
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1352,7 +1335,7 @@ class IndirectMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class BufferMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
BufferMayWriteSideEffectInstruction() {
|
||||
opcode instanceof Opcode::BufferMayWriteSideEffect
|
||||
getOpcode() instanceof Opcode::BufferMayWriteSideEffect
|
||||
}
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
result instanceof BufferMayMemoryAccess
|
||||
@@ -1364,7 +1347,7 @@ class BufferMayWriteSideEffectInstruction extends SideEffectInstruction {
|
||||
*/
|
||||
class ThrowInstruction extends Instruction {
|
||||
ThrowInstruction() {
|
||||
opcode instanceof ThrowOpcode
|
||||
getOpcode() instanceof ThrowOpcode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1373,7 +1356,7 @@ class ThrowInstruction extends Instruction {
|
||||
*/
|
||||
class ThrowValueInstruction extends ThrowInstruction {
|
||||
ThrowValueInstruction() {
|
||||
opcode instanceof Opcode::ThrowValue
|
||||
getOpcode() instanceof Opcode::ThrowValue
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1396,7 +1379,7 @@ class ThrowValueInstruction extends ThrowInstruction {
|
||||
*/
|
||||
class ReThrowInstruction extends ThrowInstruction {
|
||||
ReThrowInstruction() {
|
||||
opcode instanceof Opcode::ReThrow
|
||||
getOpcode() instanceof Opcode::ReThrow
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1405,7 +1388,7 @@ class ReThrowInstruction extends ThrowInstruction {
|
||||
*/
|
||||
class UnwindInstruction extends Instruction {
|
||||
UnwindInstruction() {
|
||||
opcode instanceof Opcode::Unwind
|
||||
getOpcode() instanceof Opcode::Unwind
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1414,7 +1397,7 @@ class UnwindInstruction extends Instruction {
|
||||
*/
|
||||
class CatchInstruction extends Instruction {
|
||||
CatchInstruction() {
|
||||
opcode instanceof CatchOpcode
|
||||
getOpcode() instanceof CatchOpcode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1425,7 +1408,7 @@ class CatchByTypeInstruction extends CatchInstruction {
|
||||
Type exceptionType;
|
||||
|
||||
CatchByTypeInstruction() {
|
||||
opcode instanceof Opcode::CatchByType and
|
||||
getOpcode() instanceof Opcode::CatchByType and
|
||||
exceptionType = Construction::getInstructionExceptionType(this)
|
||||
}
|
||||
|
||||
@@ -1446,13 +1429,13 @@ class CatchByTypeInstruction extends CatchInstruction {
|
||||
*/
|
||||
class CatchAnyInstruction extends CatchInstruction {
|
||||
CatchAnyInstruction() {
|
||||
opcode instanceof Opcode::CatchAny
|
||||
getOpcode() instanceof Opcode::CatchAny
|
||||
}
|
||||
}
|
||||
|
||||
class UnmodeledDefinitionInstruction extends Instruction {
|
||||
UnmodeledDefinitionInstruction() {
|
||||
opcode instanceof Opcode::UnmodeledDefinition
|
||||
getOpcode() instanceof Opcode::UnmodeledDefinition
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1465,7 +1448,7 @@ class UnmodeledDefinitionInstruction extends Instruction {
|
||||
*/
|
||||
class AliasedDefinitionInstruction extends Instruction {
|
||||
AliasedDefinitionInstruction() {
|
||||
opcode instanceof Opcode::AliasedDefinition
|
||||
getOpcode() instanceof Opcode::AliasedDefinition
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1475,7 +1458,7 @@ class AliasedDefinitionInstruction extends Instruction {
|
||||
|
||||
class UnmodeledUseInstruction extends Instruction {
|
||||
UnmodeledUseInstruction() {
|
||||
opcode instanceof Opcode::UnmodeledUse
|
||||
getOpcode() instanceof Opcode::UnmodeledUse
|
||||
}
|
||||
|
||||
override string getOperandsString() {
|
||||
@@ -1495,7 +1478,7 @@ class UnmodeledUseInstruction extends Instruction {
|
||||
*/
|
||||
class PhiInstruction extends Instruction {
|
||||
PhiInstruction() {
|
||||
opcode instanceof Opcode::Phi
|
||||
getOpcode() instanceof Opcode::Phi
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1547,7 +1530,7 @@ class PhiInstruction extends Instruction {
|
||||
*/
|
||||
class ChiInstruction extends Instruction {
|
||||
ChiInstruction() {
|
||||
opcode instanceof Opcode::Chi
|
||||
getOpcode() instanceof Opcode::Chi
|
||||
}
|
||||
|
||||
override final MemoryAccessKind getResultMemoryAccess() {
|
||||
@@ -1577,7 +1560,7 @@ class ChiInstruction extends Instruction {
|
||||
*/
|
||||
class UnreachedInstruction extends Instruction {
|
||||
UnreachedInstruction() {
|
||||
opcode instanceof Opcode::Unreached
|
||||
getOpcode() instanceof Opcode::Unreached
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1587,6 +1570,6 @@ class UnreachedInstruction extends Instruction {
|
||||
*/
|
||||
class BuiltInInstruction extends Instruction {
|
||||
BuiltInInstruction() {
|
||||
opcode instanceof BuiltInOpcode
|
||||
getOpcode() instanceof BuiltInOpcode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,25 +14,6 @@ cached private module Cached {
|
||||
result.getFirstInstruction() = getNewInstruction(oldBlock.getFirstInstruction())
|
||||
}
|
||||
|
||||
cached newtype TInstructionTag =
|
||||
WrappedInstructionTag(OldInstruction oldInstruction) {
|
||||
not oldInstruction instanceof OldIR::PhiInstruction
|
||||
} or
|
||||
PhiTag(Alias::VirtualVariable vvar, OldBlock block) {
|
||||
hasPhiNode(vvar, block)
|
||||
} or
|
||||
ChiTag(OldInstruction oldInstruction) {
|
||||
not oldInstruction instanceof OldIR::PhiInstruction and
|
||||
hasChiNode(_, oldInstruction)
|
||||
} or
|
||||
UnreachedTag()
|
||||
|
||||
cached class InstructionTagType extends TInstructionTag {
|
||||
cached final string toString() {
|
||||
result = "Tag"
|
||||
}
|
||||
}
|
||||
|
||||
cached predicate functionHasIR(Function func) {
|
||||
exists(OldIR::FunctionIR funcIR |
|
||||
funcIR.getFunction() = func
|
||||
@@ -40,7 +21,7 @@ cached private module Cached {
|
||||
}
|
||||
|
||||
cached OldInstruction getOldInstruction(Instruction instr) {
|
||||
instr.getTag() = WrappedInstructionTag(result)
|
||||
instr = WrappedInstruction(result)
|
||||
}
|
||||
|
||||
private Instruction getNewInstruction(OldInstruction instr) {
|
||||
@@ -52,90 +33,35 @@ cached private module Cached {
|
||||
* corresponding to `instr` if there is no `Chi` node.
|
||||
*/
|
||||
private Instruction getNewFinalInstruction(OldInstruction instr) {
|
||||
result = getChiInstruction(instr)
|
||||
result = Chi(instr)
|
||||
or
|
||||
not exists(getChiInstruction(instr)) and
|
||||
not exists(Chi(instr)) and
|
||||
result = getNewInstruction(instr)
|
||||
}
|
||||
|
||||
private PhiInstruction getPhiInstruction(Function func, OldBlock oldBlock,
|
||||
Alias::VirtualVariable vvar) {
|
||||
result.getFunction() = func and
|
||||
result.getAST() = oldBlock.getFirstInstruction().getAST() and
|
||||
result.getTag() = PhiTag(vvar, oldBlock)
|
||||
}
|
||||
|
||||
private ChiInstruction getChiInstruction (OldInstruction instr) {
|
||||
hasChiNode(_, instr) and
|
||||
result.getTag() = ChiTag(instr)
|
||||
}
|
||||
|
||||
private IRVariable getNewIRVariable(OldIR::IRVariable var) {
|
||||
result.getFunction() = var.getFunction() and
|
||||
(
|
||||
exists(OldIR::IRUserVariable userVar, IRUserVariable newUserVar |
|
||||
userVar = var and
|
||||
newUserVar.getVariable() = userVar.getVariable() and
|
||||
result = newUserVar
|
||||
) or
|
||||
exists(OldIR::IRTempVariable tempVar, IRTempVariable newTempVar |
|
||||
tempVar = var and
|
||||
newTempVar.getAST() = tempVar.getAST() and
|
||||
newTempVar.getTag() = tempVar.getTag() and
|
||||
result = newTempVar
|
||||
)
|
||||
)
|
||||
// This is just a type cast. Both classes derive from the same newtype.
|
||||
result = var
|
||||
}
|
||||
|
||||
cached newtype TInstruction =
|
||||
MkInstruction(FunctionIR funcIR, Opcode opcode, Locatable ast,
|
||||
InstructionTag tag, Type resultType, boolean isGLValue) {
|
||||
hasInstruction(funcIR.getFunction(), opcode, ast, tag,
|
||||
resultType, isGLValue)
|
||||
WrappedInstruction(OldInstruction oldInstruction) {
|
||||
not oldInstruction instanceof OldIR::PhiInstruction
|
||||
} or
|
||||
Phi(OldBlock block, Alias::VirtualVariable vvar) {
|
||||
hasPhiNode(vvar, block)
|
||||
} or
|
||||
Chi(OldInstruction oldInstruction) {
|
||||
not oldInstruction instanceof OldIR::PhiInstruction and
|
||||
hasChiNode(_, oldInstruction)
|
||||
} or
|
||||
Unreached(Function function) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
function = oldInstruction.getFunction() and
|
||||
Reachability::isInfeasibleInstructionSuccessor(oldInstruction, _)
|
||||
)
|
||||
}
|
||||
|
||||
private predicate hasInstruction(Function func, Opcode opcode, Locatable ast,
|
||||
InstructionTag tag, Type resultType, boolean isGLValue) {
|
||||
exists(OldInstruction instr |
|
||||
instr.getFunction() = func and
|
||||
instr.getOpcode() = opcode and
|
||||
instr.getAST() = ast and
|
||||
WrappedInstructionTag(instr) = tag and
|
||||
instr.getResultType() = resultType and
|
||||
if instr.isGLValue() then
|
||||
isGLValue = true
|
||||
else
|
||||
isGLValue = false
|
||||
) or
|
||||
exists(OldBlock block, Alias::VirtualVariable vvar |
|
||||
hasPhiNode(vvar, block) and
|
||||
block.getFunction() = func and
|
||||
opcode instanceof Opcode::Phi and
|
||||
ast = block.getFirstInstruction().getAST() and
|
||||
tag = PhiTag(vvar, block) and
|
||||
resultType = vvar.getType() and
|
||||
isGLValue = false
|
||||
) or
|
||||
exists(OldInstruction instr, Alias::VirtualVariable vvar |
|
||||
hasChiNode(vvar, instr) and
|
||||
instr.getFunction() = func and
|
||||
opcode instanceof Opcode::Chi and
|
||||
ast = instr.getAST() and
|
||||
tag = ChiTag(instr) and
|
||||
resultType = vvar.getType() and
|
||||
isGLValue = false
|
||||
) or
|
||||
exists(OldInstruction oldInstruction |
|
||||
func = oldInstruction.getFunction() and
|
||||
Reachability::isInfeasibleInstructionSuccessor(oldInstruction, _) and
|
||||
tag = UnreachedTag() and
|
||||
opcode instanceof Opcode::Unreached and
|
||||
ast = func and
|
||||
resultType instanceof VoidType and
|
||||
isGLValue = false
|
||||
)
|
||||
}
|
||||
|
||||
cached predicate hasTempVariable(Function func, Locatable ast, TempVariableTag tag,
|
||||
Type type) {
|
||||
exists(OldIR::IRTempVariable var |
|
||||
@@ -169,7 +95,7 @@ cached private module Cached {
|
||||
if defIndex >= 0 then
|
||||
result = getNewFinalInstruction(defBlock.getInstruction(defIndex))
|
||||
else
|
||||
result = getPhiInstruction(instruction.getFunction(), defBlock, vvar)
|
||||
result = Phi(defBlock, vvar)
|
||||
)
|
||||
)
|
||||
else (
|
||||
@@ -189,7 +115,7 @@ cached private module Cached {
|
||||
else
|
||||
result = getNewInstruction(oldOperand.getDefinitionInstruction())
|
||||
) or
|
||||
instruction.getTag() = ChiTag(getOldInstruction(result)) and
|
||||
instruction = Chi(getOldInstruction(result)) and
|
||||
tag instanceof ChiPartialOperandTag
|
||||
or
|
||||
exists(FunctionIR f |
|
||||
@@ -208,21 +134,21 @@ cached private module Cached {
|
||||
OldBlock defBlock, int defRank, int defIndex, OldBlock predBlock |
|
||||
hasPhiNode(vvar, phiBlock) and
|
||||
predBlock = phiBlock.getAFeasiblePredecessor() and
|
||||
instr.getTag() = PhiTag(vvar, phiBlock) and
|
||||
instr = Phi(phiBlock, vvar) and
|
||||
newPredecessorBlock = getNewBlock(predBlock) and
|
||||
hasDefinitionAtRank(vvar, defBlock, defRank, defIndex) and
|
||||
definitionReachesEndOfBlock(vvar, defBlock, defRank, predBlock) and
|
||||
if defIndex >= 0 then
|
||||
result = getNewFinalInstruction(defBlock.getInstruction(defIndex))
|
||||
else
|
||||
result = getPhiInstruction(instr.getFunction(), defBlock, vvar)
|
||||
result = Phi(defBlock, vvar)
|
||||
)
|
||||
}
|
||||
|
||||
cached Instruction getChiInstructionTotalOperand(ChiInstruction chiInstr) {
|
||||
exists(Alias::VirtualVariable vvar, OldInstruction oldInstr, OldBlock defBlock,
|
||||
int defRank, int defIndex, OldBlock useBlock, int useRank |
|
||||
ChiTag(oldInstr) = chiInstr.getTag() and
|
||||
chiInstr = Chi(oldInstr) and
|
||||
vvar = Alias::getResultMemoryAccess(oldInstr).getVirtualVariable() and
|
||||
hasDefinitionAtRank(vvar, defBlock, defRank, defIndex) and
|
||||
hasUseAtRank(vvar, useBlock, useRank, oldInstr) and
|
||||
@@ -230,13 +156,13 @@ cached private module Cached {
|
||||
if defIndex >= 0 then
|
||||
result = getNewFinalInstruction(defBlock.getInstruction(defIndex))
|
||||
else
|
||||
result = getPhiInstruction(chiInstr.getFunction(), defBlock, vvar)
|
||||
result = Phi(defBlock, vvar)
|
||||
)
|
||||
}
|
||||
|
||||
cached Instruction getPhiInstructionBlockStart(PhiInstruction instr) {
|
||||
exists(OldBlock oldBlock |
|
||||
instr.getTag() = PhiTag(_, oldBlock) and
|
||||
instr = Phi(oldBlock, _) and
|
||||
result = getNewInstruction(oldBlock.getFirstInstruction())
|
||||
)
|
||||
}
|
||||
@@ -257,15 +183,14 @@ cached private module Cached {
|
||||
cached Instruction getInstructionSuccessor(Instruction instruction, EdgeKind kind) {
|
||||
if(hasChiNode(_, getOldInstruction(instruction)))
|
||||
then
|
||||
result = getChiInstruction(getOldInstruction(instruction)) and
|
||||
result = Chi(getOldInstruction(instruction)) and
|
||||
kind instanceof GotoEdge
|
||||
else (
|
||||
exists(OldInstruction oldInstruction |
|
||||
oldInstruction = getOldInstruction(instruction) and
|
||||
(
|
||||
if Reachability::isInfeasibleInstructionSuccessor(oldInstruction, kind) then (
|
||||
result.getTag() = UnreachedTag() and
|
||||
result.getFunction() = instruction.getFunction()
|
||||
result = Unreached(instruction.getFunction())
|
||||
)
|
||||
else (
|
||||
result = getNewInstruction(oldInstruction.getSuccessor(kind))
|
||||
@@ -273,7 +198,7 @@ cached private module Cached {
|
||||
)
|
||||
) or
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = getChiInstruction(oldInstruction) and
|
||||
instruction = Chi(oldInstruction) and
|
||||
result = getNewInstruction(oldInstruction.getSuccessor(kind))
|
||||
)
|
||||
)
|
||||
@@ -291,11 +216,88 @@ cached private module Cached {
|
||||
// `oldInstruction`, in which case the back edge should come out of the
|
||||
// chi node instead.
|
||||
if hasChiNode(_, oldInstruction)
|
||||
then instruction = getChiInstruction(oldInstruction)
|
||||
then instruction = Chi(oldInstruction)
|
||||
else instruction = getNewInstruction(oldInstruction)
|
||||
)
|
||||
}
|
||||
|
||||
cached Locatable getInstructionAST(Instruction instruction) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = WrappedInstruction(oldInstruction)
|
||||
or
|
||||
instruction = Chi(oldInstruction)
|
||||
|
|
||||
result = oldInstruction.getAST()
|
||||
)
|
||||
or
|
||||
exists(OldBlock block |
|
||||
instruction = Phi(block, _) and
|
||||
result = block.getFirstInstruction().getAST()
|
||||
)
|
||||
or
|
||||
instruction = Unreached(result)
|
||||
}
|
||||
|
||||
cached predicate instructionHasType(Instruction instruction, Type type, boolean isGLValue) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = WrappedInstruction(oldInstruction) and
|
||||
type = oldInstruction.getResultType() and
|
||||
if oldInstruction.isGLValue()
|
||||
then isGLValue = true
|
||||
else isGLValue = false
|
||||
)
|
||||
or
|
||||
exists(OldInstruction oldInstruction, Alias::VirtualVariable vvar |
|
||||
instruction = Chi(oldInstruction) and
|
||||
hasChiNode(vvar, oldInstruction) and
|
||||
type = vvar.getType() and
|
||||
isGLValue = false
|
||||
)
|
||||
or
|
||||
exists(Alias::VirtualVariable vvar |
|
||||
instruction = Phi(_, vvar) and
|
||||
type = vvar.getType() and
|
||||
isGLValue = false
|
||||
)
|
||||
or
|
||||
instruction = Unreached(_) and
|
||||
type instanceof VoidType and
|
||||
isGLValue = false
|
||||
}
|
||||
|
||||
cached Opcode getInstructionOpcode(Instruction instruction) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = WrappedInstruction(oldInstruction) and
|
||||
result = oldInstruction.getOpcode()
|
||||
)
|
||||
or
|
||||
instruction instanceof Chi and
|
||||
result instanceof Opcode::Chi
|
||||
or
|
||||
instruction instanceof Phi and
|
||||
result instanceof Opcode::Phi
|
||||
or
|
||||
instruction instanceof Unreached and
|
||||
result instanceof Opcode::Unreached
|
||||
}
|
||||
|
||||
cached FunctionIR getInstructionEnclosingFunctionIR(Instruction instruction) {
|
||||
exists(OldInstruction oldInstruction |
|
||||
instruction = WrappedInstruction(oldInstruction)
|
||||
or
|
||||
instruction = Chi(oldInstruction)
|
||||
|
|
||||
result.getFunction() = oldInstruction.getFunction()
|
||||
)
|
||||
or
|
||||
exists(OldBlock block |
|
||||
instruction = Phi(block, _) and
|
||||
result.getFunction() = block.getFunction()
|
||||
)
|
||||
or
|
||||
instruction = Unreached(result.getFunction())
|
||||
}
|
||||
|
||||
cached IRVariable getInstructionVariable(Instruction instruction) {
|
||||
result = getNewIRVariable(getOldInstruction(instruction).(OldIR::VariableInstruction).getVariable())
|
||||
}
|
||||
@@ -346,13 +348,13 @@ cached private module Cached {
|
||||
)
|
||||
or
|
||||
exists(OldIR::Instruction oldInstruction |
|
||||
instruction.getTag() = ChiTag(oldInstruction) and
|
||||
instruction = Chi(oldInstruction) and
|
||||
result = getNewInstruction(oldInstruction)
|
||||
)
|
||||
}
|
||||
|
||||
private predicate ssa_variableUpdate(Alias::VirtualVariable vvar,
|
||||
OldInstruction instr, OldBlock block, int index) {
|
||||
OldBlock block, int index, OldInstruction instr) {
|
||||
block.getInstruction(index) = instr and
|
||||
Alias::getResultMemoryAccess(instr).getVirtualVariable() = vvar
|
||||
}
|
||||
@@ -370,11 +372,11 @@ cached private module Cached {
|
||||
}
|
||||
|
||||
private predicate defUseRank(Alias::VirtualVariable vvar, OldBlock block, int rankIndex, int index) {
|
||||
index = rank[rankIndex](int j | hasDefinition(vvar, block, j) or hasUse(vvar, _, block, j))
|
||||
index = rank[rankIndex](int j | hasDefinition(vvar, block, j) or hasUse(vvar, block, j, _))
|
||||
}
|
||||
|
||||
private predicate hasUse(Alias::VirtualVariable vvar, OldInstruction use, OldBlock block,
|
||||
int index) {
|
||||
private predicate hasUse(Alias::VirtualVariable vvar, OldBlock block, int index,
|
||||
OldInstruction use) {
|
||||
exists(Alias::MemoryAccess access |
|
||||
(
|
||||
access = Alias::getOperandMemoryAccess(use.getAnOperand())
|
||||
@@ -392,10 +394,16 @@ cached private module Cached {
|
||||
}
|
||||
|
||||
private predicate variableLiveOnEntryToBlock(Alias::VirtualVariable vvar, OldBlock block) {
|
||||
exists (int index | hasUse(vvar, _, block, index) |
|
||||
not exists (int j | ssa_variableUpdate(vvar, _, block, j) | j < index)
|
||||
) or
|
||||
(variableLiveOnExitFromBlock(vvar, block) and not ssa_variableUpdate(vvar, _, block, _))
|
||||
exists(int firstAccess |
|
||||
hasUse(vvar, block, firstAccess, _) and
|
||||
firstAccess = min(int index |
|
||||
hasUse(vvar, block, index, _)
|
||||
or
|
||||
ssa_variableUpdate(vvar, block, index, _)
|
||||
)
|
||||
)
|
||||
or
|
||||
(variableLiveOnExitFromBlock(vvar, block) and not ssa_variableUpdate(vvar, block, _, _))
|
||||
}
|
||||
|
||||
pragma[noinline]
|
||||
@@ -422,7 +430,7 @@ cached private module Cached {
|
||||
private predicate hasUseAtRank(Alias::VirtualVariable vvar, OldBlock block, int rankIndex,
|
||||
OldInstruction use) {
|
||||
exists(int index |
|
||||
hasUse(vvar, use, block, index) and
|
||||
hasUse(vvar, block, index, use) and
|
||||
defUseRank(vvar, block, rankIndex, index)
|
||||
)
|
||||
}
|
||||
@@ -535,11 +543,11 @@ cached private module CachedForDebugging {
|
||||
result = "NonSSA: " + oldInstr.getUniqueId()
|
||||
) or
|
||||
exists(Alias::VirtualVariable vvar, OldBlock phiBlock |
|
||||
instr.getTag() = PhiTag(vvar, phiBlock) and
|
||||
instr = Phi(phiBlock, vvar) and
|
||||
result = "Phi Block(" + phiBlock.getUniqueId() + "): " + vvar.getUniqueId()
|
||||
) or
|
||||
(
|
||||
instr.getTag() = UnreachedTag() and
|
||||
instr = Unreached(_) and
|
||||
result = "Unreached"
|
||||
)
|
||||
}
|
||||
|
||||
25
cpp/ql/src/semmle/code/cpp/ir/internal/TIRVariable.qll
Normal file
25
cpp/ql/src/semmle/code/cpp/ir/internal/TIRVariable.qll
Normal file
@@ -0,0 +1,25 @@
|
||||
private import cpp
|
||||
private import semmle.code.cpp.ir.implementation.TempVariableTag
|
||||
private import semmle.code.cpp.ir.implementation.raw.internal.IRConstruction as Construction
|
||||
|
||||
newtype TIRVariable =
|
||||
TIRAutomaticUserVariable(LocalScopeVariable var, Function func) {
|
||||
Construction::functionHasIR(func) and
|
||||
var.getFunction() = func or
|
||||
var.(Parameter).getCatchBlock().getEnclosingFunction() = func
|
||||
} or
|
||||
TIRStaticUserVariable(Variable var, Function func) {
|
||||
Construction::functionHasIR(func) and
|
||||
(
|
||||
var instanceof GlobalOrNamespaceVariable or
|
||||
var instanceof MemberVariable and not var instanceof Field
|
||||
) and
|
||||
exists(VariableAccess access |
|
||||
access.getTarget() = var and
|
||||
access.getEnclosingFunction() = func
|
||||
)
|
||||
} or
|
||||
TIRTempVariable(Function func, Locatable ast, TempVariableTag tag, Type type) {
|
||||
Construction::hasTempVariable(func, ast, tag, type)
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
| test.cpp:16:13:16:14 | _t | This parameter of type $@ is 4096 bytes - consider passing a pointer/reference instead. | test.cpp:6:8:6:20 | myLargeStruct | myLargeStruct |
|
||||
| test.cpp:24:44:24:48 | mtc_t | This parameter of type $@ is 4096 bytes - consider passing a pointer/reference instead. | test.cpp:11:7:11:21 | myTemplateClass<myLargeStruct> | myTemplateClass<myLargeStruct> |
|
||||
| test.cpp:28:49:28:49 | b | This parameter of type $@ is 4096 bytes - consider passing a pointer/reference instead. | test.cpp:6:8:6:20 | myLargeStruct | myLargeStruct |
|
||||
| test.cpp:16:13:16:14 | _t | This parameter of type $@ is 4096 bytes - consider passing a const pointer/reference instead. | test.cpp:6:8:6:20 | myLargeStruct | myLargeStruct |
|
||||
| test.cpp:24:44:24:48 | mtc_t | This parameter of type $@ is 4096 bytes - consider passing a const pointer/reference instead. | test.cpp:11:7:11:21 | myTemplateClass<myLargeStruct> | myTemplateClass<myLargeStruct> |
|
||||
| test.cpp:28:49:28:49 | b | This parameter of type $@ is 4096 bytes - consider passing a const pointer/reference instead. | test.cpp:6:8:6:20 | myLargeStruct | myLargeStruct |
|
||||
|
||||
@@ -402,17 +402,14 @@ module AssignableInternal {
|
||||
* `a`, if any.
|
||||
*/
|
||||
cached
|
||||
Expr getAccessorCallValueArgument(Access a) {
|
||||
a.getTarget() instanceof DeclarationWithAccessors and
|
||||
(
|
||||
exists(AssignExpr ae | tupleAssignmentDefinition(ae, a) |
|
||||
tupleAssignmentPair(ae, a, result)
|
||||
)
|
||||
or
|
||||
exists(Assignment ass | a = ass.getLValue() |
|
||||
result = ass.getRValue() and
|
||||
not ass.(AssignOperation).hasExpandedAssignment()
|
||||
)
|
||||
Expr getAccessorCallValueArgument(AccessorCall ac) {
|
||||
exists(AssignExpr ae | tupleAssignmentDefinition(ae, ac) |
|
||||
tupleAssignmentPair(ae, ac, result)
|
||||
)
|
||||
or
|
||||
exists(Assignment ass | ac = ass.getLValue() |
|
||||
result = ass.getRValue() and
|
||||
not ass.(AssignOperation).hasExpandedAssignment()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -513,7 +513,7 @@ class IndexerProperty extends Property {
|
||||
IndexerCall getAnIndexerCall() {
|
||||
result = getType().(RefType).getAnIndexer().getAnAccessor().getACall() and
|
||||
// The qualifier of this indexer call should be a value returned from an access of this property
|
||||
exists(Expr qualifier | qualifier = result.getAccess().getQualifier() |
|
||||
exists(Expr qualifier | qualifier = result.(IndexerAccess).getQualifier() |
|
||||
DataFlow::localFlow(DataFlow::exprNode(this.getAnAccess()), DataFlow::exprNode(qualifier))
|
||||
)
|
||||
}
|
||||
|
||||
@@ -477,7 +477,7 @@ private module Internal {
|
||||
|
||||
override Expr getArgument(int i) { result = getCall().getArgument(i) }
|
||||
|
||||
override Expr getQualifier() { result = getCall().getAccess().getQualifier() }
|
||||
override Expr getQualifier() { result = getCall().(MemberAccess).getQualifier() }
|
||||
|
||||
override Accessor getAStaticTarget() { result = getCall().getTarget() }
|
||||
|
||||
|
||||
@@ -380,6 +380,17 @@ class MemberConstantAccess extends FieldAccess {
|
||||
override string toString() { result = "access to constant " + this.getTarget().getName() }
|
||||
}
|
||||
|
||||
/**
|
||||
* An internal helper class to share logic between `PropertyAccess` and
|
||||
* `PropertyCall`.
|
||||
*/
|
||||
library class PropertyAccessExpr extends Expr, @property_access_expr {
|
||||
/** Gets the target of this property access. */
|
||||
Property getProperty() { expr_access(this, result) }
|
||||
|
||||
override string toString() { result = "access to property " + this.getProperty().getName() }
|
||||
}
|
||||
|
||||
/**
|
||||
* An access to a property, for example the access to `P` on line 5 in
|
||||
*
|
||||
@@ -393,13 +404,8 @@ class MemberConstantAccess extends FieldAccess {
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
class PropertyAccess extends AssignableMemberAccess, @property_access_expr {
|
||||
/** Gets the target of this property access. */
|
||||
Property getProperty() { expr_access(this, result) }
|
||||
|
||||
class PropertyAccess extends AssignableMemberAccess, PropertyAccessExpr {
|
||||
override Property getTarget() { result = this.getProperty() }
|
||||
|
||||
override string toString() { result = "access to property " + this.getProperty().getName() }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -509,6 +515,17 @@ class ElementRead extends ElementAccess, AssignableRead { }
|
||||
*/
|
||||
class ElementWrite extends ElementAccess, AssignableWrite { }
|
||||
|
||||
/**
|
||||
* An internal helper class to share logic between `IndexerAccess` and
|
||||
* `IndexerCall`.
|
||||
*/
|
||||
library class IndexerAccessExpr extends Expr, @indexer_access_expr {
|
||||
/** Gets the target of this indexer access. */
|
||||
Indexer getIndexer() { expr_access(this, result) }
|
||||
|
||||
override string toString() { result = "access to indexer" }
|
||||
}
|
||||
|
||||
/**
|
||||
* An access to an indexer, for example the access to `c` on line 5 in
|
||||
*
|
||||
@@ -522,17 +539,12 @@ class ElementWrite extends ElementAccess, AssignableWrite { }
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
class IndexerAccess extends AssignableMemberAccess, ElementAccess, @indexer_access_expr {
|
||||
/** Gets the target of this indexer access. */
|
||||
Indexer getIndexer() { expr_access(this, result) }
|
||||
|
||||
class IndexerAccess extends AssignableMemberAccess, ElementAccess, IndexerAccessExpr {
|
||||
override Indexer getTarget() { result = this.getIndexer() }
|
||||
|
||||
override Indexer getQualifiedDeclaration() {
|
||||
result = ElementAccess.super.getQualifiedDeclaration()
|
||||
}
|
||||
|
||||
override string toString() { result = "access to indexer" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -588,6 +600,17 @@ class VirtualIndexerAccess extends IndexerAccess {
|
||||
VirtualIndexerAccess() { targetIsOverridableOrImplementable() }
|
||||
}
|
||||
|
||||
/**
|
||||
* An internal helper class to share logic between `EventAccess` and
|
||||
* `EventCall`.
|
||||
*/
|
||||
library class EventAccessExpr extends Expr, @event_access_expr {
|
||||
/** Gets the target of this event access. */
|
||||
Event getEvent() { expr_access(this, result) }
|
||||
|
||||
override string toString() { result = "access to event " + this.getEvent().getName() }
|
||||
}
|
||||
|
||||
/**
|
||||
* An access to an event, for example the accesses to `Click` on lines
|
||||
* 7 and 8 in
|
||||
@@ -605,13 +628,8 @@ class VirtualIndexerAccess extends IndexerAccess {
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
class EventAccess extends AssignableMemberAccess, @event_access_expr {
|
||||
/** Gets the target of this event access. */
|
||||
Event getEvent() { expr_access(this, result) }
|
||||
|
||||
class EventAccess extends AssignableMemberAccess, EventAccessExpr {
|
||||
override Event getTarget() { result = getEvent() }
|
||||
|
||||
override string toString() { result = "access to event " + this.getEvent().getName() }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,24 +11,13 @@ private import semmle.code.csharp.dataflow.DelegateDataFlow
|
||||
private import semmle.code.csharp.dispatch.Dispatch
|
||||
private import dotnet
|
||||
|
||||
/** INTERNAL: Do not use. */
|
||||
library class CallImpl extends Expr {
|
||||
cached
|
||||
CallImpl() {
|
||||
this instanceof @call and
|
||||
not this instanceof @call_access_expr
|
||||
or
|
||||
this instanceof AccessorCallImpl::AccessorCallImpl
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A call. Either a method call (`MethodCall`), a constructor initializer call
|
||||
* (`ConstructorInitializer`), a call to a user-defined operator (`OperatorCall`),
|
||||
* a delegate call (`DelegateCall`), an accessor call (`AccessorCall`), a
|
||||
* constructor call (`ObjectCreation`), or a local function call (`LocalFunctionCall`).
|
||||
*/
|
||||
class Call extends DotNet::Call, CallImpl {
|
||||
class Call extends DotNet::Call, Expr, @call {
|
||||
/**
|
||||
* Gets the static (compile-time) target of this call. For example, the
|
||||
* static target of `x.M()` on line 9 is `A.M` in
|
||||
@@ -565,159 +554,15 @@ class DelegateCall extends Call, @delegate_invocation_expr {
|
||||
override string toString() { result = "delegate call" }
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides logic for determining the syntactic nodes associated with calls
|
||||
* to accessors. Example:
|
||||
*
|
||||
* ```
|
||||
* int Prop { get; set; }
|
||||
* public int GetProp() => Prop;
|
||||
* public void SetProp(int i) { Prop = i + 1; }
|
||||
* ```
|
||||
*
|
||||
* In the body of `GetProp()`, the call to the accessor `get_Prop()` is simply
|
||||
* the access `Prop`. However, in the body of `SetProp()`, the call to the accessor
|
||||
* `set_Prop()` is not the access `Prop`, but rather the assignment `Prop = i + 1`.
|
||||
* (Using `Prop` as the call to `set_Prop()` will yield an incorrect control flow
|
||||
* graph, where `set_Prop()` is called before `i + 1` is evaluated.)
|
||||
*/
|
||||
private module AccessorCallImpl {
|
||||
/**
|
||||
* Holds if `e` is a tuple assignment with multiple setter assignments,
|
||||
* for example `(Prop1, Prop2) = (0, 1)`, where both `Prop1` and `Prop2`
|
||||
* are properties.
|
||||
*
|
||||
* In such cases, we cannot associate the compound assignment with the
|
||||
* setter calls, so we instead revert to representing the calls via the
|
||||
* individual accesses on the left hand side.
|
||||
*/
|
||||
private predicate multiTupleSetter(Expr e) {
|
||||
strictcount(AssignableDefinitions::TupleAssignmentDefinition def |
|
||||
def.getExpr() = e and
|
||||
def.getTargetAccess().getTarget() instanceof DeclarationWithGetSetAccessors
|
||||
) > 1
|
||||
}
|
||||
|
||||
abstract class AccessorCallImpl extends Expr {
|
||||
abstract Access getAccess();
|
||||
|
||||
abstract Accessor getTarget();
|
||||
|
||||
abstract Expr getArgument(int i);
|
||||
}
|
||||
|
||||
abstract class PropertyCallImpl extends AccessorCallImpl {
|
||||
PropertyAccess pa;
|
||||
|
||||
override PropertyAccess getAccess() { result = pa }
|
||||
|
||||
abstract override Accessor getTarget();
|
||||
|
||||
abstract override Expr getArgument(int i);
|
||||
}
|
||||
|
||||
class PropertyGetterCall extends PropertyCallImpl, @property_access_expr {
|
||||
PropertyGetterCall() {
|
||||
this instanceof AssignableRead and
|
||||
pa = this
|
||||
}
|
||||
|
||||
override Getter getTarget() { result = pa.getProperty().getGetter() }
|
||||
|
||||
override Expr getArgument(int i) { none() }
|
||||
}
|
||||
|
||||
class PropertySetterCall extends PropertyCallImpl {
|
||||
PropertySetterCall() {
|
||||
exists(AssignableDefinition def | pa = def.getTargetAccess() |
|
||||
(if multiTupleSetter(def.getExpr()) then this = pa else this = def.getExpr()) and
|
||||
not def.getExpr().(AssignOperation).hasExpandedAssignment()
|
||||
)
|
||||
}
|
||||
|
||||
override Expr getArgument(int i) {
|
||||
i = 0 and
|
||||
result = AssignableInternal::getAccessorCallValueArgument(pa)
|
||||
}
|
||||
|
||||
override Setter getTarget() { result = pa.getProperty().getSetter() }
|
||||
}
|
||||
|
||||
abstract class IndexerCallImpl extends AccessorCallImpl {
|
||||
IndexerAccess ia;
|
||||
|
||||
override IndexerAccess getAccess() { result = ia }
|
||||
|
||||
abstract override Accessor getTarget();
|
||||
|
||||
abstract override Expr getArgument(int i);
|
||||
}
|
||||
|
||||
class IndexerGetterCall extends IndexerCallImpl, @indexer_access_expr {
|
||||
IndexerGetterCall() {
|
||||
this instanceof AssignableRead and
|
||||
ia = this
|
||||
}
|
||||
|
||||
override Getter getTarget() { result = ia.getIndexer().getGetter() }
|
||||
|
||||
override Expr getArgument(int i) { result = ia.getIndex(i) }
|
||||
}
|
||||
|
||||
class IndexerSetterCall extends IndexerCallImpl {
|
||||
IndexerSetterCall() {
|
||||
exists(AssignableDefinition def | ia = def.getTargetAccess() |
|
||||
(if multiTupleSetter(def.getExpr()) then this = ia else this = def.getExpr()) and
|
||||
not def.getExpr().(AssignOperation).hasExpandedAssignment()
|
||||
)
|
||||
}
|
||||
|
||||
override Setter getTarget() { result = ia.getIndexer().getSetter() }
|
||||
|
||||
override Expr getArgument(int i) {
|
||||
result = ia.getIndex(i)
|
||||
or
|
||||
i = count(ia.getAnIndex()) and
|
||||
result = AssignableInternal::getAccessorCallValueArgument(ia)
|
||||
}
|
||||
}
|
||||
|
||||
class EventCallImpl extends AccessorCallImpl, @assign_event_expr {
|
||||
override EventAccess getAccess() { result = this.(AddOrRemoveEventExpr).getLValue() }
|
||||
|
||||
override EventAccessor getTarget() {
|
||||
exists(Event e | e = this.getAccess().getEvent() |
|
||||
this instanceof AddEventExpr and result = e.getAddEventAccessor()
|
||||
or
|
||||
this instanceof RemoveEventExpr and result = e.getRemoveEventAccessor()
|
||||
)
|
||||
}
|
||||
|
||||
override Expr getArgument(int i) {
|
||||
i = 0 and
|
||||
result = this.(AddOrRemoveEventExpr).getRValue()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A call to an accessor. Either a property accessor call (`PropertyCall`),
|
||||
* an indexer accessor call (`IndexerCall`), or an event accessor call
|
||||
* (`EventCall`).
|
||||
*/
|
||||
class AccessorCall extends Call {
|
||||
private AccessorCallImpl::AccessorCallImpl impl;
|
||||
class AccessorCall extends Call, QualifiableExpr, @call_access_expr {
|
||||
override Accessor getTarget() { none() }
|
||||
|
||||
AccessorCall() { this = impl }
|
||||
|
||||
/** Gets the underlying access. */
|
||||
MemberAccess getAccess() { result = impl.getAccess() }
|
||||
|
||||
override Accessor getTarget() { result = impl.getTarget() }
|
||||
|
||||
override Expr getArgument(int i) { result = impl.getArgument(i) }
|
||||
|
||||
override string toString() { none() } // avoid multiple `toString()`s
|
||||
override Expr getArgument(int i) { none() }
|
||||
|
||||
override Accessor getARuntimeTarget() { result = Call.super.getARuntimeTarget() }
|
||||
}
|
||||
@@ -736,15 +581,21 @@ class AccessorCall extends Call {
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
class PropertyCall extends AccessorCall {
|
||||
private AccessorCallImpl::PropertyCallImpl impl;
|
||||
class PropertyCall extends AccessorCall, PropertyAccessExpr {
|
||||
override Accessor getTarget() {
|
||||
exists(PropertyAccess pa, Property p | pa = this and p = getProperty() |
|
||||
pa instanceof AssignableRead and result = p.getGetter()
|
||||
or
|
||||
pa instanceof AssignableWrite and result = p.getSetter()
|
||||
)
|
||||
}
|
||||
|
||||
PropertyCall() { this = impl }
|
||||
override Expr getArgument(int i) {
|
||||
i = 0 and
|
||||
result = AssignableInternal::getAccessorCallValueArgument(this)
|
||||
}
|
||||
|
||||
override PropertyAccess getAccess() { result = impl.getAccess() }
|
||||
|
||||
/** Gets property targeted by this property call. */
|
||||
Property getProperty() { result = this.getAccess().getTarget() }
|
||||
override string toString() { result = PropertyAccessExpr.super.toString() }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -763,15 +614,23 @@ class PropertyCall extends AccessorCall {
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
class IndexerCall extends AccessorCall {
|
||||
private AccessorCallImpl::IndexerCallImpl impl;
|
||||
class IndexerCall extends AccessorCall, IndexerAccessExpr {
|
||||
override Accessor getTarget() {
|
||||
exists(IndexerAccess ia, Indexer i | ia = this and i = getIndexer() |
|
||||
ia instanceof AssignableRead and result = i.getGetter()
|
||||
or
|
||||
ia instanceof AssignableWrite and result = i.getSetter()
|
||||
)
|
||||
}
|
||||
|
||||
IndexerCall() { this = impl }
|
||||
override Expr getArgument(int i) {
|
||||
result = this.(ElementAccess).getIndex(i)
|
||||
or
|
||||
i = count(this.(ElementAccess).getAnIndex()) and
|
||||
result = AssignableInternal::getAccessorCallValueArgument(this)
|
||||
}
|
||||
|
||||
override IndexerAccess getAccess() { result = impl.getAccess() }
|
||||
|
||||
/** Gets indexer targeted by this index call. */
|
||||
Indexer getIndexer() { result = this.getAccess().getTarget() }
|
||||
override string toString() { result = IndexerAccessExpr.super.toString() }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -795,15 +654,27 @@ class IndexerCall extends AccessorCall {
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
class EventCall extends AccessorCall, @assign_event_expr {
|
||||
private AccessorCallImpl::EventCallImpl impl;
|
||||
class EventCall extends AccessorCall, EventAccessExpr {
|
||||
override EventAccessor getTarget() {
|
||||
exists(Event e, AddOrRemoveEventExpr aoree |
|
||||
e = getEvent() and
|
||||
aoree.getLValue() = this
|
||||
|
|
||||
aoree instanceof AddEventExpr and result = e.getAddEventAccessor()
|
||||
or
|
||||
aoree instanceof RemoveEventExpr and result = e.getRemoveEventAccessor()
|
||||
)
|
||||
}
|
||||
|
||||
EventCall() { this = impl }
|
||||
override Expr getArgument(int i) {
|
||||
i = 0 and
|
||||
exists(AddOrRemoveEventExpr aoree |
|
||||
aoree.getLValue() = this and
|
||||
result = aoree.getRValue()
|
||||
)
|
||||
}
|
||||
|
||||
override EventAccess getAccess() { result = impl.getAccess() }
|
||||
|
||||
/** Gets event targeted by this event call. */
|
||||
Event getEvent() { result = this.getAccess().getTarget() }
|
||||
override string toString() { result = EventAccessExpr.super.toString() }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -155,8 +155,7 @@ class XmlReaderSettingsCreation extends ObjectCreation {
|
||||
p = this.getType().(RefType).getAProperty() and
|
||||
exists(PropertyCall set, Expr arg |
|
||||
set.getTarget() = p.getSetter() and
|
||||
DataFlow::localFlow(DataFlow::exprNode(this),
|
||||
DataFlow::exprNode(set.getAccess().getQualifier())) and
|
||||
DataFlow::localFlow(DataFlow::exprNode(this), DataFlow::exprNode(set.getQualifier())) and
|
||||
arg = set.getAnArgument() and
|
||||
result = getBitwiseOrOperand*(arg)
|
||||
)
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
import Expr
|
||||
import Type
|
||||
import Callable
|
||||
private import csharp as CS
|
||||
|
||||
/** An expression. */
|
||||
class Expr extends Element, @dotnet_expr {
|
||||
@@ -26,9 +25,7 @@ class Expr extends Element, @dotnet_expr {
|
||||
}
|
||||
|
||||
/** A call. */
|
||||
class Call extends Expr {
|
||||
Call() { this instanceof @cil_call_any or this instanceof CS::CallImpl }
|
||||
|
||||
class Call extends Expr, @dotnet_call {
|
||||
/** Gets the target of this call. */
|
||||
Callable getTarget() { none() }
|
||||
|
||||
|
||||
@@ -17,23 +17,21 @@
|
||||
| arguments.cs:39:9:39:28 | call to method f3 | arguments.cs:39:27:39:27 | 0 | o |
|
||||
| arguments.cs:40:9:40:42 | call to method f3 | arguments.cs:40:18:40:35 | array creation of type Int32[] | args |
|
||||
| arguments.cs:40:9:40:42 | call to method f3 | arguments.cs:40:41:40:41 | 0 | o |
|
||||
| arguments.cs:54:9:54:16 | ... = ... | arguments.cs:54:16:54:16 | 0 | value |
|
||||
| arguments.cs:55:9:55:25 | ... = ... | arguments.cs:55:16:55:25 | access to indexer | value |
|
||||
| arguments.cs:54:9:54:12 | access to property Prop | arguments.cs:54:16:54:16 | 0 | value |
|
||||
| arguments.cs:55:9:55:12 | access to property Prop | arguments.cs:55:16:55:25 | access to indexer | value |
|
||||
| arguments.cs:55:16:55:25 | access to indexer | arguments.cs:55:21:55:21 | 1 | a |
|
||||
| arguments.cs:55:16:55:25 | access to indexer | arguments.cs:55:24:55:24 | 2 | b |
|
||||
| arguments.cs:56:10:56:13 | access to property Prop | arguments.cs:56:31:56:31 | 5 | value |
|
||||
| arguments.cs:56:16:56:25 | access to indexer | arguments.cs:56:21:56:21 | 3 | a |
|
||||
| arguments.cs:56:16:56:25 | access to indexer | arguments.cs:56:24:56:24 | 4 | b |
|
||||
| arguments.cs:56:16:56:25 | access to indexer | arguments.cs:56:34:56:34 | 6 | value |
|
||||
| arguments.cs:58:9:58:17 | ... = ... | arguments.cs:58:9:58:17 | ... + ... | value |
|
||||
| arguments.cs:58:9:58:12 | access to property Prop | arguments.cs:58:9:58:17 | ... + ... | value |
|
||||
| arguments.cs:59:9:59:18 | access to indexer | arguments.cs:59:14:59:14 | 8 | a |
|
||||
| arguments.cs:59:9:59:18 | access to indexer | arguments.cs:59:17:59:17 | 9 | b |
|
||||
| arguments.cs:59:9:59:20 | ...++ | arguments.cs:59:14:59:14 | 8 | a |
|
||||
| arguments.cs:59:9:59:20 | ...++ | arguments.cs:59:17:59:17 | 9 | b |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:9:60:26 | ... + ... | value |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:14:60:15 | 10 | a |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:14:60:15 | 10 | a |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:18:60:19 | 11 | b |
|
||||
| arguments.cs:60:9:60:26 | ... = ... | arguments.cs:60:9:60:26 | ... + ... | value |
|
||||
| arguments.cs:60:9:60:26 | ... = ... | arguments.cs:60:14:60:15 | 10 | a |
|
||||
| arguments.cs:60:9:60:26 | ... = ... | arguments.cs:60:18:60:19 | 11 | b |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:18:60:19 | 11 | b |
|
||||
| arguments.cs:62:16:62:27 | access to indexer | arguments.cs:62:21:62:22 | 15 | a |
|
||||
| arguments.cs:62:16:62:27 | access to indexer | arguments.cs:62:25:62:26 | 16 | b |
|
||||
|
||||
@@ -17,23 +17,23 @@
|
||||
| arguments.cs:39:9:39:28 | call to method f3 | arguments.cs:39:27:39:27 | 0 | arguments.cs:33:17:33:17 | o |
|
||||
| arguments.cs:40:9:40:42 | call to method f3 | arguments.cs:40:18:40:35 | array creation of type Int32[] | arguments.cs:33:33:33:36 | args |
|
||||
| arguments.cs:40:9:40:42 | call to method f3 | arguments.cs:40:41:40:41 | 0 | arguments.cs:33:17:33:17 | o |
|
||||
| arguments.cs:54:9:54:16 | ... = ... | arguments.cs:54:16:54:16 | 0 | arguments.cs:48:21:48:23 | value |
|
||||
| arguments.cs:55:9:55:25 | ... = ... | arguments.cs:55:16:55:25 | access to indexer | arguments.cs:48:21:48:23 | value |
|
||||
| arguments.cs:54:9:54:12 | access to property Prop | arguments.cs:54:16:54:16 | 0 | arguments.cs:48:21:48:23 | value |
|
||||
| arguments.cs:55:9:55:12 | access to property Prop | arguments.cs:55:16:55:25 | access to indexer | arguments.cs:48:21:48:23 | value |
|
||||
| arguments.cs:55:16:55:25 | access to indexer | arguments.cs:55:21:55:21 | 1 | arguments.cs:50:18:50:18 | a |
|
||||
| arguments.cs:55:16:55:25 | access to indexer | arguments.cs:55:24:55:24 | 2 | arguments.cs:50:25:50:25 | b |
|
||||
| arguments.cs:56:10:56:13 | access to property Prop | arguments.cs:56:31:56:31 | 5 | arguments.cs:48:21:48:23 | value |
|
||||
| arguments.cs:56:16:56:25 | access to indexer | arguments.cs:56:21:56:21 | 3 | arguments.cs:50:18:50:18 | a |
|
||||
| arguments.cs:56:16:56:25 | access to indexer | arguments.cs:56:24:56:24 | 4 | arguments.cs:50:25:50:25 | b |
|
||||
| arguments.cs:56:16:56:25 | access to indexer | arguments.cs:56:34:56:34 | 6 | arguments.cs:50:44:50:46 | value |
|
||||
| arguments.cs:58:9:58:17 | ... = ... | arguments.cs:58:9:58:17 | ... + ... | arguments.cs:48:21:48:23 | value |
|
||||
| arguments.cs:58:9:58:12 | access to property Prop | arguments.cs:58:9:58:17 | ... + ... | arguments.cs:48:21:48:23 | value |
|
||||
| arguments.cs:59:9:59:18 | access to indexer | arguments.cs:59:14:59:14 | 8 | arguments.cs:50:18:50:18 | a |
|
||||
| arguments.cs:59:9:59:18 | access to indexer | arguments.cs:59:14:59:14 | 8 | arguments.cs:50:18:50:18 | a |
|
||||
| arguments.cs:59:9:59:18 | access to indexer | arguments.cs:59:17:59:17 | 9 | arguments.cs:50:25:50:25 | b |
|
||||
| arguments.cs:59:9:59:20 | ...++ | arguments.cs:59:14:59:14 | 8 | arguments.cs:50:18:50:18 | a |
|
||||
| arguments.cs:59:9:59:20 | ...++ | arguments.cs:59:17:59:17 | 9 | arguments.cs:50:25:50:25 | b |
|
||||
| arguments.cs:59:9:59:18 | access to indexer | arguments.cs:59:17:59:17 | 9 | arguments.cs:50:25:50:25 | b |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:9:60:26 | ... + ... | arguments.cs:50:44:50:46 | value |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:14:60:15 | 10 | arguments.cs:50:18:50:18 | a |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:14:60:15 | 10 | arguments.cs:50:18:50:18 | a |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:18:60:19 | 11 | arguments.cs:50:25:50:25 | b |
|
||||
| arguments.cs:60:9:60:26 | ... = ... | arguments.cs:60:9:60:26 | ... + ... | arguments.cs:50:44:50:46 | value |
|
||||
| arguments.cs:60:9:60:26 | ... = ... | arguments.cs:60:14:60:15 | 10 | arguments.cs:50:18:50:18 | a |
|
||||
| arguments.cs:60:9:60:26 | ... = ... | arguments.cs:60:18:60:19 | 11 | arguments.cs:50:25:50:25 | b |
|
||||
| arguments.cs:60:9:60:20 | access to indexer | arguments.cs:60:18:60:19 | 11 | arguments.cs:50:25:50:25 | b |
|
||||
| arguments.cs:62:16:62:27 | access to indexer | arguments.cs:62:21:62:22 | 15 | arguments.cs:50:18:50:18 | a |
|
||||
| arguments.cs:62:16:62:27 | access to indexer | arguments.cs:62:25:62:26 | 16 | arguments.cs:50:25:50:25 | b |
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
| in | Capture.cs:182:17:182:17 | i | Capture.cs:188:13:188:17 | SSA def(i) | Capture.cs:183:13:186:13 | SSA capture def(i) | Capture.cs:189:13:189:17 | call to local function M11 |
|
||||
| in | Capture.cs:197:17:197:17 | i | Capture.cs:197:17:197:21 | SSA def(i) | Capture.cs:198:33:198:44 | SSA capture def(i) | Capture.cs:200:13:200:19 | delegate call |
|
||||
| in | Capture.cs:197:17:197:17 | i | Capture.cs:197:17:197:21 | SSA def(i) | Capture.cs:203:34:203:45 | SSA capture def(i) | Capture.cs:200:13:200:19 | delegate call |
|
||||
| in | Capture.cs:209:17:209:17 | i | Capture.cs:209:17:209:21 | SSA def(i) | Capture.cs:212:39:212:71 | SSA capture def(i) | Capture.cs:213:17:213:34 | ... += ... |
|
||||
| in | Capture.cs:209:17:209:17 | i | Capture.cs:209:17:209:21 | SSA def(i) | Capture.cs:212:39:212:71 | SSA capture def(i) | Capture.cs:213:17:213:24 | access to event Exited |
|
||||
| in | Capture.cs:229:13:229:13 | i | Capture.cs:232:9:232:13 | SSA def(i) | Capture.cs:231:9:231:49 | SSA capture def(i) | Capture.cs:233:9:233:12 | call to local function M2 |
|
||||
| in | Fields.cs:77:13:77:13 | f | Fields.cs:77:13:77:45 | SSA def(f) | Fields.cs:78:27:78:54 | SSA capture def(f) | Fields.cs:81:9:81:11 | delegate call |
|
||||
| in | Fields.cs:77:13:77:13 | f | Fields.cs:77:13:77:45 | SSA def(f) | Fields.cs:78:27:78:54 | SSA capture def(f) | Fields.cs:86:9:86:47 | call to method Select |
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
| definitions.cs:57:13:57:23 | Enumeration | definitions.cs:13:10:13:20 | Enumeration | T |
|
||||
| definitions.cs:57:29:57:39 | Enumeration | definitions.cs:13:10:13:20 | Enumeration | T |
|
||||
| definitions.cs:57:41:57:42 | access to constant e1 | definitions.cs:15:9:15:10 | e1 | V |
|
||||
| definitions.cs:60:13:60:21 | access to property property1 | definitions.cs:24:20:24:28 | property1 | V |
|
||||
| definitions.cs:60:13:60:21 | access to property property1 | definitions.cs:24:20:24:28 | property1 | M |
|
||||
| definitions.cs:60:25:60:33 | access to property property1 | definitions.cs:24:20:24:28 | property1 | M |
|
||||
| definitions.cs:63:13:63:14 | C1 | definitions.cs:18:11:18:12 | C1 | T |
|
||||
| definitions.cs:64:13:64:14 | S1 | definitions.cs:78:12:78:13 | S1 | T |
|
||||
@@ -45,11 +45,11 @@
|
||||
| definitions.cs:92:31:92:32 | S1 | definitions.cs:78:12:78:13 | S1 | T |
|
||||
| definitions.cs:93:24:93:25 | S1 | definitions.cs:78:12:78:13 | S1 | M |
|
||||
| definitions.cs:101:22:101:33 | EventHandler | definitions.cs:99:30:99:41 | EventHandler | T |
|
||||
| definitions.cs:105:13:105:17 | access to event Click | definitions.cs:101:35:101:39 | Click | V |
|
||||
| definitions.cs:105:13:105:17 | access to event Click | definitions.cs:101:35:101:39 | Click | M |
|
||||
| definitions.cs:105:22:105:22 | access to method M | definitions.cs:103:32:103:32 | M | M |
|
||||
| definitions.cs:107:13:107:17 | access to event Click | definitions.cs:101:35:101:39 | Click | V |
|
||||
| definitions.cs:107:13:107:17 | access to event Click | definitions.cs:101:35:101:39 | Click | M |
|
||||
| definitions.cs:107:22:107:34 | access to local function LocalFunction | definitions.cs:106:13:106:36 | LocalFunction | M |
|
||||
| definitions.cs:108:13:108:17 | access to event Click | definitions.cs:101:35:101:39 | Click | V |
|
||||
| definitions.cs:108:13:108:17 | access to event Click | definitions.cs:101:35:101:39 | Click | M |
|
||||
| definitions.cs:114:28:114:28 | T | definitions.cs:114:17:114:17 | T | T |
|
||||
| definitions.cs:114:32:114:32 | A | definitions.cs:97:11:97:11 | A | T |
|
||||
| definitions.cs:117:27:117:27 | T | definitions.cs:117:18:117:18 | T | T |
|
||||
@@ -109,7 +109,7 @@
|
||||
| definitions.cs:171:13:171:17 | C1 | definitions.cs:18:11:18:12 | C1 | T |
|
||||
| definitions.cs:171:27:171:31 | C1 | definitions.cs:18:11:18:12 | C1 | M |
|
||||
| definitions.cs:172:13:172:13 | access to local variable c | definitions.cs:171:19:171:19 | c | V |
|
||||
| definitions.cs:172:15:172:23 | access to property property1 | definitions.cs:24:20:24:28 | property1 | V |
|
||||
| definitions.cs:172:15:172:23 | access to property property1 | definitions.cs:24:20:24:28 | property1 | M |
|
||||
| definitions.cs:172:27:172:27 | access to local variable c | definitions.cs:171:19:171:19 | c | V |
|
||||
| definitions.cs:172:29:172:37 | access to property property1 | definitions.cs:24:20:24:28 | property1 | M |
|
||||
| definitions.cs:173:13:173:15 | C5 | definitions.cs:164:11:164:12 | C5 | T |
|
||||
@@ -117,7 +117,7 @@
|
||||
| definitions.cs:173:34:173:35 | C5 | definitions.cs:164:11:164:12 | C5 | T |
|
||||
| definitions.cs:174:13:174:14 | access to local variable c5 | definitions.cs:173:17:173:18 | c5 | V |
|
||||
| definitions.cs:174:16:174:17 | access to field c1 | definitions.cs:167:12:167:13 | c1 | V |
|
||||
| definitions.cs:174:19:174:27 | access to property property1 | definitions.cs:24:20:24:28 | property1 | V |
|
||||
| definitions.cs:174:19:174:27 | access to property property1 | definitions.cs:24:20:24:28 | property1 | M |
|
||||
| definitions.cs:175:24:175:25 | access to local variable c5 | definitions.cs:173:17:173:18 | c5 | V |
|
||||
| definitions.cs:175:30:175:34 | C4 | definitions.cs:151:11:151:12 | C4 | T |
|
||||
| definitions.cs:175:36:175:41 | Nested<I4> | definitions.cs:158:22:158:30 | Nested<> | T |
|
||||
|
||||
@@ -77,18 +77,18 @@
|
||||
| ViableCallable.cs:12:9:12:28 | call to method M | C6<String,Decimal>.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:12:9:12:28 | call to method M | C6<String,Int32>.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:12:9:12:28 | call to method M | C7<Boolean>.M<T3>(bool, T3) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C2<Boolean>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C2<Decimal>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C2<Int32>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C3.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C4<Int32>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C5.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C6<Boolean,Byte>.set_Prop(bool) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C6<Int32[],Boolean>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C6<String,Boolean>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C6<String,Decimal>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C6<String,Int32>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | C7<Boolean>.set_Prop(bool) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C2<Boolean>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C2<Decimal>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C2<Int32>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C3.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C4<Int32>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C5.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<Boolean,Byte>.set_Prop(bool) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<Int32[],Boolean>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<String,Boolean>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<String,Decimal>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<String,Int32>.set_Prop(string) |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | C7<Boolean>.set_Prop(bool) |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | C2<Boolean>.get_Prop() |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | C2<Decimal>.get_Prop() |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | C2<Int32>.get_Prop() |
|
||||
@@ -101,18 +101,18 @@
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | C6<String,Decimal>.get_Prop() |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | C6<String,Int32>.get_Prop() |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | C7<Boolean>.get_Prop() |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C2<Boolean>.set_Item(bool, string) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C2<Decimal>.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C2<Int32>.set_Item(int, string) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C3.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C4<Int32>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C5.set_Item(bool, string) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C6<Boolean,Byte>.set_Item(byte, bool) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C6<Int32[],Boolean>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C6<String,Boolean>.set_Item(bool, string) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C6<String,Decimal>.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C6<String,Int32>.set_Item(int, string) |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | C7<Boolean>.set_Item(byte, bool) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C2<Boolean>.set_Item(bool, string) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C2<Decimal>.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C2<Int32>.set_Item(int, string) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C3.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C4<Int32>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C5.set_Item(bool, string) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<Boolean,Byte>.set_Item(byte, bool) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<Int32[],Boolean>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<String,Boolean>.set_Item(bool, string) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<String,Decimal>.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<String,Int32>.set_Item(int, string) |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | C7<Boolean>.set_Item(byte, bool) |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | C2<Boolean>.get_Item(bool) |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | C2<Decimal>.get_Item(decimal) |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | C2<Int32>.get_Item(int) |
|
||||
@@ -125,125 +125,125 @@
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | C6<String,Decimal>.get_Item(decimal) |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | C6<String,Int32>.get_Item(int) |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | C7<Boolean>.get_Item(byte) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C2<Boolean>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C2<Decimal>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C2<Int32>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C3.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C4<Int32>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C5.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C6<Boolean,Byte>.add_Event(EventHandler<bool>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C6<Int32[],Boolean>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C6<String,Boolean>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C6<String,Decimal>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C6<String,Int32>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | C7<Boolean>.add_Event(EventHandler<bool>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C2<Boolean>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C2<Decimal>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C2<Int32>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C3.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C4<Int32>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C5.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C6<Boolean,Byte>.remove_Event(EventHandler<bool>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C6<Int32[],Boolean>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C6<String,Boolean>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C6<String,Decimal>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C6<String,Int32>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | C7<Boolean>.remove_Event(EventHandler<bool>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C2<Boolean>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C2<Decimal>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C2<Int32>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C3.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C4<Int32>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C5.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<Boolean,Byte>.add_Event(EventHandler<bool>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<Int32[],Boolean>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<String,Boolean>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<String,Decimal>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<String,Int32>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | C7<Boolean>.add_Event(EventHandler<bool>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C2<Boolean>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C2<Decimal>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C2<Int32>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C3.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C4<Int32>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C5.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<Boolean,Byte>.remove_Event(EventHandler<bool>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<Int32[],Boolean>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<String,Boolean>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<String,Decimal>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<String,Int32>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | C7<Boolean>.remove_Event(EventHandler<bool>) |
|
||||
| ViableCallable.cs:22:9:22:30 | call to method M | C4<Int32>.M<T3>(int[], T3) |
|
||||
| ViableCallable.cs:22:9:22:30 | call to method M | C6<Int32[],Boolean>.M<T3>(int[], T3) |
|
||||
| ViableCallable.cs:24:9:24:25 | ... = ... | C4<Int32>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:24:9:24:25 | ... = ... | C6<Int32[],Boolean>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:24:9:24:15 | access to property Prop | C4<Int32>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:24:9:24:15 | access to property Prop | C6<Int32[],Boolean>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:24:19:24:25 | access to property Prop | C4<Int32>.get_Prop() |
|
||||
| ViableCallable.cs:24:19:24:25 | access to property Prop | C6<Int32[],Boolean>.get_Prop() |
|
||||
| ViableCallable.cs:26:9:26:41 | ... = ... | C4<Int32>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:26:9:26:41 | ... = ... | C6<Int32[],Boolean>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:26:9:26:23 | access to indexer | C4<Int32>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:26:9:26:23 | access to indexer | C6<Int32[],Boolean>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:26:27:26:41 | access to indexer | C4<Int32>.get_Item(bool) |
|
||||
| ViableCallable.cs:26:27:26:41 | access to indexer | C6<Int32[],Boolean>.get_Item(bool) |
|
||||
| ViableCallable.cs:28:9:28:29 | ... += ... | C4<Int32>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:28:9:28:29 | ... += ... | C6<Int32[],Boolean>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:29:9:29:29 | ... -= ... | C4<Int32>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:29:9:29:29 | ... -= ... | C6<Int32[],Boolean>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:28:9:28:16 | access to event Event | C4<Int32>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:28:9:28:16 | access to event Event | C6<Int32[],Boolean>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:29:9:29:16 | access to event Event | C4<Int32>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:29:9:29:16 | access to event Event | C6<Int32[],Boolean>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:32:30:32:52 | call to method Mock | ViableCallable.Mock<C1<string, int>>() |
|
||||
| ViableCallable.cs:33:9:33:23 | call to method M | C2<Int32>.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:33:9:33:23 | call to method M | C6<String,Int32>.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:35:9:35:25 | ... = ... | C2<Int32>.set_Prop(string) |
|
||||
| ViableCallable.cs:35:9:35:25 | ... = ... | C6<String,Int32>.set_Prop(string) |
|
||||
| ViableCallable.cs:35:9:35:15 | access to property Prop | C2<Int32>.set_Prop(string) |
|
||||
| ViableCallable.cs:35:9:35:15 | access to property Prop | C6<String,Int32>.set_Prop(string) |
|
||||
| ViableCallable.cs:35:19:35:25 | access to property Prop | C2<Int32>.get_Prop() |
|
||||
| ViableCallable.cs:35:19:35:25 | access to property Prop | C6<String,Int32>.get_Prop() |
|
||||
| ViableCallable.cs:37:9:37:21 | ... = ... | C2<Int32>.set_Item(int, string) |
|
||||
| ViableCallable.cs:37:9:37:21 | ... = ... | C6<String,Int32>.set_Item(int, string) |
|
||||
| ViableCallable.cs:37:9:37:13 | access to indexer | C2<Int32>.set_Item(int, string) |
|
||||
| ViableCallable.cs:37:9:37:13 | access to indexer | C6<String,Int32>.set_Item(int, string) |
|
||||
| ViableCallable.cs:37:17:37:21 | access to indexer | C2<Int32>.get_Item(int) |
|
||||
| ViableCallable.cs:37:17:37:21 | access to indexer | C6<String,Int32>.get_Item(int) |
|
||||
| ViableCallable.cs:39:9:39:29 | ... += ... | C2<Int32>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:39:9:39:29 | ... += ... | C6<String,Int32>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:40:9:40:29 | ... -= ... | C2<Int32>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:40:9:40:29 | ... -= ... | C6<String,Int32>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:39:9:39:16 | access to event Event | C2<Int32>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:39:9:39:16 | access to event Event | C6<String,Int32>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:40:9:40:16 | access to event Event | C2<Int32>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:40:9:40:16 | access to event Event | C6<String,Int32>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:43:34:43:60 | call to method Mock | ViableCallable.Mock<C1<string, decimal>>() |
|
||||
| ViableCallable.cs:44:9:44:24 | call to method M | C2<Decimal>.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:44:9:44:24 | call to method M | C3.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:44:9:44:24 | call to method M | C6<String,Decimal>.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:46:9:46:25 | ... = ... | C2<Decimal>.set_Prop(string) |
|
||||
| ViableCallable.cs:46:9:46:25 | ... = ... | C3.set_Prop(string) |
|
||||
| ViableCallable.cs:46:9:46:25 | ... = ... | C6<String,Decimal>.set_Prop(string) |
|
||||
| ViableCallable.cs:46:9:46:15 | access to property Prop | C2<Decimal>.set_Prop(string) |
|
||||
| ViableCallable.cs:46:9:46:15 | access to property Prop | C3.set_Prop(string) |
|
||||
| ViableCallable.cs:46:9:46:15 | access to property Prop | C6<String,Decimal>.set_Prop(string) |
|
||||
| ViableCallable.cs:46:19:46:25 | access to property Prop | C2<Decimal>.get_Prop() |
|
||||
| ViableCallable.cs:46:19:46:25 | access to property Prop | C3.get_Prop() |
|
||||
| ViableCallable.cs:46:19:46:25 | access to property Prop | C6<String,Decimal>.get_Prop() |
|
||||
| ViableCallable.cs:48:9:48:23 | ... = ... | C2<Decimal>.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:48:9:48:23 | ... = ... | C3.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:48:9:48:23 | ... = ... | C6<String,Decimal>.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:48:9:48:14 | access to indexer | C2<Decimal>.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:48:9:48:14 | access to indexer | C3.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:48:9:48:14 | access to indexer | C6<String,Decimal>.set_Item(decimal, string) |
|
||||
| ViableCallable.cs:48:18:48:23 | access to indexer | C2<Decimal>.get_Item(decimal) |
|
||||
| ViableCallable.cs:48:18:48:23 | access to indexer | C3.get_Item(decimal) |
|
||||
| ViableCallable.cs:48:18:48:23 | access to indexer | C6<String,Decimal>.get_Item(decimal) |
|
||||
| ViableCallable.cs:50:9:50:29 | ... += ... | C2<Decimal>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:50:9:50:29 | ... += ... | C3.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:50:9:50:29 | ... += ... | C6<String,Decimal>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:51:9:51:29 | ... -= ... | C2<Decimal>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:51:9:51:29 | ... -= ... | C3.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:51:9:51:29 | ... -= ... | C6<String,Decimal>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:50:9:50:16 | access to event Event | C2<Decimal>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:50:9:50:16 | access to event Event | C3.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:50:9:50:16 | access to event Event | C6<String,Decimal>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:51:9:51:16 | access to event Event | C2<Decimal>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:51:9:51:16 | access to event Event | C3.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:51:9:51:16 | access to event Event | C6<String,Decimal>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:54:30:54:52 | call to method Mock | ViableCallable.Mock<C1<int[], bool>>() |
|
||||
| ViableCallable.cs:55:9:55:44 | call to method M | C4<Int32>.M<T3>(int[], T3) |
|
||||
| ViableCallable.cs:55:9:55:44 | call to method M | C6<Int32[],Boolean>.M<T3>(int[], T3) |
|
||||
| ViableCallable.cs:57:9:57:25 | ... = ... | C4<Int32>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:57:9:57:25 | ... = ... | C6<Int32[],Boolean>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:57:9:57:15 | access to property Prop | C4<Int32>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:57:9:57:15 | access to property Prop | C6<Int32[],Boolean>.set_Prop(int[]) |
|
||||
| ViableCallable.cs:57:19:57:25 | access to property Prop | C4<Int32>.get_Prop() |
|
||||
| ViableCallable.cs:57:19:57:25 | access to property Prop | C6<Int32[],Boolean>.get_Prop() |
|
||||
| ViableCallable.cs:59:9:59:29 | ... = ... | C4<Int32>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:59:9:59:29 | ... = ... | C6<Int32[],Boolean>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:59:9:59:17 | access to indexer | C4<Int32>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:59:9:59:17 | access to indexer | C6<Int32[],Boolean>.set_Item(bool, int[]) |
|
||||
| ViableCallable.cs:59:21:59:29 | access to indexer | C4<Int32>.get_Item(bool) |
|
||||
| ViableCallable.cs:59:21:59:29 | access to indexer | C6<Int32[],Boolean>.get_Item(bool) |
|
||||
| ViableCallable.cs:61:9:61:29 | ... += ... | C4<Int32>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:61:9:61:29 | ... += ... | C6<Int32[],Boolean>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:62:9:62:29 | ... -= ... | C4<Int32>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:62:9:62:29 | ... -= ... | C6<Int32[],Boolean>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:61:9:61:16 | access to event Event | C4<Int32>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:61:9:61:16 | access to event Event | C6<Int32[],Boolean>.add_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:62:9:62:16 | access to event Event | C4<Int32>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:62:9:62:16 | access to event Event | C6<Int32[],Boolean>.remove_Event(EventHandler<int[]>) |
|
||||
| ViableCallable.cs:65:31:65:54 | call to method Mock | ViableCallable.Mock<C1<string, bool>>() |
|
||||
| ViableCallable.cs:66:9:66:30 | call to method M | C2<Boolean>.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:66:9:66:30 | call to method M | C5.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:66:9:66:30 | call to method M | C6<String,Boolean>.M<T3>(string, T3) |
|
||||
| ViableCallable.cs:68:9:68:25 | ... = ... | C2<Boolean>.set_Prop(string) |
|
||||
| ViableCallable.cs:68:9:68:25 | ... = ... | C5.set_Prop(string) |
|
||||
| ViableCallable.cs:68:9:68:25 | ... = ... | C6<String,Boolean>.set_Prop(string) |
|
||||
| ViableCallable.cs:68:9:68:15 | access to property Prop | C2<Boolean>.set_Prop(string) |
|
||||
| ViableCallable.cs:68:9:68:15 | access to property Prop | C5.set_Prop(string) |
|
||||
| ViableCallable.cs:68:9:68:15 | access to property Prop | C6<String,Boolean>.set_Prop(string) |
|
||||
| ViableCallable.cs:68:19:68:25 | access to property Prop | C2<Boolean>.get_Prop() |
|
||||
| ViableCallable.cs:68:19:68:25 | access to property Prop | C5.get_Prop() |
|
||||
| ViableCallable.cs:68:19:68:25 | access to property Prop | C6<String,Boolean>.get_Prop() |
|
||||
| ViableCallable.cs:70:9:70:29 | ... = ... | C2<Boolean>.set_Item(bool, string) |
|
||||
| ViableCallable.cs:70:9:70:29 | ... = ... | C5.set_Item(bool, string) |
|
||||
| ViableCallable.cs:70:9:70:29 | ... = ... | C6<String,Boolean>.set_Item(bool, string) |
|
||||
| ViableCallable.cs:70:9:70:17 | access to indexer | C2<Boolean>.set_Item(bool, string) |
|
||||
| ViableCallable.cs:70:9:70:17 | access to indexer | C5.set_Item(bool, string) |
|
||||
| ViableCallable.cs:70:9:70:17 | access to indexer | C6<String,Boolean>.set_Item(bool, string) |
|
||||
| ViableCallable.cs:70:21:70:29 | access to indexer | C2<Boolean>.get_Item(bool) |
|
||||
| ViableCallable.cs:70:21:70:29 | access to indexer | C5.get_Item(bool) |
|
||||
| ViableCallable.cs:70:21:70:29 | access to indexer | C6<String,Boolean>.get_Item(bool) |
|
||||
| ViableCallable.cs:72:9:72:29 | ... += ... | C2<Boolean>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:72:9:72:29 | ... += ... | C5.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:72:9:72:29 | ... += ... | C6<String,Boolean>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:73:9:73:29 | ... -= ... | C2<Boolean>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:73:9:73:29 | ... -= ... | C5.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:73:9:73:29 | ... -= ... | C6<String,Boolean>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:72:9:72:16 | access to event Event | C2<Boolean>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:72:9:72:16 | access to event Event | C5.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:72:9:72:16 | access to event Event | C6<String,Boolean>.add_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:73:9:73:16 | access to event Event | C2<Boolean>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:73:9:73:16 | access to event Event | C5.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:73:9:73:16 | access to event Event | C6<String,Boolean>.remove_Event(EventHandler<string>) |
|
||||
| ViableCallable.cs:77:9:77:29 | call to method M | C6<T1,Boolean>.M<T3>(T1, T3) |
|
||||
| ViableCallable.cs:79:9:79:25 | ... = ... | C6<T1,Boolean>.set_Prop(T1) |
|
||||
| ViableCallable.cs:79:9:79:15 | access to property Prop | C6<T1,Boolean>.set_Prop(T1) |
|
||||
| ViableCallable.cs:79:19:79:25 | access to property Prop | C6<T1,Boolean>.get_Prop() |
|
||||
| ViableCallable.cs:81:9:81:29 | ... = ... | C6<T1,Boolean>.set_Item(bool, T1) |
|
||||
| ViableCallable.cs:81:9:81:17 | access to indexer | C6<T1,Boolean>.set_Item(bool, T1) |
|
||||
| ViableCallable.cs:81:21:81:29 | access to indexer | C6<T1,Boolean>.get_Item(bool) |
|
||||
| ViableCallable.cs:83:9:83:29 | ... += ... | C6<T1,Boolean>.add_Event(EventHandler<T1>) |
|
||||
| ViableCallable.cs:84:9:84:29 | ... -= ... | C6<T1,Boolean>.remove_Event(EventHandler<T1>) |
|
||||
| ViableCallable.cs:83:9:83:16 | access to event Event | C6<T1,Boolean>.add_Event(EventHandler<T1>) |
|
||||
| ViableCallable.cs:84:9:84:16 | access to event Event | C6<T1,Boolean>.remove_Event(EventHandler<T1>) |
|
||||
| ViableCallable.cs:87:21:87:30 | call to method Mock | ViableCallable.Mock<C8>() |
|
||||
| ViableCallable.cs:88:9:88:44 | dynamic call to method M | C8.M(IEnumerable<C1<string[], bool>>) |
|
||||
| ViableCallable.cs:88:9:88:44 | dynamic call to method M | C9<>.M(IEnumerable<C1<string[], bool>>) |
|
||||
@@ -258,9 +258,9 @@
|
||||
| ViableCallable.cs:92:16:92:19 | dynamic access to element | C9<>.get_Item(int) |
|
||||
| ViableCallable.cs:95:13:95:40 | call to method Mock | ViableCallable.Mock<IEnumerable<C4<int>>>() |
|
||||
| ViableCallable.cs:99:9:99:15 | dynamic call to method M | C5.M(int) |
|
||||
| ViableCallable.cs:102:9:102:20 | ... = ... | C5.set_Prop2(string) |
|
||||
| ViableCallable.cs:105:9:105:22 | ... += ... | C5.add_Event2(EventHandler<string>) |
|
||||
| ViableCallable.cs:106:9:106:22 | ... -= ... | C5.remove_Event2(EventHandler<string>) |
|
||||
| ViableCallable.cs:102:9:102:16 | access to property Prop2 | C5.set_Prop2(string) |
|
||||
| ViableCallable.cs:105:9:105:17 | access to event Event2 | C5.add_Event2(EventHandler<string>) |
|
||||
| ViableCallable.cs:106:9:106:17 | access to event Event2 | C5.remove_Event2(EventHandler<string>) |
|
||||
| ViableCallable.cs:120:9:120:25 | dynamic call to method M2 | C8.M2<decimal>(decimal[]) |
|
||||
| ViableCallable.cs:124:9:124:24 | dynamic call to method M2 | C8.M2<string>(string[]) |
|
||||
| ViableCallable.cs:132:9:132:28 | dynamic call to method M | C6<T1,Byte>.M<T3>(T1, T3) |
|
||||
|
||||
@@ -4,134 +4,134 @@
|
||||
| ViableCallable.cs:12:9:12:28 | call to method M | M | C5 |
|
||||
| ViableCallable.cs:12:9:12:28 | call to method M | M | C6<,> |
|
||||
| ViableCallable.cs:12:9:12:28 | call to method M | M | C7<> |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | set_Prop | C2<> |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | set_Prop | C3 |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | set_Prop | C4<> |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | set_Prop | C5 |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:14:9:14:25 | ... = ... | set_Prop | C7<> |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | set_Prop | C2<> |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | set_Prop | C3 |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | set_Prop | C4<> |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | set_Prop | C5 |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:14:9:14:15 | access to property Prop | set_Prop | C7<> |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | get_Prop | C2<> |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | get_Prop | C3 |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | get_Prop | C4<> |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | get_Prop | C5 |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | get_Prop | C6<,> |
|
||||
| ViableCallable.cs:14:19:14:25 | access to property Prop | get_Prop | C7<> |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | set_Item | C2<> |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | set_Item | C3 |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | set_Item | C4<> |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | set_Item | C5 |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | set_Item | C6<,> |
|
||||
| ViableCallable.cs:16:9:16:41 | ... = ... | set_Item | C7<> |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | set_Item | C2<> |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | set_Item | C3 |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | set_Item | C4<> |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | set_Item | C5 |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | set_Item | C6<,> |
|
||||
| ViableCallable.cs:16:9:16:23 | access to indexer | set_Item | C7<> |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | get_Item | C2<> |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | get_Item | C3 |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | get_Item | C4<> |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | get_Item | C5 |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | get_Item | C6<,> |
|
||||
| ViableCallable.cs:16:27:16:41 | access to indexer | get_Item | C7<> |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | add_Event | C2<> |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | add_Event | C3 |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | add_Event | C4<> |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | add_Event | C5 |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | add_Event | C6<,> |
|
||||
| ViableCallable.cs:18:9:18:29 | ... += ... | add_Event | C7<> |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | remove_Event | C2<> |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | remove_Event | C3 |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | remove_Event | C4<> |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | remove_Event | C5 |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:19:9:19:29 | ... -= ... | remove_Event | C7<> |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | add_Event | C2<> |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | add_Event | C3 |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | add_Event | C4<> |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | add_Event | C5 |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | add_Event | C6<,> |
|
||||
| ViableCallable.cs:18:9:18:16 | access to event Event | add_Event | C7<> |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | remove_Event | C2<> |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | remove_Event | C3 |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | remove_Event | C4<> |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | remove_Event | C5 |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:19:9:19:16 | access to event Event | remove_Event | C7<> |
|
||||
| ViableCallable.cs:22:9:22:30 | call to method M | M | C4<> |
|
||||
| ViableCallable.cs:22:9:22:30 | call to method M | M | C6<,> |
|
||||
| ViableCallable.cs:24:9:24:25 | ... = ... | set_Prop | C4<> |
|
||||
| ViableCallable.cs:24:9:24:25 | ... = ... | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:24:9:24:15 | access to property Prop | set_Prop | C4<> |
|
||||
| ViableCallable.cs:24:9:24:15 | access to property Prop | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:24:19:24:25 | access to property Prop | get_Prop | C4<> |
|
||||
| ViableCallable.cs:24:19:24:25 | access to property Prop | get_Prop | C6<,> |
|
||||
| ViableCallable.cs:26:9:26:41 | ... = ... | set_Item | C4<> |
|
||||
| ViableCallable.cs:26:9:26:41 | ... = ... | set_Item | C6<,> |
|
||||
| ViableCallable.cs:26:9:26:23 | access to indexer | set_Item | C4<> |
|
||||
| ViableCallable.cs:26:9:26:23 | access to indexer | set_Item | C6<,> |
|
||||
| ViableCallable.cs:26:27:26:41 | access to indexer | get_Item | C4<> |
|
||||
| ViableCallable.cs:26:27:26:41 | access to indexer | get_Item | C6<,> |
|
||||
| ViableCallable.cs:28:9:28:29 | ... += ... | add_Event | C4<> |
|
||||
| ViableCallable.cs:28:9:28:29 | ... += ... | add_Event | C6<,> |
|
||||
| ViableCallable.cs:29:9:29:29 | ... -= ... | remove_Event | C4<> |
|
||||
| ViableCallable.cs:29:9:29:29 | ... -= ... | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:28:9:28:16 | access to event Event | add_Event | C4<> |
|
||||
| ViableCallable.cs:28:9:28:16 | access to event Event | add_Event | C6<,> |
|
||||
| ViableCallable.cs:29:9:29:16 | access to event Event | remove_Event | C4<> |
|
||||
| ViableCallable.cs:29:9:29:16 | access to event Event | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:33:9:33:23 | call to method M | M | C2<> |
|
||||
| ViableCallable.cs:33:9:33:23 | call to method M | M | C6<,> |
|
||||
| ViableCallable.cs:35:9:35:25 | ... = ... | set_Prop | C2<> |
|
||||
| ViableCallable.cs:35:9:35:25 | ... = ... | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:35:9:35:15 | access to property Prop | set_Prop | C2<> |
|
||||
| ViableCallable.cs:35:9:35:15 | access to property Prop | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:35:19:35:25 | access to property Prop | get_Prop | C2<> |
|
||||
| ViableCallable.cs:35:19:35:25 | access to property Prop | get_Prop | C6<,> |
|
||||
| ViableCallable.cs:37:9:37:21 | ... = ... | set_Item | C2<> |
|
||||
| ViableCallable.cs:37:9:37:21 | ... = ... | set_Item | C6<,> |
|
||||
| ViableCallable.cs:37:9:37:13 | access to indexer | set_Item | C2<> |
|
||||
| ViableCallable.cs:37:9:37:13 | access to indexer | set_Item | C6<,> |
|
||||
| ViableCallable.cs:37:17:37:21 | access to indexer | get_Item | C2<> |
|
||||
| ViableCallable.cs:37:17:37:21 | access to indexer | get_Item | C6<,> |
|
||||
| ViableCallable.cs:39:9:39:29 | ... += ... | add_Event | C2<> |
|
||||
| ViableCallable.cs:39:9:39:29 | ... += ... | add_Event | C6<,> |
|
||||
| ViableCallable.cs:40:9:40:29 | ... -= ... | remove_Event | C2<> |
|
||||
| ViableCallable.cs:40:9:40:29 | ... -= ... | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:39:9:39:16 | access to event Event | add_Event | C2<> |
|
||||
| ViableCallable.cs:39:9:39:16 | access to event Event | add_Event | C6<,> |
|
||||
| ViableCallable.cs:40:9:40:16 | access to event Event | remove_Event | C2<> |
|
||||
| ViableCallable.cs:40:9:40:16 | access to event Event | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:44:9:44:24 | call to method M | M | C2<> |
|
||||
| ViableCallable.cs:44:9:44:24 | call to method M | M | C3 |
|
||||
| ViableCallable.cs:44:9:44:24 | call to method M | M | C6<,> |
|
||||
| ViableCallable.cs:46:9:46:25 | ... = ... | set_Prop | C2<> |
|
||||
| ViableCallable.cs:46:9:46:25 | ... = ... | set_Prop | C3 |
|
||||
| ViableCallable.cs:46:9:46:25 | ... = ... | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:46:9:46:15 | access to property Prop | set_Prop | C2<> |
|
||||
| ViableCallable.cs:46:9:46:15 | access to property Prop | set_Prop | C3 |
|
||||
| ViableCallable.cs:46:9:46:15 | access to property Prop | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:46:19:46:25 | access to property Prop | get_Prop | C2<> |
|
||||
| ViableCallable.cs:46:19:46:25 | access to property Prop | get_Prop | C3 |
|
||||
| ViableCallable.cs:46:19:46:25 | access to property Prop | get_Prop | C6<,> |
|
||||
| ViableCallable.cs:48:9:48:23 | ... = ... | set_Item | C2<> |
|
||||
| ViableCallable.cs:48:9:48:23 | ... = ... | set_Item | C3 |
|
||||
| ViableCallable.cs:48:9:48:23 | ... = ... | set_Item | C6<,> |
|
||||
| ViableCallable.cs:48:9:48:14 | access to indexer | set_Item | C2<> |
|
||||
| ViableCallable.cs:48:9:48:14 | access to indexer | set_Item | C3 |
|
||||
| ViableCallable.cs:48:9:48:14 | access to indexer | set_Item | C6<,> |
|
||||
| ViableCallable.cs:48:18:48:23 | access to indexer | get_Item | C2<> |
|
||||
| ViableCallable.cs:48:18:48:23 | access to indexer | get_Item | C3 |
|
||||
| ViableCallable.cs:48:18:48:23 | access to indexer | get_Item | C6<,> |
|
||||
| ViableCallable.cs:50:9:50:29 | ... += ... | add_Event | C2<> |
|
||||
| ViableCallable.cs:50:9:50:29 | ... += ... | add_Event | C3 |
|
||||
| ViableCallable.cs:50:9:50:29 | ... += ... | add_Event | C6<,> |
|
||||
| ViableCallable.cs:51:9:51:29 | ... -= ... | remove_Event | C2<> |
|
||||
| ViableCallable.cs:51:9:51:29 | ... -= ... | remove_Event | C3 |
|
||||
| ViableCallable.cs:51:9:51:29 | ... -= ... | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:50:9:50:16 | access to event Event | add_Event | C2<> |
|
||||
| ViableCallable.cs:50:9:50:16 | access to event Event | add_Event | C3 |
|
||||
| ViableCallable.cs:50:9:50:16 | access to event Event | add_Event | C6<,> |
|
||||
| ViableCallable.cs:51:9:51:16 | access to event Event | remove_Event | C2<> |
|
||||
| ViableCallable.cs:51:9:51:16 | access to event Event | remove_Event | C3 |
|
||||
| ViableCallable.cs:51:9:51:16 | access to event Event | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:55:9:55:44 | call to method M | M | C4<> |
|
||||
| ViableCallable.cs:55:9:55:44 | call to method M | M | C6<,> |
|
||||
| ViableCallable.cs:57:9:57:25 | ... = ... | set_Prop | C4<> |
|
||||
| ViableCallable.cs:57:9:57:25 | ... = ... | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:57:9:57:15 | access to property Prop | set_Prop | C4<> |
|
||||
| ViableCallable.cs:57:9:57:15 | access to property Prop | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:57:19:57:25 | access to property Prop | get_Prop | C4<> |
|
||||
| ViableCallable.cs:57:19:57:25 | access to property Prop | get_Prop | C6<,> |
|
||||
| ViableCallable.cs:59:9:59:29 | ... = ... | set_Item | C4<> |
|
||||
| ViableCallable.cs:59:9:59:29 | ... = ... | set_Item | C6<,> |
|
||||
| ViableCallable.cs:59:9:59:17 | access to indexer | set_Item | C4<> |
|
||||
| ViableCallable.cs:59:9:59:17 | access to indexer | set_Item | C6<,> |
|
||||
| ViableCallable.cs:59:21:59:29 | access to indexer | get_Item | C4<> |
|
||||
| ViableCallable.cs:59:21:59:29 | access to indexer | get_Item | C6<,> |
|
||||
| ViableCallable.cs:61:9:61:29 | ... += ... | add_Event | C4<> |
|
||||
| ViableCallable.cs:61:9:61:29 | ... += ... | add_Event | C6<,> |
|
||||
| ViableCallable.cs:62:9:62:29 | ... -= ... | remove_Event | C4<> |
|
||||
| ViableCallable.cs:62:9:62:29 | ... -= ... | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:61:9:61:16 | access to event Event | add_Event | C4<> |
|
||||
| ViableCallable.cs:61:9:61:16 | access to event Event | add_Event | C6<,> |
|
||||
| ViableCallable.cs:62:9:62:16 | access to event Event | remove_Event | C4<> |
|
||||
| ViableCallable.cs:62:9:62:16 | access to event Event | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:66:9:66:30 | call to method M | M | C2<> |
|
||||
| ViableCallable.cs:66:9:66:30 | call to method M | M | C5 |
|
||||
| ViableCallable.cs:66:9:66:30 | call to method M | M | C6<,> |
|
||||
| ViableCallable.cs:68:9:68:25 | ... = ... | set_Prop | C2<> |
|
||||
| ViableCallable.cs:68:9:68:25 | ... = ... | set_Prop | C5 |
|
||||
| ViableCallable.cs:68:9:68:25 | ... = ... | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:68:9:68:15 | access to property Prop | set_Prop | C2<> |
|
||||
| ViableCallable.cs:68:9:68:15 | access to property Prop | set_Prop | C5 |
|
||||
| ViableCallable.cs:68:9:68:15 | access to property Prop | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:68:19:68:25 | access to property Prop | get_Prop | C2<> |
|
||||
| ViableCallable.cs:68:19:68:25 | access to property Prop | get_Prop | C5 |
|
||||
| ViableCallable.cs:68:19:68:25 | access to property Prop | get_Prop | C6<,> |
|
||||
| ViableCallable.cs:70:9:70:29 | ... = ... | set_Item | C2<> |
|
||||
| ViableCallable.cs:70:9:70:29 | ... = ... | set_Item | C5 |
|
||||
| ViableCallable.cs:70:9:70:29 | ... = ... | set_Item | C6<,> |
|
||||
| ViableCallable.cs:70:9:70:17 | access to indexer | set_Item | C2<> |
|
||||
| ViableCallable.cs:70:9:70:17 | access to indexer | set_Item | C5 |
|
||||
| ViableCallable.cs:70:9:70:17 | access to indexer | set_Item | C6<,> |
|
||||
| ViableCallable.cs:70:21:70:29 | access to indexer | get_Item | C2<> |
|
||||
| ViableCallable.cs:70:21:70:29 | access to indexer | get_Item | C5 |
|
||||
| ViableCallable.cs:70:21:70:29 | access to indexer | get_Item | C6<,> |
|
||||
| ViableCallable.cs:72:9:72:29 | ... += ... | add_Event | C2<> |
|
||||
| ViableCallable.cs:72:9:72:29 | ... += ... | add_Event | C5 |
|
||||
| ViableCallable.cs:72:9:72:29 | ... += ... | add_Event | C6<,> |
|
||||
| ViableCallable.cs:73:9:73:29 | ... -= ... | remove_Event | C2<> |
|
||||
| ViableCallable.cs:73:9:73:29 | ... -= ... | remove_Event | C5 |
|
||||
| ViableCallable.cs:73:9:73:29 | ... -= ... | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:72:9:72:16 | access to event Event | add_Event | C2<> |
|
||||
| ViableCallable.cs:72:9:72:16 | access to event Event | add_Event | C5 |
|
||||
| ViableCallable.cs:72:9:72:16 | access to event Event | add_Event | C6<,> |
|
||||
| ViableCallable.cs:73:9:73:16 | access to event Event | remove_Event | C2<> |
|
||||
| ViableCallable.cs:73:9:73:16 | access to event Event | remove_Event | C5 |
|
||||
| ViableCallable.cs:73:9:73:16 | access to event Event | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:76:27:76:44 | object creation of type C6<T1,Boolean> | C6 | C6<,> |
|
||||
| ViableCallable.cs:77:9:77:29 | call to method M | M | C6<,> |
|
||||
| ViableCallable.cs:79:9:79:25 | ... = ... | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:79:9:79:15 | access to property Prop | set_Prop | C6<,> |
|
||||
| ViableCallable.cs:79:19:79:25 | access to property Prop | get_Prop | C6<,> |
|
||||
| ViableCallable.cs:81:9:81:29 | ... = ... | set_Item | C6<,> |
|
||||
| ViableCallable.cs:81:9:81:17 | access to indexer | set_Item | C6<,> |
|
||||
| ViableCallable.cs:81:21:81:29 | access to indexer | get_Item | C6<,> |
|
||||
| ViableCallable.cs:83:9:83:29 | ... += ... | add_Event | C6<,> |
|
||||
| ViableCallable.cs:84:9:84:29 | ... -= ... | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:83:9:83:16 | access to event Event | add_Event | C6<,> |
|
||||
| ViableCallable.cs:84:9:84:16 | access to event Event | remove_Event | C6<,> |
|
||||
| ViableCallable.cs:88:9:88:44 | dynamic call to method M | M | C8 |
|
||||
| ViableCallable.cs:88:9:88:44 | dynamic call to method M | M | C9<> |
|
||||
| ViableCallable.cs:90:9:90:15 | dynamic access to member Prop1 | set_Prop1 | C8 |
|
||||
@@ -143,9 +143,9 @@
|
||||
| ViableCallable.cs:92:16:92:19 | dynamic access to element | get_Item | C8 |
|
||||
| ViableCallable.cs:92:16:92:19 | dynamic access to element | get_Item | C9<> |
|
||||
| ViableCallable.cs:99:9:99:15 | dynamic call to method M | M | C5 |
|
||||
| ViableCallable.cs:102:9:102:20 | ... = ... | set_Prop2 | C5 |
|
||||
| ViableCallable.cs:105:9:105:22 | ... += ... | add_Event2 | C5 |
|
||||
| ViableCallable.cs:106:9:106:22 | ... -= ... | remove_Event2 | C5 |
|
||||
| ViableCallable.cs:102:9:102:16 | access to property Prop2 | set_Prop2 | C5 |
|
||||
| ViableCallable.cs:105:9:105:17 | access to event Event2 | add_Event2 | C5 |
|
||||
| ViableCallable.cs:106:9:106:17 | access to event Event2 | remove_Event2 | C5 |
|
||||
| ViableCallable.cs:120:9:120:25 | dynamic call to method M2 | M2 | C8 |
|
||||
| ViableCallable.cs:124:9:124:24 | dynamic call to method M2 | M2 | C8 |
|
||||
| ViableCallable.cs:131:13:131:30 | object creation of type C6<T1,Byte> | C6 | C6<,> |
|
||||
|
||||
@@ -308,7 +308,7 @@ public class E
|
||||
{
|
||||
if (l.HasValue)
|
||||
{
|
||||
e.Long = l.Value; // GOOD
|
||||
e.Long = l.Value; // GOOD (false positive)
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -348,6 +348,8 @@ nodes
|
||||
| E.cs:285:9:285:9 | access to local variable o |
|
||||
| E.cs:301:13:301:27 | SSA def(s) |
|
||||
| E.cs:302:9:302:9 | access to local variable s |
|
||||
| E.cs:311:13:311:18 | SSA call def(this.l) |
|
||||
| E.cs:311:22:311:22 | access to field l |
|
||||
| Forwarding.cs:7:16:7:23 | SSA def(s) |
|
||||
| Forwarding.cs:14:9:17:9 | if (...) ... |
|
||||
| Forwarding.cs:19:9:22:9 | if (...) ... |
|
||||
@@ -678,6 +680,7 @@ edges
|
||||
| E.cs:283:13:283:22 | [b (line 279): false] SSA def(o) | E.cs:285:9:285:9 | access to local variable o |
|
||||
| E.cs:283:13:283:22 | [b (line 279): true] SSA def(o) | E.cs:285:9:285:9 | access to local variable o |
|
||||
| E.cs:301:13:301:27 | SSA def(s) | E.cs:302:9:302:9 | access to local variable s |
|
||||
| E.cs:311:13:311:18 | SSA call def(this.l) | E.cs:311:22:311:22 | access to field l |
|
||||
| Forwarding.cs:7:16:7:23 | SSA def(s) | Forwarding.cs:14:9:17:9 | if (...) ... |
|
||||
| Forwarding.cs:14:9:17:9 | if (...) ... | Forwarding.cs:19:9:22:9 | if (...) ... |
|
||||
| Forwarding.cs:19:9:22:9 | if (...) ... | Forwarding.cs:24:9:27:9 | if (...) ... |
|
||||
@@ -778,6 +781,7 @@ edges
|
||||
| E.cs:285:9:285:9 | access to local variable o | E.cs:283:13:283:22 | [b (line 279): false] SSA def(o) | E.cs:285:9:285:9 | access to local variable o | Variable $@ may be null here as suggested by $@ null check. | E.cs:283:13:283:13 | o | o | E.cs:284:9:284:9 | access to local variable o | this |
|
||||
| E.cs:285:9:285:9 | access to local variable o | E.cs:283:13:283:22 | [b (line 279): true] SSA def(o) | E.cs:285:9:285:9 | access to local variable o | Variable $@ may be null here as suggested by $@ null check. | E.cs:283:13:283:13 | o | o | E.cs:284:9:284:9 | access to local variable o | this |
|
||||
| E.cs:302:9:302:9 | access to local variable s | E.cs:301:13:301:27 | SSA def(s) | E.cs:302:9:302:9 | access to local variable s | Variable $@ may be null here because of $@ assignment. | E.cs:301:13:301:13 | s | s | E.cs:301:13:301:27 | String s = ... | this |
|
||||
| E.cs:311:22:311:22 | access to field l | E.cs:311:13:311:18 | SSA call def(this.l) | E.cs:311:22:311:22 | access to field l | Variable $@ may be null here because it has a nullable type. | E.cs:309:13:309:13 | this.l | this.l | E.cs:305:19:305:19 | l | this |
|
||||
| GuardedString.cs:35:31:35:31 | access to local variable s | GuardedString.cs:7:16:7:32 | SSA def(s) | GuardedString.cs:35:31:35:31 | access to local variable s | Variable $@ may be null here because of $@ assignment. | GuardedString.cs:7:16:7:16 | s | s | GuardedString.cs:7:16:7:32 | String s = ... | this |
|
||||
| NullMaybeBad.cs:7:27:7:27 | access to parameter o | NullMaybeBad.cs:13:17:13:20 | null | NullMaybeBad.cs:7:27:7:27 | access to parameter o | Variable $@ may be null here because of $@ null argument. | NullMaybeBad.cs:5:25:5:25 | o | o | NullMaybeBad.cs:13:17:13:20 | null | this |
|
||||
| StringConcatenation.cs:16:17:16:17 | access to local variable s | StringConcatenation.cs:14:16:14:23 | SSA def(s) | StringConcatenation.cs:16:17:16:17 | access to local variable s | Variable $@ may be null here because of $@ assignment. | StringConcatenation.cs:14:16:14:16 | s | s | StringConcatenation.cs:14:16:14:23 | String s = ... | this |
|
||||
|
||||
@@ -823,7 +823,6 @@ public class ASTExtractor {
|
||||
|
||||
contextManager.leaveContainer();
|
||||
scopeManager.leaveScope();
|
||||
lexicalExtractor.emitNumlines(key, nd.getLoc().getStart(), nd.getLoc().getEnd());
|
||||
}
|
||||
|
||||
private void extractParameterDefaultsAndTypes(IFunction nd, Label key, int paramCount) {
|
||||
|
||||
@@ -773,14 +773,18 @@ public class CFGExtractor {
|
||||
public <Q, A> A accept(Visitor<Q, A> v, Q q) { return null; }
|
||||
}
|
||||
|
||||
// associate statements with their (direct or indirect) labels
|
||||
private final Map<Statement, Set<String>> loopLabels = new LinkedHashMap<Statement, Set<String>>();
|
||||
// associate statements with their (direct or indirect) labels;
|
||||
// per-function cache, cleared after each function
|
||||
private Map<Statement, Set<String>> loopLabels = new LinkedHashMap<Statement, Set<String>>();
|
||||
|
||||
// cache the set of normal control flow successors
|
||||
private final Map<Node, Object> followingCache = new LinkedHashMap<Node, Object>();
|
||||
// cache the set of normal control flow successors;
|
||||
// per-function cache, cleared after each function
|
||||
private Map<Node, Object> followingCache = new LinkedHashMap<Node, Object>();
|
||||
|
||||
// map from a node in a chain of property accesses or calls to the successor info for the first node in the chain
|
||||
private final Map<Chainable, SuccessorInfo> chainRootSuccessors = new LinkedHashMap<Chainable, SuccessorInfo>();
|
||||
// map from a node in a chain of property accesses or calls to the successor info
|
||||
// for the first node in the chain;
|
||||
// per-function cache, cleared after each function
|
||||
private Map<Chainable, SuccessorInfo> chainRootSuccessors = new LinkedHashMap<Chainable, SuccessorInfo>();
|
||||
|
||||
/**
|
||||
* Generate entry node.
|
||||
@@ -1031,6 +1035,16 @@ public class CFGExtractor {
|
||||
|
||||
@Override
|
||||
public Void visit(IFunction nd, SuccessorInfo i) {
|
||||
// save per-function caches
|
||||
Map<Statement, Set<String>> oldLoopLabels = loopLabels;
|
||||
Map<Node, Object> oldFollowingCache = followingCache;
|
||||
Map<Chainable, SuccessorInfo> oldChainRootSuccessors = chainRootSuccessors;
|
||||
|
||||
// clear caches
|
||||
loopLabels = new LinkedHashMap<>();
|
||||
followingCache = new LinkedHashMap<>();
|
||||
chainRootSuccessors = new LinkedHashMap<>();
|
||||
|
||||
if (nd instanceof FunctionDeclaration && nd.hasDeclareKeyword()) {
|
||||
// All 'declared' statements have a no-op CFG node, but their children should
|
||||
// not be processed.
|
||||
@@ -1039,6 +1053,12 @@ public class CFGExtractor {
|
||||
}
|
||||
buildFunctionCreation(nd, i);
|
||||
buildFunctionBody(nd);
|
||||
|
||||
// restore caches
|
||||
loopLabels = oldLoopLabels;
|
||||
followingCache = oldFollowingCache;
|
||||
chainRootSuccessors = oldChainRootSuccessors;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -94,12 +94,14 @@ public class JSExtractor {
|
||||
ASTExtractor scriptExtractor = new ASTExtractor(lexicalExtractor, scopeManager);
|
||||
toplevelLabel = scriptExtractor.getToplevelLabel();
|
||||
|
||||
scriptExtractor.extract(ast, platform, sourceType, toplevelKind);
|
||||
lexicalExtractor.extractComments(toplevelLabel);
|
||||
loc = lexicalExtractor.extractLines(parserRes.getSource(), toplevelLabel);
|
||||
lexicalExtractor.extractTokens(toplevelLabel);
|
||||
new CFGExtractor(scriptExtractor).extract(ast);
|
||||
new JSDocExtractor(textualExtractor).extract(lexicalExtractor.getComments());
|
||||
lexicalExtractor.purge();
|
||||
|
||||
scriptExtractor.extract(ast, platform, sourceType, toplevelKind);
|
||||
new CFGExtractor(scriptExtractor).extract(ast);
|
||||
} else {
|
||||
lexicalExtractor = new LexicalExtractor(textualExtractor, new ArrayList<Token>(), new ArrayList<Comment>());
|
||||
ASTExtractor scriptExtractor = new ASTExtractor(lexicalExtractor, null);
|
||||
|
||||
@@ -133,7 +133,7 @@ public class LexicalExtractor {
|
||||
locationManager.emitNodeLocation(token, key);
|
||||
|
||||
// fill in next_token relation
|
||||
while (j < comments.size() && comments.get(j).getLoc().getEnd().compareTo(token.getLoc().getStart()) < 0)
|
||||
while (j < comments.size() && comments.get(j).getLoc().getEnd().compareTo(token.getLoc().getStart()) <= 0)
|
||||
trapwriter.addTuple("next_token", this.trapwriter.localID(comments.get(j++)), key);
|
||||
|
||||
// the parser sometimes duplicates tokens; skip the second one by nulling it out
|
||||
@@ -173,4 +173,12 @@ public class LexicalExtractor {
|
||||
public String mkToString(SourceElement nd) {
|
||||
return textualExtractor.mkToString(nd);
|
||||
}
|
||||
|
||||
/**
|
||||
* Purge token and comments information to reduce heap pressure.
|
||||
*/
|
||||
public void purge() {
|
||||
this.tokens.clear();
|
||||
this.comments.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Main {
|
||||
* such a way that it may produce different tuples for the same file under the same
|
||||
* {@link ExtractorConfig}.
|
||||
*/
|
||||
public static final String EXTRACTOR_VERSION = "2019-01-17";
|
||||
public static final String EXTRACTOR_VERSION = "2019-01-29";
|
||||
|
||||
public static final Pattern NEWLINE = Pattern.compile("\n");
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ import java.io.StringWriter;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@@ -9,91 +9,90 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,10"
|
||||
locations_default(#20002,#10000,1,1,1,10)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"!class {};")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"!class {};","")
|
||||
#20003=@"loc,{#10000},1,1,1,10"
|
||||
locations_default(#20003,#10000,1,1,1,10)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
exprs(#20004,18,#20003,0,"!class {}")
|
||||
#20005=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20005,#10000,1,1,1,9)
|
||||
tokeninfo(#20004,8,#20001,0,"!")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,80,#20004,0,"class {}")
|
||||
#20007=@"loc,{#10000},1,2,1,9"
|
||||
locations_default(#20007,#10000,1,2,1,9)
|
||||
tokeninfo(#20006,7,#20001,1,"class")
|
||||
#20007=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20007,#10000,1,2,1,6)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20003)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
properties(#20008,#20006,2,0,"constructor() {}")
|
||||
#20009=@"loc,{#10000},1,8,1,7"
|
||||
locations_default(#20009,#10000,1,8,1,7)
|
||||
tokeninfo(#20008,8,#20001,2,"{")
|
||||
#20009=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20009,#10000,1,8,1,8)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
exprs(#20010,0,#20008,0,"constructor")
|
||||
hasLocation(#20010,#20009)
|
||||
enclosingStmt(#20010,#20003)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("constructor","constructor",#20010)
|
||||
#20011=*
|
||||
exprs(#20011,9,#20008,1,"() {}")
|
||||
hasLocation(#20011,#20009)
|
||||
enclosingStmt(#20011,#20003)
|
||||
exprContainers(#20011,#20001)
|
||||
tokeninfo(#20010,8,#20001,3,"}")
|
||||
#20011=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20011,#10000,1,9,1,9)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
scopes(#20012,1)
|
||||
scopenodes(#20011,#20012)
|
||||
scopenesting(#20012,#20000)
|
||||
#20013=@"var;{arguments};{#20012}"
|
||||
variables(#20013,"arguments",#20012)
|
||||
isArgumentsObject(#20013)
|
||||
tokeninfo(#20012,8,#20001,4,";")
|
||||
#20013=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20013,#10000,1,10,1,10)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
stmts(#20014,1,#20011,-2,"{}")
|
||||
hasLocation(#20014,#20009)
|
||||
stmtContainers(#20014,#20011)
|
||||
numlines(#20011,1,0,0)
|
||||
isMethod(#20008)
|
||||
#20015=*
|
||||
lines(#20015,#20001,"!class {};","")
|
||||
hasLocation(#20015,#20002)
|
||||
numlines(#20001,1,1,0)
|
||||
tokeninfo(#20014,0,#20001,5,"")
|
||||
#20015=@"loc,{#10000},1,11,1,10"
|
||||
locations_default(#20015,#10000,1,11,1,10)
|
||||
hasLocation(#20014,#20015)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,0,"!")
|
||||
#20017=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20017,#10000,1,1,1,1)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,7,#20001,1,"class")
|
||||
#20019=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20019,#10000,1,2,1,6)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,2,"{")
|
||||
#20021=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20021,#10000,1,8,1,8)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,3,"}")
|
||||
#20023=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20023,#10000,1,9,1,9)
|
||||
hasLocation(#20022,#20023)
|
||||
stmts(#20016,2,#20001,0,"!class {};")
|
||||
hasLocation(#20016,#20003)
|
||||
stmtContainers(#20016,#20001)
|
||||
#20017=*
|
||||
exprs(#20017,18,#20016,0,"!class {}")
|
||||
#20018=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20018,#10000,1,1,1,9)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20016)
|
||||
exprContainers(#20017,#20001)
|
||||
#20019=*
|
||||
exprs(#20019,80,#20017,0,"class {}")
|
||||
#20020=@"loc,{#10000},1,2,1,9"
|
||||
locations_default(#20020,#10000,1,2,1,9)
|
||||
hasLocation(#20019,#20020)
|
||||
enclosingStmt(#20019,#20016)
|
||||
exprContainers(#20019,#20001)
|
||||
#20021=*
|
||||
properties(#20021,#20019,2,0,"constructor() {}")
|
||||
#20022=@"loc,{#10000},1,8,1,7"
|
||||
locations_default(#20022,#10000,1,8,1,7)
|
||||
hasLocation(#20021,#20022)
|
||||
#20023=*
|
||||
exprs(#20023,0,#20021,0,"constructor")
|
||||
hasLocation(#20023,#20022)
|
||||
enclosingStmt(#20023,#20016)
|
||||
exprContainers(#20023,#20001)
|
||||
literals("constructor","constructor",#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,4,";")
|
||||
#20025=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20025,#10000,1,10,1,10)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,0,#20001,5,"")
|
||||
#20027=@"loc,{#10000},1,11,1,10"
|
||||
locations_default(#20027,#10000,1,11,1,10)
|
||||
hasLocation(#20026,#20027)
|
||||
exprs(#20024,9,#20021,1,"() {}")
|
||||
hasLocation(#20024,#20022)
|
||||
enclosingStmt(#20024,#20016)
|
||||
exprContainers(#20024,#20001)
|
||||
#20025=*
|
||||
scopes(#20025,1)
|
||||
scopenodes(#20024,#20025)
|
||||
scopenesting(#20025,#20000)
|
||||
#20026=@"var;{arguments};{#20025}"
|
||||
variables(#20026,"arguments",#20025)
|
||||
isArgumentsObject(#20026)
|
||||
#20027=*
|
||||
stmts(#20027,1,#20024,-2,"{}")
|
||||
hasLocation(#20027,#20022)
|
||||
stmtContainers(#20027,#20024)
|
||||
isMethod(#20021)
|
||||
#20028=*
|
||||
entry_cfg_node(#20028,#20001)
|
||||
#20029=@"loc,{#10000},1,1,1,0"
|
||||
@@ -101,21 +100,21 @@ locations_default(#20029,#10000,1,1,1,0)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
exit_cfg_node(#20030,#20001)
|
||||
hasLocation(#20030,#20027)
|
||||
successor(#20003,#20010)
|
||||
successor(#20011,#20008)
|
||||
hasLocation(#20030,#20015)
|
||||
successor(#20016,#20023)
|
||||
successor(#20024,#20021)
|
||||
#20031=*
|
||||
entry_cfg_node(#20031,#20011)
|
||||
hasLocation(#20031,#20009)
|
||||
entry_cfg_node(#20031,#20024)
|
||||
hasLocation(#20031,#20022)
|
||||
#20032=*
|
||||
exit_cfg_node(#20032,#20011)
|
||||
hasLocation(#20032,#20009)
|
||||
successor(#20014,#20032)
|
||||
successor(#20031,#20014)
|
||||
successor(#20010,#20011)
|
||||
successor(#20008,#20006)
|
||||
successor(#20006,#20004)
|
||||
successor(#20004,#20030)
|
||||
successor(#20028,#20003)
|
||||
exit_cfg_node(#20032,#20024)
|
||||
hasLocation(#20032,#20022)
|
||||
successor(#20027,#20032)
|
||||
successor(#20031,#20027)
|
||||
successor(#20023,#20024)
|
||||
successor(#20021,#20019)
|
||||
successor(#20019,#20017)
|
||||
successor(#20017,#20030)
|
||||
successor(#20028,#20016)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,112 +9,111 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,12"
|
||||
locations_default(#20002,#10000,1,1,1,12)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"!class A {};")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20004=*
|
||||
exprs(#20004,18,#20003,0,"!class A {}")
|
||||
#20005=@"loc,{#10000},1,1,1,11"
|
||||
locations_default(#20005,#10000,1,1,1,11)
|
||||
hasLocation(#20004,#20005)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,80,#20004,0,"class A {}")
|
||||
#20007=@"loc,{#10000},1,2,1,11"
|
||||
locations_default(#20007,#10000,1,2,1,11)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20003)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
scopes(#20008,8)
|
||||
scopenodes(#20006,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=@"var;{A};{#20008}"
|
||||
variables(#20009,"A",#20008)
|
||||
#20010=@"local_type_name;{A};{#20008}"
|
||||
local_type_names(#20010,"A",#20008)
|
||||
#20011=*
|
||||
exprs(#20011,78,#20006,0,"A")
|
||||
#20012=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20012,#10000,1,8,1,8)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20003)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("A","A",#20011)
|
||||
decl(#20011,#20009)
|
||||
typedecl(#20011,#20010)
|
||||
#20013=*
|
||||
properties(#20013,#20006,2,0,"constructor() {}")
|
||||
#20014=@"loc,{#10000},1,10,1,9"
|
||||
locations_default(#20014,#10000,1,10,1,9)
|
||||
hasLocation(#20013,#20014)
|
||||
#20015=*
|
||||
exprs(#20015,0,#20013,0,"constructor")
|
||||
hasLocation(#20015,#20014)
|
||||
enclosingStmt(#20015,#20003)
|
||||
exprContainers(#20015,#20001)
|
||||
literals("constructor","constructor",#20015)
|
||||
#20016=*
|
||||
exprs(#20016,9,#20013,1,"() {}")
|
||||
hasLocation(#20016,#20014)
|
||||
enclosingStmt(#20016,#20003)
|
||||
exprContainers(#20016,#20001)
|
||||
#20017=*
|
||||
scopes(#20017,1)
|
||||
scopenodes(#20016,#20017)
|
||||
scopenesting(#20017,#20008)
|
||||
#20018=@"var;{arguments};{#20017}"
|
||||
variables(#20018,"arguments",#20017)
|
||||
isArgumentsObject(#20018)
|
||||
#20019=*
|
||||
stmts(#20019,1,#20016,-2,"{}")
|
||||
hasLocation(#20019,#20014)
|
||||
stmtContainers(#20019,#20016)
|
||||
numlines(#20016,1,0,0)
|
||||
isMethod(#20013)
|
||||
#20020=*
|
||||
lines(#20020,#20001,"!class A {};","")
|
||||
hasLocation(#20020,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"!class A {};","")
|
||||
#20003=@"loc,{#10000},1,1,1,12"
|
||||
locations_default(#20003,#10000,1,1,1,12)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,8,#20001,0,"!")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,7,#20001,1,"class")
|
||||
#20007=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20007,#10000,1,2,1,6)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,6,#20001,2,"A")
|
||||
#20009=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20009,#10000,1,8,1,8)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,"{")
|
||||
#20011=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20011,#10000,1,10,1,10)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,"}")
|
||||
#20013=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20013,#10000,1,11,1,11)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,";")
|
||||
#20015=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20015,#10000,1,12,1,12)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,0,#20001,6,"")
|
||||
#20017=@"loc,{#10000},1,13,1,12"
|
||||
locations_default(#20017,#10000,1,13,1,12)
|
||||
hasLocation(#20016,#20017)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20018=*
|
||||
stmts(#20018,2,#20001,0,"!class A {};")
|
||||
hasLocation(#20018,#20003)
|
||||
stmtContainers(#20018,#20001)
|
||||
#20019=*
|
||||
exprs(#20019,18,#20018,0,"!class A {}")
|
||||
#20020=@"loc,{#10000},1,1,1,11"
|
||||
locations_default(#20020,#10000,1,1,1,11)
|
||||
hasLocation(#20019,#20020)
|
||||
enclosingStmt(#20019,#20018)
|
||||
exprContainers(#20019,#20001)
|
||||
#20021=*
|
||||
tokeninfo(#20021,8,#20001,0,"!")
|
||||
#20022=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20022,#10000,1,1,1,1)
|
||||
exprs(#20021,80,#20019,0,"class A {}")
|
||||
#20022=@"loc,{#10000},1,2,1,11"
|
||||
locations_default(#20022,#10000,1,2,1,11)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20018)
|
||||
exprContainers(#20021,#20001)
|
||||
#20023=*
|
||||
tokeninfo(#20023,7,#20001,1,"class")
|
||||
#20024=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20024,#10000,1,2,1,6)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
tokeninfo(#20025,6,#20001,2,"A")
|
||||
hasLocation(#20025,#20012)
|
||||
scopes(#20023,8)
|
||||
scopenodes(#20021,#20023)
|
||||
scopenesting(#20023,#20000)
|
||||
#20024=@"var;{A};{#20023}"
|
||||
variables(#20024,"A",#20023)
|
||||
#20025=@"local_type_name;{A};{#20023}"
|
||||
local_type_names(#20025,"A",#20023)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,3,"{")
|
||||
#20027=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20027,#10000,1,10,1,10)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,4,"}")
|
||||
#20029=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20029,#10000,1,11,1,11)
|
||||
hasLocation(#20028,#20029)
|
||||
exprs(#20026,78,#20021,0,"A")
|
||||
hasLocation(#20026,#20009)
|
||||
enclosingStmt(#20026,#20018)
|
||||
exprContainers(#20026,#20001)
|
||||
literals("A","A",#20026)
|
||||
decl(#20026,#20024)
|
||||
typedecl(#20026,#20025)
|
||||
#20027=*
|
||||
properties(#20027,#20021,2,0,"constructor() {}")
|
||||
#20028=@"loc,{#10000},1,10,1,9"
|
||||
locations_default(#20028,#10000,1,10,1,9)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
exprs(#20029,0,#20027,0,"constructor")
|
||||
hasLocation(#20029,#20028)
|
||||
enclosingStmt(#20029,#20018)
|
||||
exprContainers(#20029,#20001)
|
||||
literals("constructor","constructor",#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,5,";")
|
||||
#20031=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20031,#10000,1,12,1,12)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,0,#20001,6,"")
|
||||
#20033=@"loc,{#10000},1,13,1,12"
|
||||
locations_default(#20033,#10000,1,13,1,12)
|
||||
hasLocation(#20032,#20033)
|
||||
exprs(#20030,9,#20027,1,"() {}")
|
||||
hasLocation(#20030,#20028)
|
||||
enclosingStmt(#20030,#20018)
|
||||
exprContainers(#20030,#20001)
|
||||
#20031=*
|
||||
scopes(#20031,1)
|
||||
scopenodes(#20030,#20031)
|
||||
scopenesting(#20031,#20023)
|
||||
#20032=@"var;{arguments};{#20031}"
|
||||
variables(#20032,"arguments",#20031)
|
||||
isArgumentsObject(#20032)
|
||||
#20033=*
|
||||
stmts(#20033,1,#20030,-2,"{}")
|
||||
hasLocation(#20033,#20028)
|
||||
stmtContainers(#20033,#20030)
|
||||
isMethod(#20027)
|
||||
#20034=*
|
||||
entry_cfg_node(#20034,#20001)
|
||||
#20035=@"loc,{#10000},1,1,1,0"
|
||||
@@ -122,22 +121,22 @@ locations_default(#20035,#10000,1,1,1,0)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
exit_cfg_node(#20036,#20001)
|
||||
hasLocation(#20036,#20033)
|
||||
successor(#20003,#20011)
|
||||
successor(#20016,#20013)
|
||||
hasLocation(#20036,#20017)
|
||||
successor(#20018,#20026)
|
||||
successor(#20030,#20027)
|
||||
#20037=*
|
||||
entry_cfg_node(#20037,#20016)
|
||||
hasLocation(#20037,#20014)
|
||||
entry_cfg_node(#20037,#20030)
|
||||
hasLocation(#20037,#20028)
|
||||
#20038=*
|
||||
exit_cfg_node(#20038,#20016)
|
||||
hasLocation(#20038,#20014)
|
||||
successor(#20019,#20038)
|
||||
successor(#20037,#20019)
|
||||
successor(#20015,#20016)
|
||||
successor(#20013,#20006)
|
||||
successor(#20011,#20015)
|
||||
successor(#20006,#20004)
|
||||
successor(#20004,#20036)
|
||||
successor(#20034,#20003)
|
||||
exit_cfg_node(#20038,#20030)
|
||||
hasLocation(#20038,#20028)
|
||||
successor(#20033,#20038)
|
||||
successor(#20037,#20033)
|
||||
successor(#20029,#20030)
|
||||
successor(#20027,#20021)
|
||||
successor(#20026,#20029)
|
||||
successor(#20021,#20019)
|
||||
successor(#20019,#20036)
|
||||
successor(#20034,#20018)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,145 +9,144 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,20"
|
||||
locations_default(#20002,#10000,1,1,1,20)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"!class extends B {};")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20004=*
|
||||
exprs(#20004,18,#20003,0,"!class extends B {}")
|
||||
#20005=@"loc,{#10000},1,1,1,19"
|
||||
locations_default(#20005,#10000,1,1,1,19)
|
||||
hasLocation(#20004,#20005)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,80,#20004,0,"class extends B {}")
|
||||
#20007=@"loc,{#10000},1,2,1,19"
|
||||
locations_default(#20007,#10000,1,2,1,19)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20003)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,79,#20006,1,"B")
|
||||
#20009=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20009,#10000,1,16,1,16)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20003)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("B","B",#20008)
|
||||
#20010=@"var;{B};{#20000}"
|
||||
variables(#20010,"B",#20000)
|
||||
bind(#20008,#20010)
|
||||
#20011=*
|
||||
properties(#20011,#20006,2,0,"constru ... rgs); }")
|
||||
#20012=@"loc,{#10000},1,18,1,17"
|
||||
locations_default(#20012,#10000,1,18,1,17)
|
||||
hasLocation(#20011,#20012)
|
||||
#20013=*
|
||||
exprs(#20013,0,#20011,0,"constructor")
|
||||
hasLocation(#20013,#20012)
|
||||
enclosingStmt(#20013,#20003)
|
||||
exprContainers(#20013,#20001)
|
||||
literals("constructor","constructor",#20013)
|
||||
#20014=*
|
||||
exprs(#20014,9,#20011,1,"(...arg ... rgs); }")
|
||||
hasLocation(#20014,#20012)
|
||||
enclosingStmt(#20014,#20003)
|
||||
exprContainers(#20014,#20001)
|
||||
#20015=*
|
||||
scopes(#20015,1)
|
||||
scopenodes(#20014,#20015)
|
||||
scopenesting(#20015,#20000)
|
||||
#20016=@"var;{args};{#20015}"
|
||||
variables(#20016,"args",#20015)
|
||||
#20017=*
|
||||
exprs(#20017,78,#20014,0,"args")
|
||||
hasLocation(#20017,#20012)
|
||||
exprContainers(#20017,#20014)
|
||||
literals("args","args",#20017)
|
||||
decl(#20017,#20016)
|
||||
#20018=@"var;{arguments};{#20015}"
|
||||
variables(#20018,"arguments",#20015)
|
||||
isArgumentsObject(#20018)
|
||||
hasRestParameter(#20014)
|
||||
#20019=*
|
||||
stmts(#20019,1,#20014,-2,"{ super(...args); }")
|
||||
hasLocation(#20019,#20012)
|
||||
stmtContainers(#20019,#20014)
|
||||
#20020=*
|
||||
stmts(#20020,2,#20019,0,"super(...args);")
|
||||
hasLocation(#20020,#20012)
|
||||
stmtContainers(#20020,#20014)
|
||||
#20021=*
|
||||
exprs(#20021,13,#20020,0,"super(...args)")
|
||||
hasLocation(#20021,#20012)
|
||||
enclosingStmt(#20021,#20020)
|
||||
exprContainers(#20021,#20014)
|
||||
#20022=*
|
||||
exprs(#20022,81,#20021,-1,"super")
|
||||
hasLocation(#20022,#20012)
|
||||
enclosingStmt(#20022,#20020)
|
||||
exprContainers(#20022,#20014)
|
||||
#20023=*
|
||||
exprs(#20023,66,#20021,0,"...args")
|
||||
hasLocation(#20023,#20012)
|
||||
enclosingStmt(#20023,#20020)
|
||||
exprContainers(#20023,#20014)
|
||||
#20024=*
|
||||
exprs(#20024,79,#20023,0,"args")
|
||||
hasLocation(#20024,#20012)
|
||||
enclosingStmt(#20024,#20020)
|
||||
exprContainers(#20024,#20014)
|
||||
literals("args","args",#20024)
|
||||
bind(#20024,#20016)
|
||||
numlines(#20014,1,0,0)
|
||||
isMethod(#20011)
|
||||
#20025=*
|
||||
lines(#20025,#20001,"!class extends B {};","")
|
||||
hasLocation(#20025,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"!class extends B {};","")
|
||||
#20003=@"loc,{#10000},1,1,1,20"
|
||||
locations_default(#20003,#10000,1,1,1,20)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,0,"!")
|
||||
#20027=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20027,#10000,1,1,1,1)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,7,#20001,1,"class")
|
||||
#20029=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20029,#10000,1,2,1,6)
|
||||
hasLocation(#20028,#20029)
|
||||
#20004=*
|
||||
tokeninfo(#20004,8,#20001,0,"!")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,7,#20001,1,"class")
|
||||
#20007=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20007,#10000,1,2,1,6)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,2,"extends")
|
||||
#20009=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20009,#10000,1,8,1,14)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,3,"B")
|
||||
#20011=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20011,#10000,1,16,1,16)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,"{")
|
||||
#20013=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20013,#10000,1,18,1,18)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,"}")
|
||||
#20015=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20015,#10000,1,19,1,19)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,6,";")
|
||||
#20017=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20017,#10000,1,20,1,20)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,0,#20001,7,"")
|
||||
#20019=@"loc,{#10000},1,21,1,20"
|
||||
locations_default(#20019,#10000,1,21,1,20)
|
||||
hasLocation(#20018,#20019)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20020=*
|
||||
stmts(#20020,2,#20001,0,"!class extends B {};")
|
||||
hasLocation(#20020,#20003)
|
||||
stmtContainers(#20020,#20001)
|
||||
#20021=*
|
||||
exprs(#20021,18,#20020,0,"!class extends B {}")
|
||||
#20022=@"loc,{#10000},1,1,1,19"
|
||||
locations_default(#20022,#10000,1,1,1,19)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20020)
|
||||
exprContainers(#20021,#20001)
|
||||
#20023=*
|
||||
exprs(#20023,80,#20021,0,"class extends B {}")
|
||||
#20024=@"loc,{#10000},1,2,1,19"
|
||||
locations_default(#20024,#10000,1,2,1,19)
|
||||
hasLocation(#20023,#20024)
|
||||
enclosingStmt(#20023,#20020)
|
||||
exprContainers(#20023,#20001)
|
||||
#20025=*
|
||||
exprs(#20025,79,#20023,1,"B")
|
||||
hasLocation(#20025,#20011)
|
||||
enclosingStmt(#20025,#20020)
|
||||
exprContainers(#20025,#20001)
|
||||
literals("B","B",#20025)
|
||||
#20026=@"var;{B};{#20000}"
|
||||
variables(#20026,"B",#20000)
|
||||
bind(#20025,#20026)
|
||||
#20027=*
|
||||
properties(#20027,#20023,2,0,"constru ... rgs); }")
|
||||
#20028=@"loc,{#10000},1,18,1,17"
|
||||
locations_default(#20028,#10000,1,18,1,17)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
exprs(#20029,0,#20027,0,"constructor")
|
||||
hasLocation(#20029,#20028)
|
||||
enclosingStmt(#20029,#20020)
|
||||
exprContainers(#20029,#20001)
|
||||
literals("constructor","constructor",#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,7,#20001,2,"extends")
|
||||
#20031=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20031,#10000,1,8,1,14)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,6,#20001,3,"B")
|
||||
hasLocation(#20032,#20009)
|
||||
exprs(#20030,9,#20027,1,"(...arg ... rgs); }")
|
||||
hasLocation(#20030,#20028)
|
||||
enclosingStmt(#20030,#20020)
|
||||
exprContainers(#20030,#20001)
|
||||
#20031=*
|
||||
scopes(#20031,1)
|
||||
scopenodes(#20030,#20031)
|
||||
scopenesting(#20031,#20000)
|
||||
#20032=@"var;{args};{#20031}"
|
||||
variables(#20032,"args",#20031)
|
||||
#20033=*
|
||||
tokeninfo(#20033,8,#20001,4,"{")
|
||||
#20034=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20034,#10000,1,18,1,18)
|
||||
hasLocation(#20033,#20034)
|
||||
exprs(#20033,78,#20030,0,"args")
|
||||
hasLocation(#20033,#20028)
|
||||
exprContainers(#20033,#20030)
|
||||
literals("args","args",#20033)
|
||||
decl(#20033,#20032)
|
||||
#20034=@"var;{arguments};{#20031}"
|
||||
variables(#20034,"arguments",#20031)
|
||||
isArgumentsObject(#20034)
|
||||
hasRestParameter(#20030)
|
||||
#20035=*
|
||||
tokeninfo(#20035,8,#20001,5,"}")
|
||||
#20036=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20036,#10000,1,19,1,19)
|
||||
hasLocation(#20035,#20036)
|
||||
stmts(#20035,1,#20030,-2,"{ super(...args); }")
|
||||
hasLocation(#20035,#20028)
|
||||
stmtContainers(#20035,#20030)
|
||||
#20036=*
|
||||
stmts(#20036,2,#20035,0,"super(...args);")
|
||||
hasLocation(#20036,#20028)
|
||||
stmtContainers(#20036,#20030)
|
||||
#20037=*
|
||||
tokeninfo(#20037,8,#20001,6,";")
|
||||
#20038=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20038,#10000,1,20,1,20)
|
||||
hasLocation(#20037,#20038)
|
||||
exprs(#20037,13,#20036,0,"super(...args)")
|
||||
hasLocation(#20037,#20028)
|
||||
enclosingStmt(#20037,#20036)
|
||||
exprContainers(#20037,#20030)
|
||||
#20038=*
|
||||
exprs(#20038,81,#20037,-1,"super")
|
||||
hasLocation(#20038,#20028)
|
||||
enclosingStmt(#20038,#20036)
|
||||
exprContainers(#20038,#20030)
|
||||
#20039=*
|
||||
tokeninfo(#20039,0,#20001,7,"")
|
||||
#20040=@"loc,{#10000},1,21,1,20"
|
||||
locations_default(#20040,#10000,1,21,1,20)
|
||||
hasLocation(#20039,#20040)
|
||||
exprs(#20039,66,#20037,0,"...args")
|
||||
hasLocation(#20039,#20028)
|
||||
enclosingStmt(#20039,#20036)
|
||||
exprContainers(#20039,#20030)
|
||||
#20040=*
|
||||
exprs(#20040,79,#20039,0,"args")
|
||||
hasLocation(#20040,#20028)
|
||||
enclosingStmt(#20040,#20036)
|
||||
exprContainers(#20040,#20030)
|
||||
literals("args","args",#20040)
|
||||
bind(#20040,#20032)
|
||||
isMethod(#20027)
|
||||
#20041=*
|
||||
entry_cfg_node(#20041,#20001)
|
||||
#20042=@"loc,{#10000},1,1,1,0"
|
||||
@@ -155,28 +154,28 @@ locations_default(#20042,#10000,1,1,1,0)
|
||||
hasLocation(#20041,#20042)
|
||||
#20043=*
|
||||
exit_cfg_node(#20043,#20001)
|
||||
hasLocation(#20043,#20040)
|
||||
successor(#20003,#20008)
|
||||
successor(#20014,#20011)
|
||||
hasLocation(#20043,#20019)
|
||||
successor(#20020,#20025)
|
||||
successor(#20030,#20027)
|
||||
#20044=*
|
||||
entry_cfg_node(#20044,#20014)
|
||||
hasLocation(#20044,#20012)
|
||||
entry_cfg_node(#20044,#20030)
|
||||
hasLocation(#20044,#20028)
|
||||
#20045=*
|
||||
exit_cfg_node(#20045,#20014)
|
||||
hasLocation(#20045,#20012)
|
||||
successor(#20019,#20020)
|
||||
successor(#20020,#20022)
|
||||
successor(#20024,#20023)
|
||||
exit_cfg_node(#20045,#20030)
|
||||
hasLocation(#20045,#20028)
|
||||
successor(#20035,#20036)
|
||||
successor(#20036,#20038)
|
||||
successor(#20040,#20039)
|
||||
successor(#20039,#20037)
|
||||
successor(#20038,#20040)
|
||||
successor(#20037,#20045)
|
||||
successor(#20033,#20035)
|
||||
successor(#20044,#20033)
|
||||
successor(#20029,#20030)
|
||||
successor(#20027,#20023)
|
||||
successor(#20025,#20029)
|
||||
successor(#20023,#20021)
|
||||
successor(#20022,#20024)
|
||||
successor(#20021,#20045)
|
||||
successor(#20017,#20019)
|
||||
successor(#20044,#20017)
|
||||
successor(#20013,#20014)
|
||||
successor(#20011,#20006)
|
||||
successor(#20008,#20013)
|
||||
successor(#20006,#20004)
|
||||
successor(#20004,#20043)
|
||||
successor(#20041,#20003)
|
||||
successor(#20021,#20043)
|
||||
successor(#20041,#20020)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,166 +9,165 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20002,#10000,1,1,1,22)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"!class ... s B {};")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"!class A extends B {};","")
|
||||
#20003=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20003,#10000,1,1,1,22)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
exprs(#20004,18,#20003,0,"!class ... ds B {}")
|
||||
#20005=@"loc,{#10000},1,1,1,21"
|
||||
locations_default(#20005,#10000,1,1,1,21)
|
||||
tokeninfo(#20004,8,#20001,0,"!")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,80,#20004,0,"class A extends B {}")
|
||||
#20007=@"loc,{#10000},1,2,1,21"
|
||||
locations_default(#20007,#10000,1,2,1,21)
|
||||
tokeninfo(#20006,7,#20001,1,"class")
|
||||
#20007=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20007,#10000,1,2,1,6)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20003)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
scopes(#20008,8)
|
||||
scopenodes(#20006,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=@"var;{A};{#20008}"
|
||||
variables(#20009,"A",#20008)
|
||||
#20010=@"local_type_name;{A};{#20008}"
|
||||
local_type_names(#20010,"A",#20008)
|
||||
#20011=*
|
||||
exprs(#20011,78,#20006,0,"A")
|
||||
#20012=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20012,#10000,1,8,1,8)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20003)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("A","A",#20011)
|
||||
decl(#20011,#20009)
|
||||
typedecl(#20011,#20010)
|
||||
#20013=*
|
||||
exprs(#20013,79,#20006,1,"B")
|
||||
#20014=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20014,#10000,1,18,1,18)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20003)
|
||||
exprContainers(#20013,#20001)
|
||||
literals("B","B",#20013)
|
||||
#20015=@"var;{B};{#20000}"
|
||||
variables(#20015,"B",#20000)
|
||||
bind(#20013,#20015)
|
||||
tokeninfo(#20008,6,#20001,2,"A")
|
||||
#20009=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20009,#10000,1,8,1,8)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,7,#20001,3,"extends")
|
||||
#20011=@"loc,{#10000},1,10,1,16"
|
||||
locations_default(#20011,#10000,1,10,1,16)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,4,"B")
|
||||
#20013=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20013,#10000,1,18,1,18)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,"{")
|
||||
#20015=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20015,#10000,1,20,1,20)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
properties(#20016,#20006,2,0,"constru ... rgs); }")
|
||||
#20017=@"loc,{#10000},1,20,1,19"
|
||||
locations_default(#20017,#10000,1,20,1,19)
|
||||
tokeninfo(#20016,8,#20001,6,"}")
|
||||
#20017=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20017,#10000,1,21,1,21)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
exprs(#20018,0,#20016,0,"constructor")
|
||||
hasLocation(#20018,#20017)
|
||||
enclosingStmt(#20018,#20003)
|
||||
exprContainers(#20018,#20001)
|
||||
literals("constructor","constructor",#20018)
|
||||
#20019=*
|
||||
exprs(#20019,9,#20016,1,"(...arg ... rgs); }")
|
||||
hasLocation(#20019,#20017)
|
||||
enclosingStmt(#20019,#20003)
|
||||
exprContainers(#20019,#20001)
|
||||
tokeninfo(#20018,8,#20001,7,";")
|
||||
#20019=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20019,#10000,1,22,1,22)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
scopes(#20020,1)
|
||||
scopenodes(#20019,#20020)
|
||||
scopenesting(#20020,#20008)
|
||||
#20021=@"var;{args};{#20020}"
|
||||
variables(#20021,"args",#20020)
|
||||
tokeninfo(#20020,0,#20001,8,"")
|
||||
#20021=@"loc,{#10000},1,23,1,22"
|
||||
locations_default(#20021,#10000,1,23,1,22)
|
||||
hasLocation(#20020,#20021)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20022=*
|
||||
exprs(#20022,78,#20019,0,"args")
|
||||
hasLocation(#20022,#20017)
|
||||
exprContainers(#20022,#20019)
|
||||
literals("args","args",#20022)
|
||||
decl(#20022,#20021)
|
||||
#20023=@"var;{arguments};{#20020}"
|
||||
variables(#20023,"arguments",#20020)
|
||||
isArgumentsObject(#20023)
|
||||
hasRestParameter(#20019)
|
||||
#20024=*
|
||||
stmts(#20024,1,#20019,-2,"{ super(...args); }")
|
||||
hasLocation(#20024,#20017)
|
||||
stmtContainers(#20024,#20019)
|
||||
stmts(#20022,2,#20001,0,"!class ... s B {};")
|
||||
hasLocation(#20022,#20003)
|
||||
stmtContainers(#20022,#20001)
|
||||
#20023=*
|
||||
exprs(#20023,18,#20022,0,"!class ... ds B {}")
|
||||
#20024=@"loc,{#10000},1,1,1,21"
|
||||
locations_default(#20024,#10000,1,1,1,21)
|
||||
hasLocation(#20023,#20024)
|
||||
enclosingStmt(#20023,#20022)
|
||||
exprContainers(#20023,#20001)
|
||||
#20025=*
|
||||
stmts(#20025,2,#20024,0,"super(...args);")
|
||||
hasLocation(#20025,#20017)
|
||||
stmtContainers(#20025,#20019)
|
||||
#20026=*
|
||||
exprs(#20026,13,#20025,0,"super(...args)")
|
||||
hasLocation(#20026,#20017)
|
||||
enclosingStmt(#20026,#20025)
|
||||
exprContainers(#20026,#20019)
|
||||
exprs(#20025,80,#20023,0,"class A extends B {}")
|
||||
#20026=@"loc,{#10000},1,2,1,21"
|
||||
locations_default(#20026,#10000,1,2,1,21)
|
||||
hasLocation(#20025,#20026)
|
||||
enclosingStmt(#20025,#20022)
|
||||
exprContainers(#20025,#20001)
|
||||
#20027=*
|
||||
exprs(#20027,81,#20026,-1,"super")
|
||||
hasLocation(#20027,#20017)
|
||||
enclosingStmt(#20027,#20025)
|
||||
exprContainers(#20027,#20019)
|
||||
#20028=*
|
||||
exprs(#20028,66,#20026,0,"...args")
|
||||
hasLocation(#20028,#20017)
|
||||
enclosingStmt(#20028,#20025)
|
||||
exprContainers(#20028,#20019)
|
||||
#20029=*
|
||||
exprs(#20029,79,#20028,0,"args")
|
||||
hasLocation(#20029,#20017)
|
||||
enclosingStmt(#20029,#20025)
|
||||
exprContainers(#20029,#20019)
|
||||
literals("args","args",#20029)
|
||||
bind(#20029,#20021)
|
||||
numlines(#20019,1,0,0)
|
||||
isMethod(#20016)
|
||||
scopes(#20027,8)
|
||||
scopenodes(#20025,#20027)
|
||||
scopenesting(#20027,#20000)
|
||||
#20028=@"var;{A};{#20027}"
|
||||
variables(#20028,"A",#20027)
|
||||
#20029=@"local_type_name;{A};{#20027}"
|
||||
local_type_names(#20029,"A",#20027)
|
||||
#20030=*
|
||||
lines(#20030,#20001,"!class A extends B {};","")
|
||||
hasLocation(#20030,#20002)
|
||||
numlines(#20001,1,1,0)
|
||||
exprs(#20030,78,#20025,0,"A")
|
||||
hasLocation(#20030,#20009)
|
||||
enclosingStmt(#20030,#20022)
|
||||
exprContainers(#20030,#20001)
|
||||
literals("A","A",#20030)
|
||||
decl(#20030,#20028)
|
||||
typedecl(#20030,#20029)
|
||||
#20031=*
|
||||
tokeninfo(#20031,8,#20001,0,"!")
|
||||
#20032=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20032,#10000,1,1,1,1)
|
||||
hasLocation(#20031,#20032)
|
||||
exprs(#20031,79,#20025,1,"B")
|
||||
hasLocation(#20031,#20013)
|
||||
enclosingStmt(#20031,#20022)
|
||||
exprContainers(#20031,#20001)
|
||||
literals("B","B",#20031)
|
||||
#20032=@"var;{B};{#20000}"
|
||||
variables(#20032,"B",#20000)
|
||||
bind(#20031,#20032)
|
||||
#20033=*
|
||||
tokeninfo(#20033,7,#20001,1,"class")
|
||||
#20034=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20034,#10000,1,2,1,6)
|
||||
properties(#20033,#20025,2,0,"constru ... rgs); }")
|
||||
#20034=@"loc,{#10000},1,20,1,19"
|
||||
locations_default(#20034,#10000,1,20,1,19)
|
||||
hasLocation(#20033,#20034)
|
||||
#20035=*
|
||||
tokeninfo(#20035,6,#20001,2,"A")
|
||||
hasLocation(#20035,#20012)
|
||||
exprs(#20035,0,#20033,0,"constructor")
|
||||
hasLocation(#20035,#20034)
|
||||
enclosingStmt(#20035,#20022)
|
||||
exprContainers(#20035,#20001)
|
||||
literals("constructor","constructor",#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,7,#20001,3,"extends")
|
||||
#20037=@"loc,{#10000},1,10,1,16"
|
||||
locations_default(#20037,#10000,1,10,1,16)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,6,#20001,4,"B")
|
||||
hasLocation(#20038,#20014)
|
||||
exprs(#20036,9,#20033,1,"(...arg ... rgs); }")
|
||||
hasLocation(#20036,#20034)
|
||||
enclosingStmt(#20036,#20022)
|
||||
exprContainers(#20036,#20001)
|
||||
#20037=*
|
||||
scopes(#20037,1)
|
||||
scopenodes(#20036,#20037)
|
||||
scopenesting(#20037,#20027)
|
||||
#20038=@"var;{args};{#20037}"
|
||||
variables(#20038,"args",#20037)
|
||||
#20039=*
|
||||
tokeninfo(#20039,8,#20001,5,"{")
|
||||
#20040=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20040,#10000,1,20,1,20)
|
||||
hasLocation(#20039,#20040)
|
||||
exprs(#20039,78,#20036,0,"args")
|
||||
hasLocation(#20039,#20034)
|
||||
exprContainers(#20039,#20036)
|
||||
literals("args","args",#20039)
|
||||
decl(#20039,#20038)
|
||||
#20040=@"var;{arguments};{#20037}"
|
||||
variables(#20040,"arguments",#20037)
|
||||
isArgumentsObject(#20040)
|
||||
hasRestParameter(#20036)
|
||||
#20041=*
|
||||
tokeninfo(#20041,8,#20001,6,"}")
|
||||
#20042=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20042,#10000,1,21,1,21)
|
||||
hasLocation(#20041,#20042)
|
||||
stmts(#20041,1,#20036,-2,"{ super(...args); }")
|
||||
hasLocation(#20041,#20034)
|
||||
stmtContainers(#20041,#20036)
|
||||
#20042=*
|
||||
stmts(#20042,2,#20041,0,"super(...args);")
|
||||
hasLocation(#20042,#20034)
|
||||
stmtContainers(#20042,#20036)
|
||||
#20043=*
|
||||
tokeninfo(#20043,8,#20001,7,";")
|
||||
#20044=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20044,#10000,1,22,1,22)
|
||||
hasLocation(#20043,#20044)
|
||||
exprs(#20043,13,#20042,0,"super(...args)")
|
||||
hasLocation(#20043,#20034)
|
||||
enclosingStmt(#20043,#20042)
|
||||
exprContainers(#20043,#20036)
|
||||
#20044=*
|
||||
exprs(#20044,81,#20043,-1,"super")
|
||||
hasLocation(#20044,#20034)
|
||||
enclosingStmt(#20044,#20042)
|
||||
exprContainers(#20044,#20036)
|
||||
#20045=*
|
||||
tokeninfo(#20045,0,#20001,8,"")
|
||||
#20046=@"loc,{#10000},1,23,1,22"
|
||||
locations_default(#20046,#10000,1,23,1,22)
|
||||
hasLocation(#20045,#20046)
|
||||
exprs(#20045,66,#20043,0,"...args")
|
||||
hasLocation(#20045,#20034)
|
||||
enclosingStmt(#20045,#20042)
|
||||
exprContainers(#20045,#20036)
|
||||
#20046=*
|
||||
exprs(#20046,79,#20045,0,"args")
|
||||
hasLocation(#20046,#20034)
|
||||
enclosingStmt(#20046,#20042)
|
||||
exprContainers(#20046,#20036)
|
||||
literals("args","args",#20046)
|
||||
bind(#20046,#20038)
|
||||
isMethod(#20033)
|
||||
#20047=*
|
||||
entry_cfg_node(#20047,#20001)
|
||||
#20048=@"loc,{#10000},1,1,1,0"
|
||||
@@ -176,29 +175,29 @@ locations_default(#20048,#10000,1,1,1,0)
|
||||
hasLocation(#20047,#20048)
|
||||
#20049=*
|
||||
exit_cfg_node(#20049,#20001)
|
||||
hasLocation(#20049,#20046)
|
||||
successor(#20003,#20011)
|
||||
successor(#20019,#20016)
|
||||
hasLocation(#20049,#20021)
|
||||
successor(#20022,#20030)
|
||||
successor(#20036,#20033)
|
||||
#20050=*
|
||||
entry_cfg_node(#20050,#20019)
|
||||
hasLocation(#20050,#20017)
|
||||
entry_cfg_node(#20050,#20036)
|
||||
hasLocation(#20050,#20034)
|
||||
#20051=*
|
||||
exit_cfg_node(#20051,#20019)
|
||||
hasLocation(#20051,#20017)
|
||||
successor(#20024,#20025)
|
||||
successor(#20025,#20027)
|
||||
successor(#20029,#20028)
|
||||
successor(#20028,#20026)
|
||||
successor(#20027,#20029)
|
||||
successor(#20026,#20051)
|
||||
successor(#20022,#20024)
|
||||
successor(#20050,#20022)
|
||||
successor(#20018,#20019)
|
||||
successor(#20016,#20006)
|
||||
successor(#20013,#20018)
|
||||
successor(#20011,#20013)
|
||||
successor(#20006,#20004)
|
||||
successor(#20004,#20049)
|
||||
successor(#20047,#20003)
|
||||
exit_cfg_node(#20051,#20036)
|
||||
hasLocation(#20051,#20034)
|
||||
successor(#20041,#20042)
|
||||
successor(#20042,#20044)
|
||||
successor(#20046,#20045)
|
||||
successor(#20045,#20043)
|
||||
successor(#20044,#20046)
|
||||
successor(#20043,#20051)
|
||||
successor(#20039,#20041)
|
||||
successor(#20050,#20039)
|
||||
successor(#20035,#20036)
|
||||
successor(#20033,#20025)
|
||||
successor(#20031,#20035)
|
||||
successor(#20030,#20031)
|
||||
successor(#20025,#20023)
|
||||
successor(#20023,#20049)
|
||||
successor(#20047,#20022)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,152 +9,152 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,15"
|
||||
locations_default(#20002,#10000,1,1,1,15)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,3,#20001,0,"if(x,1+2,y||z);")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20004=*
|
||||
exprs(#20004,10,#20003,0,"x,1+2,y||z")
|
||||
#20005=@"loc,{#10000},1,4,1,13"
|
||||
locations_default(#20005,#10000,1,4,1,13)
|
||||
hasLocation(#20004,#20005)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,79,#20004,0,"x")
|
||||
#20007=@"loc,{#10000},1,4,1,4"
|
||||
locations_default(#20007,#10000,1,4,1,4)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20003)
|
||||
exprContainers(#20006,#20001)
|
||||
literals("x","x",#20006)
|
||||
#20008=@"var;{x};{#20000}"
|
||||
variables(#20008,"x",#20000)
|
||||
bind(#20006,#20008)
|
||||
#20009=*
|
||||
exprs(#20009,34,#20004,1,"1+2")
|
||||
#20010=@"loc,{#10000},1,6,1,8"
|
||||
locations_default(#20010,#10000,1,6,1,8)
|
||||
hasLocation(#20009,#20010)
|
||||
enclosingStmt(#20009,#20003)
|
||||
exprContainers(#20009,#20001)
|
||||
#20011=*
|
||||
exprs(#20011,3,#20009,0,"1")
|
||||
#20012=@"loc,{#10000},1,6,1,6"
|
||||
locations_default(#20012,#10000,1,6,1,6)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20003)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("1","1",#20011)
|
||||
#20013=*
|
||||
exprs(#20013,3,#20009,1,"2")
|
||||
#20014=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20014,#10000,1,8,1,8)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20003)
|
||||
exprContainers(#20013,#20001)
|
||||
literals("2","2",#20013)
|
||||
#20015=*
|
||||
exprs(#20015,45,#20004,2,"y||z")
|
||||
#20016=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20016,#10000,1,10,1,13)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20003)
|
||||
exprContainers(#20015,#20001)
|
||||
#20017=*
|
||||
exprs(#20017,79,#20015,0,"y")
|
||||
#20018=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20018,#10000,1,10,1,10)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20003)
|
||||
exprContainers(#20017,#20001)
|
||||
literals("y","y",#20017)
|
||||
#20019=@"var;{y};{#20000}"
|
||||
variables(#20019,"y",#20000)
|
||||
bind(#20017,#20019)
|
||||
#20020=*
|
||||
exprs(#20020,79,#20015,1,"z")
|
||||
#20021=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20021,#10000,1,13,1,13)
|
||||
hasLocation(#20020,#20021)
|
||||
enclosingStmt(#20020,#20003)
|
||||
exprContainers(#20020,#20001)
|
||||
literals("z","z",#20020)
|
||||
#20022=@"var;{z};{#20000}"
|
||||
variables(#20022,"z",#20000)
|
||||
bind(#20020,#20022)
|
||||
#20023=*
|
||||
stmts(#20023,0,#20003,1,";")
|
||||
#20024=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20024,#10000,1,15,1,15)
|
||||
hasLocation(#20023,#20024)
|
||||
stmtContainers(#20023,#20001)
|
||||
#20025=*
|
||||
lines(#20025,#20001,"if(x,1+2,y||z);","")
|
||||
hasLocation(#20025,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"if(x,1+2,y||z);","")
|
||||
#20003=@"loc,{#10000},1,1,1,15"
|
||||
locations_default(#20003,#10000,1,1,1,15)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"if")
|
||||
#20005=@"loc,{#10000},1,1,1,2"
|
||||
locations_default(#20005,#10000,1,1,1,2)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,8,#20001,1,"(")
|
||||
#20007=@"loc,{#10000},1,3,1,3"
|
||||
locations_default(#20007,#10000,1,3,1,3)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,6,#20001,2,"x")
|
||||
#20009=@"loc,{#10000},1,4,1,4"
|
||||
locations_default(#20009,#10000,1,4,1,4)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,",")
|
||||
#20011=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20011,#10000,1,5,1,5)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,3,#20001,4,"1")
|
||||
#20013=@"loc,{#10000},1,6,1,6"
|
||||
locations_default(#20013,#10000,1,6,1,6)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,"+")
|
||||
#20015=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20015,#10000,1,7,1,7)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,3,#20001,6,"2")
|
||||
#20017=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20017,#10000,1,8,1,8)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,7,",")
|
||||
#20019=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20019,#10000,1,9,1,9)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,6,#20001,8,"y")
|
||||
#20021=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20021,#10000,1,10,1,10)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,9,"||")
|
||||
#20023=@"loc,{#10000},1,11,1,12"
|
||||
locations_default(#20023,#10000,1,11,1,12)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,10,"z")
|
||||
#20025=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20025,#10000,1,13,1,13)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,7,#20001,0,"if")
|
||||
#20027=@"loc,{#10000},1,1,1,2"
|
||||
locations_default(#20027,#10000,1,1,1,2)
|
||||
tokeninfo(#20026,8,#20001,11,")")
|
||||
#20027=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20027,#10000,1,14,1,14)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,1,"(")
|
||||
#20029=@"loc,{#10000},1,3,1,3"
|
||||
locations_default(#20029,#10000,1,3,1,3)
|
||||
tokeninfo(#20028,8,#20001,12,";")
|
||||
#20029=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20029,#10000,1,15,1,15)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,6,#20001,2,"x")
|
||||
hasLocation(#20030,#20007)
|
||||
#20031=*
|
||||
tokeninfo(#20031,8,#20001,3,",")
|
||||
#20032=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20032,#10000,1,5,1,5)
|
||||
hasLocation(#20031,#20032)
|
||||
tokeninfo(#20030,0,#20001,13,"")
|
||||
#20031=@"loc,{#10000},1,16,1,15"
|
||||
locations_default(#20031,#10000,1,16,1,15)
|
||||
hasLocation(#20030,#20031)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20032=*
|
||||
stmts(#20032,3,#20001,0,"if(x,1+2,y||z);")
|
||||
hasLocation(#20032,#20003)
|
||||
stmtContainers(#20032,#20001)
|
||||
#20033=*
|
||||
tokeninfo(#20033,3,#20001,4,"1")
|
||||
hasLocation(#20033,#20012)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,5,"+")
|
||||
#20035=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20035,#10000,1,7,1,7)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,3,#20001,6,"2")
|
||||
hasLocation(#20036,#20014)
|
||||
exprs(#20033,10,#20032,0,"x,1+2,y||z")
|
||||
#20034=@"loc,{#10000},1,4,1,13"
|
||||
locations_default(#20034,#10000,1,4,1,13)
|
||||
hasLocation(#20033,#20034)
|
||||
enclosingStmt(#20033,#20032)
|
||||
exprContainers(#20033,#20001)
|
||||
#20035=*
|
||||
exprs(#20035,79,#20033,0,"x")
|
||||
hasLocation(#20035,#20009)
|
||||
enclosingStmt(#20035,#20032)
|
||||
exprContainers(#20035,#20001)
|
||||
literals("x","x",#20035)
|
||||
#20036=@"var;{x};{#20000}"
|
||||
variables(#20036,"x",#20000)
|
||||
bind(#20035,#20036)
|
||||
#20037=*
|
||||
tokeninfo(#20037,8,#20001,7,",")
|
||||
#20038=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20038,#10000,1,9,1,9)
|
||||
exprs(#20037,34,#20033,1,"1+2")
|
||||
#20038=@"loc,{#10000},1,6,1,8"
|
||||
locations_default(#20038,#10000,1,6,1,8)
|
||||
hasLocation(#20037,#20038)
|
||||
enclosingStmt(#20037,#20032)
|
||||
exprContainers(#20037,#20001)
|
||||
#20039=*
|
||||
tokeninfo(#20039,6,#20001,8,"y")
|
||||
hasLocation(#20039,#20018)
|
||||
exprs(#20039,3,#20037,0,"1")
|
||||
hasLocation(#20039,#20013)
|
||||
enclosingStmt(#20039,#20032)
|
||||
exprContainers(#20039,#20001)
|
||||
literals("1","1",#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,8,#20001,9,"||")
|
||||
#20041=@"loc,{#10000},1,11,1,12"
|
||||
locations_default(#20041,#10000,1,11,1,12)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,6,#20001,10,"z")
|
||||
hasLocation(#20042,#20021)
|
||||
exprs(#20040,3,#20037,1,"2")
|
||||
hasLocation(#20040,#20017)
|
||||
enclosingStmt(#20040,#20032)
|
||||
exprContainers(#20040,#20001)
|
||||
literals("2","2",#20040)
|
||||
#20041=*
|
||||
exprs(#20041,45,#20033,2,"y||z")
|
||||
#20042=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20042,#10000,1,10,1,13)
|
||||
hasLocation(#20041,#20042)
|
||||
enclosingStmt(#20041,#20032)
|
||||
exprContainers(#20041,#20001)
|
||||
#20043=*
|
||||
tokeninfo(#20043,8,#20001,11,")")
|
||||
#20044=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20044,#10000,1,14,1,14)
|
||||
hasLocation(#20043,#20044)
|
||||
exprs(#20043,79,#20041,0,"y")
|
||||
hasLocation(#20043,#20021)
|
||||
enclosingStmt(#20043,#20032)
|
||||
exprContainers(#20043,#20001)
|
||||
literals("y","y",#20043)
|
||||
#20044=@"var;{y};{#20000}"
|
||||
variables(#20044,"y",#20000)
|
||||
bind(#20043,#20044)
|
||||
#20045=*
|
||||
tokeninfo(#20045,8,#20001,12,";")
|
||||
hasLocation(#20045,#20024)
|
||||
#20046=*
|
||||
tokeninfo(#20046,0,#20001,13,"")
|
||||
#20047=@"loc,{#10000},1,16,1,15"
|
||||
locations_default(#20047,#10000,1,16,1,15)
|
||||
hasLocation(#20046,#20047)
|
||||
exprs(#20045,79,#20041,1,"z")
|
||||
hasLocation(#20045,#20025)
|
||||
enclosingStmt(#20045,#20032)
|
||||
exprContainers(#20045,#20001)
|
||||
literals("z","z",#20045)
|
||||
#20046=@"var;{z};{#20000}"
|
||||
variables(#20046,"z",#20000)
|
||||
bind(#20045,#20046)
|
||||
#20047=*
|
||||
stmts(#20047,0,#20032,1,";")
|
||||
hasLocation(#20047,#20029)
|
||||
stmtContainers(#20047,#20001)
|
||||
#20048=*
|
||||
entry_cfg_node(#20048,#20001)
|
||||
#20049=@"loc,{#10000},1,1,1,0"
|
||||
@@ -162,35 +162,35 @@ locations_default(#20049,#10000,1,1,1,0)
|
||||
hasLocation(#20048,#20049)
|
||||
#20050=*
|
||||
exit_cfg_node(#20050,#20001)
|
||||
hasLocation(#20050,#20047)
|
||||
successor(#20003,#20004)
|
||||
successor(#20004,#20006)
|
||||
successor(#20015,#20017)
|
||||
hasLocation(#20050,#20031)
|
||||
successor(#20032,#20033)
|
||||
successor(#20033,#20035)
|
||||
successor(#20041,#20043)
|
||||
#20051=*
|
||||
guard_node(#20051,1,#20017)
|
||||
hasLocation(#20051,#20018)
|
||||
successor(#20051,#20023)
|
||||
guard_node(#20051,1,#20043)
|
||||
hasLocation(#20051,#20021)
|
||||
successor(#20051,#20047)
|
||||
#20052=*
|
||||
guard_node(#20052,0,#20017)
|
||||
hasLocation(#20052,#20018)
|
||||
successor(#20052,#20020)
|
||||
successor(#20017,#20051)
|
||||
successor(#20017,#20052)
|
||||
guard_node(#20052,0,#20043)
|
||||
hasLocation(#20052,#20021)
|
||||
successor(#20052,#20045)
|
||||
successor(#20043,#20051)
|
||||
successor(#20043,#20052)
|
||||
#20053=*
|
||||
guard_node(#20053,1,#20020)
|
||||
hasLocation(#20053,#20021)
|
||||
successor(#20053,#20023)
|
||||
guard_node(#20053,1,#20045)
|
||||
hasLocation(#20053,#20025)
|
||||
successor(#20053,#20047)
|
||||
#20054=*
|
||||
guard_node(#20054,0,#20020)
|
||||
hasLocation(#20054,#20021)
|
||||
guard_node(#20054,0,#20045)
|
||||
hasLocation(#20054,#20025)
|
||||
successor(#20054,#20050)
|
||||
successor(#20020,#20053)
|
||||
successor(#20020,#20054)
|
||||
successor(#20013,#20009)
|
||||
successor(#20011,#20013)
|
||||
successor(#20009,#20015)
|
||||
successor(#20006,#20011)
|
||||
successor(#20023,#20050)
|
||||
successor(#20048,#20003)
|
||||
successor(#20045,#20053)
|
||||
successor(#20045,#20054)
|
||||
successor(#20040,#20037)
|
||||
successor(#20039,#20040)
|
||||
successor(#20037,#20041)
|
||||
successor(#20035,#20039)
|
||||
successor(#20047,#20050)
|
||||
successor(#20048,#20032)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,177 +9,177 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,12"
|
||||
locations_default(#20002,#10000,1,1,2,12)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"a && b && c;")
|
||||
#20004=@"loc,{#10000},1,1,1,12"
|
||||
locations_default(#20004,#10000,1,1,1,12)
|
||||
hasLocation(#20003,#20004)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,44,#20003,0,"a && b && c")
|
||||
#20006=@"loc,{#10000},1,1,1,11"
|
||||
locations_default(#20006,#10000,1,1,1,11)
|
||||
hasLocation(#20005,#20006)
|
||||
enclosingStmt(#20005,#20003)
|
||||
exprContainers(#20005,#20001)
|
||||
#20007=*
|
||||
exprs(#20007,44,#20005,0,"a && b")
|
||||
#20008=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20008,#10000,1,1,1,6)
|
||||
hasLocation(#20007,#20008)
|
||||
enclosingStmt(#20007,#20003)
|
||||
exprContainers(#20007,#20001)
|
||||
#20009=*
|
||||
exprs(#20009,79,#20007,0,"a")
|
||||
#20010=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20010,#10000,1,1,1,1)
|
||||
hasLocation(#20009,#20010)
|
||||
enclosingStmt(#20009,#20003)
|
||||
exprContainers(#20009,#20001)
|
||||
literals("a","a",#20009)
|
||||
#20011=@"var;{a};{#20000}"
|
||||
variables(#20011,"a",#20000)
|
||||
bind(#20009,#20011)
|
||||
#20012=*
|
||||
exprs(#20012,79,#20007,1,"b")
|
||||
#20013=@"loc,{#10000},1,6,1,6"
|
||||
locations_default(#20013,#10000,1,6,1,6)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20003)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("b","b",#20012)
|
||||
#20014=@"var;{b};{#20000}"
|
||||
variables(#20014,"b",#20000)
|
||||
bind(#20012,#20014)
|
||||
#20015=*
|
||||
exprs(#20015,79,#20005,1,"c")
|
||||
#20016=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20016,#10000,1,11,1,11)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20003)
|
||||
exprContainers(#20015,#20001)
|
||||
literals("c","c",#20015)
|
||||
#20017=@"var;{c};{#20000}"
|
||||
variables(#20017,"c",#20000)
|
||||
bind(#20015,#20017)
|
||||
#20018=*
|
||||
stmts(#20018,2,#20001,1,"x || y || z;")
|
||||
#20019=@"loc,{#10000},2,1,2,12"
|
||||
locations_default(#20019,#10000,2,1,2,12)
|
||||
hasLocation(#20018,#20019)
|
||||
stmtContainers(#20018,#20001)
|
||||
#20020=*
|
||||
exprs(#20020,45,#20018,0,"x || y || z")
|
||||
#20021=@"loc,{#10000},2,1,2,11"
|
||||
locations_default(#20021,#10000,2,1,2,11)
|
||||
hasLocation(#20020,#20021)
|
||||
enclosingStmt(#20020,#20018)
|
||||
exprContainers(#20020,#20001)
|
||||
#20022=*
|
||||
exprs(#20022,45,#20020,0,"x || y")
|
||||
#20023=@"loc,{#10000},2,1,2,6"
|
||||
locations_default(#20023,#10000,2,1,2,6)
|
||||
hasLocation(#20022,#20023)
|
||||
enclosingStmt(#20022,#20018)
|
||||
exprContainers(#20022,#20001)
|
||||
#20024=*
|
||||
exprs(#20024,79,#20022,0,"x")
|
||||
#20025=@"loc,{#10000},2,1,2,1"
|
||||
locations_default(#20025,#10000,2,1,2,1)
|
||||
hasLocation(#20024,#20025)
|
||||
enclosingStmt(#20024,#20018)
|
||||
exprContainers(#20024,#20001)
|
||||
literals("x","x",#20024)
|
||||
#20026=@"var;{x};{#20000}"
|
||||
variables(#20026,"x",#20000)
|
||||
bind(#20024,#20026)
|
||||
#20027=*
|
||||
exprs(#20027,79,#20022,1,"y")
|
||||
#20028=@"loc,{#10000},2,6,2,6"
|
||||
locations_default(#20028,#10000,2,6,2,6)
|
||||
hasLocation(#20027,#20028)
|
||||
enclosingStmt(#20027,#20018)
|
||||
exprContainers(#20027,#20001)
|
||||
literals("y","y",#20027)
|
||||
#20029=@"var;{y};{#20000}"
|
||||
variables(#20029,"y",#20000)
|
||||
bind(#20027,#20029)
|
||||
#20030=*
|
||||
exprs(#20030,79,#20020,1,"z")
|
||||
#20031=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20031,#10000,2,11,2,11)
|
||||
hasLocation(#20030,#20031)
|
||||
enclosingStmt(#20030,#20018)
|
||||
exprContainers(#20030,#20001)
|
||||
literals("z","z",#20030)
|
||||
#20032=@"var;{z};{#20000}"
|
||||
variables(#20032,"z",#20000)
|
||||
bind(#20030,#20032)
|
||||
#20033=*
|
||||
lines(#20033,#20001,"a && b && c;","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"a && b && c;","
|
||||
")
|
||||
hasLocation(#20033,#20004)
|
||||
#20034=*
|
||||
lines(#20034,#20001,"x || y || z;","")
|
||||
hasLocation(#20034,#20019)
|
||||
#20003=@"loc,{#10000},1,1,1,12"
|
||||
locations_default(#20003,#10000,1,1,1,12)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001,"x || y || z;","")
|
||||
#20005=@"loc,{#10000},2,1,2,12"
|
||||
locations_default(#20005,#10000,2,1,2,12)
|
||||
hasLocation(#20004,#20005)
|
||||
numlines(#20001,2,2,0)
|
||||
#20035=*
|
||||
tokeninfo(#20035,6,#20001,0,"a")
|
||||
hasLocation(#20035,#20010)
|
||||
#20006=*
|
||||
tokeninfo(#20006,6,#20001,0,"a")
|
||||
#20007=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20007,#10000,1,1,1,1)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,8,#20001,1,"&&")
|
||||
#20009=@"loc,{#10000},1,3,1,4"
|
||||
locations_default(#20009,#10000,1,3,1,4)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,2,"b")
|
||||
#20011=@"loc,{#10000},1,6,1,6"
|
||||
locations_default(#20011,#10000,1,6,1,6)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,3,"&&")
|
||||
#20013=@"loc,{#10000},1,8,1,9"
|
||||
locations_default(#20013,#10000,1,8,1,9)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,4,"c")
|
||||
#20015=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20015,#10000,1,11,1,11)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,5,";")
|
||||
#20017=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20017,#10000,1,12,1,12)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,6,#20001,6,"x")
|
||||
#20019=@"loc,{#10000},2,1,2,1"
|
||||
locations_default(#20019,#10000,2,1,2,1)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,7,"||")
|
||||
#20021=@"loc,{#10000},2,3,2,4"
|
||||
locations_default(#20021,#10000,2,3,2,4)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,6,#20001,8,"y")
|
||||
#20023=@"loc,{#10000},2,6,2,6"
|
||||
locations_default(#20023,#10000,2,6,2,6)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,9,"||")
|
||||
#20025=@"loc,{#10000},2,8,2,9"
|
||||
locations_default(#20025,#10000,2,8,2,9)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,6,#20001,10,"z")
|
||||
#20027=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20027,#10000,2,11,2,11)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,11,";")
|
||||
#20029=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20029,#10000,2,12,2,12)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,0,#20001,12,"")
|
||||
#20031=@"loc,{#10000},2,13,2,12"
|
||||
locations_default(#20031,#10000,2,13,2,12)
|
||||
hasLocation(#20030,#20031)
|
||||
toplevels(#20001,0)
|
||||
#20032=@"loc,{#10000},1,1,2,12"
|
||||
locations_default(#20032,#10000,1,1,2,12)
|
||||
hasLocation(#20001,#20032)
|
||||
#20033=*
|
||||
stmts(#20033,2,#20001,0,"a && b && c;")
|
||||
hasLocation(#20033,#20003)
|
||||
stmtContainers(#20033,#20001)
|
||||
#20034=*
|
||||
exprs(#20034,44,#20033,0,"a && b && c")
|
||||
#20035=@"loc,{#10000},1,1,1,11"
|
||||
locations_default(#20035,#10000,1,1,1,11)
|
||||
hasLocation(#20034,#20035)
|
||||
enclosingStmt(#20034,#20033)
|
||||
exprContainers(#20034,#20001)
|
||||
#20036=*
|
||||
tokeninfo(#20036,8,#20001,1,"&&")
|
||||
#20037=@"loc,{#10000},1,3,1,4"
|
||||
locations_default(#20037,#10000,1,3,1,4)
|
||||
exprs(#20036,44,#20034,0,"a && b")
|
||||
#20037=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20037,#10000,1,1,1,6)
|
||||
hasLocation(#20036,#20037)
|
||||
enclosingStmt(#20036,#20033)
|
||||
exprContainers(#20036,#20001)
|
||||
#20038=*
|
||||
tokeninfo(#20038,6,#20001,2,"b")
|
||||
hasLocation(#20038,#20013)
|
||||
#20039=*
|
||||
tokeninfo(#20039,8,#20001,3,"&&")
|
||||
#20040=@"loc,{#10000},1,8,1,9"
|
||||
locations_default(#20040,#10000,1,8,1,9)
|
||||
hasLocation(#20039,#20040)
|
||||
#20041=*
|
||||
tokeninfo(#20041,6,#20001,4,"c")
|
||||
hasLocation(#20041,#20016)
|
||||
exprs(#20038,79,#20036,0,"a")
|
||||
hasLocation(#20038,#20007)
|
||||
enclosingStmt(#20038,#20033)
|
||||
exprContainers(#20038,#20001)
|
||||
literals("a","a",#20038)
|
||||
#20039=@"var;{a};{#20000}"
|
||||
variables(#20039,"a",#20000)
|
||||
bind(#20038,#20039)
|
||||
#20040=*
|
||||
exprs(#20040,79,#20036,1,"b")
|
||||
hasLocation(#20040,#20011)
|
||||
enclosingStmt(#20040,#20033)
|
||||
exprContainers(#20040,#20001)
|
||||
literals("b","b",#20040)
|
||||
#20041=@"var;{b};{#20000}"
|
||||
variables(#20041,"b",#20000)
|
||||
bind(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,8,#20001,5,";")
|
||||
#20043=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20043,#10000,1,12,1,12)
|
||||
hasLocation(#20042,#20043)
|
||||
exprs(#20042,79,#20034,1,"c")
|
||||
hasLocation(#20042,#20015)
|
||||
enclosingStmt(#20042,#20033)
|
||||
exprContainers(#20042,#20001)
|
||||
literals("c","c",#20042)
|
||||
#20043=@"var;{c};{#20000}"
|
||||
variables(#20043,"c",#20000)
|
||||
bind(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,6,#20001,6,"x")
|
||||
hasLocation(#20044,#20025)
|
||||
stmts(#20044,2,#20001,1,"x || y || z;")
|
||||
hasLocation(#20044,#20005)
|
||||
stmtContainers(#20044,#20001)
|
||||
#20045=*
|
||||
tokeninfo(#20045,8,#20001,7,"||")
|
||||
#20046=@"loc,{#10000},2,3,2,4"
|
||||
locations_default(#20046,#10000,2,3,2,4)
|
||||
exprs(#20045,45,#20044,0,"x || y || z")
|
||||
#20046=@"loc,{#10000},2,1,2,11"
|
||||
locations_default(#20046,#10000,2,1,2,11)
|
||||
hasLocation(#20045,#20046)
|
||||
enclosingStmt(#20045,#20044)
|
||||
exprContainers(#20045,#20001)
|
||||
#20047=*
|
||||
tokeninfo(#20047,6,#20001,8,"y")
|
||||
hasLocation(#20047,#20028)
|
||||
#20048=*
|
||||
tokeninfo(#20048,8,#20001,9,"||")
|
||||
#20049=@"loc,{#10000},2,8,2,9"
|
||||
locations_default(#20049,#10000,2,8,2,9)
|
||||
hasLocation(#20048,#20049)
|
||||
#20050=*
|
||||
tokeninfo(#20050,6,#20001,10,"z")
|
||||
hasLocation(#20050,#20031)
|
||||
exprs(#20047,45,#20045,0,"x || y")
|
||||
#20048=@"loc,{#10000},2,1,2,6"
|
||||
locations_default(#20048,#10000,2,1,2,6)
|
||||
hasLocation(#20047,#20048)
|
||||
enclosingStmt(#20047,#20044)
|
||||
exprContainers(#20047,#20001)
|
||||
#20049=*
|
||||
exprs(#20049,79,#20047,0,"x")
|
||||
hasLocation(#20049,#20019)
|
||||
enclosingStmt(#20049,#20044)
|
||||
exprContainers(#20049,#20001)
|
||||
literals("x","x",#20049)
|
||||
#20050=@"var;{x};{#20000}"
|
||||
variables(#20050,"x",#20000)
|
||||
bind(#20049,#20050)
|
||||
#20051=*
|
||||
tokeninfo(#20051,8,#20001,11,";")
|
||||
#20052=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20052,#10000,2,12,2,12)
|
||||
hasLocation(#20051,#20052)
|
||||
exprs(#20051,79,#20047,1,"y")
|
||||
hasLocation(#20051,#20023)
|
||||
enclosingStmt(#20051,#20044)
|
||||
exprContainers(#20051,#20001)
|
||||
literals("y","y",#20051)
|
||||
#20052=@"var;{y};{#20000}"
|
||||
variables(#20052,"y",#20000)
|
||||
bind(#20051,#20052)
|
||||
#20053=*
|
||||
tokeninfo(#20053,0,#20001,12,"")
|
||||
#20054=@"loc,{#10000},2,13,2,12"
|
||||
locations_default(#20054,#10000,2,13,2,12)
|
||||
hasLocation(#20053,#20054)
|
||||
exprs(#20053,79,#20045,1,"z")
|
||||
hasLocation(#20053,#20027)
|
||||
enclosingStmt(#20053,#20044)
|
||||
exprContainers(#20053,#20001)
|
||||
literals("z","z",#20053)
|
||||
#20054=@"var;{z};{#20000}"
|
||||
variables(#20054,"z",#20000)
|
||||
bind(#20053,#20054)
|
||||
#20055=*
|
||||
entry_cfg_node(#20055,#20001)
|
||||
#20056=@"loc,{#10000},1,1,1,0"
|
||||
@@ -187,55 +187,55 @@ locations_default(#20056,#10000,1,1,1,0)
|
||||
hasLocation(#20055,#20056)
|
||||
#20057=*
|
||||
exit_cfg_node(#20057,#20001)
|
||||
hasLocation(#20057,#20054)
|
||||
successor(#20018,#20020)
|
||||
successor(#20020,#20022)
|
||||
successor(#20022,#20024)
|
||||
hasLocation(#20057,#20031)
|
||||
successor(#20044,#20045)
|
||||
successor(#20045,#20047)
|
||||
successor(#20047,#20049)
|
||||
#20058=*
|
||||
guard_node(#20058,1,#20024)
|
||||
hasLocation(#20058,#20025)
|
||||
guard_node(#20058,1,#20049)
|
||||
hasLocation(#20058,#20019)
|
||||
successor(#20058,#20057)
|
||||
#20059=*
|
||||
guard_node(#20059,0,#20024)
|
||||
hasLocation(#20059,#20025)
|
||||
successor(#20059,#20027)
|
||||
successor(#20024,#20058)
|
||||
successor(#20024,#20059)
|
||||
guard_node(#20059,0,#20049)
|
||||
hasLocation(#20059,#20019)
|
||||
successor(#20059,#20051)
|
||||
successor(#20049,#20058)
|
||||
successor(#20049,#20059)
|
||||
#20060=*
|
||||
guard_node(#20060,1,#20027)
|
||||
hasLocation(#20060,#20028)
|
||||
guard_node(#20060,1,#20051)
|
||||
hasLocation(#20060,#20023)
|
||||
successor(#20060,#20057)
|
||||
#20061=*
|
||||
guard_node(#20061,0,#20027)
|
||||
hasLocation(#20061,#20028)
|
||||
successor(#20061,#20030)
|
||||
successor(#20027,#20060)
|
||||
successor(#20027,#20061)
|
||||
successor(#20030,#20057)
|
||||
successor(#20003,#20005)
|
||||
successor(#20005,#20007)
|
||||
successor(#20007,#20009)
|
||||
guard_node(#20061,0,#20051)
|
||||
hasLocation(#20061,#20023)
|
||||
successor(#20061,#20053)
|
||||
successor(#20051,#20060)
|
||||
successor(#20051,#20061)
|
||||
successor(#20053,#20057)
|
||||
successor(#20033,#20034)
|
||||
successor(#20034,#20036)
|
||||
successor(#20036,#20038)
|
||||
#20062=*
|
||||
guard_node(#20062,1,#20009)
|
||||
hasLocation(#20062,#20010)
|
||||
successor(#20062,#20012)
|
||||
guard_node(#20062,1,#20038)
|
||||
hasLocation(#20062,#20007)
|
||||
successor(#20062,#20040)
|
||||
#20063=*
|
||||
guard_node(#20063,0,#20009)
|
||||
hasLocation(#20063,#20010)
|
||||
successor(#20063,#20018)
|
||||
successor(#20009,#20062)
|
||||
successor(#20009,#20063)
|
||||
guard_node(#20063,0,#20038)
|
||||
hasLocation(#20063,#20007)
|
||||
successor(#20063,#20044)
|
||||
successor(#20038,#20062)
|
||||
successor(#20038,#20063)
|
||||
#20064=*
|
||||
guard_node(#20064,1,#20012)
|
||||
hasLocation(#20064,#20013)
|
||||
successor(#20064,#20015)
|
||||
guard_node(#20064,1,#20040)
|
||||
hasLocation(#20064,#20011)
|
||||
successor(#20064,#20042)
|
||||
#20065=*
|
||||
guard_node(#20065,0,#20012)
|
||||
hasLocation(#20065,#20013)
|
||||
successor(#20065,#20018)
|
||||
successor(#20012,#20064)
|
||||
successor(#20012,#20065)
|
||||
successor(#20015,#20018)
|
||||
successor(#20055,#20003)
|
||||
guard_node(#20065,0,#20040)
|
||||
hasLocation(#20065,#20011)
|
||||
successor(#20065,#20044)
|
||||
successor(#20040,#20064)
|
||||
successor(#20040,#20065)
|
||||
successor(#20042,#20044)
|
||||
successor(#20055,#20033)
|
||||
numlines(#10000,2,2,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,156 +9,156 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20002,#10000,1,1,1,22)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"(a ? b ... ) || e;")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"(a ? b || c : d) || e;","")
|
||||
#20003=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20003,#10000,1,1,1,22)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
exprs(#20004,45,#20003,0,"(a ? b ... d) || e")
|
||||
#20005=@"loc,{#10000},1,1,1,21"
|
||||
locations_default(#20005,#10000,1,1,1,21)
|
||||
tokeninfo(#20004,8,#20001,0,"(")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,63,#20004,0,"(a ? b || c : d)")
|
||||
#20007=@"loc,{#10000},1,1,1,16"
|
||||
locations_default(#20007,#10000,1,1,1,16)
|
||||
tokeninfo(#20006,6,#20001,1,"a")
|
||||
#20007=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20007,#10000,1,2,1,2)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20003)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,11,#20006,0,"a ? b || c : d")
|
||||
#20009=@"loc,{#10000},1,2,1,15"
|
||||
locations_default(#20009,#10000,1,2,1,15)
|
||||
tokeninfo(#20008,8,#20001,2,"?")
|
||||
#20009=@"loc,{#10000},1,4,1,4"
|
||||
locations_default(#20009,#10000,1,4,1,4)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20003)
|
||||
exprContainers(#20008,#20001)
|
||||
#20010=*
|
||||
exprs(#20010,79,#20008,0,"a")
|
||||
#20011=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20011,#10000,1,2,1,2)
|
||||
tokeninfo(#20010,6,#20001,3,"b")
|
||||
#20011=@"loc,{#10000},1,6,1,6"
|
||||
locations_default(#20011,#10000,1,6,1,6)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20003)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("a","a",#20010)
|
||||
#20012=@"var;{a};{#20000}"
|
||||
variables(#20012,"a",#20000)
|
||||
bind(#20010,#20012)
|
||||
#20013=*
|
||||
exprs(#20013,45,#20008,1,"b || c")
|
||||
#20014=@"loc,{#10000},1,6,1,11"
|
||||
locations_default(#20014,#10000,1,6,1,11)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20003)
|
||||
exprContainers(#20013,#20001)
|
||||
#20015=*
|
||||
exprs(#20015,79,#20013,0,"b")
|
||||
#20016=@"loc,{#10000},1,6,1,6"
|
||||
locations_default(#20016,#10000,1,6,1,6)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20003)
|
||||
exprContainers(#20015,#20001)
|
||||
literals("b","b",#20015)
|
||||
#20017=@"var;{b};{#20000}"
|
||||
variables(#20017,"b",#20000)
|
||||
bind(#20015,#20017)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,"||")
|
||||
#20013=@"loc,{#10000},1,8,1,9"
|
||||
locations_default(#20013,#10000,1,8,1,9)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,5,"c")
|
||||
#20015=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20015,#10000,1,11,1,11)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,6,":")
|
||||
#20017=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20017,#10000,1,13,1,13)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
exprs(#20018,79,#20013,1,"c")
|
||||
#20019=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20019,#10000,1,11,1,11)
|
||||
tokeninfo(#20018,6,#20001,7,"d")
|
||||
#20019=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20019,#10000,1,15,1,15)
|
||||
hasLocation(#20018,#20019)
|
||||
enclosingStmt(#20018,#20003)
|
||||
exprContainers(#20018,#20001)
|
||||
literals("c","c",#20018)
|
||||
#20020=@"var;{c};{#20000}"
|
||||
variables(#20020,"c",#20000)
|
||||
bind(#20018,#20020)
|
||||
#20021=*
|
||||
exprs(#20021,79,#20008,2,"d")
|
||||
#20022=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20022,#10000,1,15,1,15)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20003)
|
||||
exprContainers(#20021,#20001)
|
||||
literals("d","d",#20021)
|
||||
#20023=@"var;{d};{#20000}"
|
||||
variables(#20023,"d",#20000)
|
||||
bind(#20021,#20023)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,8,")")
|
||||
#20021=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20021,#10000,1,16,1,16)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,9,"||")
|
||||
#20023=@"loc,{#10000},1,18,1,19"
|
||||
locations_default(#20023,#10000,1,18,1,19)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
exprs(#20024,79,#20004,1,"e")
|
||||
tokeninfo(#20024,6,#20001,10,"e")
|
||||
#20025=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20025,#10000,1,21,1,21)
|
||||
hasLocation(#20024,#20025)
|
||||
enclosingStmt(#20024,#20003)
|
||||
exprContainers(#20024,#20001)
|
||||
literals("e","e",#20024)
|
||||
#20026=@"var;{e};{#20000}"
|
||||
variables(#20026,"e",#20000)
|
||||
bind(#20024,#20026)
|
||||
#20027=*
|
||||
lines(#20027,#20001,"(a ? b || c : d) || e;","")
|
||||
hasLocation(#20027,#20002)
|
||||
numlines(#20001,1,1,0)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,11,";")
|
||||
#20027=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20027,#10000,1,22,1,22)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,0,"(")
|
||||
#20029=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20029,#10000,1,1,1,1)
|
||||
tokeninfo(#20028,0,#20001,12,"")
|
||||
#20029=@"loc,{#10000},1,23,1,22"
|
||||
locations_default(#20029,#10000,1,23,1,22)
|
||||
hasLocation(#20028,#20029)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20030=*
|
||||
tokeninfo(#20030,6,#20001,1,"a")
|
||||
hasLocation(#20030,#20011)
|
||||
stmts(#20030,2,#20001,0,"(a ? b ... ) || e;")
|
||||
hasLocation(#20030,#20003)
|
||||
stmtContainers(#20030,#20001)
|
||||
#20031=*
|
||||
tokeninfo(#20031,8,#20001,2,"?")
|
||||
#20032=@"loc,{#10000},1,4,1,4"
|
||||
locations_default(#20032,#10000,1,4,1,4)
|
||||
exprs(#20031,45,#20030,0,"(a ? b ... d) || e")
|
||||
#20032=@"loc,{#10000},1,1,1,21"
|
||||
locations_default(#20032,#10000,1,1,1,21)
|
||||
hasLocation(#20031,#20032)
|
||||
enclosingStmt(#20031,#20030)
|
||||
exprContainers(#20031,#20001)
|
||||
#20033=*
|
||||
tokeninfo(#20033,6,#20001,3,"b")
|
||||
hasLocation(#20033,#20016)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,4,"||")
|
||||
#20035=@"loc,{#10000},1,8,1,9"
|
||||
locations_default(#20035,#10000,1,8,1,9)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,6,#20001,5,"c")
|
||||
hasLocation(#20036,#20019)
|
||||
exprs(#20033,63,#20031,0,"(a ? b || c : d)")
|
||||
#20034=@"loc,{#10000},1,1,1,16"
|
||||
locations_default(#20034,#10000,1,1,1,16)
|
||||
hasLocation(#20033,#20034)
|
||||
enclosingStmt(#20033,#20030)
|
||||
exprContainers(#20033,#20001)
|
||||
#20035=*
|
||||
exprs(#20035,11,#20033,0,"a ? b || c : d")
|
||||
#20036=@"loc,{#10000},1,2,1,15"
|
||||
locations_default(#20036,#10000,1,2,1,15)
|
||||
hasLocation(#20035,#20036)
|
||||
enclosingStmt(#20035,#20030)
|
||||
exprContainers(#20035,#20001)
|
||||
#20037=*
|
||||
tokeninfo(#20037,8,#20001,6,":")
|
||||
#20038=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20038,#10000,1,13,1,13)
|
||||
hasLocation(#20037,#20038)
|
||||
exprs(#20037,79,#20035,0,"a")
|
||||
hasLocation(#20037,#20007)
|
||||
enclosingStmt(#20037,#20030)
|
||||
exprContainers(#20037,#20001)
|
||||
literals("a","a",#20037)
|
||||
#20038=@"var;{a};{#20000}"
|
||||
variables(#20038,"a",#20000)
|
||||
bind(#20037,#20038)
|
||||
#20039=*
|
||||
tokeninfo(#20039,6,#20001,7,"d")
|
||||
hasLocation(#20039,#20022)
|
||||
#20040=*
|
||||
tokeninfo(#20040,8,#20001,8,")")
|
||||
#20041=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20041,#10000,1,16,1,16)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,8,#20001,9,"||")
|
||||
#20043=@"loc,{#10000},1,18,1,19"
|
||||
locations_default(#20043,#10000,1,18,1,19)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,6,#20001,10,"e")
|
||||
hasLocation(#20044,#20025)
|
||||
exprs(#20039,45,#20035,1,"b || c")
|
||||
#20040=@"loc,{#10000},1,6,1,11"
|
||||
locations_default(#20040,#10000,1,6,1,11)
|
||||
hasLocation(#20039,#20040)
|
||||
enclosingStmt(#20039,#20030)
|
||||
exprContainers(#20039,#20001)
|
||||
#20041=*
|
||||
exprs(#20041,79,#20039,0,"b")
|
||||
hasLocation(#20041,#20011)
|
||||
enclosingStmt(#20041,#20030)
|
||||
exprContainers(#20041,#20001)
|
||||
literals("b","b",#20041)
|
||||
#20042=@"var;{b};{#20000}"
|
||||
variables(#20042,"b",#20000)
|
||||
bind(#20041,#20042)
|
||||
#20043=*
|
||||
exprs(#20043,79,#20039,1,"c")
|
||||
hasLocation(#20043,#20015)
|
||||
enclosingStmt(#20043,#20030)
|
||||
exprContainers(#20043,#20001)
|
||||
literals("c","c",#20043)
|
||||
#20044=@"var;{c};{#20000}"
|
||||
variables(#20044,"c",#20000)
|
||||
bind(#20043,#20044)
|
||||
#20045=*
|
||||
tokeninfo(#20045,8,#20001,11,";")
|
||||
#20046=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20046,#10000,1,22,1,22)
|
||||
hasLocation(#20045,#20046)
|
||||
exprs(#20045,79,#20035,2,"d")
|
||||
hasLocation(#20045,#20019)
|
||||
enclosingStmt(#20045,#20030)
|
||||
exprContainers(#20045,#20001)
|
||||
literals("d","d",#20045)
|
||||
#20046=@"var;{d};{#20000}"
|
||||
variables(#20046,"d",#20000)
|
||||
bind(#20045,#20046)
|
||||
#20047=*
|
||||
tokeninfo(#20047,0,#20001,12,"")
|
||||
#20048=@"loc,{#10000},1,23,1,22"
|
||||
locations_default(#20048,#10000,1,23,1,22)
|
||||
hasLocation(#20047,#20048)
|
||||
exprs(#20047,79,#20031,1,"e")
|
||||
hasLocation(#20047,#20025)
|
||||
enclosingStmt(#20047,#20030)
|
||||
exprContainers(#20047,#20001)
|
||||
literals("e","e",#20047)
|
||||
#20048=@"var;{e};{#20000}"
|
||||
variables(#20048,"e",#20000)
|
||||
bind(#20047,#20048)
|
||||
#20049=*
|
||||
entry_cfg_node(#20049,#20001)
|
||||
#20050=@"loc,{#10000},1,1,1,0"
|
||||
@@ -166,53 +166,53 @@ locations_default(#20050,#10000,1,1,1,0)
|
||||
hasLocation(#20049,#20050)
|
||||
#20051=*
|
||||
exit_cfg_node(#20051,#20001)
|
||||
hasLocation(#20051,#20048)
|
||||
successor(#20003,#20004)
|
||||
successor(#20004,#20006)
|
||||
successor(#20006,#20008)
|
||||
successor(#20008,#20010)
|
||||
hasLocation(#20051,#20029)
|
||||
successor(#20030,#20031)
|
||||
successor(#20031,#20033)
|
||||
successor(#20033,#20035)
|
||||
successor(#20035,#20037)
|
||||
#20052=*
|
||||
guard_node(#20052,1,#20010)
|
||||
hasLocation(#20052,#20011)
|
||||
successor(#20052,#20013)
|
||||
guard_node(#20052,1,#20037)
|
||||
hasLocation(#20052,#20007)
|
||||
successor(#20052,#20039)
|
||||
#20053=*
|
||||
guard_node(#20053,0,#20010)
|
||||
hasLocation(#20053,#20011)
|
||||
successor(#20053,#20021)
|
||||
successor(#20010,#20052)
|
||||
successor(#20010,#20053)
|
||||
successor(#20013,#20015)
|
||||
guard_node(#20053,0,#20037)
|
||||
hasLocation(#20053,#20007)
|
||||
successor(#20053,#20045)
|
||||
successor(#20037,#20052)
|
||||
successor(#20037,#20053)
|
||||
successor(#20039,#20041)
|
||||
#20054=*
|
||||
guard_node(#20054,1,#20015)
|
||||
hasLocation(#20054,#20016)
|
||||
guard_node(#20054,1,#20041)
|
||||
hasLocation(#20054,#20011)
|
||||
successor(#20054,#20051)
|
||||
#20055=*
|
||||
guard_node(#20055,0,#20015)
|
||||
hasLocation(#20055,#20016)
|
||||
successor(#20055,#20018)
|
||||
successor(#20015,#20054)
|
||||
successor(#20015,#20055)
|
||||
guard_node(#20055,0,#20041)
|
||||
hasLocation(#20055,#20011)
|
||||
successor(#20055,#20043)
|
||||
successor(#20041,#20054)
|
||||
successor(#20041,#20055)
|
||||
#20056=*
|
||||
guard_node(#20056,1,#20018)
|
||||
hasLocation(#20056,#20019)
|
||||
guard_node(#20056,1,#20043)
|
||||
hasLocation(#20056,#20015)
|
||||
successor(#20056,#20051)
|
||||
#20057=*
|
||||
guard_node(#20057,0,#20018)
|
||||
hasLocation(#20057,#20019)
|
||||
successor(#20057,#20024)
|
||||
successor(#20018,#20056)
|
||||
successor(#20018,#20057)
|
||||
guard_node(#20057,0,#20043)
|
||||
hasLocation(#20057,#20015)
|
||||
successor(#20057,#20047)
|
||||
successor(#20043,#20056)
|
||||
successor(#20043,#20057)
|
||||
#20058=*
|
||||
guard_node(#20058,1,#20021)
|
||||
hasLocation(#20058,#20022)
|
||||
guard_node(#20058,1,#20045)
|
||||
hasLocation(#20058,#20019)
|
||||
successor(#20058,#20051)
|
||||
#20059=*
|
||||
guard_node(#20059,0,#20021)
|
||||
hasLocation(#20059,#20022)
|
||||
successor(#20059,#20024)
|
||||
successor(#20021,#20058)
|
||||
successor(#20021,#20059)
|
||||
successor(#20024,#20051)
|
||||
successor(#20049,#20003)
|
||||
guard_node(#20059,0,#20045)
|
||||
hasLocation(#20059,#20019)
|
||||
successor(#20059,#20047)
|
||||
successor(#20045,#20058)
|
||||
successor(#20045,#20059)
|
||||
successor(#20047,#20051)
|
||||
successor(#20049,#20030)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,75 +9,76 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,5,24"
|
||||
locations_default(#20002,#10000,1,1,5,24)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
comments(#20003,0,#20001," line comment","// line comment")
|
||||
#20004=@"loc,{#10000},1,1,1,15"
|
||||
locations_default(#20004,#10000,1,1,1,15)
|
||||
hasLocation(#20003,#20004)
|
||||
#20005=*
|
||||
comments(#20005,1,#20001," block comment ","/* block comment */")
|
||||
#20006=@"loc,{#10000},2,1,2,19"
|
||||
locations_default(#20006,#10000,2,1,2,19)
|
||||
hasLocation(#20005,#20006)
|
||||
#20007=*
|
||||
comments(#20007,2,#20001," doc comment ","/** doc comment */")
|
||||
#20008=@"loc,{#10000},3,1,3,18"
|
||||
locations_default(#20008,#10000,3,1,3,18)
|
||||
hasLocation(#20007,#20008)
|
||||
#20009=*
|
||||
comments(#20009,3,#20001," an HTML comment","<!-- an HTML comment")
|
||||
#20010=@"loc,{#10000},4,1,4,20"
|
||||
locations_default(#20010,#10000,4,1,4,20)
|
||||
hasLocation(#20009,#20010)
|
||||
#20011=*
|
||||
comments(#20011,4,#20001," another HTML comment","--> ano ... comment")
|
||||
#20012=@"loc,{#10000},5,1,5,24"
|
||||
locations_default(#20012,#10000,5,1,5,24)
|
||||
hasLocation(#20011,#20012)
|
||||
#20002=*
|
||||
comments(#20002,0,#20001," line comment","// line comment")
|
||||
#20003=@"loc,{#10000},1,1,1,15"
|
||||
locations_default(#20003,#10000,1,1,1,15)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
comments(#20004,1,#20001," block comment ","/* block comment */")
|
||||
#20005=@"loc,{#10000},2,1,2,19"
|
||||
locations_default(#20005,#10000,2,1,2,19)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
comments(#20006,2,#20001," doc comment ","/** doc comment */")
|
||||
#20007=@"loc,{#10000},3,1,3,18"
|
||||
locations_default(#20007,#10000,3,1,3,18)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
comments(#20008,3,#20001," an HTML comment","<!-- an HTML comment")
|
||||
#20009=@"loc,{#10000},4,1,4,20"
|
||||
locations_default(#20009,#10000,4,1,4,20)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
comments(#20010,4,#20001," another HTML comment","--> ano ... comment")
|
||||
#20011=@"loc,{#10000},5,1,5,24"
|
||||
locations_default(#20011,#10000,5,1,5,24)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
lines(#20012,#20001,"// line comment","
|
||||
")
|
||||
hasLocation(#20012,#20003)
|
||||
#20013=*
|
||||
lines(#20013,#20001,"// line comment","
|
||||
lines(#20013,#20001,"/* block comment */","
|
||||
")
|
||||
hasLocation(#20013,#20004)
|
||||
hasLocation(#20013,#20005)
|
||||
#20014=*
|
||||
lines(#20014,#20001,"/* block comment */","
|
||||
lines(#20014,#20001,"/** doc comment */","
|
||||
")
|
||||
hasLocation(#20014,#20006)
|
||||
hasLocation(#20014,#20007)
|
||||
#20015=*
|
||||
lines(#20015,#20001,"/** doc comment */","
|
||||
lines(#20015,#20001,"<!-- an HTML comment","
|
||||
")
|
||||
hasLocation(#20015,#20008)
|
||||
hasLocation(#20015,#20009)
|
||||
#20016=*
|
||||
lines(#20016,#20001,"<!-- an HTML comment","
|
||||
")
|
||||
hasLocation(#20016,#20010)
|
||||
#20017=*
|
||||
lines(#20017,#20001,"--> another HTML comment","")
|
||||
hasLocation(#20017,#20012)
|
||||
lines(#20016,#20001,"--> another HTML comment","")
|
||||
hasLocation(#20016,#20011)
|
||||
numlines(#20001,5,0,5)
|
||||
#20018=*
|
||||
tokeninfo(#20018,0,#20001,0,"")
|
||||
#20019=@"loc,{#10000},5,25,5,24"
|
||||
locations_default(#20019,#10000,5,25,5,24)
|
||||
hasLocation(#20018,#20019)
|
||||
next_token(#20003,#20018)
|
||||
next_token(#20005,#20018)
|
||||
next_token(#20007,#20018)
|
||||
next_token(#20009,#20018)
|
||||
#20020=*
|
||||
entry_cfg_node(#20020,#20001)
|
||||
#20021=@"loc,{#10000},1,1,1,0"
|
||||
locations_default(#20021,#10000,1,1,1,0)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
exit_cfg_node(#20022,#20001)
|
||||
hasLocation(#20022,#20019)
|
||||
successor(#20020,#20022)
|
||||
#20017=*
|
||||
tokeninfo(#20017,0,#20001,0,"")
|
||||
#20018=@"loc,{#10000},5,25,5,24"
|
||||
locations_default(#20018,#10000,5,25,5,24)
|
||||
hasLocation(#20017,#20018)
|
||||
next_token(#20002,#20017)
|
||||
next_token(#20004,#20017)
|
||||
next_token(#20006,#20017)
|
||||
next_token(#20008,#20017)
|
||||
next_token(#20010,#20017)
|
||||
#20019=*
|
||||
jsdoc(#20019,"doc comment",#20006)
|
||||
hasLocation(#20019,#20007)
|
||||
toplevels(#20001,0)
|
||||
#20020=@"loc,{#10000},1,1,5,24"
|
||||
locations_default(#20020,#10000,1,1,5,24)
|
||||
hasLocation(#20001,#20020)
|
||||
#20021=*
|
||||
entry_cfg_node(#20021,#20001)
|
||||
#20022=@"loc,{#10000},1,1,1,0"
|
||||
locations_default(#20022,#10000,1,1,1,0)
|
||||
hasLocation(#20021,#20022)
|
||||
#20023=*
|
||||
jsdoc(#20023,"doc comment",#20007)
|
||||
hasLocation(#20023,#20008)
|
||||
exit_cfg_node(#20023,#20001)
|
||||
hasLocation(#20023,#20018)
|
||||
successor(#20021,#20023)
|
||||
numlines(#10000,5,0,5)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,26 +9,26 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20002,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
comments(#20003,1,#20001,"","/**/")
|
||||
#20004=@"loc,{#10000},1,1,1,4"
|
||||
locations_default(#20004,#10000,1,1,1,4)
|
||||
hasLocation(#20003,#20004)
|
||||
#20005=*
|
||||
lines(#20005,#20001,"/**/","
|
||||
#20002=*
|
||||
comments(#20002,1,#20001,"","/**/")
|
||||
#20003=@"loc,{#10000},1,1,1,4"
|
||||
locations_default(#20003,#10000,1,1,1,4)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001,"/**/","
|
||||
")
|
||||
hasLocation(#20005,#20004)
|
||||
hasLocation(#20004,#20003)
|
||||
numlines(#20001,1,0,1)
|
||||
#20006=*
|
||||
tokeninfo(#20006,0,#20001,0,"")
|
||||
#20007=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20007,#10000,2,1,2,0)
|
||||
hasLocation(#20006,#20007)
|
||||
next_token(#20003,#20006)
|
||||
#20005=*
|
||||
tokeninfo(#20005,0,#20001,0,"")
|
||||
#20006=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20006,#10000,2,1,2,0)
|
||||
hasLocation(#20005,#20006)
|
||||
next_token(#20002,#20005)
|
||||
toplevels(#20001,0)
|
||||
#20007=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20007,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20007)
|
||||
#20008=*
|
||||
entry_cfg_node(#20008,#20001)
|
||||
#20009=@"loc,{#10000},1,1,1,0"
|
||||
@@ -36,7 +36,7 @@ locations_default(#20009,#10000,1,1,1,0)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
exit_cfg_node(#20010,#20001)
|
||||
hasLocation(#20010,#20007)
|
||||
hasLocation(#20010,#20006)
|
||||
successor(#20008,#20010)
|
||||
numlines(#10000,1,0,1)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,109 +9,108 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20002,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{f};{#20000}"
|
||||
variables(#20003,"f",#20000)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"function f(ä, ö) {}","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,19"
|
||||
locations_default(#20003,#10000,1,1,1,19)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
stmts(#20004,17,#20001,0,"function f(\u00e4, \u00f6) {}")
|
||||
#20005=@"loc,{#10000},1,1,1,19"
|
||||
locations_default(#20005,#10000,1,1,1,19)
|
||||
tokeninfo(#20004,7,#20001,0,"function")
|
||||
#20005=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20005,#10000,1,1,1,8)
|
||||
hasLocation(#20004,#20005)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,78,#20004,-1,"f")
|
||||
tokeninfo(#20006,6,#20001,1,"f")
|
||||
#20007=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20007,#10000,1,10,1,10)
|
||||
hasLocation(#20006,#20007)
|
||||
exprContainers(#20006,#20004)
|
||||
literals("f","f",#20006)
|
||||
decl(#20006,#20003)
|
||||
#20008=*
|
||||
scopes(#20008,1)
|
||||
scopenodes(#20004,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=@"var;{ä};{#20008}"
|
||||
variables(#20009,"ä",#20008)
|
||||
tokeninfo(#20008,8,#20001,2,"(")
|
||||
#20009=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20009,#10000,1,11,1,11)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
exprs(#20010,78,#20004,0,"\u00e4")
|
||||
tokeninfo(#20010,6,#20001,3,"ä")
|
||||
#20011=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20011,#10000,1,12,1,12)
|
||||
hasLocation(#20010,#20011)
|
||||
exprContainers(#20010,#20004)
|
||||
literals("ä","ä",#20010)
|
||||
decl(#20010,#20009)
|
||||
#20012=@"var;{ö};{#20008}"
|
||||
variables(#20012,"ö",#20008)
|
||||
#20013=*
|
||||
exprs(#20013,78,#20004,1,"\u00f6")
|
||||
#20014=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20014,#10000,1,15,1,15)
|
||||
hasLocation(#20013,#20014)
|
||||
exprContainers(#20013,#20004)
|
||||
literals("ö","ö",#20013)
|
||||
decl(#20013,#20012)
|
||||
#20015=@"var;{arguments};{#20008}"
|
||||
variables(#20015,"arguments",#20008)
|
||||
isArgumentsObject(#20015)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,",")
|
||||
#20013=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20013,#10000,1,13,1,13)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,5,"ö")
|
||||
#20015=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20015,#10000,1,15,1,15)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
stmts(#20016,1,#20004,-2,"{}")
|
||||
#20017=@"loc,{#10000},1,18,1,19"
|
||||
locations_default(#20017,#10000,1,18,1,19)
|
||||
tokeninfo(#20016,8,#20001,6,")")
|
||||
#20017=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20017,#10000,1,16,1,16)
|
||||
hasLocation(#20016,#20017)
|
||||
stmtContainers(#20016,#20004)
|
||||
numlines(#20004,1,1,0)
|
||||
#20018=*
|
||||
lines(#20018,#20001,"function f(ä, ö) {}","
|
||||
")
|
||||
hasLocation(#20018,#20005)
|
||||
numlines(#20001,1,1,0)
|
||||
#20019=*
|
||||
tokeninfo(#20019,7,#20001,0,"function")
|
||||
#20020=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20020,#10000,1,1,1,8)
|
||||
hasLocation(#20019,#20020)
|
||||
#20021=*
|
||||
tokeninfo(#20021,6,#20001,1,"f")
|
||||
hasLocation(#20021,#20007)
|
||||
tokeninfo(#20018,8,#20001,7,"{")
|
||||
#20019=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20019,#10000,1,18,1,18)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,8,"}")
|
||||
#20021=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20021,#10000,1,19,1,19)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,2,"(")
|
||||
#20023=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20023,#10000,1,11,1,11)
|
||||
tokeninfo(#20022,0,#20001,9,"")
|
||||
#20023=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20023,#10000,2,1,2,0)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,3,"ä")
|
||||
hasLocation(#20024,#20011)
|
||||
#20025=*
|
||||
tokeninfo(#20025,8,#20001,4,",")
|
||||
#20026=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20026,#10000,1,13,1,13)
|
||||
hasLocation(#20025,#20026)
|
||||
toplevels(#20001,0)
|
||||
#20024=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20024,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20024)
|
||||
#20025=@"var;{f};{#20000}"
|
||||
variables(#20025,"f",#20000)
|
||||
#20026=*
|
||||
stmts(#20026,17,#20001,0,"function f(\u00e4, \u00f6) {}")
|
||||
hasLocation(#20026,#20003)
|
||||
stmtContainers(#20026,#20001)
|
||||
#20027=*
|
||||
tokeninfo(#20027,6,#20001,5,"ö")
|
||||
hasLocation(#20027,#20014)
|
||||
exprs(#20027,78,#20026,-1,"f")
|
||||
hasLocation(#20027,#20007)
|
||||
exprContainers(#20027,#20026)
|
||||
literals("f","f",#20027)
|
||||
decl(#20027,#20025)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,6,")")
|
||||
#20029=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20029,#10000,1,16,1,16)
|
||||
hasLocation(#20028,#20029)
|
||||
scopes(#20028,1)
|
||||
scopenodes(#20026,#20028)
|
||||
scopenesting(#20028,#20000)
|
||||
#20029=@"var;{ä};{#20028}"
|
||||
variables(#20029,"ä",#20028)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,7,"{")
|
||||
#20031=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20031,#10000,1,18,1,18)
|
||||
hasLocation(#20030,#20031)
|
||||
exprs(#20030,78,#20026,0,"\u00e4")
|
||||
hasLocation(#20030,#20011)
|
||||
exprContainers(#20030,#20026)
|
||||
literals("ä","ä",#20030)
|
||||
decl(#20030,#20029)
|
||||
#20031=@"var;{ö};{#20028}"
|
||||
variables(#20031,"ö",#20028)
|
||||
#20032=*
|
||||
tokeninfo(#20032,8,#20001,8,"}")
|
||||
#20033=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20033,#10000,1,19,1,19)
|
||||
hasLocation(#20032,#20033)
|
||||
exprs(#20032,78,#20026,1,"\u00f6")
|
||||
hasLocation(#20032,#20015)
|
||||
exprContainers(#20032,#20026)
|
||||
literals("ö","ö",#20032)
|
||||
decl(#20032,#20031)
|
||||
#20033=@"var;{arguments};{#20028}"
|
||||
variables(#20033,"arguments",#20028)
|
||||
isArgumentsObject(#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,0,#20001,9,"")
|
||||
#20035=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20035,#10000,2,1,2,0)
|
||||
stmts(#20034,1,#20026,-2,"{}")
|
||||
#20035=@"loc,{#10000},1,18,1,19"
|
||||
locations_default(#20035,#10000,1,18,1,19)
|
||||
hasLocation(#20034,#20035)
|
||||
stmtContainers(#20034,#20026)
|
||||
#20036=*
|
||||
entry_cfg_node(#20036,#20001)
|
||||
#20037=@"loc,{#10000},1,1,1,0"
|
||||
@@ -119,21 +118,21 @@ locations_default(#20037,#10000,1,1,1,0)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
exit_cfg_node(#20038,#20001)
|
||||
hasLocation(#20038,#20035)
|
||||
successor(#20004,#20038)
|
||||
hasLocation(#20038,#20023)
|
||||
successor(#20026,#20038)
|
||||
#20039=*
|
||||
entry_cfg_node(#20039,#20004)
|
||||
entry_cfg_node(#20039,#20026)
|
||||
hasLocation(#20039,#20037)
|
||||
#20040=*
|
||||
exit_cfg_node(#20040,#20004)
|
||||
exit_cfg_node(#20040,#20026)
|
||||
#20041=@"loc,{#10000},1,20,1,19"
|
||||
locations_default(#20041,#10000,1,20,1,19)
|
||||
hasLocation(#20040,#20041)
|
||||
successor(#20016,#20040)
|
||||
successor(#20013,#20016)
|
||||
successor(#20010,#20013)
|
||||
successor(#20039,#20010)
|
||||
successor(#20006,#20004)
|
||||
successor(#20036,#20006)
|
||||
successor(#20034,#20040)
|
||||
successor(#20032,#20034)
|
||||
successor(#20030,#20032)
|
||||
successor(#20039,#20030)
|
||||
successor(#20027,#20026)
|
||||
successor(#20036,#20027)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,417 +9,417 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,14,0"
|
||||
locations_default(#20002,#10000,1,1,14,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"'\ud800';")
|
||||
#20004=@"loc,{#10000},2,1,2,9"
|
||||
locations_default(#20004,#10000,2,1,2,9)
|
||||
hasLocation(#20003,#20004)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,4,#20003,0,"'\ud800'")
|
||||
#20006=@"loc,{#10000},2,1,2,8"
|
||||
locations_default(#20006,#10000,2,1,2,8)
|
||||
hasLocation(#20005,#20006)
|
||||
enclosingStmt(#20005,#20003)
|
||||
exprContainers(#20005,#20001)
|
||||
literals("?","'\ud800'",#20005)
|
||||
#20007=*
|
||||
stmts(#20007,2,#20001,1,"'foo\ud800';")
|
||||
#20008=@"loc,{#10000},3,1,3,12"
|
||||
locations_default(#20008,#10000,3,1,3,12)
|
||||
hasLocation(#20007,#20008)
|
||||
stmtContainers(#20007,#20001)
|
||||
#20002=*
|
||||
comments(#20002,0,#20001," lone surrogate halves","// lone ... halves")
|
||||
#20003=@"loc,{#10000},1,1,1,24"
|
||||
locations_default(#20003,#10000,1,1,1,24)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
comments(#20004,0,#20001," wrong order","// wrong order")
|
||||
#20005=@"loc,{#10000},10,1,10,14"
|
||||
locations_default(#20005,#10000,10,1,10,14)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
comments(#20006,0,#20001," OK","// OK")
|
||||
#20007=@"loc,{#10000},12,1,12,5"
|
||||
locations_default(#20007,#10000,12,1,12,5)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
lines(#20008,#20001,"// lone surrogate halves","
|
||||
")
|
||||
hasLocation(#20008,#20003)
|
||||
#20009=*
|
||||
exprs(#20009,4,#20007,0,"'foo\ud800'")
|
||||
#20010=@"loc,{#10000},3,1,3,11"
|
||||
locations_default(#20010,#10000,3,1,3,11)
|
||||
lines(#20009,#20001,"'\ud800';","
|
||||
")
|
||||
#20010=@"loc,{#10000},2,1,2,9"
|
||||
locations_default(#20010,#10000,2,1,2,9)
|
||||
hasLocation(#20009,#20010)
|
||||
enclosingStmt(#20009,#20007)
|
||||
exprContainers(#20009,#20001)
|
||||
literals("foo?","'foo\ud800'",#20009)
|
||||
#20011=*
|
||||
stmts(#20011,2,#20001,2,"'\ud800bar';")
|
||||
#20012=@"loc,{#10000},4,1,4,12"
|
||||
locations_default(#20012,#10000,4,1,4,12)
|
||||
lines(#20011,#20001,"'foo\ud800';","
|
||||
")
|
||||
#20012=@"loc,{#10000},3,1,3,12"
|
||||
locations_default(#20012,#10000,3,1,3,12)
|
||||
hasLocation(#20011,#20012)
|
||||
stmtContainers(#20011,#20001)
|
||||
#20013=*
|
||||
exprs(#20013,4,#20011,0,"'\ud800bar'")
|
||||
#20014=@"loc,{#10000},4,1,4,11"
|
||||
locations_default(#20014,#10000,4,1,4,11)
|
||||
lines(#20013,#20001,"'\ud800bar';","
|
||||
")
|
||||
#20014=@"loc,{#10000},4,1,4,12"
|
||||
locations_default(#20014,#10000,4,1,4,12)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20011)
|
||||
exprContainers(#20013,#20001)
|
||||
literals("?bar","'\ud800bar'",#20013)
|
||||
#20015=*
|
||||
stmts(#20015,2,#20001,3,"'foo\ud800bar';")
|
||||
lines(#20015,#20001,"'foo\ud800bar';","
|
||||
")
|
||||
#20016=@"loc,{#10000},5,1,5,15"
|
||||
locations_default(#20016,#10000,5,1,5,15)
|
||||
hasLocation(#20015,#20016)
|
||||
stmtContainers(#20015,#20001)
|
||||
#20017=*
|
||||
exprs(#20017,4,#20015,0,"'foo\ud800bar'")
|
||||
#20018=@"loc,{#10000},5,1,5,14"
|
||||
locations_default(#20018,#10000,5,1,5,14)
|
||||
lines(#20017,#20001,"/\uD800/;","
|
||||
")
|
||||
#20018=@"loc,{#10000},6,1,6,9"
|
||||
locations_default(#20018,#10000,6,1,6,9)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20015)
|
||||
exprContainers(#20017,#20001)
|
||||
literals("foo?bar","'foo\ud800bar'",#20017)
|
||||
#20019=*
|
||||
stmts(#20019,2,#20001,4,"/\uD800/;")
|
||||
#20020=@"loc,{#10000},6,1,6,9"
|
||||
locations_default(#20020,#10000,6,1,6,9)
|
||||
lines(#20019,#20001,"/foo\ud800/;","
|
||||
")
|
||||
#20020=@"loc,{#10000},7,1,7,12"
|
||||
locations_default(#20020,#10000,7,1,7,12)
|
||||
hasLocation(#20019,#20020)
|
||||
stmtContainers(#20019,#20001)
|
||||
#20021=*
|
||||
exprs(#20021,5,#20019,0,"/\uD800/")
|
||||
#20022=@"loc,{#10000},6,1,6,8"
|
||||
locations_default(#20022,#10000,6,1,6,8)
|
||||
lines(#20021,#20001,"/\ud800bar/;","
|
||||
")
|
||||
#20022=@"loc,{#10000},8,1,8,12"
|
||||
locations_default(#20022,#10000,8,1,8,12)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20019)
|
||||
exprContainers(#20021,#20001)
|
||||
literals("/\uD800/","/\uD800/",#20021)
|
||||
#20023=*
|
||||
regexpterm(#20023,16,#20021,0,"\uD800")
|
||||
#20024=@"loc,{#10000},6,2,6,7"
|
||||
locations_default(#20024,#10000,6,2,6,7)
|
||||
lines(#20023,#20001,"/foo\ud800bar/;","
|
||||
")
|
||||
#20024=@"loc,{#10000},9,1,9,15"
|
||||
locations_default(#20024,#10000,9,1,9,15)
|
||||
hasLocation(#20023,#20024)
|
||||
regexpConstValue(#20023,"?")
|
||||
#20025=*
|
||||
stmts(#20025,2,#20001,5,"/foo\ud800/;")
|
||||
#20026=@"loc,{#10000},7,1,7,12"
|
||||
locations_default(#20026,#10000,7,1,7,12)
|
||||
hasLocation(#20025,#20026)
|
||||
stmtContainers(#20025,#20001)
|
||||
#20027=*
|
||||
exprs(#20027,5,#20025,0,"/foo\ud800/")
|
||||
#20028=@"loc,{#10000},7,1,7,11"
|
||||
locations_default(#20028,#10000,7,1,7,11)
|
||||
hasLocation(#20027,#20028)
|
||||
enclosingStmt(#20027,#20025)
|
||||
exprContainers(#20027,#20001)
|
||||
literals("/foo\ud800/","/foo\ud800/",#20027)
|
||||
lines(#20025,#20001,"// wrong order","
|
||||
")
|
||||
hasLocation(#20025,#20005)
|
||||
#20026=*
|
||||
lines(#20026,#20001,"'\udc00\ud800';","
|
||||
")
|
||||
#20027=@"loc,{#10000},11,1,11,15"
|
||||
locations_default(#20027,#10000,11,1,11,15)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
lines(#20028,#20001,"// OK","
|
||||
")
|
||||
hasLocation(#20028,#20007)
|
||||
#20029=*
|
||||
regexpterm(#20029,1,#20027,0,"foo\ud800")
|
||||
#20030=@"loc,{#10000},7,2,7,10"
|
||||
locations_default(#20030,#10000,7,2,7,10)
|
||||
lines(#20029,#20001,"'\uD834\uDF06';","
|
||||
")
|
||||
#20030=@"loc,{#10000},13,1,13,15"
|
||||
locations_default(#20030,#10000,13,1,13,15)
|
||||
hasLocation(#20029,#20030)
|
||||
numlines(#20001,13,10,3)
|
||||
#20031=*
|
||||
regexpterm(#20031,14,#20029,0,"f")
|
||||
#20032=@"loc,{#10000},7,2,7,2"
|
||||
locations_default(#20032,#10000,7,2,7,2)
|
||||
tokeninfo(#20031,4,#20001,0,"'\ud800'")
|
||||
#20032=@"loc,{#10000},2,1,2,8"
|
||||
locations_default(#20032,#10000,2,1,2,8)
|
||||
hasLocation(#20031,#20032)
|
||||
regexpConstValue(#20031,"f")
|
||||
next_token(#20002,#20031)
|
||||
#20033=*
|
||||
regexpterm(#20033,14,#20029,1,"o")
|
||||
#20034=@"loc,{#10000},7,3,7,3"
|
||||
locations_default(#20034,#10000,7,3,7,3)
|
||||
tokeninfo(#20033,8,#20001,1,";")
|
||||
#20034=@"loc,{#10000},2,9,2,9"
|
||||
locations_default(#20034,#10000,2,9,2,9)
|
||||
hasLocation(#20033,#20034)
|
||||
regexpConstValue(#20033,"o")
|
||||
#20035=*
|
||||
regexpterm(#20035,14,#20029,2,"o")
|
||||
#20036=@"loc,{#10000},7,4,7,4"
|
||||
locations_default(#20036,#10000,7,4,7,4)
|
||||
tokeninfo(#20035,4,#20001,2,"'foo\ud800'")
|
||||
#20036=@"loc,{#10000},3,1,3,11"
|
||||
locations_default(#20036,#10000,3,1,3,11)
|
||||
hasLocation(#20035,#20036)
|
||||
regexpConstValue(#20035,"o")
|
||||
#20037=*
|
||||
regexpterm(#20037,16,#20029,3,"\ud800")
|
||||
#20038=@"loc,{#10000},7,5,7,10"
|
||||
locations_default(#20038,#10000,7,5,7,10)
|
||||
tokeninfo(#20037,8,#20001,3,";")
|
||||
#20038=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20038,#10000,3,12,3,12)
|
||||
hasLocation(#20037,#20038)
|
||||
regexpConstValue(#20037,"?")
|
||||
#20039=*
|
||||
stmts(#20039,2,#20001,6,"/\ud800bar/;")
|
||||
#20040=@"loc,{#10000},8,1,8,12"
|
||||
locations_default(#20040,#10000,8,1,8,12)
|
||||
tokeninfo(#20039,4,#20001,4,"'\ud800bar'")
|
||||
#20040=@"loc,{#10000},4,1,4,11"
|
||||
locations_default(#20040,#10000,4,1,4,11)
|
||||
hasLocation(#20039,#20040)
|
||||
stmtContainers(#20039,#20001)
|
||||
#20041=*
|
||||
exprs(#20041,5,#20039,0,"/\ud800bar/")
|
||||
#20042=@"loc,{#10000},8,1,8,11"
|
||||
locations_default(#20042,#10000,8,1,8,11)
|
||||
tokeninfo(#20041,8,#20001,5,";")
|
||||
#20042=@"loc,{#10000},4,12,4,12"
|
||||
locations_default(#20042,#10000,4,12,4,12)
|
||||
hasLocation(#20041,#20042)
|
||||
enclosingStmt(#20041,#20039)
|
||||
exprContainers(#20041,#20001)
|
||||
literals("/\ud800bar/","/\ud800bar/",#20041)
|
||||
#20043=*
|
||||
regexpterm(#20043,1,#20041,0,"\ud800bar")
|
||||
#20044=@"loc,{#10000},8,2,8,10"
|
||||
locations_default(#20044,#10000,8,2,8,10)
|
||||
tokeninfo(#20043,4,#20001,6,"'foo\ud800bar'")
|
||||
#20044=@"loc,{#10000},5,1,5,14"
|
||||
locations_default(#20044,#10000,5,1,5,14)
|
||||
hasLocation(#20043,#20044)
|
||||
#20045=*
|
||||
regexpterm(#20045,16,#20043,0,"\ud800")
|
||||
#20046=@"loc,{#10000},8,2,8,7"
|
||||
locations_default(#20046,#10000,8,2,8,7)
|
||||
tokeninfo(#20045,8,#20001,7,";")
|
||||
#20046=@"loc,{#10000},5,15,5,15"
|
||||
locations_default(#20046,#10000,5,15,5,15)
|
||||
hasLocation(#20045,#20046)
|
||||
regexpConstValue(#20045,"?")
|
||||
#20047=*
|
||||
regexpterm(#20047,14,#20043,1,"b")
|
||||
#20048=@"loc,{#10000},8,8,8,8"
|
||||
locations_default(#20048,#10000,8,8,8,8)
|
||||
tokeninfo(#20047,5,#20001,8,"/\uD800/")
|
||||
#20048=@"loc,{#10000},6,1,6,8"
|
||||
locations_default(#20048,#10000,6,1,6,8)
|
||||
hasLocation(#20047,#20048)
|
||||
regexpConstValue(#20047,"b")
|
||||
#20049=*
|
||||
regexpterm(#20049,14,#20043,2,"a")
|
||||
#20050=@"loc,{#10000},8,9,8,9"
|
||||
locations_default(#20050,#10000,8,9,8,9)
|
||||
tokeninfo(#20049,8,#20001,9,";")
|
||||
#20050=@"loc,{#10000},6,9,6,9"
|
||||
locations_default(#20050,#10000,6,9,6,9)
|
||||
hasLocation(#20049,#20050)
|
||||
regexpConstValue(#20049,"a")
|
||||
#20051=*
|
||||
regexpterm(#20051,14,#20043,3,"r")
|
||||
#20052=@"loc,{#10000},8,10,8,10"
|
||||
locations_default(#20052,#10000,8,10,8,10)
|
||||
tokeninfo(#20051,5,#20001,10,"/foo\ud800/")
|
||||
#20052=@"loc,{#10000},7,1,7,11"
|
||||
locations_default(#20052,#10000,7,1,7,11)
|
||||
hasLocation(#20051,#20052)
|
||||
regexpConstValue(#20051,"r")
|
||||
#20053=*
|
||||
stmts(#20053,2,#20001,7,"/foo\ud800bar/;")
|
||||
#20054=@"loc,{#10000},9,1,9,15"
|
||||
locations_default(#20054,#10000,9,1,9,15)
|
||||
tokeninfo(#20053,8,#20001,11,";")
|
||||
#20054=@"loc,{#10000},7,12,7,12"
|
||||
locations_default(#20054,#10000,7,12,7,12)
|
||||
hasLocation(#20053,#20054)
|
||||
stmtContainers(#20053,#20001)
|
||||
#20055=*
|
||||
exprs(#20055,5,#20053,0,"/foo\ud800bar/")
|
||||
#20056=@"loc,{#10000},9,1,9,14"
|
||||
locations_default(#20056,#10000,9,1,9,14)
|
||||
tokeninfo(#20055,5,#20001,12,"/\ud800bar/")
|
||||
#20056=@"loc,{#10000},8,1,8,11"
|
||||
locations_default(#20056,#10000,8,1,8,11)
|
||||
hasLocation(#20055,#20056)
|
||||
enclosingStmt(#20055,#20053)
|
||||
exprContainers(#20055,#20001)
|
||||
literals("/foo\ud800bar/","/foo\ud800bar/",#20055)
|
||||
#20057=*
|
||||
regexpterm(#20057,1,#20055,0,"foo\ud800bar")
|
||||
#20058=@"loc,{#10000},9,2,9,13"
|
||||
locations_default(#20058,#10000,9,2,9,13)
|
||||
tokeninfo(#20057,8,#20001,13,";")
|
||||
#20058=@"loc,{#10000},8,12,8,12"
|
||||
locations_default(#20058,#10000,8,12,8,12)
|
||||
hasLocation(#20057,#20058)
|
||||
#20059=*
|
||||
regexpterm(#20059,14,#20057,0,"f")
|
||||
#20060=@"loc,{#10000},9,2,9,2"
|
||||
locations_default(#20060,#10000,9,2,9,2)
|
||||
tokeninfo(#20059,5,#20001,14,"/foo\ud800bar/")
|
||||
#20060=@"loc,{#10000},9,1,9,14"
|
||||
locations_default(#20060,#10000,9,1,9,14)
|
||||
hasLocation(#20059,#20060)
|
||||
regexpConstValue(#20059,"f")
|
||||
#20061=*
|
||||
regexpterm(#20061,14,#20057,1,"o")
|
||||
#20062=@"loc,{#10000},9,3,9,3"
|
||||
locations_default(#20062,#10000,9,3,9,3)
|
||||
tokeninfo(#20061,8,#20001,15,";")
|
||||
#20062=@"loc,{#10000},9,15,9,15"
|
||||
locations_default(#20062,#10000,9,15,9,15)
|
||||
hasLocation(#20061,#20062)
|
||||
regexpConstValue(#20061,"o")
|
||||
#20063=*
|
||||
regexpterm(#20063,14,#20057,2,"o")
|
||||
#20064=@"loc,{#10000},9,4,9,4"
|
||||
locations_default(#20064,#10000,9,4,9,4)
|
||||
tokeninfo(#20063,4,#20001,16,"'\udc00\ud800'")
|
||||
#20064=@"loc,{#10000},11,1,11,14"
|
||||
locations_default(#20064,#10000,11,1,11,14)
|
||||
hasLocation(#20063,#20064)
|
||||
regexpConstValue(#20063,"o")
|
||||
next_token(#20004,#20063)
|
||||
#20065=*
|
||||
regexpterm(#20065,16,#20057,3,"\ud800")
|
||||
#20066=@"loc,{#10000},9,5,9,10"
|
||||
locations_default(#20066,#10000,9,5,9,10)
|
||||
tokeninfo(#20065,8,#20001,17,";")
|
||||
#20066=@"loc,{#10000},11,15,11,15"
|
||||
locations_default(#20066,#10000,11,15,11,15)
|
||||
hasLocation(#20065,#20066)
|
||||
regexpConstValue(#20065,"?")
|
||||
#20067=*
|
||||
regexpterm(#20067,14,#20057,4,"b")
|
||||
#20068=@"loc,{#10000},9,11,9,11"
|
||||
locations_default(#20068,#10000,9,11,9,11)
|
||||
tokeninfo(#20067,4,#20001,18,"'\uD834\uDF06'")
|
||||
#20068=@"loc,{#10000},13,1,13,14"
|
||||
locations_default(#20068,#10000,13,1,13,14)
|
||||
hasLocation(#20067,#20068)
|
||||
regexpConstValue(#20067,"b")
|
||||
next_token(#20006,#20067)
|
||||
#20069=*
|
||||
regexpterm(#20069,14,#20057,5,"a")
|
||||
#20070=@"loc,{#10000},9,12,9,12"
|
||||
locations_default(#20070,#10000,9,12,9,12)
|
||||
tokeninfo(#20069,8,#20001,19,";")
|
||||
#20070=@"loc,{#10000},13,15,13,15"
|
||||
locations_default(#20070,#10000,13,15,13,15)
|
||||
hasLocation(#20069,#20070)
|
||||
regexpConstValue(#20069,"a")
|
||||
#20071=*
|
||||
regexpterm(#20071,14,#20057,6,"r")
|
||||
#20072=@"loc,{#10000},9,13,9,13"
|
||||
locations_default(#20072,#10000,9,13,9,13)
|
||||
tokeninfo(#20071,0,#20001,20,"")
|
||||
#20072=@"loc,{#10000},14,1,14,0"
|
||||
locations_default(#20072,#10000,14,1,14,0)
|
||||
hasLocation(#20071,#20072)
|
||||
regexpConstValue(#20071,"r")
|
||||
#20073=*
|
||||
stmts(#20073,2,#20001,8,"'\udc00\ud800';")
|
||||
#20074=@"loc,{#10000},11,1,11,15"
|
||||
locations_default(#20074,#10000,11,1,11,15)
|
||||
hasLocation(#20073,#20074)
|
||||
stmtContainers(#20073,#20001)
|
||||
toplevels(#20001,0)
|
||||
#20073=@"loc,{#10000},1,1,14,0"
|
||||
locations_default(#20073,#10000,1,1,14,0)
|
||||
hasLocation(#20001,#20073)
|
||||
#20074=*
|
||||
stmts(#20074,2,#20001,0,"'\ud800';")
|
||||
hasLocation(#20074,#20010)
|
||||
stmtContainers(#20074,#20001)
|
||||
#20075=*
|
||||
exprs(#20075,4,#20073,0,"'\udc00\ud800'")
|
||||
#20076=@"loc,{#10000},11,1,11,14"
|
||||
locations_default(#20076,#10000,11,1,11,14)
|
||||
hasLocation(#20075,#20076)
|
||||
enclosingStmt(#20075,#20073)
|
||||
exprs(#20075,4,#20074,0,"'\ud800'")
|
||||
hasLocation(#20075,#20032)
|
||||
enclosingStmt(#20075,#20074)
|
||||
exprContainers(#20075,#20001)
|
||||
literals("??","'\udc00\ud800'",#20075)
|
||||
literals("?","'\ud800'",#20075)
|
||||
#20076=*
|
||||
stmts(#20076,2,#20001,1,"'foo\ud800';")
|
||||
hasLocation(#20076,#20012)
|
||||
stmtContainers(#20076,#20001)
|
||||
#20077=*
|
||||
stmts(#20077,2,#20001,9,"'\uD834\uDF06';")
|
||||
#20078=@"loc,{#10000},13,1,13,15"
|
||||
locations_default(#20078,#10000,13,1,13,15)
|
||||
hasLocation(#20077,#20078)
|
||||
stmtContainers(#20077,#20001)
|
||||
exprs(#20077,4,#20076,0,"'foo\ud800'")
|
||||
hasLocation(#20077,#20036)
|
||||
enclosingStmt(#20077,#20076)
|
||||
exprContainers(#20077,#20001)
|
||||
literals("foo?","'foo\ud800'",#20077)
|
||||
#20078=*
|
||||
stmts(#20078,2,#20001,2,"'\ud800bar';")
|
||||
hasLocation(#20078,#20014)
|
||||
stmtContainers(#20078,#20001)
|
||||
#20079=*
|
||||
exprs(#20079,4,#20077,0,"'\uD834\uDF06'")
|
||||
#20080=@"loc,{#10000},13,1,13,14"
|
||||
locations_default(#20080,#10000,13,1,13,14)
|
||||
hasLocation(#20079,#20080)
|
||||
enclosingStmt(#20079,#20077)
|
||||
exprs(#20079,4,#20078,0,"'\ud800bar'")
|
||||
hasLocation(#20079,#20040)
|
||||
enclosingStmt(#20079,#20078)
|
||||
exprContainers(#20079,#20001)
|
||||
literals("𝌆","'\uD834\uDF06'",#20079)
|
||||
literals("?bar","'\ud800bar'",#20079)
|
||||
#20080=*
|
||||
stmts(#20080,2,#20001,3,"'foo\ud800bar';")
|
||||
hasLocation(#20080,#20016)
|
||||
stmtContainers(#20080,#20001)
|
||||
#20081=*
|
||||
comments(#20081,0,#20001," lone surrogate halves","// lone ... halves")
|
||||
#20082=@"loc,{#10000},1,1,1,24"
|
||||
locations_default(#20082,#10000,1,1,1,24)
|
||||
hasLocation(#20081,#20082)
|
||||
exprs(#20081,4,#20080,0,"'foo\ud800bar'")
|
||||
hasLocation(#20081,#20044)
|
||||
enclosingStmt(#20081,#20080)
|
||||
exprContainers(#20081,#20001)
|
||||
literals("foo?bar","'foo\ud800bar'",#20081)
|
||||
#20082=*
|
||||
stmts(#20082,2,#20001,4,"/\uD800/;")
|
||||
hasLocation(#20082,#20018)
|
||||
stmtContainers(#20082,#20001)
|
||||
#20083=*
|
||||
comments(#20083,0,#20001," wrong order","// wrong order")
|
||||
#20084=@"loc,{#10000},10,1,10,14"
|
||||
locations_default(#20084,#10000,10,1,10,14)
|
||||
hasLocation(#20083,#20084)
|
||||
#20085=*
|
||||
comments(#20085,0,#20001," OK","// OK")
|
||||
#20086=@"loc,{#10000},12,1,12,5"
|
||||
locations_default(#20086,#10000,12,1,12,5)
|
||||
hasLocation(#20085,#20086)
|
||||
exprs(#20083,5,#20082,0,"/\uD800/")
|
||||
hasLocation(#20083,#20048)
|
||||
enclosingStmt(#20083,#20082)
|
||||
exprContainers(#20083,#20001)
|
||||
literals("/\uD800/","/\uD800/",#20083)
|
||||
#20084=*
|
||||
regexpterm(#20084,16,#20083,0,"\uD800")
|
||||
#20085=@"loc,{#10000},6,2,6,7"
|
||||
locations_default(#20085,#10000,6,2,6,7)
|
||||
hasLocation(#20084,#20085)
|
||||
regexpConstValue(#20084,"?")
|
||||
#20086=*
|
||||
stmts(#20086,2,#20001,5,"/foo\ud800/;")
|
||||
hasLocation(#20086,#20020)
|
||||
stmtContainers(#20086,#20001)
|
||||
#20087=*
|
||||
lines(#20087,#20001,"// lone surrogate halves","
|
||||
")
|
||||
hasLocation(#20087,#20082)
|
||||
exprs(#20087,5,#20086,0,"/foo\ud800/")
|
||||
hasLocation(#20087,#20052)
|
||||
enclosingStmt(#20087,#20086)
|
||||
exprContainers(#20087,#20001)
|
||||
literals("/foo\ud800/","/foo\ud800/",#20087)
|
||||
#20088=*
|
||||
lines(#20088,#20001,"'\ud800';","
|
||||
")
|
||||
hasLocation(#20088,#20004)
|
||||
#20089=*
|
||||
lines(#20089,#20001,"'foo\ud800';","
|
||||
")
|
||||
hasLocation(#20089,#20008)
|
||||
regexpterm(#20088,1,#20087,0,"foo\ud800")
|
||||
#20089=@"loc,{#10000},7,2,7,10"
|
||||
locations_default(#20089,#10000,7,2,7,10)
|
||||
hasLocation(#20088,#20089)
|
||||
#20090=*
|
||||
lines(#20090,#20001,"'\ud800bar';","
|
||||
")
|
||||
hasLocation(#20090,#20012)
|
||||
#20091=*
|
||||
lines(#20091,#20001,"'foo\ud800bar';","
|
||||
")
|
||||
hasLocation(#20091,#20016)
|
||||
regexpterm(#20090,14,#20088,0,"f")
|
||||
#20091=@"loc,{#10000},7,2,7,2"
|
||||
locations_default(#20091,#10000,7,2,7,2)
|
||||
hasLocation(#20090,#20091)
|
||||
regexpConstValue(#20090,"f")
|
||||
#20092=*
|
||||
lines(#20092,#20001,"/\uD800/;","
|
||||
")
|
||||
hasLocation(#20092,#20020)
|
||||
#20093=*
|
||||
lines(#20093,#20001,"/foo\ud800/;","
|
||||
")
|
||||
hasLocation(#20093,#20026)
|
||||
regexpterm(#20092,14,#20088,1,"o")
|
||||
#20093=@"loc,{#10000},7,3,7,3"
|
||||
locations_default(#20093,#10000,7,3,7,3)
|
||||
hasLocation(#20092,#20093)
|
||||
regexpConstValue(#20092,"o")
|
||||
#20094=*
|
||||
lines(#20094,#20001,"/\ud800bar/;","
|
||||
")
|
||||
hasLocation(#20094,#20040)
|
||||
#20095=*
|
||||
lines(#20095,#20001,"/foo\ud800bar/;","
|
||||
")
|
||||
hasLocation(#20095,#20054)
|
||||
regexpterm(#20094,14,#20088,2,"o")
|
||||
#20095=@"loc,{#10000},7,4,7,4"
|
||||
locations_default(#20095,#10000,7,4,7,4)
|
||||
hasLocation(#20094,#20095)
|
||||
regexpConstValue(#20094,"o")
|
||||
#20096=*
|
||||
lines(#20096,#20001,"// wrong order","
|
||||
")
|
||||
hasLocation(#20096,#20084)
|
||||
#20097=*
|
||||
lines(#20097,#20001,"'\udc00\ud800';","
|
||||
")
|
||||
hasLocation(#20097,#20074)
|
||||
regexpterm(#20096,16,#20088,3,"\ud800")
|
||||
#20097=@"loc,{#10000},7,5,7,10"
|
||||
locations_default(#20097,#10000,7,5,7,10)
|
||||
hasLocation(#20096,#20097)
|
||||
regexpConstValue(#20096,"?")
|
||||
#20098=*
|
||||
lines(#20098,#20001,"// OK","
|
||||
")
|
||||
hasLocation(#20098,#20086)
|
||||
stmts(#20098,2,#20001,6,"/\ud800bar/;")
|
||||
hasLocation(#20098,#20022)
|
||||
stmtContainers(#20098,#20001)
|
||||
#20099=*
|
||||
lines(#20099,#20001,"'\uD834\uDF06';","
|
||||
")
|
||||
hasLocation(#20099,#20078)
|
||||
numlines(#20001,13,10,3)
|
||||
exprs(#20099,5,#20098,0,"/\ud800bar/")
|
||||
hasLocation(#20099,#20056)
|
||||
enclosingStmt(#20099,#20098)
|
||||
exprContainers(#20099,#20001)
|
||||
literals("/\ud800bar/","/\ud800bar/",#20099)
|
||||
#20100=*
|
||||
tokeninfo(#20100,4,#20001,0,"'\ud800'")
|
||||
hasLocation(#20100,#20006)
|
||||
next_token(#20081,#20100)
|
||||
#20101=*
|
||||
tokeninfo(#20101,8,#20001,1,";")
|
||||
#20102=@"loc,{#10000},2,9,2,9"
|
||||
locations_default(#20102,#10000,2,9,2,9)
|
||||
hasLocation(#20101,#20102)
|
||||
#20103=*
|
||||
tokeninfo(#20103,4,#20001,2,"'foo\ud800'")
|
||||
hasLocation(#20103,#20010)
|
||||
regexpterm(#20100,1,#20099,0,"\ud800bar")
|
||||
#20101=@"loc,{#10000},8,2,8,10"
|
||||
locations_default(#20101,#10000,8,2,8,10)
|
||||
hasLocation(#20100,#20101)
|
||||
#20102=*
|
||||
regexpterm(#20102,16,#20100,0,"\ud800")
|
||||
#20103=@"loc,{#10000},8,2,8,7"
|
||||
locations_default(#20103,#10000,8,2,8,7)
|
||||
hasLocation(#20102,#20103)
|
||||
regexpConstValue(#20102,"?")
|
||||
#20104=*
|
||||
tokeninfo(#20104,8,#20001,3,";")
|
||||
#20105=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20105,#10000,3,12,3,12)
|
||||
regexpterm(#20104,14,#20100,1,"b")
|
||||
#20105=@"loc,{#10000},8,8,8,8"
|
||||
locations_default(#20105,#10000,8,8,8,8)
|
||||
hasLocation(#20104,#20105)
|
||||
regexpConstValue(#20104,"b")
|
||||
#20106=*
|
||||
tokeninfo(#20106,4,#20001,4,"'\ud800bar'")
|
||||
hasLocation(#20106,#20014)
|
||||
#20107=*
|
||||
tokeninfo(#20107,8,#20001,5,";")
|
||||
#20108=@"loc,{#10000},4,12,4,12"
|
||||
locations_default(#20108,#10000,4,12,4,12)
|
||||
hasLocation(#20107,#20108)
|
||||
#20109=*
|
||||
tokeninfo(#20109,4,#20001,6,"'foo\ud800bar'")
|
||||
hasLocation(#20109,#20018)
|
||||
regexpterm(#20106,14,#20100,2,"a")
|
||||
#20107=@"loc,{#10000},8,9,8,9"
|
||||
locations_default(#20107,#10000,8,9,8,9)
|
||||
hasLocation(#20106,#20107)
|
||||
regexpConstValue(#20106,"a")
|
||||
#20108=*
|
||||
regexpterm(#20108,14,#20100,3,"r")
|
||||
#20109=@"loc,{#10000},8,10,8,10"
|
||||
locations_default(#20109,#10000,8,10,8,10)
|
||||
hasLocation(#20108,#20109)
|
||||
regexpConstValue(#20108,"r")
|
||||
#20110=*
|
||||
tokeninfo(#20110,8,#20001,7,";")
|
||||
#20111=@"loc,{#10000},5,15,5,15"
|
||||
locations_default(#20111,#10000,5,15,5,15)
|
||||
hasLocation(#20110,#20111)
|
||||
stmts(#20110,2,#20001,7,"/foo\ud800bar/;")
|
||||
hasLocation(#20110,#20024)
|
||||
stmtContainers(#20110,#20001)
|
||||
#20111=*
|
||||
exprs(#20111,5,#20110,0,"/foo\ud800bar/")
|
||||
hasLocation(#20111,#20060)
|
||||
enclosingStmt(#20111,#20110)
|
||||
exprContainers(#20111,#20001)
|
||||
literals("/foo\ud800bar/","/foo\ud800bar/",#20111)
|
||||
#20112=*
|
||||
tokeninfo(#20112,5,#20001,8,"/\uD800/")
|
||||
hasLocation(#20112,#20022)
|
||||
#20113=*
|
||||
tokeninfo(#20113,8,#20001,9,";")
|
||||
#20114=@"loc,{#10000},6,9,6,9"
|
||||
locations_default(#20114,#10000,6,9,6,9)
|
||||
hasLocation(#20113,#20114)
|
||||
#20115=*
|
||||
tokeninfo(#20115,5,#20001,10,"/foo\ud800/")
|
||||
hasLocation(#20115,#20028)
|
||||
regexpterm(#20112,1,#20111,0,"foo\ud800bar")
|
||||
#20113=@"loc,{#10000},9,2,9,13"
|
||||
locations_default(#20113,#10000,9,2,9,13)
|
||||
hasLocation(#20112,#20113)
|
||||
#20114=*
|
||||
regexpterm(#20114,14,#20112,0,"f")
|
||||
#20115=@"loc,{#10000},9,2,9,2"
|
||||
locations_default(#20115,#10000,9,2,9,2)
|
||||
hasLocation(#20114,#20115)
|
||||
regexpConstValue(#20114,"f")
|
||||
#20116=*
|
||||
tokeninfo(#20116,8,#20001,11,";")
|
||||
#20117=@"loc,{#10000},7,12,7,12"
|
||||
locations_default(#20117,#10000,7,12,7,12)
|
||||
regexpterm(#20116,14,#20112,1,"o")
|
||||
#20117=@"loc,{#10000},9,3,9,3"
|
||||
locations_default(#20117,#10000,9,3,9,3)
|
||||
hasLocation(#20116,#20117)
|
||||
regexpConstValue(#20116,"o")
|
||||
#20118=*
|
||||
tokeninfo(#20118,5,#20001,12,"/\ud800bar/")
|
||||
hasLocation(#20118,#20042)
|
||||
#20119=*
|
||||
tokeninfo(#20119,8,#20001,13,";")
|
||||
#20120=@"loc,{#10000},8,12,8,12"
|
||||
locations_default(#20120,#10000,8,12,8,12)
|
||||
hasLocation(#20119,#20120)
|
||||
#20121=*
|
||||
tokeninfo(#20121,5,#20001,14,"/foo\ud800bar/")
|
||||
hasLocation(#20121,#20056)
|
||||
regexpterm(#20118,14,#20112,2,"o")
|
||||
#20119=@"loc,{#10000},9,4,9,4"
|
||||
locations_default(#20119,#10000,9,4,9,4)
|
||||
hasLocation(#20118,#20119)
|
||||
regexpConstValue(#20118,"o")
|
||||
#20120=*
|
||||
regexpterm(#20120,16,#20112,3,"\ud800")
|
||||
#20121=@"loc,{#10000},9,5,9,10"
|
||||
locations_default(#20121,#10000,9,5,9,10)
|
||||
hasLocation(#20120,#20121)
|
||||
regexpConstValue(#20120,"?")
|
||||
#20122=*
|
||||
tokeninfo(#20122,8,#20001,15,";")
|
||||
#20123=@"loc,{#10000},9,15,9,15"
|
||||
locations_default(#20123,#10000,9,15,9,15)
|
||||
regexpterm(#20122,14,#20112,4,"b")
|
||||
#20123=@"loc,{#10000},9,11,9,11"
|
||||
locations_default(#20123,#10000,9,11,9,11)
|
||||
hasLocation(#20122,#20123)
|
||||
regexpConstValue(#20122,"b")
|
||||
#20124=*
|
||||
tokeninfo(#20124,4,#20001,16,"'\udc00\ud800'")
|
||||
hasLocation(#20124,#20076)
|
||||
next_token(#20083,#20124)
|
||||
#20125=*
|
||||
tokeninfo(#20125,8,#20001,17,";")
|
||||
#20126=@"loc,{#10000},11,15,11,15"
|
||||
locations_default(#20126,#10000,11,15,11,15)
|
||||
hasLocation(#20125,#20126)
|
||||
#20127=*
|
||||
tokeninfo(#20127,4,#20001,18,"'\uD834\uDF06'")
|
||||
hasLocation(#20127,#20080)
|
||||
next_token(#20085,#20127)
|
||||
regexpterm(#20124,14,#20112,5,"a")
|
||||
#20125=@"loc,{#10000},9,12,9,12"
|
||||
locations_default(#20125,#10000,9,12,9,12)
|
||||
hasLocation(#20124,#20125)
|
||||
regexpConstValue(#20124,"a")
|
||||
#20126=*
|
||||
regexpterm(#20126,14,#20112,6,"r")
|
||||
#20127=@"loc,{#10000},9,13,9,13"
|
||||
locations_default(#20127,#10000,9,13,9,13)
|
||||
hasLocation(#20126,#20127)
|
||||
regexpConstValue(#20126,"r")
|
||||
#20128=*
|
||||
tokeninfo(#20128,8,#20001,19,";")
|
||||
#20129=@"loc,{#10000},13,15,13,15"
|
||||
locations_default(#20129,#10000,13,15,13,15)
|
||||
hasLocation(#20128,#20129)
|
||||
stmts(#20128,2,#20001,8,"'\udc00\ud800';")
|
||||
hasLocation(#20128,#20027)
|
||||
stmtContainers(#20128,#20001)
|
||||
#20129=*
|
||||
exprs(#20129,4,#20128,0,"'\udc00\ud800'")
|
||||
hasLocation(#20129,#20064)
|
||||
enclosingStmt(#20129,#20128)
|
||||
exprContainers(#20129,#20001)
|
||||
literals("??","'\udc00\ud800'",#20129)
|
||||
#20130=*
|
||||
tokeninfo(#20130,0,#20001,20,"")
|
||||
#20131=@"loc,{#10000},14,1,14,0"
|
||||
locations_default(#20131,#10000,14,1,14,0)
|
||||
hasLocation(#20130,#20131)
|
||||
stmts(#20130,2,#20001,9,"'\uD834\uDF06';")
|
||||
hasLocation(#20130,#20030)
|
||||
stmtContainers(#20130,#20001)
|
||||
#20131=*
|
||||
exprs(#20131,4,#20130,0,"'\uD834\uDF06'")
|
||||
hasLocation(#20131,#20068)
|
||||
enclosingStmt(#20131,#20130)
|
||||
exprContainers(#20131,#20001)
|
||||
literals("𝌆","'\uD834\uDF06'",#20131)
|
||||
#20132=*
|
||||
entry_cfg_node(#20132,#20001)
|
||||
#20133=@"loc,{#10000},1,1,1,0"
|
||||
@@ -427,27 +427,27 @@ locations_default(#20133,#10000,1,1,1,0)
|
||||
hasLocation(#20132,#20133)
|
||||
#20134=*
|
||||
exit_cfg_node(#20134,#20001)
|
||||
hasLocation(#20134,#20131)
|
||||
successor(#20077,#20079)
|
||||
successor(#20079,#20134)
|
||||
successor(#20073,#20075)
|
||||
successor(#20075,#20077)
|
||||
successor(#20053,#20055)
|
||||
successor(#20055,#20073)
|
||||
successor(#20039,#20041)
|
||||
successor(#20041,#20053)
|
||||
successor(#20025,#20027)
|
||||
successor(#20027,#20039)
|
||||
successor(#20019,#20021)
|
||||
successor(#20021,#20025)
|
||||
successor(#20015,#20017)
|
||||
successor(#20017,#20019)
|
||||
successor(#20011,#20013)
|
||||
successor(#20013,#20015)
|
||||
successor(#20007,#20009)
|
||||
successor(#20009,#20011)
|
||||
successor(#20003,#20005)
|
||||
successor(#20005,#20007)
|
||||
successor(#20132,#20003)
|
||||
hasLocation(#20134,#20072)
|
||||
successor(#20130,#20131)
|
||||
successor(#20131,#20134)
|
||||
successor(#20128,#20129)
|
||||
successor(#20129,#20130)
|
||||
successor(#20110,#20111)
|
||||
successor(#20111,#20128)
|
||||
successor(#20098,#20099)
|
||||
successor(#20099,#20110)
|
||||
successor(#20086,#20087)
|
||||
successor(#20087,#20098)
|
||||
successor(#20082,#20083)
|
||||
successor(#20083,#20086)
|
||||
successor(#20080,#20081)
|
||||
successor(#20081,#20082)
|
||||
successor(#20078,#20079)
|
||||
successor(#20079,#20080)
|
||||
successor(#20076,#20077)
|
||||
successor(#20077,#20078)
|
||||
successor(#20074,#20075)
|
||||
successor(#20075,#20076)
|
||||
successor(#20132,#20074)
|
||||
numlines(#10000,13,10,3)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,32 +9,32 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20002,#10000,1,1,1,8)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"""Semml\u00e9""")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20004=*
|
||||
exprs(#20004,4,#20003,0,"""Semml\u00e9""")
|
||||
hasLocation(#20004,#20002)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
literals("Semmlé","""Semmlé""",#20004)
|
||||
#20005=*
|
||||
lines(#20005,#20001,"""Semmlé""","")
|
||||
hasLocation(#20005,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"""Semmlé""","")
|
||||
#20003=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20003,#10000,1,1,1,8)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20006=*
|
||||
tokeninfo(#20006,4,#20001,0,"""Semmlé""")
|
||||
hasLocation(#20006,#20002)
|
||||
#20004=*
|
||||
tokeninfo(#20004,4,#20001,0,"""Semmlé""")
|
||||
hasLocation(#20004,#20003)
|
||||
#20005=*
|
||||
tokeninfo(#20005,0,#20001,1,"")
|
||||
#20006=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20006,#10000,1,9,1,8)
|
||||
hasLocation(#20005,#20006)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20007=*
|
||||
tokeninfo(#20007,0,#20001,1,"")
|
||||
#20008=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20008,#10000,1,9,1,8)
|
||||
hasLocation(#20007,#20008)
|
||||
stmts(#20007,2,#20001,0,"""Semml\u00e9""")
|
||||
hasLocation(#20007,#20003)
|
||||
stmtContainers(#20007,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,4,#20007,0,"""Semml\u00e9""")
|
||||
hasLocation(#20008,#20003)
|
||||
enclosingStmt(#20008,#20007)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("Semmlé","""Semmlé""",#20008)
|
||||
#20009=*
|
||||
entry_cfg_node(#20009,#20001)
|
||||
#20010=@"loc,{#10000},1,1,1,0"
|
||||
@@ -42,9 +42,9 @@ locations_default(#20010,#10000,1,1,1,0)
|
||||
hasLocation(#20009,#20010)
|
||||
#20011=*
|
||||
exit_cfg_node(#20011,#20001)
|
||||
hasLocation(#20011,#20008)
|
||||
successor(#20003,#20004)
|
||||
successor(#20004,#20011)
|
||||
successor(#20009,#20003)
|
||||
hasLocation(#20011,#20006)
|
||||
successor(#20007,#20008)
|
||||
successor(#20008,#20011)
|
||||
successor(#20009,#20007)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,20 +9,20 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,0"
|
||||
locations_default(#20002,#10000,1,1,1,0)
|
||||
hasLocation(#20001,#20002)
|
||||
numlines(#20001,0,0,0)
|
||||
#20003=*
|
||||
tokeninfo(#20003,0,#20001,0,"")
|
||||
hasLocation(#20003,#20002)
|
||||
#20002=*
|
||||
tokeninfo(#20002,0,#20001,0,"")
|
||||
#20003=@"loc,{#10000},1,1,1,0"
|
||||
locations_default(#20003,#10000,1,1,1,0)
|
||||
hasLocation(#20002,#20003)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20004=*
|
||||
entry_cfg_node(#20004,#20001)
|
||||
hasLocation(#20004,#20002)
|
||||
hasLocation(#20004,#20003)
|
||||
#20005=*
|
||||
exit_cfg_node(#20005,#20001)
|
||||
hasLocation(#20005,#20002)
|
||||
hasLocation(#20005,#20003)
|
||||
successor(#20004,#20005)
|
||||
numlines(#10000,0,0,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,106 +9,106 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,12"
|
||||
locations_default(#20002,#10000,1,1,1,12)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"[x=42] = [];")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20004=*
|
||||
exprs(#20004,47,#20003,0,"[x=42] = []")
|
||||
#20005=@"loc,{#10000},1,1,1,11"
|
||||
locations_default(#20005,#10000,1,1,1,11)
|
||||
hasLocation(#20004,#20005)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,67,#20004,0,"[x=42]")
|
||||
#20007=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20007,#10000,1,1,1,6)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20003)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,79,#20006,0,"x")
|
||||
#20009=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20009,#10000,1,2,1,2)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20003)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("x","x",#20008)
|
||||
#20010=@"var;{x};{#20000}"
|
||||
variables(#20010,"x",#20000)
|
||||
bind(#20008,#20010)
|
||||
#20011=*
|
||||
exprs(#20011,3,#20006,-2,"42")
|
||||
#20012=@"loc,{#10000},1,4,1,5"
|
||||
locations_default(#20012,#10000,1,4,1,5)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20003)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("42","42",#20011)
|
||||
arraySize(#20006,1)
|
||||
#20013=*
|
||||
exprs(#20013,7,#20004,1,"[]")
|
||||
#20014=@"loc,{#10000},1,10,1,11"
|
||||
locations_default(#20014,#10000,1,10,1,11)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20003)
|
||||
exprContainers(#20013,#20001)
|
||||
arraySize(#20013,0)
|
||||
#20015=*
|
||||
lines(#20015,#20001,"[x=42] = [];","")
|
||||
hasLocation(#20015,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"[x=42] = [];","")
|
||||
#20003=@"loc,{#10000},1,1,1,12"
|
||||
locations_default(#20003,#10000,1,1,1,12)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,8,#20001,0,"[")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,6,#20001,1,"x")
|
||||
#20007=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20007,#10000,1,2,1,2)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,8,#20001,2,"=")
|
||||
#20009=@"loc,{#10000},1,3,1,3"
|
||||
locations_default(#20009,#10000,1,3,1,3)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,3,#20001,3,"42")
|
||||
#20011=@"loc,{#10000},1,4,1,5"
|
||||
locations_default(#20011,#10000,1,4,1,5)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,"]")
|
||||
#20013=@"loc,{#10000},1,6,1,6"
|
||||
locations_default(#20013,#10000,1,6,1,6)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,"=")
|
||||
#20015=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20015,#10000,1,8,1,8)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,0,"[")
|
||||
#20017=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20017,#10000,1,1,1,1)
|
||||
tokeninfo(#20016,8,#20001,6,"[")
|
||||
#20017=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20017,#10000,1,10,1,10)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,6,#20001,1,"x")
|
||||
hasLocation(#20018,#20009)
|
||||
#20019=*
|
||||
tokeninfo(#20019,8,#20001,2,"=")
|
||||
#20020=@"loc,{#10000},1,3,1,3"
|
||||
locations_default(#20020,#10000,1,3,1,3)
|
||||
hasLocation(#20019,#20020)
|
||||
#20021=*
|
||||
tokeninfo(#20021,3,#20001,3,"42")
|
||||
hasLocation(#20021,#20012)
|
||||
tokeninfo(#20018,8,#20001,7,"]")
|
||||
#20019=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20019,#10000,1,11,1,11)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,8,";")
|
||||
#20021=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20021,#10000,1,12,1,12)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,4,"]")
|
||||
#20023=@"loc,{#10000},1,6,1,6"
|
||||
locations_default(#20023,#10000,1,6,1,6)
|
||||
tokeninfo(#20022,0,#20001,9,"")
|
||||
#20023=@"loc,{#10000},1,13,1,12"
|
||||
locations_default(#20023,#10000,1,13,1,12)
|
||||
hasLocation(#20022,#20023)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,5,"=")
|
||||
#20025=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20025,#10000,1,8,1,8)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,6,"[")
|
||||
#20027=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20027,#10000,1,10,1,10)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,7,"]")
|
||||
#20029=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20029,#10000,1,11,1,11)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,8,";")
|
||||
#20031=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20031,#10000,1,12,1,12)
|
||||
hasLocation(#20030,#20031)
|
||||
stmts(#20024,2,#20001,0,"[x=42] = [];")
|
||||
hasLocation(#20024,#20003)
|
||||
stmtContainers(#20024,#20001)
|
||||
#20025=*
|
||||
exprs(#20025,47,#20024,0,"[x=42] = []")
|
||||
#20026=@"loc,{#10000},1,1,1,11"
|
||||
locations_default(#20026,#10000,1,1,1,11)
|
||||
hasLocation(#20025,#20026)
|
||||
enclosingStmt(#20025,#20024)
|
||||
exprContainers(#20025,#20001)
|
||||
#20027=*
|
||||
exprs(#20027,67,#20025,0,"[x=42]")
|
||||
#20028=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20028,#10000,1,1,1,6)
|
||||
hasLocation(#20027,#20028)
|
||||
enclosingStmt(#20027,#20024)
|
||||
exprContainers(#20027,#20001)
|
||||
#20029=*
|
||||
exprs(#20029,79,#20027,0,"x")
|
||||
hasLocation(#20029,#20007)
|
||||
enclosingStmt(#20029,#20024)
|
||||
exprContainers(#20029,#20001)
|
||||
literals("x","x",#20029)
|
||||
#20030=@"var;{x};{#20000}"
|
||||
variables(#20030,"x",#20000)
|
||||
bind(#20029,#20030)
|
||||
#20031=*
|
||||
exprs(#20031,3,#20027,-2,"42")
|
||||
hasLocation(#20031,#20011)
|
||||
enclosingStmt(#20031,#20024)
|
||||
exprContainers(#20031,#20001)
|
||||
literals("42","42",#20031)
|
||||
arraySize(#20027,1)
|
||||
#20032=*
|
||||
tokeninfo(#20032,0,#20001,9,"")
|
||||
#20033=@"loc,{#10000},1,13,1,12"
|
||||
locations_default(#20033,#10000,1,13,1,12)
|
||||
exprs(#20032,7,#20025,1,"[]")
|
||||
#20033=@"loc,{#10000},1,10,1,11"
|
||||
locations_default(#20033,#10000,1,10,1,11)
|
||||
hasLocation(#20032,#20033)
|
||||
enclosingStmt(#20032,#20024)
|
||||
exprContainers(#20032,#20001)
|
||||
arraySize(#20032,0)
|
||||
#20034=*
|
||||
entry_cfg_node(#20034,#20001)
|
||||
#20035=@"loc,{#10000},1,1,1,0"
|
||||
@@ -116,13 +116,13 @@ locations_default(#20035,#10000,1,1,1,0)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
exit_cfg_node(#20036,#20001)
|
||||
hasLocation(#20036,#20033)
|
||||
successor(#20003,#20013)
|
||||
successor(#20006,#20011)
|
||||
successor(#20008,#20004)
|
||||
successor(#20011,#20008)
|
||||
successor(#20013,#20006)
|
||||
successor(#20004,#20036)
|
||||
successor(#20034,#20003)
|
||||
hasLocation(#20036,#20023)
|
||||
successor(#20024,#20032)
|
||||
successor(#20027,#20031)
|
||||
successor(#20029,#20025)
|
||||
successor(#20031,#20029)
|
||||
successor(#20032,#20027)
|
||||
successor(#20025,#20036)
|
||||
successor(#20034,#20024)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,218 +9,217 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,4,1"
|
||||
locations_default(#20002,#10000,1,1,4,1)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{cdr};{#20000}"
|
||||
variables(#20003,"cdr",#20000)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"function cdr(o) {","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,17"
|
||||
locations_default(#20003,#10000,1,1,1,17)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
stmts(#20004,17,#20001,0,"functio ... n ys;\n}")
|
||||
hasLocation(#20004,#20002)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,78,#20004,-1,"cdr")
|
||||
#20006=@"loc,{#10000},1,10,1,12"
|
||||
locations_default(#20006,#10000,1,10,1,12)
|
||||
hasLocation(#20005,#20006)
|
||||
exprContainers(#20005,#20004)
|
||||
literals("cdr","cdr",#20005)
|
||||
decl(#20005,#20003)
|
||||
#20007=*
|
||||
scopes(#20007,1)
|
||||
scopenodes(#20004,#20007)
|
||||
scopenesting(#20007,#20000)
|
||||
#20008=@"var;{ys};{#20007}"
|
||||
variables(#20008,"ys",#20007)
|
||||
#20009=@"var;{o};{#20007}"
|
||||
variables(#20009,"o",#20007)
|
||||
#20010=*
|
||||
exprs(#20010,78,#20004,0,"o")
|
||||
#20011=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20011,#10000,1,14,1,14)
|
||||
hasLocation(#20010,#20011)
|
||||
exprContainers(#20010,#20004)
|
||||
literals("o","o",#20010)
|
||||
decl(#20010,#20009)
|
||||
#20012=@"var;{arguments};{#20007}"
|
||||
variables(#20012,"arguments",#20007)
|
||||
isArgumentsObject(#20012)
|
||||
#20013=*
|
||||
stmts(#20013,1,#20004,-2,"{\n var ... n ys;\n}")
|
||||
#20014=@"loc,{#10000},1,17,4,1"
|
||||
locations_default(#20014,#10000,1,17,4,1)
|
||||
hasLocation(#20013,#20014)
|
||||
stmtContainers(#20013,#20004)
|
||||
#20015=*
|
||||
stmts(#20015,18,#20013,0,"var [, ...ys] = o;")
|
||||
#20016=@"loc,{#10000},2,3,2,20"
|
||||
locations_default(#20016,#10000,2,3,2,20)
|
||||
hasLocation(#20015,#20016)
|
||||
stmtContainers(#20015,#20004)
|
||||
#20017=*
|
||||
exprs(#20017,64,#20015,0,"[, ...ys] = o")
|
||||
#20018=@"loc,{#10000},2,7,2,19"
|
||||
locations_default(#20018,#10000,2,7,2,19)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20015)
|
||||
exprContainers(#20017,#20004)
|
||||
#20019=*
|
||||
exprs(#20019,67,#20017,0,"[, ...ys]")
|
||||
#20020=@"loc,{#10000},2,7,2,15"
|
||||
locations_default(#20020,#10000,2,7,2,15)
|
||||
hasLocation(#20019,#20020)
|
||||
enclosingStmt(#20019,#20015)
|
||||
exprContainers(#20019,#20004)
|
||||
#20021=*
|
||||
exprs(#20021,78,#20019,-1,"ys")
|
||||
#20022=@"loc,{#10000},2,13,2,14"
|
||||
locations_default(#20022,#10000,2,13,2,14)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20015)
|
||||
exprContainers(#20021,#20004)
|
||||
literals("ys","ys",#20021)
|
||||
decl(#20021,#20008)
|
||||
arraySize(#20019,1)
|
||||
#20023=*
|
||||
exprs(#20023,79,#20017,1,"o")
|
||||
#20024=@"loc,{#10000},2,19,2,19"
|
||||
locations_default(#20024,#10000,2,19,2,19)
|
||||
hasLocation(#20023,#20024)
|
||||
enclosingStmt(#20023,#20015)
|
||||
exprContainers(#20023,#20004)
|
||||
literals("o","o",#20023)
|
||||
bind(#20023,#20009)
|
||||
#20025=*
|
||||
stmts(#20025,9,#20013,1,"return ys;")
|
||||
#20026=@"loc,{#10000},3,3,3,12"
|
||||
locations_default(#20026,#10000,3,3,3,12)
|
||||
hasLocation(#20025,#20026)
|
||||
stmtContainers(#20025,#20004)
|
||||
#20027=*
|
||||
exprs(#20027,79,#20025,0,"ys")
|
||||
#20028=@"loc,{#10000},3,10,3,11"
|
||||
locations_default(#20028,#10000,3,10,3,11)
|
||||
hasLocation(#20027,#20028)
|
||||
enclosingStmt(#20027,#20025)
|
||||
exprContainers(#20027,#20004)
|
||||
literals("ys","ys",#20027)
|
||||
bind(#20027,#20008)
|
||||
numlines(#20004,4,4,0)
|
||||
#20029=*
|
||||
lines(#20029,#20001,"function cdr(o) {","
|
||||
lines(#20004,#20001," var [, ...ys] = o;","
|
||||
")
|
||||
#20030=@"loc,{#10000},1,1,1,17"
|
||||
locations_default(#20030,#10000,1,1,1,17)
|
||||
hasLocation(#20029,#20030)
|
||||
#20031=*
|
||||
lines(#20031,#20001," var [, ...ys] = o;","
|
||||
")
|
||||
#20032=@"loc,{#10000},2,1,2,20"
|
||||
locations_default(#20032,#10000,2,1,2,20)
|
||||
hasLocation(#20031,#20032)
|
||||
#20005=@"loc,{#10000},2,1,2,20"
|
||||
locations_default(#20005,#10000,2,1,2,20)
|
||||
hasLocation(#20004,#20005)
|
||||
indentation(#10000,2," ",2)
|
||||
#20033=*
|
||||
lines(#20033,#20001," return ys;","
|
||||
#20006=*
|
||||
lines(#20006,#20001," return ys;","
|
||||
")
|
||||
#20034=@"loc,{#10000},3,1,3,12"
|
||||
locations_default(#20034,#10000,3,1,3,12)
|
||||
hasLocation(#20033,#20034)
|
||||
#20007=@"loc,{#10000},3,1,3,12"
|
||||
locations_default(#20007,#10000,3,1,3,12)
|
||||
hasLocation(#20006,#20007)
|
||||
indentation(#10000,3," ",2)
|
||||
#20035=*
|
||||
lines(#20035,#20001,"}","")
|
||||
#20036=@"loc,{#10000},4,1,4,1"
|
||||
locations_default(#20036,#10000,4,1,4,1)
|
||||
hasLocation(#20035,#20036)
|
||||
#20008=*
|
||||
lines(#20008,#20001,"}","")
|
||||
#20009=@"loc,{#10000},4,1,4,1"
|
||||
locations_default(#20009,#10000,4,1,4,1)
|
||||
hasLocation(#20008,#20009)
|
||||
numlines(#20001,4,4,0)
|
||||
#20037=*
|
||||
tokeninfo(#20037,7,#20001,0,"function")
|
||||
#20038=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20038,#10000,1,1,1,8)
|
||||
hasLocation(#20037,#20038)
|
||||
#20039=*
|
||||
tokeninfo(#20039,6,#20001,1,"cdr")
|
||||
hasLocation(#20039,#20006)
|
||||
#20010=*
|
||||
tokeninfo(#20010,7,#20001,0,"function")
|
||||
#20011=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20011,#10000,1,1,1,8)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,1,"cdr")
|
||||
#20013=@"loc,{#10000},1,10,1,12"
|
||||
locations_default(#20013,#10000,1,10,1,12)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,2,"(")
|
||||
#20015=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20015,#10000,1,13,1,13)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,6,#20001,3,"o")
|
||||
#20017=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20017,#10000,1,14,1,14)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,4,")")
|
||||
#20019=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20019,#10000,1,15,1,15)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,5,"{")
|
||||
#20021=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20021,#10000,1,17,1,17)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,7,#20001,6,"var")
|
||||
#20023=@"loc,{#10000},2,3,2,5"
|
||||
locations_default(#20023,#10000,2,3,2,5)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,7,"[")
|
||||
#20025=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20025,#10000,2,7,2,7)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,8,",")
|
||||
#20027=@"loc,{#10000},2,8,2,8"
|
||||
locations_default(#20027,#10000,2,8,2,8)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,9,"...")
|
||||
#20029=@"loc,{#10000},2,10,2,12"
|
||||
locations_default(#20029,#10000,2,10,2,12)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,6,#20001,10,"ys")
|
||||
#20031=@"loc,{#10000},2,13,2,14"
|
||||
locations_default(#20031,#10000,2,13,2,14)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,8,#20001,11,"]")
|
||||
#20033=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20033,#10000,2,15,2,15)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,12,"=")
|
||||
#20035=@"loc,{#10000},2,17,2,17"
|
||||
locations_default(#20035,#10000,2,17,2,17)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,6,#20001,13,"o")
|
||||
#20037=@"loc,{#10000},2,19,2,19"
|
||||
locations_default(#20037,#10000,2,19,2,19)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,8,#20001,14,";")
|
||||
#20039=@"loc,{#10000},2,20,2,20"
|
||||
locations_default(#20039,#10000,2,20,2,20)
|
||||
hasLocation(#20038,#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,8,#20001,2,"(")
|
||||
#20041=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20041,#10000,1,13,1,13)
|
||||
tokeninfo(#20040,7,#20001,15,"return")
|
||||
#20041=@"loc,{#10000},3,3,3,8"
|
||||
locations_default(#20041,#10000,3,3,3,8)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,6,#20001,3,"o")
|
||||
hasLocation(#20042,#20011)
|
||||
#20043=*
|
||||
tokeninfo(#20043,8,#20001,4,")")
|
||||
#20044=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20044,#10000,1,15,1,15)
|
||||
hasLocation(#20043,#20044)
|
||||
#20045=*
|
||||
tokeninfo(#20045,8,#20001,5,"{")
|
||||
#20046=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20046,#10000,1,17,1,17)
|
||||
hasLocation(#20045,#20046)
|
||||
tokeninfo(#20042,6,#20001,16,"ys")
|
||||
#20043=@"loc,{#10000},3,10,3,11"
|
||||
locations_default(#20043,#10000,3,10,3,11)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,8,#20001,17,";")
|
||||
#20045=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20045,#10000,3,12,3,12)
|
||||
hasLocation(#20044,#20045)
|
||||
#20046=*
|
||||
tokeninfo(#20046,8,#20001,18,"}")
|
||||
hasLocation(#20046,#20009)
|
||||
#20047=*
|
||||
tokeninfo(#20047,7,#20001,6,"var")
|
||||
#20048=@"loc,{#10000},2,3,2,5"
|
||||
locations_default(#20048,#10000,2,3,2,5)
|
||||
tokeninfo(#20047,0,#20001,19,"")
|
||||
#20048=@"loc,{#10000},4,2,4,1"
|
||||
locations_default(#20048,#10000,4,2,4,1)
|
||||
hasLocation(#20047,#20048)
|
||||
#20049=*
|
||||
tokeninfo(#20049,8,#20001,7,"[")
|
||||
#20050=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20050,#10000,2,7,2,7)
|
||||
hasLocation(#20049,#20050)
|
||||
toplevels(#20001,0)
|
||||
#20049=@"loc,{#10000},1,1,4,1"
|
||||
locations_default(#20049,#10000,1,1,4,1)
|
||||
hasLocation(#20001,#20049)
|
||||
#20050=@"var;{cdr};{#20000}"
|
||||
variables(#20050,"cdr",#20000)
|
||||
#20051=*
|
||||
tokeninfo(#20051,8,#20001,8,",")
|
||||
#20052=@"loc,{#10000},2,8,2,8"
|
||||
locations_default(#20052,#10000,2,8,2,8)
|
||||
hasLocation(#20051,#20052)
|
||||
stmts(#20051,17,#20001,0,"functio ... n ys;\n}")
|
||||
hasLocation(#20051,#20049)
|
||||
stmtContainers(#20051,#20001)
|
||||
#20052=*
|
||||
exprs(#20052,78,#20051,-1,"cdr")
|
||||
hasLocation(#20052,#20013)
|
||||
exprContainers(#20052,#20051)
|
||||
literals("cdr","cdr",#20052)
|
||||
decl(#20052,#20050)
|
||||
#20053=*
|
||||
tokeninfo(#20053,8,#20001,9,"...")
|
||||
#20054=@"loc,{#10000},2,10,2,12"
|
||||
locations_default(#20054,#10000,2,10,2,12)
|
||||
hasLocation(#20053,#20054)
|
||||
#20055=*
|
||||
tokeninfo(#20055,6,#20001,10,"ys")
|
||||
hasLocation(#20055,#20022)
|
||||
scopes(#20053,1)
|
||||
scopenodes(#20051,#20053)
|
||||
scopenesting(#20053,#20000)
|
||||
#20054=@"var;{ys};{#20053}"
|
||||
variables(#20054,"ys",#20053)
|
||||
#20055=@"var;{o};{#20053}"
|
||||
variables(#20055,"o",#20053)
|
||||
#20056=*
|
||||
tokeninfo(#20056,8,#20001,11,"]")
|
||||
#20057=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20057,#10000,2,15,2,15)
|
||||
hasLocation(#20056,#20057)
|
||||
exprs(#20056,78,#20051,0,"o")
|
||||
hasLocation(#20056,#20017)
|
||||
exprContainers(#20056,#20051)
|
||||
literals("o","o",#20056)
|
||||
decl(#20056,#20055)
|
||||
#20057=@"var;{arguments};{#20053}"
|
||||
variables(#20057,"arguments",#20053)
|
||||
isArgumentsObject(#20057)
|
||||
#20058=*
|
||||
tokeninfo(#20058,8,#20001,12,"=")
|
||||
#20059=@"loc,{#10000},2,17,2,17"
|
||||
locations_default(#20059,#10000,2,17,2,17)
|
||||
stmts(#20058,1,#20051,-2,"{\n var ... n ys;\n}")
|
||||
#20059=@"loc,{#10000},1,17,4,1"
|
||||
locations_default(#20059,#10000,1,17,4,1)
|
||||
hasLocation(#20058,#20059)
|
||||
stmtContainers(#20058,#20051)
|
||||
#20060=*
|
||||
tokeninfo(#20060,6,#20001,13,"o")
|
||||
hasLocation(#20060,#20024)
|
||||
#20061=*
|
||||
tokeninfo(#20061,8,#20001,14,";")
|
||||
#20062=@"loc,{#10000},2,20,2,20"
|
||||
locations_default(#20062,#10000,2,20,2,20)
|
||||
hasLocation(#20061,#20062)
|
||||
#20063=*
|
||||
tokeninfo(#20063,7,#20001,15,"return")
|
||||
#20064=@"loc,{#10000},3,3,3,8"
|
||||
locations_default(#20064,#10000,3,3,3,8)
|
||||
hasLocation(#20063,#20064)
|
||||
#20065=*
|
||||
tokeninfo(#20065,6,#20001,16,"ys")
|
||||
hasLocation(#20065,#20028)
|
||||
stmts(#20060,18,#20058,0,"var [, ...ys] = o;")
|
||||
#20061=@"loc,{#10000},2,3,2,20"
|
||||
locations_default(#20061,#10000,2,3,2,20)
|
||||
hasLocation(#20060,#20061)
|
||||
stmtContainers(#20060,#20051)
|
||||
#20062=*
|
||||
exprs(#20062,64,#20060,0,"[, ...ys] = o")
|
||||
#20063=@"loc,{#10000},2,7,2,19"
|
||||
locations_default(#20063,#10000,2,7,2,19)
|
||||
hasLocation(#20062,#20063)
|
||||
enclosingStmt(#20062,#20060)
|
||||
exprContainers(#20062,#20051)
|
||||
#20064=*
|
||||
exprs(#20064,67,#20062,0,"[, ...ys]")
|
||||
#20065=@"loc,{#10000},2,7,2,15"
|
||||
locations_default(#20065,#10000,2,7,2,15)
|
||||
hasLocation(#20064,#20065)
|
||||
enclosingStmt(#20064,#20060)
|
||||
exprContainers(#20064,#20051)
|
||||
#20066=*
|
||||
tokeninfo(#20066,8,#20001,17,";")
|
||||
#20067=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20067,#10000,3,12,3,12)
|
||||
hasLocation(#20066,#20067)
|
||||
exprs(#20066,78,#20064,-1,"ys")
|
||||
hasLocation(#20066,#20031)
|
||||
enclosingStmt(#20066,#20060)
|
||||
exprContainers(#20066,#20051)
|
||||
literals("ys","ys",#20066)
|
||||
decl(#20066,#20054)
|
||||
arraySize(#20064,1)
|
||||
#20067=*
|
||||
exprs(#20067,79,#20062,1,"o")
|
||||
hasLocation(#20067,#20037)
|
||||
enclosingStmt(#20067,#20060)
|
||||
exprContainers(#20067,#20051)
|
||||
literals("o","o",#20067)
|
||||
bind(#20067,#20055)
|
||||
#20068=*
|
||||
tokeninfo(#20068,8,#20001,18,"}")
|
||||
hasLocation(#20068,#20036)
|
||||
#20069=*
|
||||
tokeninfo(#20069,0,#20001,19,"")
|
||||
#20070=@"loc,{#10000},4,2,4,1"
|
||||
locations_default(#20070,#10000,4,2,4,1)
|
||||
hasLocation(#20069,#20070)
|
||||
stmts(#20068,9,#20058,1,"return ys;")
|
||||
#20069=@"loc,{#10000},3,3,3,12"
|
||||
locations_default(#20069,#10000,3,3,3,12)
|
||||
hasLocation(#20068,#20069)
|
||||
stmtContainers(#20068,#20051)
|
||||
#20070=*
|
||||
exprs(#20070,79,#20068,0,"ys")
|
||||
hasLocation(#20070,#20043)
|
||||
enclosingStmt(#20070,#20068)
|
||||
exprContainers(#20070,#20051)
|
||||
literals("ys","ys",#20070)
|
||||
bind(#20070,#20054)
|
||||
#20071=*
|
||||
entry_cfg_node(#20071,#20001)
|
||||
#20072=@"loc,{#10000},1,1,1,0"
|
||||
@@ -228,25 +227,25 @@ locations_default(#20072,#10000,1,1,1,0)
|
||||
hasLocation(#20071,#20072)
|
||||
#20073=*
|
||||
exit_cfg_node(#20073,#20001)
|
||||
hasLocation(#20073,#20070)
|
||||
successor(#20004,#20073)
|
||||
hasLocation(#20073,#20048)
|
||||
successor(#20051,#20073)
|
||||
#20074=*
|
||||
entry_cfg_node(#20074,#20004)
|
||||
entry_cfg_node(#20074,#20051)
|
||||
hasLocation(#20074,#20072)
|
||||
#20075=*
|
||||
exit_cfg_node(#20075,#20004)
|
||||
hasLocation(#20075,#20070)
|
||||
successor(#20013,#20015)
|
||||
successor(#20027,#20025)
|
||||
successor(#20025,#20075)
|
||||
successor(#20015,#20023)
|
||||
successor(#20019,#20021)
|
||||
successor(#20021,#20017)
|
||||
successor(#20023,#20019)
|
||||
successor(#20017,#20027)
|
||||
successor(#20010,#20013)
|
||||
successor(#20074,#20010)
|
||||
successor(#20005,#20004)
|
||||
successor(#20071,#20005)
|
||||
exit_cfg_node(#20075,#20051)
|
||||
hasLocation(#20075,#20048)
|
||||
successor(#20058,#20060)
|
||||
successor(#20070,#20068)
|
||||
successor(#20068,#20075)
|
||||
successor(#20060,#20067)
|
||||
successor(#20064,#20066)
|
||||
successor(#20066,#20062)
|
||||
successor(#20067,#20064)
|
||||
successor(#20062,#20070)
|
||||
successor(#20056,#20058)
|
||||
successor(#20074,#20056)
|
||||
successor(#20052,#20051)
|
||||
successor(#20071,#20052)
|
||||
numlines(#10000,4,4,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,464 +9,461 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,3,48"
|
||||
locations_default(#20002,#10000,1,1,3,48)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"[""a"", "" ... ength);")
|
||||
#20004=@"loc,{#10000},1,1,1,38"
|
||||
locations_default(#20004,#10000,1,1,1,38)
|
||||
hasLocation(#20003,#20004)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,13,#20003,0,"[""a"", "" ... length)")
|
||||
#20006=@"loc,{#10000},1,1,1,37"
|
||||
locations_default(#20006,#10000,1,1,1,37)
|
||||
hasLocation(#20005,#20006)
|
||||
enclosingStmt(#20005,#20003)
|
||||
exprContainers(#20005,#20001)
|
||||
#20007=*
|
||||
exprs(#20007,14,#20005,-1,"[""a"", "" ... c""].map")
|
||||
#20008=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20008,#10000,1,1,1,22)
|
||||
hasLocation(#20007,#20008)
|
||||
enclosingStmt(#20007,#20003)
|
||||
exprContainers(#20007,#20001)
|
||||
#20009=*
|
||||
exprs(#20009,7,#20007,0,"[""a"", ""ab"", ""abc""]")
|
||||
#20010=@"loc,{#10000},1,1,1,18"
|
||||
locations_default(#20010,#10000,1,1,1,18)
|
||||
hasLocation(#20009,#20010)
|
||||
enclosingStmt(#20009,#20003)
|
||||
exprContainers(#20009,#20001)
|
||||
#20011=*
|
||||
exprs(#20011,4,#20009,0,"""a""")
|
||||
#20012=@"loc,{#10000},1,2,1,4"
|
||||
locations_default(#20012,#10000,1,2,1,4)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20003)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("a","""a""",#20011)
|
||||
#20013=*
|
||||
exprs(#20013,4,#20009,1,"""ab""")
|
||||
#20014=@"loc,{#10000},1,7,1,10"
|
||||
locations_default(#20014,#10000,1,7,1,10)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20003)
|
||||
exprContainers(#20013,#20001)
|
||||
literals("ab","""ab""",#20013)
|
||||
#20015=*
|
||||
exprs(#20015,4,#20009,2,"""abc""")
|
||||
#20016=@"loc,{#10000},1,13,1,17"
|
||||
locations_default(#20016,#10000,1,13,1,17)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20003)
|
||||
exprContainers(#20015,#20001)
|
||||
literals("abc","""abc""",#20015)
|
||||
arraySize(#20009,3)
|
||||
#20017=*
|
||||
exprs(#20017,0,#20007,1,"map")
|
||||
#20018=@"loc,{#10000},1,20,1,22"
|
||||
locations_default(#20018,#10000,1,20,1,22)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20003)
|
||||
exprContainers(#20017,#20001)
|
||||
literals("map","map",#20017)
|
||||
#20019=*
|
||||
exprs(#20019,65,#20005,0,"s => s.length")
|
||||
#20020=@"loc,{#10000},1,24,1,36"
|
||||
locations_default(#20020,#10000,1,24,1,36)
|
||||
hasLocation(#20019,#20020)
|
||||
enclosingStmt(#20019,#20003)
|
||||
exprContainers(#20019,#20001)
|
||||
#20021=*
|
||||
scopes(#20021,1)
|
||||
scopenodes(#20019,#20021)
|
||||
scopenesting(#20021,#20000)
|
||||
#20022=@"var;{s};{#20021}"
|
||||
variables(#20022,"s",#20021)
|
||||
#20023=*
|
||||
exprs(#20023,78,#20019,0,"s")
|
||||
#20024=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20024,#10000,1,24,1,24)
|
||||
hasLocation(#20023,#20024)
|
||||
exprContainers(#20023,#20019)
|
||||
literals("s","s",#20023)
|
||||
decl(#20023,#20022)
|
||||
#20025=*
|
||||
exprs(#20025,14,#20019,-2,"s.length")
|
||||
#20026=@"loc,{#10000},1,29,1,36"
|
||||
locations_default(#20026,#10000,1,29,1,36)
|
||||
hasLocation(#20025,#20026)
|
||||
exprContainers(#20025,#20019)
|
||||
#20027=*
|
||||
exprs(#20027,79,#20025,0,"s")
|
||||
#20028=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20028,#10000,1,29,1,29)
|
||||
hasLocation(#20027,#20028)
|
||||
exprContainers(#20027,#20019)
|
||||
literals("s","s",#20027)
|
||||
bind(#20027,#20022)
|
||||
#20029=*
|
||||
exprs(#20029,0,#20025,1,"length")
|
||||
#20030=@"loc,{#10000},1,31,1,36"
|
||||
locations_default(#20030,#10000,1,31,1,36)
|
||||
hasLocation(#20029,#20030)
|
||||
exprContainers(#20029,#20019)
|
||||
literals("length","length",#20029)
|
||||
numlines(#20019,1,1,0)
|
||||
#20031=*
|
||||
stmts(#20031,2,#20001,1,"setInte ... 1000);")
|
||||
#20032=@"loc,{#10000},2,1,2,31"
|
||||
locations_default(#20032,#10000,2,1,2,31)
|
||||
hasLocation(#20031,#20032)
|
||||
stmtContainers(#20031,#20001)
|
||||
#20033=*
|
||||
exprs(#20033,13,#20031,0,"setInte ... , 1000)")
|
||||
#20034=@"loc,{#10000},2,1,2,30"
|
||||
locations_default(#20034,#10000,2,1,2,30)
|
||||
hasLocation(#20033,#20034)
|
||||
enclosingStmt(#20033,#20031)
|
||||
exprContainers(#20033,#20001)
|
||||
#20035=*
|
||||
exprs(#20035,79,#20033,-1,"setInterval")
|
||||
#20036=@"loc,{#10000},2,1,2,11"
|
||||
locations_default(#20036,#10000,2,1,2,11)
|
||||
hasLocation(#20035,#20036)
|
||||
enclosingStmt(#20035,#20031)
|
||||
exprContainers(#20035,#20001)
|
||||
literals("setInterval","setInterval",#20035)
|
||||
#20037=@"var;{setInterval};{#20000}"
|
||||
variables(#20037,"setInterval",#20000)
|
||||
bind(#20035,#20037)
|
||||
#20038=*
|
||||
exprs(#20038,65,#20033,0,"() => ++cnt")
|
||||
#20039=@"loc,{#10000},2,13,2,23"
|
||||
locations_default(#20039,#10000,2,13,2,23)
|
||||
hasLocation(#20038,#20039)
|
||||
enclosingStmt(#20038,#20031)
|
||||
exprContainers(#20038,#20001)
|
||||
#20040=*
|
||||
scopes(#20040,1)
|
||||
scopenodes(#20038,#20040)
|
||||
scopenesting(#20040,#20000)
|
||||
#20041=*
|
||||
exprs(#20041,59,#20038,-2,"++cnt")
|
||||
#20042=@"loc,{#10000},2,19,2,23"
|
||||
locations_default(#20042,#10000,2,19,2,23)
|
||||
hasLocation(#20041,#20042)
|
||||
exprContainers(#20041,#20038)
|
||||
#20043=*
|
||||
exprs(#20043,79,#20041,0,"cnt")
|
||||
#20044=@"loc,{#10000},2,21,2,23"
|
||||
locations_default(#20044,#10000,2,21,2,23)
|
||||
hasLocation(#20043,#20044)
|
||||
exprContainers(#20043,#20038)
|
||||
literals("cnt","cnt",#20043)
|
||||
#20045=@"var;{cnt};{#20000}"
|
||||
variables(#20045,"cnt",#20000)
|
||||
bind(#20043,#20045)
|
||||
numlines(#20038,1,1,0)
|
||||
#20046=*
|
||||
exprs(#20046,3,#20033,1,"1000")
|
||||
#20047=@"loc,{#10000},2,26,2,29"
|
||||
locations_default(#20047,#10000,2,26,2,29)
|
||||
hasLocation(#20046,#20047)
|
||||
enclosingStmt(#20046,#20031)
|
||||
exprContainers(#20046,#20001)
|
||||
literals("1000","1000",#20046)
|
||||
#20048=*
|
||||
stmts(#20048,2,#20001,2,"setTime ... 60000);")
|
||||
#20049=@"loc,{#10000},3,1,3,48"
|
||||
locations_default(#20049,#10000,3,1,3,48)
|
||||
hasLocation(#20048,#20049)
|
||||
stmtContainers(#20048,#20001)
|
||||
#20050=*
|
||||
exprs(#20050,13,#20048,0,"setTime ... 60000)")
|
||||
#20051=@"loc,{#10000},3,1,3,47"
|
||||
locations_default(#20051,#10000,3,1,3,47)
|
||||
hasLocation(#20050,#20051)
|
||||
enclosingStmt(#20050,#20048)
|
||||
exprContainers(#20050,#20001)
|
||||
#20052=*
|
||||
exprs(#20052,79,#20050,-1,"setTimeout")
|
||||
#20053=@"loc,{#10000},3,1,3,10"
|
||||
locations_default(#20053,#10000,3,1,3,10)
|
||||
hasLocation(#20052,#20053)
|
||||
enclosingStmt(#20052,#20048)
|
||||
exprContainers(#20052,#20001)
|
||||
literals("setTimeout","setTimeout",#20052)
|
||||
#20054=@"var;{setTimeout};{#20000}"
|
||||
variables(#20054,"setTimeout",#20000)
|
||||
bind(#20052,#20054)
|
||||
#20055=*
|
||||
exprs(#20055,65,#20050,0,"() => { ... p!""); }")
|
||||
#20056=@"loc,{#10000},3,12,3,39"
|
||||
locations_default(#20056,#10000,3,12,3,39)
|
||||
hasLocation(#20055,#20056)
|
||||
enclosingStmt(#20055,#20048)
|
||||
exprContainers(#20055,#20001)
|
||||
#20057=*
|
||||
scopes(#20057,1)
|
||||
scopenodes(#20055,#20057)
|
||||
scopenesting(#20057,#20000)
|
||||
#20058=*
|
||||
stmts(#20058,1,#20055,-2,"{ alert ... p!""); }")
|
||||
#20059=@"loc,{#10000},3,18,3,39"
|
||||
locations_default(#20059,#10000,3,18,3,39)
|
||||
hasLocation(#20058,#20059)
|
||||
stmtContainers(#20058,#20055)
|
||||
#20060=*
|
||||
stmts(#20060,2,#20058,0,"alert(""Wake up!"");")
|
||||
#20061=@"loc,{#10000},3,20,3,37"
|
||||
locations_default(#20061,#10000,3,20,3,37)
|
||||
hasLocation(#20060,#20061)
|
||||
stmtContainers(#20060,#20055)
|
||||
#20062=*
|
||||
exprs(#20062,13,#20060,0,"alert(""Wake up!"")")
|
||||
#20063=@"loc,{#10000},3,20,3,36"
|
||||
locations_default(#20063,#10000,3,20,3,36)
|
||||
hasLocation(#20062,#20063)
|
||||
enclosingStmt(#20062,#20060)
|
||||
exprContainers(#20062,#20055)
|
||||
#20064=*
|
||||
exprs(#20064,79,#20062,-1,"alert")
|
||||
#20065=@"loc,{#10000},3,20,3,24"
|
||||
locations_default(#20065,#10000,3,20,3,24)
|
||||
hasLocation(#20064,#20065)
|
||||
enclosingStmt(#20064,#20060)
|
||||
exprContainers(#20064,#20055)
|
||||
literals("alert","alert",#20064)
|
||||
#20066=@"var;{alert};{#20000}"
|
||||
variables(#20066,"alert",#20000)
|
||||
bind(#20064,#20066)
|
||||
#20067=*
|
||||
exprs(#20067,4,#20062,0,"""Wake up!""")
|
||||
#20068=@"loc,{#10000},3,26,3,35"
|
||||
locations_default(#20068,#10000,3,26,3,35)
|
||||
hasLocation(#20067,#20068)
|
||||
enclosingStmt(#20067,#20060)
|
||||
exprContainers(#20067,#20055)
|
||||
literals("Wake up!","""Wake up!""",#20067)
|
||||
numlines(#20055,1,1,0)
|
||||
#20069=*
|
||||
exprs(#20069,3,#20050,1,"60000")
|
||||
#20070=@"loc,{#10000},3,42,3,46"
|
||||
locations_default(#20070,#10000,3,42,3,46)
|
||||
hasLocation(#20069,#20070)
|
||||
enclosingStmt(#20069,#20048)
|
||||
exprContainers(#20069,#20001)
|
||||
literals("60000","60000",#20069)
|
||||
#20071=*
|
||||
lines(#20071,#20001,"[""a"", ""ab"", ""abc""].map(s => s.length);","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"[""a"", ""ab"", ""abc""].map(s => s.length);","
|
||||
")
|
||||
hasLocation(#20071,#20004)
|
||||
#20072=*
|
||||
lines(#20072,#20001,"setInterval(() => ++cnt, 1000);","
|
||||
#20003=@"loc,{#10000},1,1,1,38"
|
||||
locations_default(#20003,#10000,1,1,1,38)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001,"setInterval(() => ++cnt, 1000);","
|
||||
")
|
||||
hasLocation(#20072,#20032)
|
||||
#20073=*
|
||||
lines(#20073,#20001,"setTimeout(() => { alert(""Wake up!""); }, 60000);","")
|
||||
hasLocation(#20073,#20049)
|
||||
#20005=@"loc,{#10000},2,1,2,31"
|
||||
locations_default(#20005,#10000,2,1,2,31)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
lines(#20006,#20001,"setTimeout(() => { alert(""Wake up!""); }, 60000);","")
|
||||
#20007=@"loc,{#10000},3,1,3,48"
|
||||
locations_default(#20007,#10000,3,1,3,48)
|
||||
hasLocation(#20006,#20007)
|
||||
numlines(#20001,3,3,0)
|
||||
#20008=*
|
||||
tokeninfo(#20008,8,#20001,0,"[")
|
||||
#20009=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20009,#10000,1,1,1,1)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,4,#20001,1,"""a""")
|
||||
#20011=@"loc,{#10000},1,2,1,4"
|
||||
locations_default(#20011,#10000,1,2,1,4)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,2,",")
|
||||
#20013=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20013,#10000,1,5,1,5)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,4,#20001,3,"""ab""")
|
||||
#20015=@"loc,{#10000},1,7,1,10"
|
||||
locations_default(#20015,#10000,1,7,1,10)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,4,",")
|
||||
#20017=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20017,#10000,1,11,1,11)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,4,#20001,5,"""abc""")
|
||||
#20019=@"loc,{#10000},1,13,1,17"
|
||||
locations_default(#20019,#10000,1,13,1,17)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,6,"]")
|
||||
#20021=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20021,#10000,1,18,1,18)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,7,".")
|
||||
#20023=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20023,#10000,1,19,1,19)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,8,"map")
|
||||
#20025=@"loc,{#10000},1,20,1,22"
|
||||
locations_default(#20025,#10000,1,20,1,22)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,9,"(")
|
||||
#20027=@"loc,{#10000},1,23,1,23"
|
||||
locations_default(#20027,#10000,1,23,1,23)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,6,#20001,10,"s")
|
||||
#20029=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20029,#10000,1,24,1,24)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,11,"=>")
|
||||
#20031=@"loc,{#10000},1,26,1,27"
|
||||
locations_default(#20031,#10000,1,26,1,27)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,6,#20001,12,"s")
|
||||
#20033=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20033,#10000,1,29,1,29)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,13,".")
|
||||
#20035=@"loc,{#10000},1,30,1,30"
|
||||
locations_default(#20035,#10000,1,30,1,30)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,6,#20001,14,"length")
|
||||
#20037=@"loc,{#10000},1,31,1,36"
|
||||
locations_default(#20037,#10000,1,31,1,36)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,8,#20001,15,")")
|
||||
#20039=@"loc,{#10000},1,37,1,37"
|
||||
locations_default(#20039,#10000,1,37,1,37)
|
||||
hasLocation(#20038,#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,8,#20001,16,";")
|
||||
#20041=@"loc,{#10000},1,38,1,38"
|
||||
locations_default(#20041,#10000,1,38,1,38)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,6,#20001,17,"setInterval")
|
||||
#20043=@"loc,{#10000},2,1,2,11"
|
||||
locations_default(#20043,#10000,2,1,2,11)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,8,#20001,18,"(")
|
||||
#20045=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20045,#10000,2,12,2,12)
|
||||
hasLocation(#20044,#20045)
|
||||
#20046=*
|
||||
tokeninfo(#20046,8,#20001,19,"(")
|
||||
#20047=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20047,#10000,2,13,2,13)
|
||||
hasLocation(#20046,#20047)
|
||||
#20048=*
|
||||
tokeninfo(#20048,8,#20001,20,")")
|
||||
#20049=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20049,#10000,2,14,2,14)
|
||||
hasLocation(#20048,#20049)
|
||||
#20050=*
|
||||
tokeninfo(#20050,8,#20001,21,"=>")
|
||||
#20051=@"loc,{#10000},2,16,2,17"
|
||||
locations_default(#20051,#10000,2,16,2,17)
|
||||
hasLocation(#20050,#20051)
|
||||
#20052=*
|
||||
tokeninfo(#20052,8,#20001,22,"++")
|
||||
#20053=@"loc,{#10000},2,19,2,20"
|
||||
locations_default(#20053,#10000,2,19,2,20)
|
||||
hasLocation(#20052,#20053)
|
||||
#20054=*
|
||||
tokeninfo(#20054,6,#20001,23,"cnt")
|
||||
#20055=@"loc,{#10000},2,21,2,23"
|
||||
locations_default(#20055,#10000,2,21,2,23)
|
||||
hasLocation(#20054,#20055)
|
||||
#20056=*
|
||||
tokeninfo(#20056,8,#20001,24,",")
|
||||
#20057=@"loc,{#10000},2,24,2,24"
|
||||
locations_default(#20057,#10000,2,24,2,24)
|
||||
hasLocation(#20056,#20057)
|
||||
#20058=*
|
||||
tokeninfo(#20058,3,#20001,25,"1000")
|
||||
#20059=@"loc,{#10000},2,26,2,29"
|
||||
locations_default(#20059,#10000,2,26,2,29)
|
||||
hasLocation(#20058,#20059)
|
||||
#20060=*
|
||||
tokeninfo(#20060,8,#20001,26,")")
|
||||
#20061=@"loc,{#10000},2,30,2,30"
|
||||
locations_default(#20061,#10000,2,30,2,30)
|
||||
hasLocation(#20060,#20061)
|
||||
#20062=*
|
||||
tokeninfo(#20062,8,#20001,27,";")
|
||||
#20063=@"loc,{#10000},2,31,2,31"
|
||||
locations_default(#20063,#10000,2,31,2,31)
|
||||
hasLocation(#20062,#20063)
|
||||
#20064=*
|
||||
tokeninfo(#20064,6,#20001,28,"setTimeout")
|
||||
#20065=@"loc,{#10000},3,1,3,10"
|
||||
locations_default(#20065,#10000,3,1,3,10)
|
||||
hasLocation(#20064,#20065)
|
||||
#20066=*
|
||||
tokeninfo(#20066,8,#20001,29,"(")
|
||||
#20067=@"loc,{#10000},3,11,3,11"
|
||||
locations_default(#20067,#10000,3,11,3,11)
|
||||
hasLocation(#20066,#20067)
|
||||
#20068=*
|
||||
tokeninfo(#20068,8,#20001,30,"(")
|
||||
#20069=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20069,#10000,3,12,3,12)
|
||||
hasLocation(#20068,#20069)
|
||||
#20070=*
|
||||
tokeninfo(#20070,8,#20001,31,")")
|
||||
#20071=@"loc,{#10000},3,13,3,13"
|
||||
locations_default(#20071,#10000,3,13,3,13)
|
||||
hasLocation(#20070,#20071)
|
||||
#20072=*
|
||||
tokeninfo(#20072,8,#20001,32,"=>")
|
||||
#20073=@"loc,{#10000},3,15,3,16"
|
||||
locations_default(#20073,#10000,3,15,3,16)
|
||||
hasLocation(#20072,#20073)
|
||||
#20074=*
|
||||
tokeninfo(#20074,8,#20001,0,"[")
|
||||
#20075=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20075,#10000,1,1,1,1)
|
||||
tokeninfo(#20074,8,#20001,33,"{")
|
||||
#20075=@"loc,{#10000},3,18,3,18"
|
||||
locations_default(#20075,#10000,3,18,3,18)
|
||||
hasLocation(#20074,#20075)
|
||||
#20076=*
|
||||
tokeninfo(#20076,4,#20001,1,"""a""")
|
||||
hasLocation(#20076,#20012)
|
||||
#20077=*
|
||||
tokeninfo(#20077,8,#20001,2,",")
|
||||
#20078=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20078,#10000,1,5,1,5)
|
||||
hasLocation(#20077,#20078)
|
||||
#20079=*
|
||||
tokeninfo(#20079,4,#20001,3,"""ab""")
|
||||
hasLocation(#20079,#20014)
|
||||
tokeninfo(#20076,6,#20001,34,"alert")
|
||||
#20077=@"loc,{#10000},3,20,3,24"
|
||||
locations_default(#20077,#10000,3,20,3,24)
|
||||
hasLocation(#20076,#20077)
|
||||
#20078=*
|
||||
tokeninfo(#20078,8,#20001,35,"(")
|
||||
#20079=@"loc,{#10000},3,25,3,25"
|
||||
locations_default(#20079,#10000,3,25,3,25)
|
||||
hasLocation(#20078,#20079)
|
||||
#20080=*
|
||||
tokeninfo(#20080,8,#20001,4,",")
|
||||
#20081=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20081,#10000,1,11,1,11)
|
||||
tokeninfo(#20080,4,#20001,36,"""Wake up!""")
|
||||
#20081=@"loc,{#10000},3,26,3,35"
|
||||
locations_default(#20081,#10000,3,26,3,35)
|
||||
hasLocation(#20080,#20081)
|
||||
#20082=*
|
||||
tokeninfo(#20082,4,#20001,5,"""abc""")
|
||||
hasLocation(#20082,#20016)
|
||||
#20083=*
|
||||
tokeninfo(#20083,8,#20001,6,"]")
|
||||
#20084=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20084,#10000,1,18,1,18)
|
||||
hasLocation(#20083,#20084)
|
||||
#20085=*
|
||||
tokeninfo(#20085,8,#20001,7,".")
|
||||
#20086=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20086,#10000,1,19,1,19)
|
||||
hasLocation(#20085,#20086)
|
||||
#20087=*
|
||||
tokeninfo(#20087,6,#20001,8,"map")
|
||||
hasLocation(#20087,#20018)
|
||||
tokeninfo(#20082,8,#20001,37,")")
|
||||
#20083=@"loc,{#10000},3,36,3,36"
|
||||
locations_default(#20083,#10000,3,36,3,36)
|
||||
hasLocation(#20082,#20083)
|
||||
#20084=*
|
||||
tokeninfo(#20084,8,#20001,38,";")
|
||||
#20085=@"loc,{#10000},3,37,3,37"
|
||||
locations_default(#20085,#10000,3,37,3,37)
|
||||
hasLocation(#20084,#20085)
|
||||
#20086=*
|
||||
tokeninfo(#20086,8,#20001,39,"}")
|
||||
#20087=@"loc,{#10000},3,39,3,39"
|
||||
locations_default(#20087,#10000,3,39,3,39)
|
||||
hasLocation(#20086,#20087)
|
||||
#20088=*
|
||||
tokeninfo(#20088,8,#20001,9,"(")
|
||||
#20089=@"loc,{#10000},1,23,1,23"
|
||||
locations_default(#20089,#10000,1,23,1,23)
|
||||
tokeninfo(#20088,8,#20001,40,",")
|
||||
#20089=@"loc,{#10000},3,40,3,40"
|
||||
locations_default(#20089,#10000,3,40,3,40)
|
||||
hasLocation(#20088,#20089)
|
||||
#20090=*
|
||||
tokeninfo(#20090,6,#20001,10,"s")
|
||||
hasLocation(#20090,#20024)
|
||||
#20091=*
|
||||
tokeninfo(#20091,8,#20001,11,"=>")
|
||||
#20092=@"loc,{#10000},1,26,1,27"
|
||||
locations_default(#20092,#10000,1,26,1,27)
|
||||
hasLocation(#20091,#20092)
|
||||
#20093=*
|
||||
tokeninfo(#20093,6,#20001,12,"s")
|
||||
hasLocation(#20093,#20028)
|
||||
tokeninfo(#20090,3,#20001,41,"60000")
|
||||
#20091=@"loc,{#10000},3,42,3,46"
|
||||
locations_default(#20091,#10000,3,42,3,46)
|
||||
hasLocation(#20090,#20091)
|
||||
#20092=*
|
||||
tokeninfo(#20092,8,#20001,42,")")
|
||||
#20093=@"loc,{#10000},3,47,3,47"
|
||||
locations_default(#20093,#10000,3,47,3,47)
|
||||
hasLocation(#20092,#20093)
|
||||
#20094=*
|
||||
tokeninfo(#20094,8,#20001,13,".")
|
||||
#20095=@"loc,{#10000},1,30,1,30"
|
||||
locations_default(#20095,#10000,1,30,1,30)
|
||||
tokeninfo(#20094,8,#20001,43,";")
|
||||
#20095=@"loc,{#10000},3,48,3,48"
|
||||
locations_default(#20095,#10000,3,48,3,48)
|
||||
hasLocation(#20094,#20095)
|
||||
#20096=*
|
||||
tokeninfo(#20096,6,#20001,14,"length")
|
||||
hasLocation(#20096,#20030)
|
||||
#20097=*
|
||||
tokeninfo(#20097,8,#20001,15,")")
|
||||
#20098=@"loc,{#10000},1,37,1,37"
|
||||
locations_default(#20098,#10000,1,37,1,37)
|
||||
hasLocation(#20097,#20098)
|
||||
tokeninfo(#20096,0,#20001,44,"")
|
||||
#20097=@"loc,{#10000},3,49,3,48"
|
||||
locations_default(#20097,#10000,3,49,3,48)
|
||||
hasLocation(#20096,#20097)
|
||||
toplevels(#20001,0)
|
||||
#20098=@"loc,{#10000},1,1,3,48"
|
||||
locations_default(#20098,#10000,1,1,3,48)
|
||||
hasLocation(#20001,#20098)
|
||||
#20099=*
|
||||
tokeninfo(#20099,8,#20001,16,";")
|
||||
#20100=@"loc,{#10000},1,38,1,38"
|
||||
locations_default(#20100,#10000,1,38,1,38)
|
||||
hasLocation(#20099,#20100)
|
||||
#20101=*
|
||||
tokeninfo(#20101,6,#20001,17,"setInterval")
|
||||
hasLocation(#20101,#20036)
|
||||
stmts(#20099,2,#20001,0,"[""a"", "" ... ength);")
|
||||
hasLocation(#20099,#20003)
|
||||
stmtContainers(#20099,#20001)
|
||||
#20100=*
|
||||
exprs(#20100,13,#20099,0,"[""a"", "" ... length)")
|
||||
#20101=@"loc,{#10000},1,1,1,37"
|
||||
locations_default(#20101,#10000,1,1,1,37)
|
||||
hasLocation(#20100,#20101)
|
||||
enclosingStmt(#20100,#20099)
|
||||
exprContainers(#20100,#20001)
|
||||
#20102=*
|
||||
tokeninfo(#20102,8,#20001,18,"(")
|
||||
#20103=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20103,#10000,2,12,2,12)
|
||||
exprs(#20102,14,#20100,-1,"[""a"", "" ... c""].map")
|
||||
#20103=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20103,#10000,1,1,1,22)
|
||||
hasLocation(#20102,#20103)
|
||||
enclosingStmt(#20102,#20099)
|
||||
exprContainers(#20102,#20001)
|
||||
#20104=*
|
||||
tokeninfo(#20104,8,#20001,19,"(")
|
||||
#20105=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20105,#10000,2,13,2,13)
|
||||
exprs(#20104,7,#20102,0,"[""a"", ""ab"", ""abc""]")
|
||||
#20105=@"loc,{#10000},1,1,1,18"
|
||||
locations_default(#20105,#10000,1,1,1,18)
|
||||
hasLocation(#20104,#20105)
|
||||
enclosingStmt(#20104,#20099)
|
||||
exprContainers(#20104,#20001)
|
||||
#20106=*
|
||||
tokeninfo(#20106,8,#20001,20,")")
|
||||
#20107=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20107,#10000,2,14,2,14)
|
||||
hasLocation(#20106,#20107)
|
||||
exprs(#20106,4,#20104,0,"""a""")
|
||||
hasLocation(#20106,#20011)
|
||||
enclosingStmt(#20106,#20099)
|
||||
exprContainers(#20106,#20001)
|
||||
literals("a","""a""",#20106)
|
||||
#20107=*
|
||||
exprs(#20107,4,#20104,1,"""ab""")
|
||||
hasLocation(#20107,#20015)
|
||||
enclosingStmt(#20107,#20099)
|
||||
exprContainers(#20107,#20001)
|
||||
literals("ab","""ab""",#20107)
|
||||
#20108=*
|
||||
tokeninfo(#20108,8,#20001,21,"=>")
|
||||
#20109=@"loc,{#10000},2,16,2,17"
|
||||
locations_default(#20109,#10000,2,16,2,17)
|
||||
hasLocation(#20108,#20109)
|
||||
exprs(#20108,4,#20104,2,"""abc""")
|
||||
hasLocation(#20108,#20019)
|
||||
enclosingStmt(#20108,#20099)
|
||||
exprContainers(#20108,#20001)
|
||||
literals("abc","""abc""",#20108)
|
||||
arraySize(#20104,3)
|
||||
#20109=*
|
||||
exprs(#20109,0,#20102,1,"map")
|
||||
hasLocation(#20109,#20025)
|
||||
enclosingStmt(#20109,#20099)
|
||||
exprContainers(#20109,#20001)
|
||||
literals("map","map",#20109)
|
||||
#20110=*
|
||||
tokeninfo(#20110,8,#20001,22,"++")
|
||||
#20111=@"loc,{#10000},2,19,2,20"
|
||||
locations_default(#20111,#10000,2,19,2,20)
|
||||
exprs(#20110,65,#20100,0,"s => s.length")
|
||||
#20111=@"loc,{#10000},1,24,1,36"
|
||||
locations_default(#20111,#10000,1,24,1,36)
|
||||
hasLocation(#20110,#20111)
|
||||
enclosingStmt(#20110,#20099)
|
||||
exprContainers(#20110,#20001)
|
||||
#20112=*
|
||||
tokeninfo(#20112,6,#20001,23,"cnt")
|
||||
hasLocation(#20112,#20044)
|
||||
#20113=*
|
||||
tokeninfo(#20113,8,#20001,24,",")
|
||||
#20114=@"loc,{#10000},2,24,2,24"
|
||||
locations_default(#20114,#10000,2,24,2,24)
|
||||
hasLocation(#20113,#20114)
|
||||
scopes(#20112,1)
|
||||
scopenodes(#20110,#20112)
|
||||
scopenesting(#20112,#20000)
|
||||
#20113=@"var;{s};{#20112}"
|
||||
variables(#20113,"s",#20112)
|
||||
#20114=*
|
||||
exprs(#20114,78,#20110,0,"s")
|
||||
hasLocation(#20114,#20029)
|
||||
exprContainers(#20114,#20110)
|
||||
literals("s","s",#20114)
|
||||
decl(#20114,#20113)
|
||||
#20115=*
|
||||
tokeninfo(#20115,3,#20001,25,"1000")
|
||||
hasLocation(#20115,#20047)
|
||||
#20116=*
|
||||
tokeninfo(#20116,8,#20001,26,")")
|
||||
#20117=@"loc,{#10000},2,30,2,30"
|
||||
locations_default(#20117,#10000,2,30,2,30)
|
||||
hasLocation(#20116,#20117)
|
||||
exprs(#20115,14,#20110,-2,"s.length")
|
||||
#20116=@"loc,{#10000},1,29,1,36"
|
||||
locations_default(#20116,#10000,1,29,1,36)
|
||||
hasLocation(#20115,#20116)
|
||||
exprContainers(#20115,#20110)
|
||||
#20117=*
|
||||
exprs(#20117,79,#20115,0,"s")
|
||||
hasLocation(#20117,#20033)
|
||||
exprContainers(#20117,#20110)
|
||||
literals("s","s",#20117)
|
||||
bind(#20117,#20113)
|
||||
#20118=*
|
||||
tokeninfo(#20118,8,#20001,27,";")
|
||||
#20119=@"loc,{#10000},2,31,2,31"
|
||||
locations_default(#20119,#10000,2,31,2,31)
|
||||
hasLocation(#20118,#20119)
|
||||
exprs(#20118,0,#20115,1,"length")
|
||||
hasLocation(#20118,#20037)
|
||||
exprContainers(#20118,#20110)
|
||||
literals("length","length",#20118)
|
||||
#20119=*
|
||||
stmts(#20119,2,#20001,1,"setInte ... 1000);")
|
||||
hasLocation(#20119,#20005)
|
||||
stmtContainers(#20119,#20001)
|
||||
#20120=*
|
||||
tokeninfo(#20120,6,#20001,28,"setTimeout")
|
||||
hasLocation(#20120,#20053)
|
||||
#20121=*
|
||||
tokeninfo(#20121,8,#20001,29,"(")
|
||||
#20122=@"loc,{#10000},3,11,3,11"
|
||||
locations_default(#20122,#10000,3,11,3,11)
|
||||
hasLocation(#20121,#20122)
|
||||
#20123=*
|
||||
tokeninfo(#20123,8,#20001,30,"(")
|
||||
#20124=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20124,#10000,3,12,3,12)
|
||||
hasLocation(#20123,#20124)
|
||||
#20125=*
|
||||
tokeninfo(#20125,8,#20001,31,")")
|
||||
#20126=@"loc,{#10000},3,13,3,13"
|
||||
locations_default(#20126,#10000,3,13,3,13)
|
||||
hasLocation(#20125,#20126)
|
||||
exprs(#20120,13,#20119,0,"setInte ... , 1000)")
|
||||
#20121=@"loc,{#10000},2,1,2,30"
|
||||
locations_default(#20121,#10000,2,1,2,30)
|
||||
hasLocation(#20120,#20121)
|
||||
enclosingStmt(#20120,#20119)
|
||||
exprContainers(#20120,#20001)
|
||||
#20122=*
|
||||
exprs(#20122,79,#20120,-1,"setInterval")
|
||||
hasLocation(#20122,#20043)
|
||||
enclosingStmt(#20122,#20119)
|
||||
exprContainers(#20122,#20001)
|
||||
literals("setInterval","setInterval",#20122)
|
||||
#20123=@"var;{setInterval};{#20000}"
|
||||
variables(#20123,"setInterval",#20000)
|
||||
bind(#20122,#20123)
|
||||
#20124=*
|
||||
exprs(#20124,65,#20120,0,"() => ++cnt")
|
||||
#20125=@"loc,{#10000},2,13,2,23"
|
||||
locations_default(#20125,#10000,2,13,2,23)
|
||||
hasLocation(#20124,#20125)
|
||||
enclosingStmt(#20124,#20119)
|
||||
exprContainers(#20124,#20001)
|
||||
#20126=*
|
||||
scopes(#20126,1)
|
||||
scopenodes(#20124,#20126)
|
||||
scopenesting(#20126,#20000)
|
||||
#20127=*
|
||||
tokeninfo(#20127,8,#20001,32,"=>")
|
||||
#20128=@"loc,{#10000},3,15,3,16"
|
||||
locations_default(#20128,#10000,3,15,3,16)
|
||||
exprs(#20127,59,#20124,-2,"++cnt")
|
||||
#20128=@"loc,{#10000},2,19,2,23"
|
||||
locations_default(#20128,#10000,2,19,2,23)
|
||||
hasLocation(#20127,#20128)
|
||||
exprContainers(#20127,#20124)
|
||||
#20129=*
|
||||
tokeninfo(#20129,8,#20001,33,"{")
|
||||
#20130=@"loc,{#10000},3,18,3,18"
|
||||
locations_default(#20130,#10000,3,18,3,18)
|
||||
hasLocation(#20129,#20130)
|
||||
exprs(#20129,79,#20127,0,"cnt")
|
||||
hasLocation(#20129,#20055)
|
||||
exprContainers(#20129,#20124)
|
||||
literals("cnt","cnt",#20129)
|
||||
#20130=@"var;{cnt};{#20000}"
|
||||
variables(#20130,"cnt",#20000)
|
||||
bind(#20129,#20130)
|
||||
#20131=*
|
||||
tokeninfo(#20131,6,#20001,34,"alert")
|
||||
hasLocation(#20131,#20065)
|
||||
exprs(#20131,3,#20120,1,"1000")
|
||||
hasLocation(#20131,#20059)
|
||||
enclosingStmt(#20131,#20119)
|
||||
exprContainers(#20131,#20001)
|
||||
literals("1000","1000",#20131)
|
||||
#20132=*
|
||||
tokeninfo(#20132,8,#20001,35,"(")
|
||||
#20133=@"loc,{#10000},3,25,3,25"
|
||||
locations_default(#20133,#10000,3,25,3,25)
|
||||
hasLocation(#20132,#20133)
|
||||
#20134=*
|
||||
tokeninfo(#20134,4,#20001,36,"""Wake up!""")
|
||||
hasLocation(#20134,#20068)
|
||||
stmts(#20132,2,#20001,2,"setTime ... 60000);")
|
||||
hasLocation(#20132,#20007)
|
||||
stmtContainers(#20132,#20001)
|
||||
#20133=*
|
||||
exprs(#20133,13,#20132,0,"setTime ... 60000)")
|
||||
#20134=@"loc,{#10000},3,1,3,47"
|
||||
locations_default(#20134,#10000,3,1,3,47)
|
||||
hasLocation(#20133,#20134)
|
||||
enclosingStmt(#20133,#20132)
|
||||
exprContainers(#20133,#20001)
|
||||
#20135=*
|
||||
tokeninfo(#20135,8,#20001,37,")")
|
||||
#20136=@"loc,{#10000},3,36,3,36"
|
||||
locations_default(#20136,#10000,3,36,3,36)
|
||||
hasLocation(#20135,#20136)
|
||||
exprs(#20135,79,#20133,-1,"setTimeout")
|
||||
hasLocation(#20135,#20065)
|
||||
enclosingStmt(#20135,#20132)
|
||||
exprContainers(#20135,#20001)
|
||||
literals("setTimeout","setTimeout",#20135)
|
||||
#20136=@"var;{setTimeout};{#20000}"
|
||||
variables(#20136,"setTimeout",#20000)
|
||||
bind(#20135,#20136)
|
||||
#20137=*
|
||||
tokeninfo(#20137,8,#20001,38,";")
|
||||
#20138=@"loc,{#10000},3,37,3,37"
|
||||
locations_default(#20138,#10000,3,37,3,37)
|
||||
exprs(#20137,65,#20133,0,"() => { ... p!""); }")
|
||||
#20138=@"loc,{#10000},3,12,3,39"
|
||||
locations_default(#20138,#10000,3,12,3,39)
|
||||
hasLocation(#20137,#20138)
|
||||
enclosingStmt(#20137,#20132)
|
||||
exprContainers(#20137,#20001)
|
||||
#20139=*
|
||||
tokeninfo(#20139,8,#20001,39,"}")
|
||||
#20140=@"loc,{#10000},3,39,3,39"
|
||||
locations_default(#20140,#10000,3,39,3,39)
|
||||
hasLocation(#20139,#20140)
|
||||
#20141=*
|
||||
tokeninfo(#20141,8,#20001,40,",")
|
||||
#20142=@"loc,{#10000},3,40,3,40"
|
||||
locations_default(#20142,#10000,3,40,3,40)
|
||||
hasLocation(#20141,#20142)
|
||||
#20143=*
|
||||
tokeninfo(#20143,3,#20001,41,"60000")
|
||||
hasLocation(#20143,#20070)
|
||||
scopes(#20139,1)
|
||||
scopenodes(#20137,#20139)
|
||||
scopenesting(#20139,#20000)
|
||||
#20140=*
|
||||
stmts(#20140,1,#20137,-2,"{ alert ... p!""); }")
|
||||
#20141=@"loc,{#10000},3,18,3,39"
|
||||
locations_default(#20141,#10000,3,18,3,39)
|
||||
hasLocation(#20140,#20141)
|
||||
stmtContainers(#20140,#20137)
|
||||
#20142=*
|
||||
stmts(#20142,2,#20140,0,"alert(""Wake up!"");")
|
||||
#20143=@"loc,{#10000},3,20,3,37"
|
||||
locations_default(#20143,#10000,3,20,3,37)
|
||||
hasLocation(#20142,#20143)
|
||||
stmtContainers(#20142,#20137)
|
||||
#20144=*
|
||||
tokeninfo(#20144,8,#20001,42,")")
|
||||
#20145=@"loc,{#10000},3,47,3,47"
|
||||
locations_default(#20145,#10000,3,47,3,47)
|
||||
exprs(#20144,13,#20142,0,"alert(""Wake up!"")")
|
||||
#20145=@"loc,{#10000},3,20,3,36"
|
||||
locations_default(#20145,#10000,3,20,3,36)
|
||||
hasLocation(#20144,#20145)
|
||||
enclosingStmt(#20144,#20142)
|
||||
exprContainers(#20144,#20137)
|
||||
#20146=*
|
||||
tokeninfo(#20146,8,#20001,43,";")
|
||||
#20147=@"loc,{#10000},3,48,3,48"
|
||||
locations_default(#20147,#10000,3,48,3,48)
|
||||
hasLocation(#20146,#20147)
|
||||
exprs(#20146,79,#20144,-1,"alert")
|
||||
hasLocation(#20146,#20077)
|
||||
enclosingStmt(#20146,#20142)
|
||||
exprContainers(#20146,#20137)
|
||||
literals("alert","alert",#20146)
|
||||
#20147=@"var;{alert};{#20000}"
|
||||
variables(#20147,"alert",#20000)
|
||||
bind(#20146,#20147)
|
||||
#20148=*
|
||||
tokeninfo(#20148,0,#20001,44,"")
|
||||
#20149=@"loc,{#10000},3,49,3,48"
|
||||
locations_default(#20149,#10000,3,49,3,48)
|
||||
hasLocation(#20148,#20149)
|
||||
exprs(#20148,4,#20144,0,"""Wake up!""")
|
||||
hasLocation(#20148,#20081)
|
||||
enclosingStmt(#20148,#20142)
|
||||
exprContainers(#20148,#20137)
|
||||
literals("Wake up!","""Wake up!""",#20148)
|
||||
#20149=*
|
||||
exprs(#20149,3,#20133,1,"60000")
|
||||
hasLocation(#20149,#20091)
|
||||
enclosingStmt(#20149,#20132)
|
||||
exprContainers(#20149,#20001)
|
||||
literals("60000","60000",#20149)
|
||||
#20150=*
|
||||
entry_cfg_node(#20150,#20001)
|
||||
#20151=@"loc,{#10000},1,1,1,0"
|
||||
@@ -474,70 +471,70 @@ locations_default(#20151,#10000,1,1,1,0)
|
||||
hasLocation(#20150,#20151)
|
||||
#20152=*
|
||||
exit_cfg_node(#20152,#20001)
|
||||
hasLocation(#20152,#20149)
|
||||
successor(#20048,#20052)
|
||||
successor(#20069,#20050)
|
||||
successor(#20055,#20069)
|
||||
hasLocation(#20152,#20097)
|
||||
successor(#20132,#20135)
|
||||
successor(#20149,#20133)
|
||||
successor(#20137,#20149)
|
||||
#20153=*
|
||||
entry_cfg_node(#20153,#20055)
|
||||
entry_cfg_node(#20153,#20137)
|
||||
#20154=@"loc,{#10000},3,12,3,11"
|
||||
locations_default(#20154,#10000,3,12,3,11)
|
||||
hasLocation(#20153,#20154)
|
||||
#20155=*
|
||||
exit_cfg_node(#20155,#20055)
|
||||
exit_cfg_node(#20155,#20137)
|
||||
#20156=@"loc,{#10000},3,40,3,39"
|
||||
locations_default(#20156,#10000,3,40,3,39)
|
||||
hasLocation(#20155,#20156)
|
||||
successor(#20058,#20060)
|
||||
successor(#20060,#20064)
|
||||
successor(#20067,#20062)
|
||||
successor(#20064,#20067)
|
||||
successor(#20062,#20155)
|
||||
successor(#20153,#20058)
|
||||
successor(#20052,#20055)
|
||||
successor(#20050,#20152)
|
||||
successor(#20031,#20035)
|
||||
successor(#20046,#20033)
|
||||
successor(#20038,#20046)
|
||||
successor(#20140,#20142)
|
||||
successor(#20142,#20146)
|
||||
successor(#20148,#20144)
|
||||
successor(#20146,#20148)
|
||||
successor(#20144,#20155)
|
||||
successor(#20153,#20140)
|
||||
successor(#20135,#20137)
|
||||
successor(#20133,#20152)
|
||||
successor(#20119,#20122)
|
||||
successor(#20131,#20120)
|
||||
successor(#20124,#20131)
|
||||
#20157=*
|
||||
entry_cfg_node(#20157,#20038)
|
||||
entry_cfg_node(#20157,#20124)
|
||||
#20158=@"loc,{#10000},2,13,2,12"
|
||||
locations_default(#20158,#10000,2,13,2,12)
|
||||
hasLocation(#20157,#20158)
|
||||
#20159=*
|
||||
exit_cfg_node(#20159,#20038)
|
||||
exit_cfg_node(#20159,#20124)
|
||||
#20160=@"loc,{#10000},2,24,2,23"
|
||||
locations_default(#20160,#10000,2,24,2,23)
|
||||
hasLocation(#20159,#20160)
|
||||
successor(#20043,#20041)
|
||||
successor(#20041,#20159)
|
||||
successor(#20157,#20043)
|
||||
successor(#20035,#20038)
|
||||
successor(#20033,#20048)
|
||||
successor(#20003,#20009)
|
||||
successor(#20019,#20005)
|
||||
successor(#20129,#20127)
|
||||
successor(#20127,#20159)
|
||||
successor(#20157,#20129)
|
||||
successor(#20122,#20124)
|
||||
successor(#20120,#20132)
|
||||
successor(#20099,#20104)
|
||||
successor(#20110,#20100)
|
||||
#20161=*
|
||||
entry_cfg_node(#20161,#20019)
|
||||
entry_cfg_node(#20161,#20110)
|
||||
#20162=@"loc,{#10000},1,24,1,23"
|
||||
locations_default(#20162,#10000,1,24,1,23)
|
||||
hasLocation(#20161,#20162)
|
||||
#20163=*
|
||||
exit_cfg_node(#20163,#20019)
|
||||
exit_cfg_node(#20163,#20110)
|
||||
#20164=@"loc,{#10000},1,37,1,36"
|
||||
locations_default(#20164,#10000,1,37,1,36)
|
||||
hasLocation(#20163,#20164)
|
||||
successor(#20029,#20025)
|
||||
successor(#20027,#20029)
|
||||
successor(#20025,#20163)
|
||||
successor(#20023,#20027)
|
||||
successor(#20161,#20023)
|
||||
successor(#20017,#20007)
|
||||
successor(#20009,#20011)
|
||||
successor(#20015,#20017)
|
||||
successor(#20013,#20015)
|
||||
successor(#20011,#20013)
|
||||
successor(#20007,#20019)
|
||||
successor(#20005,#20031)
|
||||
successor(#20150,#20003)
|
||||
successor(#20118,#20115)
|
||||
successor(#20117,#20118)
|
||||
successor(#20115,#20163)
|
||||
successor(#20114,#20117)
|
||||
successor(#20161,#20114)
|
||||
successor(#20109,#20102)
|
||||
successor(#20104,#20106)
|
||||
successor(#20108,#20109)
|
||||
successor(#20107,#20108)
|
||||
successor(#20106,#20107)
|
||||
successor(#20102,#20110)
|
||||
successor(#20100,#20119)
|
||||
successor(#20150,#20099)
|
||||
numlines(#10000,3,3,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,404 +9,401 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,8,1"
|
||||
locations_default(#20002,#10000,1,1,8,1)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{A};{#20000}"
|
||||
variables(#20003,"A",#20000)
|
||||
#20004=@"local_type_name;{A};{#20000}"
|
||||
local_type_names(#20004,"A",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,26,#20001,0,"class A ... ;\n }\n}")
|
||||
hasLocation(#20005,#20002)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"class A {","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20003,#10000,1,1,1,9)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001," get x() {","
|
||||
")
|
||||
#20005=@"loc,{#10000},2,1,2,11"
|
||||
locations_default(#20005,#10000,2,1,2,11)
|
||||
hasLocation(#20004,#20005)
|
||||
indentation(#10000,2," ",2)
|
||||
#20006=*
|
||||
exprs(#20006,78,#20005,0,"A")
|
||||
#20007=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20007,#10000,1,7,1,7)
|
||||
lines(#20006,#20001," return this._x;","
|
||||
")
|
||||
#20007=@"loc,{#10000},3,1,3,19"
|
||||
locations_default(#20007,#10000,3,1,3,19)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20005)
|
||||
exprContainers(#20006,#20001)
|
||||
literals("A","A",#20006)
|
||||
decl(#20006,#20003)
|
||||
typedecl(#20006,#20004)
|
||||
indentation(#10000,3," ",4)
|
||||
#20008=*
|
||||
scopes(#20008,10)
|
||||
scopenodes(#20005,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=*
|
||||
properties(#20009,#20005,2,1,"get x() ... _x;\n }")
|
||||
#20010=@"loc,{#10000},2,3,4,3"
|
||||
locations_default(#20010,#10000,2,3,4,3)
|
||||
hasLocation(#20009,#20010)
|
||||
#20011=*
|
||||
exprs(#20011,0,#20009,0,"x")
|
||||
#20012=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20012,#10000,2,7,2,7)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20005)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("x","x",#20011)
|
||||
#20013=*
|
||||
exprs(#20013,9,#20009,1,"() {\n ... _x;\n }")
|
||||
#20014=@"loc,{#10000},2,8,4,3"
|
||||
locations_default(#20014,#10000,2,8,4,3)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20005)
|
||||
exprContainers(#20013,#20001)
|
||||
#20015=*
|
||||
scopes(#20015,1)
|
||||
scopenodes(#20013,#20015)
|
||||
scopenesting(#20015,#20008)
|
||||
#20016=@"var;{arguments};{#20015}"
|
||||
variables(#20016,"arguments",#20015)
|
||||
isArgumentsObject(#20016)
|
||||
#20017=*
|
||||
stmts(#20017,1,#20013,-2,"{\n r ... _x;\n }")
|
||||
#20018=@"loc,{#10000},2,11,4,3"
|
||||
locations_default(#20018,#10000,2,11,4,3)
|
||||
hasLocation(#20017,#20018)
|
||||
stmtContainers(#20017,#20013)
|
||||
#20019=*
|
||||
stmts(#20019,9,#20017,0,"return this._x;")
|
||||
#20020=@"loc,{#10000},3,5,3,19"
|
||||
locations_default(#20020,#10000,3,5,3,19)
|
||||
hasLocation(#20019,#20020)
|
||||
stmtContainers(#20019,#20013)
|
||||
#20021=*
|
||||
exprs(#20021,14,#20019,0,"this._x")
|
||||
#20022=@"loc,{#10000},3,12,3,18"
|
||||
locations_default(#20022,#10000,3,12,3,18)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20019)
|
||||
exprContainers(#20021,#20013)
|
||||
#20023=*
|
||||
exprs(#20023,6,#20021,0,"this")
|
||||
#20024=@"loc,{#10000},3,12,3,15"
|
||||
locations_default(#20024,#10000,3,12,3,15)
|
||||
hasLocation(#20023,#20024)
|
||||
enclosingStmt(#20023,#20019)
|
||||
exprContainers(#20023,#20013)
|
||||
#20025=*
|
||||
exprs(#20025,0,#20021,1,"_x")
|
||||
#20026=@"loc,{#10000},3,17,3,18"
|
||||
locations_default(#20026,#10000,3,17,3,18)
|
||||
hasLocation(#20025,#20026)
|
||||
enclosingStmt(#20025,#20019)
|
||||
exprContainers(#20025,#20013)
|
||||
literals("_x","_x",#20025)
|
||||
numlines(#20013,3,3,0)
|
||||
isMethod(#20009)
|
||||
#20027=*
|
||||
properties(#20027,#20005,3,2,"set x(v ... +v;\n }")
|
||||
#20028=@"loc,{#10000},5,3,7,3"
|
||||
locations_default(#20028,#10000,5,3,7,3)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
exprs(#20029,0,#20027,0,"x")
|
||||
#20030=@"loc,{#10000},5,7,5,7"
|
||||
locations_default(#20030,#10000,5,7,5,7)
|
||||
hasLocation(#20029,#20030)
|
||||
enclosingStmt(#20029,#20005)
|
||||
exprContainers(#20029,#20001)
|
||||
literals("x","x",#20029)
|
||||
#20031=*
|
||||
exprs(#20031,9,#20027,1,"(v) {\n ... +v;\n }")
|
||||
#20032=@"loc,{#10000},5,8,7,3"
|
||||
locations_default(#20032,#10000,5,8,7,3)
|
||||
hasLocation(#20031,#20032)
|
||||
enclosingStmt(#20031,#20005)
|
||||
exprContainers(#20031,#20001)
|
||||
#20033=*
|
||||
scopes(#20033,1)
|
||||
scopenodes(#20031,#20033)
|
||||
scopenesting(#20033,#20008)
|
||||
#20034=@"var;{v};{#20033}"
|
||||
variables(#20034,"v",#20033)
|
||||
#20035=*
|
||||
exprs(#20035,78,#20031,0,"v")
|
||||
#20036=@"loc,{#10000},5,9,5,9"
|
||||
locations_default(#20036,#10000,5,9,5,9)
|
||||
hasLocation(#20035,#20036)
|
||||
exprContainers(#20035,#20031)
|
||||
literals("v","v",#20035)
|
||||
decl(#20035,#20034)
|
||||
#20037=@"var;{arguments};{#20033}"
|
||||
variables(#20037,"arguments",#20033)
|
||||
isArgumentsObject(#20037)
|
||||
lines(#20008,#20001," }","
|
||||
")
|
||||
#20009=@"loc,{#10000},4,1,4,3"
|
||||
locations_default(#20009,#10000,4,1,4,3)
|
||||
hasLocation(#20008,#20009)
|
||||
indentation(#10000,4," ",2)
|
||||
#20010=*
|
||||
lines(#20010,#20001," set x(v) {","
|
||||
")
|
||||
#20011=@"loc,{#10000},5,1,5,12"
|
||||
locations_default(#20011,#10000,5,1,5,12)
|
||||
hasLocation(#20010,#20011)
|
||||
indentation(#10000,5," ",2)
|
||||
#20012=*
|
||||
lines(#20012,#20001," this._x = +v;","
|
||||
")
|
||||
#20013=@"loc,{#10000},6,1,6,17"
|
||||
locations_default(#20013,#10000,6,1,6,17)
|
||||
hasLocation(#20012,#20013)
|
||||
indentation(#10000,6," ",4)
|
||||
#20014=*
|
||||
lines(#20014,#20001," }","
|
||||
")
|
||||
#20015=@"loc,{#10000},7,1,7,3"
|
||||
locations_default(#20015,#10000,7,1,7,3)
|
||||
hasLocation(#20014,#20015)
|
||||
indentation(#10000,7," ",2)
|
||||
#20016=*
|
||||
lines(#20016,#20001,"}","")
|
||||
#20017=@"loc,{#10000},8,1,8,1"
|
||||
locations_default(#20017,#10000,8,1,8,1)
|
||||
hasLocation(#20016,#20017)
|
||||
numlines(#20001,8,8,0)
|
||||
#20018=*
|
||||
tokeninfo(#20018,7,#20001,0,"class")
|
||||
#20019=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20019,#10000,1,1,1,5)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,6,#20001,1,"A")
|
||||
#20021=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20021,#10000,1,7,1,7)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,2,"{")
|
||||
#20023=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20023,#10000,1,9,1,9)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,3,"get")
|
||||
#20025=@"loc,{#10000},2,3,2,5"
|
||||
locations_default(#20025,#10000,2,3,2,5)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,6,#20001,4,"x")
|
||||
#20027=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20027,#10000,2,7,2,7)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,5,"(")
|
||||
#20029=@"loc,{#10000},2,8,2,8"
|
||||
locations_default(#20029,#10000,2,8,2,8)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,6,")")
|
||||
#20031=@"loc,{#10000},2,9,2,9"
|
||||
locations_default(#20031,#10000,2,9,2,9)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,8,#20001,7,"{")
|
||||
#20033=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20033,#10000,2,11,2,11)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,7,#20001,8,"return")
|
||||
#20035=@"loc,{#10000},3,5,3,10"
|
||||
locations_default(#20035,#10000,3,5,3,10)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,7,#20001,9,"this")
|
||||
#20037=@"loc,{#10000},3,12,3,15"
|
||||
locations_default(#20037,#10000,3,12,3,15)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
stmts(#20038,1,#20031,-2,"{\n t ... +v;\n }")
|
||||
#20039=@"loc,{#10000},5,12,7,3"
|
||||
locations_default(#20039,#10000,5,12,7,3)
|
||||
tokeninfo(#20038,8,#20001,10,".")
|
||||
#20039=@"loc,{#10000},3,16,3,16"
|
||||
locations_default(#20039,#10000,3,16,3,16)
|
||||
hasLocation(#20038,#20039)
|
||||
stmtContainers(#20038,#20031)
|
||||
#20040=*
|
||||
stmts(#20040,2,#20038,0,"this._x = +v;")
|
||||
#20041=@"loc,{#10000},6,5,6,17"
|
||||
locations_default(#20041,#10000,6,5,6,17)
|
||||
tokeninfo(#20040,6,#20001,11,"_x")
|
||||
#20041=@"loc,{#10000},3,17,3,18"
|
||||
locations_default(#20041,#10000,3,17,3,18)
|
||||
hasLocation(#20040,#20041)
|
||||
stmtContainers(#20040,#20031)
|
||||
#20042=*
|
||||
exprs(#20042,47,#20040,0,"this._x = +v")
|
||||
#20043=@"loc,{#10000},6,5,6,16"
|
||||
locations_default(#20043,#10000,6,5,6,16)
|
||||
tokeninfo(#20042,8,#20001,12,";")
|
||||
#20043=@"loc,{#10000},3,19,3,19"
|
||||
locations_default(#20043,#10000,3,19,3,19)
|
||||
hasLocation(#20042,#20043)
|
||||
enclosingStmt(#20042,#20040)
|
||||
exprContainers(#20042,#20031)
|
||||
#20044=*
|
||||
exprs(#20044,14,#20042,0,"this._x")
|
||||
#20045=@"loc,{#10000},6,5,6,11"
|
||||
locations_default(#20045,#10000,6,5,6,11)
|
||||
tokeninfo(#20044,8,#20001,13,"}")
|
||||
#20045=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20045,#10000,4,3,4,3)
|
||||
hasLocation(#20044,#20045)
|
||||
enclosingStmt(#20044,#20040)
|
||||
exprContainers(#20044,#20031)
|
||||
#20046=*
|
||||
exprs(#20046,6,#20044,0,"this")
|
||||
#20047=@"loc,{#10000},6,5,6,8"
|
||||
locations_default(#20047,#10000,6,5,6,8)
|
||||
tokeninfo(#20046,6,#20001,14,"set")
|
||||
#20047=@"loc,{#10000},5,3,5,5"
|
||||
locations_default(#20047,#10000,5,3,5,5)
|
||||
hasLocation(#20046,#20047)
|
||||
enclosingStmt(#20046,#20040)
|
||||
exprContainers(#20046,#20031)
|
||||
#20048=*
|
||||
exprs(#20048,0,#20044,1,"_x")
|
||||
#20049=@"loc,{#10000},6,10,6,11"
|
||||
locations_default(#20049,#10000,6,10,6,11)
|
||||
tokeninfo(#20048,6,#20001,15,"x")
|
||||
#20049=@"loc,{#10000},5,7,5,7"
|
||||
locations_default(#20049,#10000,5,7,5,7)
|
||||
hasLocation(#20048,#20049)
|
||||
enclosingStmt(#20048,#20040)
|
||||
exprContainers(#20048,#20031)
|
||||
literals("_x","_x",#20048)
|
||||
#20050=*
|
||||
exprs(#20050,17,#20042,1,"+v")
|
||||
#20051=@"loc,{#10000},6,15,6,16"
|
||||
locations_default(#20051,#10000,6,15,6,16)
|
||||
tokeninfo(#20050,8,#20001,16,"(")
|
||||
#20051=@"loc,{#10000},5,8,5,8"
|
||||
locations_default(#20051,#10000,5,8,5,8)
|
||||
hasLocation(#20050,#20051)
|
||||
enclosingStmt(#20050,#20040)
|
||||
exprContainers(#20050,#20031)
|
||||
#20052=*
|
||||
exprs(#20052,79,#20050,0,"v")
|
||||
#20053=@"loc,{#10000},6,16,6,16"
|
||||
locations_default(#20053,#10000,6,16,6,16)
|
||||
tokeninfo(#20052,6,#20001,17,"v")
|
||||
#20053=@"loc,{#10000},5,9,5,9"
|
||||
locations_default(#20053,#10000,5,9,5,9)
|
||||
hasLocation(#20052,#20053)
|
||||
enclosingStmt(#20052,#20040)
|
||||
exprContainers(#20052,#20031)
|
||||
literals("v","v",#20052)
|
||||
bind(#20052,#20034)
|
||||
numlines(#20031,3,3,0)
|
||||
isMethod(#20027)
|
||||
#20054=*
|
||||
properties(#20054,#20005,4,0,"constructor() {}")
|
||||
#20055=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20055,#10000,1,9,1,8)
|
||||
tokeninfo(#20054,8,#20001,18,")")
|
||||
#20055=@"loc,{#10000},5,10,5,10"
|
||||
locations_default(#20055,#10000,5,10,5,10)
|
||||
hasLocation(#20054,#20055)
|
||||
#20056=*
|
||||
exprs(#20056,0,#20054,0,"constructor")
|
||||
hasLocation(#20056,#20055)
|
||||
enclosingStmt(#20056,#20005)
|
||||
exprContainers(#20056,#20001)
|
||||
literals("constructor","constructor",#20056)
|
||||
#20057=*
|
||||
exprs(#20057,9,#20054,1,"() {}")
|
||||
hasLocation(#20057,#20055)
|
||||
enclosingStmt(#20057,#20005)
|
||||
exprContainers(#20057,#20001)
|
||||
tokeninfo(#20056,8,#20001,19,"{")
|
||||
#20057=@"loc,{#10000},5,12,5,12"
|
||||
locations_default(#20057,#10000,5,12,5,12)
|
||||
hasLocation(#20056,#20057)
|
||||
#20058=*
|
||||
scopes(#20058,1)
|
||||
scopenodes(#20057,#20058)
|
||||
scopenesting(#20058,#20008)
|
||||
#20059=@"var;{arguments};{#20058}"
|
||||
variables(#20059,"arguments",#20058)
|
||||
isArgumentsObject(#20059)
|
||||
tokeninfo(#20058,7,#20001,20,"this")
|
||||
#20059=@"loc,{#10000},6,5,6,8"
|
||||
locations_default(#20059,#10000,6,5,6,8)
|
||||
hasLocation(#20058,#20059)
|
||||
#20060=*
|
||||
stmts(#20060,1,#20057,-2,"{}")
|
||||
hasLocation(#20060,#20055)
|
||||
stmtContainers(#20060,#20057)
|
||||
numlines(#20057,1,0,0)
|
||||
isMethod(#20054)
|
||||
#20061=*
|
||||
lines(#20061,#20001,"class A {","
|
||||
")
|
||||
#20062=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20062,#10000,1,1,1,9)
|
||||
hasLocation(#20061,#20062)
|
||||
#20063=*
|
||||
lines(#20063,#20001," get x() {","
|
||||
")
|
||||
#20064=@"loc,{#10000},2,1,2,11"
|
||||
locations_default(#20064,#10000,2,1,2,11)
|
||||
hasLocation(#20063,#20064)
|
||||
indentation(#10000,2," ",2)
|
||||
#20065=*
|
||||
lines(#20065,#20001," return this._x;","
|
||||
")
|
||||
#20066=@"loc,{#10000},3,1,3,19"
|
||||
locations_default(#20066,#10000,3,1,3,19)
|
||||
hasLocation(#20065,#20066)
|
||||
indentation(#10000,3," ",4)
|
||||
#20067=*
|
||||
lines(#20067,#20001," }","
|
||||
")
|
||||
#20068=@"loc,{#10000},4,1,4,3"
|
||||
locations_default(#20068,#10000,4,1,4,3)
|
||||
hasLocation(#20067,#20068)
|
||||
indentation(#10000,4," ",2)
|
||||
#20069=*
|
||||
lines(#20069,#20001," set x(v) {","
|
||||
")
|
||||
#20070=@"loc,{#10000},5,1,5,12"
|
||||
locations_default(#20070,#10000,5,1,5,12)
|
||||
hasLocation(#20069,#20070)
|
||||
indentation(#10000,5," ",2)
|
||||
#20071=*
|
||||
lines(#20071,#20001," this._x = +v;","
|
||||
")
|
||||
#20072=@"loc,{#10000},6,1,6,17"
|
||||
locations_default(#20072,#10000,6,1,6,17)
|
||||
hasLocation(#20071,#20072)
|
||||
indentation(#10000,6," ",4)
|
||||
#20073=*
|
||||
lines(#20073,#20001," }","
|
||||
")
|
||||
#20074=@"loc,{#10000},7,1,7,3"
|
||||
locations_default(#20074,#10000,7,1,7,3)
|
||||
hasLocation(#20073,#20074)
|
||||
indentation(#10000,7," ",2)
|
||||
tokeninfo(#20060,8,#20001,21,".")
|
||||
#20061=@"loc,{#10000},6,9,6,9"
|
||||
locations_default(#20061,#10000,6,9,6,9)
|
||||
hasLocation(#20060,#20061)
|
||||
#20062=*
|
||||
tokeninfo(#20062,6,#20001,22,"_x")
|
||||
#20063=@"loc,{#10000},6,10,6,11"
|
||||
locations_default(#20063,#10000,6,10,6,11)
|
||||
hasLocation(#20062,#20063)
|
||||
#20064=*
|
||||
tokeninfo(#20064,8,#20001,23,"=")
|
||||
#20065=@"loc,{#10000},6,13,6,13"
|
||||
locations_default(#20065,#10000,6,13,6,13)
|
||||
hasLocation(#20064,#20065)
|
||||
#20066=*
|
||||
tokeninfo(#20066,8,#20001,24,"+")
|
||||
#20067=@"loc,{#10000},6,15,6,15"
|
||||
locations_default(#20067,#10000,6,15,6,15)
|
||||
hasLocation(#20066,#20067)
|
||||
#20068=*
|
||||
tokeninfo(#20068,6,#20001,25,"v")
|
||||
#20069=@"loc,{#10000},6,16,6,16"
|
||||
locations_default(#20069,#10000,6,16,6,16)
|
||||
hasLocation(#20068,#20069)
|
||||
#20070=*
|
||||
tokeninfo(#20070,8,#20001,26,";")
|
||||
#20071=@"loc,{#10000},6,17,6,17"
|
||||
locations_default(#20071,#10000,6,17,6,17)
|
||||
hasLocation(#20070,#20071)
|
||||
#20072=*
|
||||
tokeninfo(#20072,8,#20001,27,"}")
|
||||
#20073=@"loc,{#10000},7,3,7,3"
|
||||
locations_default(#20073,#10000,7,3,7,3)
|
||||
hasLocation(#20072,#20073)
|
||||
#20074=*
|
||||
tokeninfo(#20074,8,#20001,28,"}")
|
||||
hasLocation(#20074,#20017)
|
||||
#20075=*
|
||||
lines(#20075,#20001,"}","")
|
||||
#20076=@"loc,{#10000},8,1,8,1"
|
||||
locations_default(#20076,#10000,8,1,8,1)
|
||||
tokeninfo(#20075,0,#20001,29,"")
|
||||
#20076=@"loc,{#10000},8,2,8,1"
|
||||
locations_default(#20076,#10000,8,2,8,1)
|
||||
hasLocation(#20075,#20076)
|
||||
numlines(#20001,8,8,0)
|
||||
#20077=*
|
||||
tokeninfo(#20077,7,#20001,0,"class")
|
||||
#20078=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20078,#10000,1,1,1,5)
|
||||
hasLocation(#20077,#20078)
|
||||
#20079=*
|
||||
tokeninfo(#20079,6,#20001,1,"A")
|
||||
hasLocation(#20079,#20007)
|
||||
toplevels(#20001,0)
|
||||
#20077=@"loc,{#10000},1,1,8,1"
|
||||
locations_default(#20077,#10000,1,1,8,1)
|
||||
hasLocation(#20001,#20077)
|
||||
#20078=@"var;{A};{#20000}"
|
||||
variables(#20078,"A",#20000)
|
||||
#20079=@"local_type_name;{A};{#20000}"
|
||||
local_type_names(#20079,"A",#20000)
|
||||
#20080=*
|
||||
tokeninfo(#20080,8,#20001,2,"{")
|
||||
#20081=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20081,#10000,1,9,1,9)
|
||||
hasLocation(#20080,#20081)
|
||||
stmts(#20080,26,#20001,0,"class A ... ;\n }\n}")
|
||||
hasLocation(#20080,#20077)
|
||||
stmtContainers(#20080,#20001)
|
||||
#20081=*
|
||||
exprs(#20081,78,#20080,0,"A")
|
||||
hasLocation(#20081,#20021)
|
||||
enclosingStmt(#20081,#20080)
|
||||
exprContainers(#20081,#20001)
|
||||
literals("A","A",#20081)
|
||||
decl(#20081,#20078)
|
||||
typedecl(#20081,#20079)
|
||||
#20082=*
|
||||
tokeninfo(#20082,6,#20001,3,"get")
|
||||
#20083=@"loc,{#10000},2,3,2,5"
|
||||
locations_default(#20083,#10000,2,3,2,5)
|
||||
hasLocation(#20082,#20083)
|
||||
#20084=*
|
||||
tokeninfo(#20084,6,#20001,4,"x")
|
||||
hasLocation(#20084,#20012)
|
||||
scopes(#20082,10)
|
||||
scopenodes(#20080,#20082)
|
||||
scopenesting(#20082,#20000)
|
||||
#20083=*
|
||||
properties(#20083,#20080,2,1,"get x() ... _x;\n }")
|
||||
#20084=@"loc,{#10000},2,3,4,3"
|
||||
locations_default(#20084,#10000,2,3,4,3)
|
||||
hasLocation(#20083,#20084)
|
||||
#20085=*
|
||||
tokeninfo(#20085,8,#20001,5,"(")
|
||||
#20086=@"loc,{#10000},2,8,2,8"
|
||||
locations_default(#20086,#10000,2,8,2,8)
|
||||
hasLocation(#20085,#20086)
|
||||
#20087=*
|
||||
tokeninfo(#20087,8,#20001,6,")")
|
||||
#20088=@"loc,{#10000},2,9,2,9"
|
||||
locations_default(#20088,#10000,2,9,2,9)
|
||||
hasLocation(#20087,#20088)
|
||||
#20089=*
|
||||
tokeninfo(#20089,8,#20001,7,"{")
|
||||
#20090=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20090,#10000,2,11,2,11)
|
||||
hasLocation(#20089,#20090)
|
||||
#20091=*
|
||||
tokeninfo(#20091,7,#20001,8,"return")
|
||||
#20092=@"loc,{#10000},3,5,3,10"
|
||||
locations_default(#20092,#10000,3,5,3,10)
|
||||
hasLocation(#20091,#20092)
|
||||
#20093=*
|
||||
tokeninfo(#20093,7,#20001,9,"this")
|
||||
hasLocation(#20093,#20024)
|
||||
exprs(#20085,0,#20083,0,"x")
|
||||
hasLocation(#20085,#20027)
|
||||
enclosingStmt(#20085,#20080)
|
||||
exprContainers(#20085,#20001)
|
||||
literals("x","x",#20085)
|
||||
#20086=*
|
||||
exprs(#20086,9,#20083,1,"() {\n ... _x;\n }")
|
||||
#20087=@"loc,{#10000},2,8,4,3"
|
||||
locations_default(#20087,#10000,2,8,4,3)
|
||||
hasLocation(#20086,#20087)
|
||||
enclosingStmt(#20086,#20080)
|
||||
exprContainers(#20086,#20001)
|
||||
#20088=*
|
||||
scopes(#20088,1)
|
||||
scopenodes(#20086,#20088)
|
||||
scopenesting(#20088,#20082)
|
||||
#20089=@"var;{arguments};{#20088}"
|
||||
variables(#20089,"arguments",#20088)
|
||||
isArgumentsObject(#20089)
|
||||
#20090=*
|
||||
stmts(#20090,1,#20086,-2,"{\n r ... _x;\n }")
|
||||
#20091=@"loc,{#10000},2,11,4,3"
|
||||
locations_default(#20091,#10000,2,11,4,3)
|
||||
hasLocation(#20090,#20091)
|
||||
stmtContainers(#20090,#20086)
|
||||
#20092=*
|
||||
stmts(#20092,9,#20090,0,"return this._x;")
|
||||
#20093=@"loc,{#10000},3,5,3,19"
|
||||
locations_default(#20093,#10000,3,5,3,19)
|
||||
hasLocation(#20092,#20093)
|
||||
stmtContainers(#20092,#20086)
|
||||
#20094=*
|
||||
tokeninfo(#20094,8,#20001,10,".")
|
||||
#20095=@"loc,{#10000},3,16,3,16"
|
||||
locations_default(#20095,#10000,3,16,3,16)
|
||||
exprs(#20094,14,#20092,0,"this._x")
|
||||
#20095=@"loc,{#10000},3,12,3,18"
|
||||
locations_default(#20095,#10000,3,12,3,18)
|
||||
hasLocation(#20094,#20095)
|
||||
enclosingStmt(#20094,#20092)
|
||||
exprContainers(#20094,#20086)
|
||||
#20096=*
|
||||
tokeninfo(#20096,6,#20001,11,"_x")
|
||||
hasLocation(#20096,#20026)
|
||||
exprs(#20096,6,#20094,0,"this")
|
||||
hasLocation(#20096,#20037)
|
||||
enclosingStmt(#20096,#20092)
|
||||
exprContainers(#20096,#20086)
|
||||
#20097=*
|
||||
tokeninfo(#20097,8,#20001,12,";")
|
||||
#20098=@"loc,{#10000},3,19,3,19"
|
||||
locations_default(#20098,#10000,3,19,3,19)
|
||||
hasLocation(#20097,#20098)
|
||||
#20099=*
|
||||
tokeninfo(#20099,8,#20001,13,"}")
|
||||
#20100=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20100,#10000,4,3,4,3)
|
||||
hasLocation(#20099,#20100)
|
||||
exprs(#20097,0,#20094,1,"_x")
|
||||
hasLocation(#20097,#20041)
|
||||
enclosingStmt(#20097,#20092)
|
||||
exprContainers(#20097,#20086)
|
||||
literals("_x","_x",#20097)
|
||||
isMethod(#20083)
|
||||
#20098=*
|
||||
properties(#20098,#20080,3,2,"set x(v ... +v;\n }")
|
||||
#20099=@"loc,{#10000},5,3,7,3"
|
||||
locations_default(#20099,#10000,5,3,7,3)
|
||||
hasLocation(#20098,#20099)
|
||||
#20100=*
|
||||
exprs(#20100,0,#20098,0,"x")
|
||||
hasLocation(#20100,#20049)
|
||||
enclosingStmt(#20100,#20080)
|
||||
exprContainers(#20100,#20001)
|
||||
literals("x","x",#20100)
|
||||
#20101=*
|
||||
tokeninfo(#20101,6,#20001,14,"set")
|
||||
#20102=@"loc,{#10000},5,3,5,5"
|
||||
locations_default(#20102,#10000,5,3,5,5)
|
||||
exprs(#20101,9,#20098,1,"(v) {\n ... +v;\n }")
|
||||
#20102=@"loc,{#10000},5,8,7,3"
|
||||
locations_default(#20102,#10000,5,8,7,3)
|
||||
hasLocation(#20101,#20102)
|
||||
enclosingStmt(#20101,#20080)
|
||||
exprContainers(#20101,#20001)
|
||||
#20103=*
|
||||
tokeninfo(#20103,6,#20001,15,"x")
|
||||
hasLocation(#20103,#20030)
|
||||
#20104=*
|
||||
tokeninfo(#20104,8,#20001,16,"(")
|
||||
#20105=@"loc,{#10000},5,8,5,8"
|
||||
locations_default(#20105,#10000,5,8,5,8)
|
||||
hasLocation(#20104,#20105)
|
||||
#20106=*
|
||||
tokeninfo(#20106,6,#20001,17,"v")
|
||||
hasLocation(#20106,#20036)
|
||||
scopes(#20103,1)
|
||||
scopenodes(#20101,#20103)
|
||||
scopenesting(#20103,#20082)
|
||||
#20104=@"var;{v};{#20103}"
|
||||
variables(#20104,"v",#20103)
|
||||
#20105=*
|
||||
exprs(#20105,78,#20101,0,"v")
|
||||
hasLocation(#20105,#20053)
|
||||
exprContainers(#20105,#20101)
|
||||
literals("v","v",#20105)
|
||||
decl(#20105,#20104)
|
||||
#20106=@"var;{arguments};{#20103}"
|
||||
variables(#20106,"arguments",#20103)
|
||||
isArgumentsObject(#20106)
|
||||
#20107=*
|
||||
tokeninfo(#20107,8,#20001,18,")")
|
||||
#20108=@"loc,{#10000},5,10,5,10"
|
||||
locations_default(#20108,#10000,5,10,5,10)
|
||||
stmts(#20107,1,#20101,-2,"{\n t ... +v;\n }")
|
||||
#20108=@"loc,{#10000},5,12,7,3"
|
||||
locations_default(#20108,#10000,5,12,7,3)
|
||||
hasLocation(#20107,#20108)
|
||||
stmtContainers(#20107,#20101)
|
||||
#20109=*
|
||||
tokeninfo(#20109,8,#20001,19,"{")
|
||||
#20110=@"loc,{#10000},5,12,5,12"
|
||||
locations_default(#20110,#10000,5,12,5,12)
|
||||
stmts(#20109,2,#20107,0,"this._x = +v;")
|
||||
#20110=@"loc,{#10000},6,5,6,17"
|
||||
locations_default(#20110,#10000,6,5,6,17)
|
||||
hasLocation(#20109,#20110)
|
||||
stmtContainers(#20109,#20101)
|
||||
#20111=*
|
||||
tokeninfo(#20111,7,#20001,20,"this")
|
||||
hasLocation(#20111,#20047)
|
||||
#20112=*
|
||||
tokeninfo(#20112,8,#20001,21,".")
|
||||
#20113=@"loc,{#10000},6,9,6,9"
|
||||
locations_default(#20113,#10000,6,9,6,9)
|
||||
hasLocation(#20112,#20113)
|
||||
#20114=*
|
||||
tokeninfo(#20114,6,#20001,22,"_x")
|
||||
hasLocation(#20114,#20049)
|
||||
exprs(#20111,47,#20109,0,"this._x = +v")
|
||||
#20112=@"loc,{#10000},6,5,6,16"
|
||||
locations_default(#20112,#10000,6,5,6,16)
|
||||
hasLocation(#20111,#20112)
|
||||
enclosingStmt(#20111,#20109)
|
||||
exprContainers(#20111,#20101)
|
||||
#20113=*
|
||||
exprs(#20113,14,#20111,0,"this._x")
|
||||
#20114=@"loc,{#10000},6,5,6,11"
|
||||
locations_default(#20114,#10000,6,5,6,11)
|
||||
hasLocation(#20113,#20114)
|
||||
enclosingStmt(#20113,#20109)
|
||||
exprContainers(#20113,#20101)
|
||||
#20115=*
|
||||
tokeninfo(#20115,8,#20001,23,"=")
|
||||
#20116=@"loc,{#10000},6,13,6,13"
|
||||
locations_default(#20116,#10000,6,13,6,13)
|
||||
hasLocation(#20115,#20116)
|
||||
exprs(#20115,6,#20113,0,"this")
|
||||
hasLocation(#20115,#20059)
|
||||
enclosingStmt(#20115,#20109)
|
||||
exprContainers(#20115,#20101)
|
||||
#20116=*
|
||||
exprs(#20116,0,#20113,1,"_x")
|
||||
hasLocation(#20116,#20063)
|
||||
enclosingStmt(#20116,#20109)
|
||||
exprContainers(#20116,#20101)
|
||||
literals("_x","_x",#20116)
|
||||
#20117=*
|
||||
tokeninfo(#20117,8,#20001,24,"+")
|
||||
#20118=@"loc,{#10000},6,15,6,15"
|
||||
locations_default(#20118,#10000,6,15,6,15)
|
||||
exprs(#20117,17,#20111,1,"+v")
|
||||
#20118=@"loc,{#10000},6,15,6,16"
|
||||
locations_default(#20118,#10000,6,15,6,16)
|
||||
hasLocation(#20117,#20118)
|
||||
enclosingStmt(#20117,#20109)
|
||||
exprContainers(#20117,#20101)
|
||||
#20119=*
|
||||
tokeninfo(#20119,6,#20001,25,"v")
|
||||
hasLocation(#20119,#20053)
|
||||
exprs(#20119,79,#20117,0,"v")
|
||||
hasLocation(#20119,#20069)
|
||||
enclosingStmt(#20119,#20109)
|
||||
exprContainers(#20119,#20101)
|
||||
literals("v","v",#20119)
|
||||
bind(#20119,#20104)
|
||||
isMethod(#20098)
|
||||
#20120=*
|
||||
tokeninfo(#20120,8,#20001,26,";")
|
||||
#20121=@"loc,{#10000},6,17,6,17"
|
||||
locations_default(#20121,#10000,6,17,6,17)
|
||||
properties(#20120,#20080,4,0,"constructor() {}")
|
||||
#20121=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20121,#10000,1,9,1,8)
|
||||
hasLocation(#20120,#20121)
|
||||
#20122=*
|
||||
tokeninfo(#20122,8,#20001,27,"}")
|
||||
#20123=@"loc,{#10000},7,3,7,3"
|
||||
locations_default(#20123,#10000,7,3,7,3)
|
||||
hasLocation(#20122,#20123)
|
||||
exprs(#20122,0,#20120,0,"constructor")
|
||||
hasLocation(#20122,#20121)
|
||||
enclosingStmt(#20122,#20080)
|
||||
exprContainers(#20122,#20001)
|
||||
literals("constructor","constructor",#20122)
|
||||
#20123=*
|
||||
exprs(#20123,9,#20120,1,"() {}")
|
||||
hasLocation(#20123,#20121)
|
||||
enclosingStmt(#20123,#20080)
|
||||
exprContainers(#20123,#20001)
|
||||
#20124=*
|
||||
tokeninfo(#20124,8,#20001,28,"}")
|
||||
hasLocation(#20124,#20076)
|
||||
#20125=*
|
||||
tokeninfo(#20125,0,#20001,29,"")
|
||||
#20126=@"loc,{#10000},8,2,8,1"
|
||||
locations_default(#20126,#10000,8,2,8,1)
|
||||
hasLocation(#20125,#20126)
|
||||
scopes(#20124,1)
|
||||
scopenodes(#20123,#20124)
|
||||
scopenesting(#20124,#20082)
|
||||
#20125=@"var;{arguments};{#20124}"
|
||||
variables(#20125,"arguments",#20124)
|
||||
isArgumentsObject(#20125)
|
||||
#20126=*
|
||||
stmts(#20126,1,#20123,-2,"{}")
|
||||
hasLocation(#20126,#20121)
|
||||
stmtContainers(#20126,#20123)
|
||||
isMethod(#20120)
|
||||
#20127=*
|
||||
entry_cfg_node(#20127,#20001)
|
||||
#20128=@"loc,{#10000},1,1,1,0"
|
||||
@@ -414,62 +411,62 @@ locations_default(#20128,#10000,1,1,1,0)
|
||||
hasLocation(#20127,#20128)
|
||||
#20129=*
|
||||
exit_cfg_node(#20129,#20001)
|
||||
hasLocation(#20129,#20126)
|
||||
successor(#20057,#20054)
|
||||
hasLocation(#20129,#20076)
|
||||
successor(#20123,#20120)
|
||||
#20130=*
|
||||
entry_cfg_node(#20130,#20057)
|
||||
hasLocation(#20130,#20055)
|
||||
entry_cfg_node(#20130,#20123)
|
||||
hasLocation(#20130,#20121)
|
||||
#20131=*
|
||||
exit_cfg_node(#20131,#20057)
|
||||
hasLocation(#20131,#20055)
|
||||
successor(#20060,#20131)
|
||||
successor(#20130,#20060)
|
||||
successor(#20056,#20057)
|
||||
successor(#20054,#20005)
|
||||
successor(#20031,#20027)
|
||||
exit_cfg_node(#20131,#20123)
|
||||
hasLocation(#20131,#20121)
|
||||
successor(#20126,#20131)
|
||||
successor(#20130,#20126)
|
||||
successor(#20122,#20123)
|
||||
successor(#20120,#20080)
|
||||
successor(#20101,#20098)
|
||||
#20132=*
|
||||
entry_cfg_node(#20132,#20031)
|
||||
entry_cfg_node(#20132,#20101)
|
||||
#20133=@"loc,{#10000},5,8,5,7"
|
||||
locations_default(#20133,#10000,5,8,5,7)
|
||||
hasLocation(#20132,#20133)
|
||||
#20134=*
|
||||
exit_cfg_node(#20134,#20031)
|
||||
exit_cfg_node(#20134,#20101)
|
||||
#20135=@"loc,{#10000},7,4,7,3"
|
||||
locations_default(#20135,#10000,7,4,7,3)
|
||||
hasLocation(#20134,#20135)
|
||||
successor(#20038,#20040)
|
||||
successor(#20040,#20046)
|
||||
successor(#20052,#20050)
|
||||
successor(#20050,#20042)
|
||||
successor(#20048,#20044)
|
||||
successor(#20046,#20048)
|
||||
successor(#20044,#20052)
|
||||
successor(#20042,#20134)
|
||||
successor(#20035,#20038)
|
||||
successor(#20132,#20035)
|
||||
successor(#20029,#20031)
|
||||
successor(#20027,#20056)
|
||||
successor(#20013,#20009)
|
||||
successor(#20107,#20109)
|
||||
successor(#20109,#20115)
|
||||
successor(#20119,#20117)
|
||||
successor(#20117,#20111)
|
||||
successor(#20116,#20113)
|
||||
successor(#20115,#20116)
|
||||
successor(#20113,#20119)
|
||||
successor(#20111,#20134)
|
||||
successor(#20105,#20107)
|
||||
successor(#20132,#20105)
|
||||
successor(#20100,#20101)
|
||||
successor(#20098,#20122)
|
||||
successor(#20086,#20083)
|
||||
#20136=*
|
||||
entry_cfg_node(#20136,#20013)
|
||||
entry_cfg_node(#20136,#20086)
|
||||
#20137=@"loc,{#10000},2,8,2,7"
|
||||
locations_default(#20137,#10000,2,8,2,7)
|
||||
hasLocation(#20136,#20137)
|
||||
#20138=*
|
||||
exit_cfg_node(#20138,#20013)
|
||||
exit_cfg_node(#20138,#20086)
|
||||
#20139=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20139,#10000,4,4,4,3)
|
||||
hasLocation(#20138,#20139)
|
||||
successor(#20017,#20023)
|
||||
successor(#20025,#20021)
|
||||
successor(#20023,#20025)
|
||||
successor(#20021,#20019)
|
||||
successor(#20019,#20138)
|
||||
successor(#20136,#20017)
|
||||
successor(#20011,#20013)
|
||||
successor(#20009,#20029)
|
||||
successor(#20006,#20011)
|
||||
successor(#20005,#20129)
|
||||
successor(#20127,#20006)
|
||||
successor(#20090,#20096)
|
||||
successor(#20097,#20094)
|
||||
successor(#20096,#20097)
|
||||
successor(#20094,#20092)
|
||||
successor(#20092,#20138)
|
||||
successor(#20136,#20090)
|
||||
successor(#20085,#20086)
|
||||
successor(#20083,#20100)
|
||||
successor(#20081,#20085)
|
||||
successor(#20080,#20129)
|
||||
successor(#20127,#20081)
|
||||
numlines(#10000,8,8,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,225 +9,224 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,5,1"
|
||||
locations_default(#20002,#10000,1,1,5,1)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{A};{#20000}"
|
||||
variables(#20003,"A",#20000)
|
||||
#20004=@"local_type_name;{A};{#20000}"
|
||||
local_type_names(#20004,"A",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,26,#20001,0,"class A ... ;\n }\n}")
|
||||
hasLocation(#20005,#20002)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"class A {","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20003,#10000,1,1,1,9)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001," constructor(x) {","
|
||||
")
|
||||
#20005=@"loc,{#10000},2,1,2,18"
|
||||
locations_default(#20005,#10000,2,1,2,18)
|
||||
hasLocation(#20004,#20005)
|
||||
indentation(#10000,2," ",2)
|
||||
#20006=*
|
||||
exprs(#20006,78,#20005,0,"A")
|
||||
#20007=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20007,#10000,1,7,1,7)
|
||||
lines(#20006,#20001," this.x = x;","
|
||||
")
|
||||
#20007=@"loc,{#10000},3,1,3,15"
|
||||
locations_default(#20007,#10000,3,1,3,15)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20005)
|
||||
exprContainers(#20006,#20001)
|
||||
literals("A","A",#20006)
|
||||
decl(#20006,#20003)
|
||||
typedecl(#20006,#20004)
|
||||
indentation(#10000,3," ",4)
|
||||
#20008=*
|
||||
scopes(#20008,10)
|
||||
scopenodes(#20005,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=*
|
||||
properties(#20009,#20005,2,0,"constru ... x;\n }")
|
||||
#20010=@"loc,{#10000},2,3,4,3"
|
||||
locations_default(#20010,#10000,2,3,4,3)
|
||||
hasLocation(#20009,#20010)
|
||||
#20011=*
|
||||
exprs(#20011,0,#20009,0,"constructor")
|
||||
#20012=@"loc,{#10000},2,3,2,13"
|
||||
locations_default(#20012,#10000,2,3,2,13)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20005)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("constructor","constructor",#20011)
|
||||
#20013=*
|
||||
exprs(#20013,9,#20009,1,"(x) {\n ... x;\n }")
|
||||
#20014=@"loc,{#10000},2,14,4,3"
|
||||
locations_default(#20014,#10000,2,14,4,3)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20005)
|
||||
exprContainers(#20013,#20001)
|
||||
#20015=*
|
||||
scopes(#20015,1)
|
||||
scopenodes(#20013,#20015)
|
||||
scopenesting(#20015,#20008)
|
||||
#20016=@"var;{x};{#20015}"
|
||||
variables(#20016,"x",#20015)
|
||||
#20017=*
|
||||
exprs(#20017,78,#20013,0,"x")
|
||||
#20018=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20018,#10000,2,15,2,15)
|
||||
hasLocation(#20017,#20018)
|
||||
exprContainers(#20017,#20013)
|
||||
literals("x","x",#20017)
|
||||
decl(#20017,#20016)
|
||||
#20019=@"var;{arguments};{#20015}"
|
||||
variables(#20019,"arguments",#20015)
|
||||
isArgumentsObject(#20019)
|
||||
lines(#20008,#20001," }","
|
||||
")
|
||||
#20009=@"loc,{#10000},4,1,4,3"
|
||||
locations_default(#20009,#10000,4,1,4,3)
|
||||
hasLocation(#20008,#20009)
|
||||
indentation(#10000,4," ",2)
|
||||
#20010=*
|
||||
lines(#20010,#20001,"}","")
|
||||
#20011=@"loc,{#10000},5,1,5,1"
|
||||
locations_default(#20011,#10000,5,1,5,1)
|
||||
hasLocation(#20010,#20011)
|
||||
numlines(#20001,5,5,0)
|
||||
#20012=*
|
||||
tokeninfo(#20012,7,#20001,0,"class")
|
||||
#20013=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20013,#10000,1,1,1,5)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,1,"A")
|
||||
#20015=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20015,#10000,1,7,1,7)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,2,"{")
|
||||
#20017=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20017,#10000,1,9,1,9)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,6,#20001,3,"constructor")
|
||||
#20019=@"loc,{#10000},2,3,2,13"
|
||||
locations_default(#20019,#10000,2,3,2,13)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
stmts(#20020,1,#20013,-2,"{\n t ... x;\n }")
|
||||
#20021=@"loc,{#10000},2,18,4,3"
|
||||
locations_default(#20021,#10000,2,18,4,3)
|
||||
tokeninfo(#20020,8,#20001,4,"(")
|
||||
#20021=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20021,#10000,2,14,2,14)
|
||||
hasLocation(#20020,#20021)
|
||||
stmtContainers(#20020,#20013)
|
||||
#20022=*
|
||||
stmts(#20022,2,#20020,0,"this.x = x;")
|
||||
#20023=@"loc,{#10000},3,5,3,15"
|
||||
locations_default(#20023,#10000,3,5,3,15)
|
||||
tokeninfo(#20022,6,#20001,5,"x")
|
||||
#20023=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20023,#10000,2,15,2,15)
|
||||
hasLocation(#20022,#20023)
|
||||
stmtContainers(#20022,#20013)
|
||||
#20024=*
|
||||
exprs(#20024,47,#20022,0,"this.x = x")
|
||||
#20025=@"loc,{#10000},3,5,3,14"
|
||||
locations_default(#20025,#10000,3,5,3,14)
|
||||
tokeninfo(#20024,8,#20001,6,")")
|
||||
#20025=@"loc,{#10000},2,16,2,16"
|
||||
locations_default(#20025,#10000,2,16,2,16)
|
||||
hasLocation(#20024,#20025)
|
||||
enclosingStmt(#20024,#20022)
|
||||
exprContainers(#20024,#20013)
|
||||
#20026=*
|
||||
exprs(#20026,14,#20024,0,"this.x")
|
||||
#20027=@"loc,{#10000},3,5,3,10"
|
||||
locations_default(#20027,#10000,3,5,3,10)
|
||||
tokeninfo(#20026,8,#20001,7,"{")
|
||||
#20027=@"loc,{#10000},2,18,2,18"
|
||||
locations_default(#20027,#10000,2,18,2,18)
|
||||
hasLocation(#20026,#20027)
|
||||
enclosingStmt(#20026,#20022)
|
||||
exprContainers(#20026,#20013)
|
||||
#20028=*
|
||||
exprs(#20028,6,#20026,0,"this")
|
||||
tokeninfo(#20028,7,#20001,8,"this")
|
||||
#20029=@"loc,{#10000},3,5,3,8"
|
||||
locations_default(#20029,#10000,3,5,3,8)
|
||||
hasLocation(#20028,#20029)
|
||||
enclosingStmt(#20028,#20022)
|
||||
exprContainers(#20028,#20013)
|
||||
#20030=*
|
||||
exprs(#20030,0,#20026,1,"x")
|
||||
#20031=@"loc,{#10000},3,10,3,10"
|
||||
locations_default(#20031,#10000,3,10,3,10)
|
||||
tokeninfo(#20030,8,#20001,9,".")
|
||||
#20031=@"loc,{#10000},3,9,3,9"
|
||||
locations_default(#20031,#10000,3,9,3,9)
|
||||
hasLocation(#20030,#20031)
|
||||
enclosingStmt(#20030,#20022)
|
||||
exprContainers(#20030,#20013)
|
||||
literals("x","x",#20030)
|
||||
#20032=*
|
||||
exprs(#20032,79,#20024,1,"x")
|
||||
#20033=@"loc,{#10000},3,14,3,14"
|
||||
locations_default(#20033,#10000,3,14,3,14)
|
||||
tokeninfo(#20032,6,#20001,10,"x")
|
||||
#20033=@"loc,{#10000},3,10,3,10"
|
||||
locations_default(#20033,#10000,3,10,3,10)
|
||||
hasLocation(#20032,#20033)
|
||||
enclosingStmt(#20032,#20022)
|
||||
exprContainers(#20032,#20013)
|
||||
literals("x","x",#20032)
|
||||
bind(#20032,#20016)
|
||||
numlines(#20013,3,3,0)
|
||||
isMethod(#20009)
|
||||
#20034=*
|
||||
lines(#20034,#20001,"class A {","
|
||||
")
|
||||
#20035=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20035,#10000,1,1,1,9)
|
||||
tokeninfo(#20034,8,#20001,11,"=")
|
||||
#20035=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20035,#10000,3,12,3,12)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
lines(#20036,#20001," constructor(x) {","
|
||||
")
|
||||
#20037=@"loc,{#10000},2,1,2,18"
|
||||
locations_default(#20037,#10000,2,1,2,18)
|
||||
tokeninfo(#20036,6,#20001,12,"x")
|
||||
#20037=@"loc,{#10000},3,14,3,14"
|
||||
locations_default(#20037,#10000,3,14,3,14)
|
||||
hasLocation(#20036,#20037)
|
||||
indentation(#10000,2," ",2)
|
||||
#20038=*
|
||||
lines(#20038,#20001," this.x = x;","
|
||||
")
|
||||
#20039=@"loc,{#10000},3,1,3,15"
|
||||
locations_default(#20039,#10000,3,1,3,15)
|
||||
tokeninfo(#20038,8,#20001,13,";")
|
||||
#20039=@"loc,{#10000},3,15,3,15"
|
||||
locations_default(#20039,#10000,3,15,3,15)
|
||||
hasLocation(#20038,#20039)
|
||||
indentation(#10000,3," ",4)
|
||||
#20040=*
|
||||
lines(#20040,#20001," }","
|
||||
")
|
||||
#20041=@"loc,{#10000},4,1,4,3"
|
||||
locations_default(#20041,#10000,4,1,4,3)
|
||||
tokeninfo(#20040,8,#20001,14,"}")
|
||||
#20041=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20041,#10000,4,3,4,3)
|
||||
hasLocation(#20040,#20041)
|
||||
indentation(#10000,4," ",2)
|
||||
#20042=*
|
||||
lines(#20042,#20001,"}","")
|
||||
#20043=@"loc,{#10000},5,1,5,1"
|
||||
locations_default(#20043,#10000,5,1,5,1)
|
||||
hasLocation(#20042,#20043)
|
||||
numlines(#20001,5,5,0)
|
||||
#20044=*
|
||||
tokeninfo(#20044,7,#20001,0,"class")
|
||||
#20045=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20045,#10000,1,1,1,5)
|
||||
hasLocation(#20044,#20045)
|
||||
#20046=*
|
||||
tokeninfo(#20046,6,#20001,1,"A")
|
||||
hasLocation(#20046,#20007)
|
||||
#20047=*
|
||||
tokeninfo(#20047,8,#20001,2,"{")
|
||||
#20048=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20048,#10000,1,9,1,9)
|
||||
hasLocation(#20047,#20048)
|
||||
tokeninfo(#20042,8,#20001,15,"}")
|
||||
hasLocation(#20042,#20011)
|
||||
#20043=*
|
||||
tokeninfo(#20043,0,#20001,16,"")
|
||||
#20044=@"loc,{#10000},5,2,5,1"
|
||||
locations_default(#20044,#10000,5,2,5,1)
|
||||
hasLocation(#20043,#20044)
|
||||
toplevels(#20001,0)
|
||||
#20045=@"loc,{#10000},1,1,5,1"
|
||||
locations_default(#20045,#10000,1,1,5,1)
|
||||
hasLocation(#20001,#20045)
|
||||
#20046=@"var;{A};{#20000}"
|
||||
variables(#20046,"A",#20000)
|
||||
#20047=@"local_type_name;{A};{#20000}"
|
||||
local_type_names(#20047,"A",#20000)
|
||||
#20048=*
|
||||
stmts(#20048,26,#20001,0,"class A ... ;\n }\n}")
|
||||
hasLocation(#20048,#20045)
|
||||
stmtContainers(#20048,#20001)
|
||||
#20049=*
|
||||
tokeninfo(#20049,6,#20001,3,"constructor")
|
||||
hasLocation(#20049,#20012)
|
||||
exprs(#20049,78,#20048,0,"A")
|
||||
hasLocation(#20049,#20015)
|
||||
enclosingStmt(#20049,#20048)
|
||||
exprContainers(#20049,#20001)
|
||||
literals("A","A",#20049)
|
||||
decl(#20049,#20046)
|
||||
typedecl(#20049,#20047)
|
||||
#20050=*
|
||||
tokeninfo(#20050,8,#20001,4,"(")
|
||||
#20051=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20051,#10000,2,14,2,14)
|
||||
hasLocation(#20050,#20051)
|
||||
#20052=*
|
||||
tokeninfo(#20052,6,#20001,5,"x")
|
||||
hasLocation(#20052,#20018)
|
||||
scopes(#20050,10)
|
||||
scopenodes(#20048,#20050)
|
||||
scopenesting(#20050,#20000)
|
||||
#20051=*
|
||||
properties(#20051,#20048,2,0,"constru ... x;\n }")
|
||||
#20052=@"loc,{#10000},2,3,4,3"
|
||||
locations_default(#20052,#10000,2,3,4,3)
|
||||
hasLocation(#20051,#20052)
|
||||
#20053=*
|
||||
tokeninfo(#20053,8,#20001,6,")")
|
||||
#20054=@"loc,{#10000},2,16,2,16"
|
||||
locations_default(#20054,#10000,2,16,2,16)
|
||||
hasLocation(#20053,#20054)
|
||||
#20055=*
|
||||
tokeninfo(#20055,8,#20001,7,"{")
|
||||
#20056=@"loc,{#10000},2,18,2,18"
|
||||
locations_default(#20056,#10000,2,18,2,18)
|
||||
hasLocation(#20055,#20056)
|
||||
#20057=*
|
||||
tokeninfo(#20057,7,#20001,8,"this")
|
||||
hasLocation(#20057,#20029)
|
||||
exprs(#20053,0,#20051,0,"constructor")
|
||||
hasLocation(#20053,#20019)
|
||||
enclosingStmt(#20053,#20048)
|
||||
exprContainers(#20053,#20001)
|
||||
literals("constructor","constructor",#20053)
|
||||
#20054=*
|
||||
exprs(#20054,9,#20051,1,"(x) {\n ... x;\n }")
|
||||
#20055=@"loc,{#10000},2,14,4,3"
|
||||
locations_default(#20055,#10000,2,14,4,3)
|
||||
hasLocation(#20054,#20055)
|
||||
enclosingStmt(#20054,#20048)
|
||||
exprContainers(#20054,#20001)
|
||||
#20056=*
|
||||
scopes(#20056,1)
|
||||
scopenodes(#20054,#20056)
|
||||
scopenesting(#20056,#20050)
|
||||
#20057=@"var;{x};{#20056}"
|
||||
variables(#20057,"x",#20056)
|
||||
#20058=*
|
||||
tokeninfo(#20058,8,#20001,9,".")
|
||||
#20059=@"loc,{#10000},3,9,3,9"
|
||||
locations_default(#20059,#10000,3,9,3,9)
|
||||
hasLocation(#20058,#20059)
|
||||
exprs(#20058,78,#20054,0,"x")
|
||||
hasLocation(#20058,#20023)
|
||||
exprContainers(#20058,#20054)
|
||||
literals("x","x",#20058)
|
||||
decl(#20058,#20057)
|
||||
#20059=@"var;{arguments};{#20056}"
|
||||
variables(#20059,"arguments",#20056)
|
||||
isArgumentsObject(#20059)
|
||||
#20060=*
|
||||
tokeninfo(#20060,6,#20001,10,"x")
|
||||
hasLocation(#20060,#20031)
|
||||
#20061=*
|
||||
tokeninfo(#20061,8,#20001,11,"=")
|
||||
#20062=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20062,#10000,3,12,3,12)
|
||||
hasLocation(#20061,#20062)
|
||||
#20063=*
|
||||
tokeninfo(#20063,6,#20001,12,"x")
|
||||
hasLocation(#20063,#20033)
|
||||
stmts(#20060,1,#20054,-2,"{\n t ... x;\n }")
|
||||
#20061=@"loc,{#10000},2,18,4,3"
|
||||
locations_default(#20061,#10000,2,18,4,3)
|
||||
hasLocation(#20060,#20061)
|
||||
stmtContainers(#20060,#20054)
|
||||
#20062=*
|
||||
stmts(#20062,2,#20060,0,"this.x = x;")
|
||||
#20063=@"loc,{#10000},3,5,3,15"
|
||||
locations_default(#20063,#10000,3,5,3,15)
|
||||
hasLocation(#20062,#20063)
|
||||
stmtContainers(#20062,#20054)
|
||||
#20064=*
|
||||
tokeninfo(#20064,8,#20001,13,";")
|
||||
#20065=@"loc,{#10000},3,15,3,15"
|
||||
locations_default(#20065,#10000,3,15,3,15)
|
||||
exprs(#20064,47,#20062,0,"this.x = x")
|
||||
#20065=@"loc,{#10000},3,5,3,14"
|
||||
locations_default(#20065,#10000,3,5,3,14)
|
||||
hasLocation(#20064,#20065)
|
||||
enclosingStmt(#20064,#20062)
|
||||
exprContainers(#20064,#20054)
|
||||
#20066=*
|
||||
tokeninfo(#20066,8,#20001,14,"}")
|
||||
#20067=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20067,#10000,4,3,4,3)
|
||||
exprs(#20066,14,#20064,0,"this.x")
|
||||
#20067=@"loc,{#10000},3,5,3,10"
|
||||
locations_default(#20067,#10000,3,5,3,10)
|
||||
hasLocation(#20066,#20067)
|
||||
enclosingStmt(#20066,#20062)
|
||||
exprContainers(#20066,#20054)
|
||||
#20068=*
|
||||
tokeninfo(#20068,8,#20001,15,"}")
|
||||
hasLocation(#20068,#20043)
|
||||
exprs(#20068,6,#20066,0,"this")
|
||||
hasLocation(#20068,#20029)
|
||||
enclosingStmt(#20068,#20062)
|
||||
exprContainers(#20068,#20054)
|
||||
#20069=*
|
||||
tokeninfo(#20069,0,#20001,16,"")
|
||||
#20070=@"loc,{#10000},5,2,5,1"
|
||||
locations_default(#20070,#10000,5,2,5,1)
|
||||
hasLocation(#20069,#20070)
|
||||
exprs(#20069,0,#20066,1,"x")
|
||||
hasLocation(#20069,#20033)
|
||||
enclosingStmt(#20069,#20062)
|
||||
exprContainers(#20069,#20054)
|
||||
literals("x","x",#20069)
|
||||
#20070=*
|
||||
exprs(#20070,79,#20064,1,"x")
|
||||
hasLocation(#20070,#20037)
|
||||
enclosingStmt(#20070,#20062)
|
||||
exprContainers(#20070,#20054)
|
||||
literals("x","x",#20070)
|
||||
bind(#20070,#20057)
|
||||
isMethod(#20051)
|
||||
#20071=*
|
||||
entry_cfg_node(#20071,#20001)
|
||||
#20072=@"loc,{#10000},1,1,1,0"
|
||||
@@ -235,31 +234,31 @@ locations_default(#20072,#10000,1,1,1,0)
|
||||
hasLocation(#20071,#20072)
|
||||
#20073=*
|
||||
exit_cfg_node(#20073,#20001)
|
||||
hasLocation(#20073,#20070)
|
||||
successor(#20013,#20009)
|
||||
hasLocation(#20073,#20044)
|
||||
successor(#20054,#20051)
|
||||
#20074=*
|
||||
entry_cfg_node(#20074,#20013)
|
||||
entry_cfg_node(#20074,#20054)
|
||||
#20075=@"loc,{#10000},2,14,2,13"
|
||||
locations_default(#20075,#10000,2,14,2,13)
|
||||
hasLocation(#20074,#20075)
|
||||
#20076=*
|
||||
exit_cfg_node(#20076,#20013)
|
||||
exit_cfg_node(#20076,#20054)
|
||||
#20077=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20077,#10000,4,4,4,3)
|
||||
hasLocation(#20076,#20077)
|
||||
successor(#20020,#20022)
|
||||
successor(#20022,#20028)
|
||||
successor(#20032,#20024)
|
||||
successor(#20030,#20026)
|
||||
successor(#20028,#20030)
|
||||
successor(#20026,#20032)
|
||||
successor(#20024,#20076)
|
||||
successor(#20017,#20020)
|
||||
successor(#20074,#20017)
|
||||
successor(#20011,#20013)
|
||||
successor(#20009,#20005)
|
||||
successor(#20006,#20011)
|
||||
successor(#20005,#20073)
|
||||
successor(#20071,#20006)
|
||||
successor(#20060,#20062)
|
||||
successor(#20062,#20068)
|
||||
successor(#20070,#20064)
|
||||
successor(#20069,#20066)
|
||||
successor(#20068,#20069)
|
||||
successor(#20066,#20070)
|
||||
successor(#20064,#20076)
|
||||
successor(#20058,#20060)
|
||||
successor(#20074,#20058)
|
||||
successor(#20053,#20054)
|
||||
successor(#20051,#20048)
|
||||
successor(#20049,#20053)
|
||||
successor(#20048,#20073)
|
||||
successor(#20071,#20049)
|
||||
numlines(#10000,5,5,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,142 +9,141 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,29"
|
||||
locations_default(#20002,#10000,1,1,1,29)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{Point};{#20000}"
|
||||
variables(#20003,"Point",#20000)
|
||||
#20004=@"local_type_name;{Point};{#20000}"
|
||||
local_type_names(#20004,"Point",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,26,#20001,0,"class P ... ject {}")
|
||||
hasLocation(#20005,#20002)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"class Point extends Object {}","")
|
||||
#20003=@"loc,{#10000},1,1,1,29"
|
||||
locations_default(#20003,#10000,1,1,1,29)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"class")
|
||||
#20005=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20005,#10000,1,1,1,5)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
exprs(#20006,78,#20005,0,"Point")
|
||||
tokeninfo(#20006,6,#20001,1,"Point")
|
||||
#20007=@"loc,{#10000},1,7,1,11"
|
||||
locations_default(#20007,#10000,1,7,1,11)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20005)
|
||||
exprContainers(#20006,#20001)
|
||||
literals("Point","Point",#20006)
|
||||
decl(#20006,#20003)
|
||||
typedecl(#20006,#20004)
|
||||
#20008=*
|
||||
scopes(#20008,10)
|
||||
scopenodes(#20005,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=*
|
||||
exprs(#20009,79,#20005,1,"Object")
|
||||
#20010=@"loc,{#10000},1,21,1,26"
|
||||
locations_default(#20010,#10000,1,21,1,26)
|
||||
hasLocation(#20009,#20010)
|
||||
enclosingStmt(#20009,#20005)
|
||||
exprContainers(#20009,#20001)
|
||||
literals("Object","Object",#20009)
|
||||
#20011=@"var;{Object};{#20000}"
|
||||
variables(#20011,"Object",#20000)
|
||||
bind(#20009,#20011)
|
||||
tokeninfo(#20008,7,#20001,2,"extends")
|
||||
#20009=@"loc,{#10000},1,13,1,19"
|
||||
locations_default(#20009,#10000,1,13,1,19)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,3,"Object")
|
||||
#20011=@"loc,{#10000},1,21,1,26"
|
||||
locations_default(#20011,#10000,1,21,1,26)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
properties(#20012,#20005,2,0,"constru ... rgs); }")
|
||||
#20013=@"loc,{#10000},1,28,1,27"
|
||||
locations_default(#20013,#10000,1,28,1,27)
|
||||
tokeninfo(#20012,8,#20001,4,"{")
|
||||
#20013=@"loc,{#10000},1,28,1,28"
|
||||
locations_default(#20013,#10000,1,28,1,28)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
exprs(#20014,0,#20012,0,"constructor")
|
||||
hasLocation(#20014,#20013)
|
||||
enclosingStmt(#20014,#20005)
|
||||
exprContainers(#20014,#20001)
|
||||
literals("constructor","constructor",#20014)
|
||||
#20015=*
|
||||
exprs(#20015,9,#20012,1,"(...arg ... rgs); }")
|
||||
hasLocation(#20015,#20013)
|
||||
enclosingStmt(#20015,#20005)
|
||||
exprContainers(#20015,#20001)
|
||||
tokeninfo(#20014,8,#20001,5,"}")
|
||||
#20015=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20015,#10000,1,29,1,29)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
scopes(#20016,1)
|
||||
scopenodes(#20015,#20016)
|
||||
scopenesting(#20016,#20008)
|
||||
#20017=@"var;{args};{#20016}"
|
||||
variables(#20017,"args",#20016)
|
||||
#20018=*
|
||||
exprs(#20018,78,#20015,0,"args")
|
||||
hasLocation(#20018,#20013)
|
||||
exprContainers(#20018,#20015)
|
||||
literals("args","args",#20018)
|
||||
decl(#20018,#20017)
|
||||
#20019=@"var;{arguments};{#20016}"
|
||||
variables(#20019,"arguments",#20016)
|
||||
isArgumentsObject(#20019)
|
||||
hasRestParameter(#20015)
|
||||
tokeninfo(#20016,0,#20001,6,"")
|
||||
#20017=@"loc,{#10000},1,30,1,29"
|
||||
locations_default(#20017,#10000,1,30,1,29)
|
||||
hasLocation(#20016,#20017)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20018=@"var;{Point};{#20000}"
|
||||
variables(#20018,"Point",#20000)
|
||||
#20019=@"local_type_name;{Point};{#20000}"
|
||||
local_type_names(#20019,"Point",#20000)
|
||||
#20020=*
|
||||
stmts(#20020,1,#20015,-2,"{ super(...args); }")
|
||||
hasLocation(#20020,#20013)
|
||||
stmtContainers(#20020,#20015)
|
||||
stmts(#20020,26,#20001,0,"class P ... ject {}")
|
||||
hasLocation(#20020,#20003)
|
||||
stmtContainers(#20020,#20001)
|
||||
#20021=*
|
||||
stmts(#20021,2,#20020,0,"super(...args);")
|
||||
hasLocation(#20021,#20013)
|
||||
stmtContainers(#20021,#20015)
|
||||
exprs(#20021,78,#20020,0,"Point")
|
||||
hasLocation(#20021,#20007)
|
||||
enclosingStmt(#20021,#20020)
|
||||
exprContainers(#20021,#20001)
|
||||
literals("Point","Point",#20021)
|
||||
decl(#20021,#20018)
|
||||
typedecl(#20021,#20019)
|
||||
#20022=*
|
||||
exprs(#20022,13,#20021,0,"super(...args)")
|
||||
hasLocation(#20022,#20013)
|
||||
enclosingStmt(#20022,#20021)
|
||||
exprContainers(#20022,#20015)
|
||||
scopes(#20022,10)
|
||||
scopenodes(#20020,#20022)
|
||||
scopenesting(#20022,#20000)
|
||||
#20023=*
|
||||
exprs(#20023,81,#20022,-1,"super")
|
||||
hasLocation(#20023,#20013)
|
||||
enclosingStmt(#20023,#20021)
|
||||
exprContainers(#20023,#20015)
|
||||
#20024=*
|
||||
exprs(#20024,66,#20022,0,"...args")
|
||||
hasLocation(#20024,#20013)
|
||||
enclosingStmt(#20024,#20021)
|
||||
exprContainers(#20024,#20015)
|
||||
exprs(#20023,79,#20020,1,"Object")
|
||||
hasLocation(#20023,#20011)
|
||||
enclosingStmt(#20023,#20020)
|
||||
exprContainers(#20023,#20001)
|
||||
literals("Object","Object",#20023)
|
||||
#20024=@"var;{Object};{#20000}"
|
||||
variables(#20024,"Object",#20000)
|
||||
bind(#20023,#20024)
|
||||
#20025=*
|
||||
exprs(#20025,79,#20024,0,"args")
|
||||
hasLocation(#20025,#20013)
|
||||
enclosingStmt(#20025,#20021)
|
||||
exprContainers(#20025,#20015)
|
||||
literals("args","args",#20025)
|
||||
bind(#20025,#20017)
|
||||
numlines(#20015,1,0,0)
|
||||
isMethod(#20012)
|
||||
#20026=*
|
||||
lines(#20026,#20001,"class Point extends Object {}","")
|
||||
hasLocation(#20026,#20002)
|
||||
numlines(#20001,1,1,0)
|
||||
properties(#20025,#20020,2,0,"constru ... rgs); }")
|
||||
#20026=@"loc,{#10000},1,28,1,27"
|
||||
locations_default(#20026,#10000,1,28,1,27)
|
||||
hasLocation(#20025,#20026)
|
||||
#20027=*
|
||||
tokeninfo(#20027,7,#20001,0,"class")
|
||||
#20028=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20028,#10000,1,1,1,5)
|
||||
hasLocation(#20027,#20028)
|
||||
exprs(#20027,0,#20025,0,"constructor")
|
||||
hasLocation(#20027,#20026)
|
||||
enclosingStmt(#20027,#20020)
|
||||
exprContainers(#20027,#20001)
|
||||
literals("constructor","constructor",#20027)
|
||||
#20028=*
|
||||
exprs(#20028,9,#20025,1,"(...arg ... rgs); }")
|
||||
hasLocation(#20028,#20026)
|
||||
enclosingStmt(#20028,#20020)
|
||||
exprContainers(#20028,#20001)
|
||||
#20029=*
|
||||
tokeninfo(#20029,6,#20001,1,"Point")
|
||||
hasLocation(#20029,#20007)
|
||||
#20030=*
|
||||
tokeninfo(#20030,7,#20001,2,"extends")
|
||||
#20031=@"loc,{#10000},1,13,1,19"
|
||||
locations_default(#20031,#10000,1,13,1,19)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,6,#20001,3,"Object")
|
||||
hasLocation(#20032,#20010)
|
||||
scopes(#20029,1)
|
||||
scopenodes(#20028,#20029)
|
||||
scopenesting(#20029,#20022)
|
||||
#20030=@"var;{args};{#20029}"
|
||||
variables(#20030,"args",#20029)
|
||||
#20031=*
|
||||
exprs(#20031,78,#20028,0,"args")
|
||||
hasLocation(#20031,#20026)
|
||||
exprContainers(#20031,#20028)
|
||||
literals("args","args",#20031)
|
||||
decl(#20031,#20030)
|
||||
#20032=@"var;{arguments};{#20029}"
|
||||
variables(#20032,"arguments",#20029)
|
||||
isArgumentsObject(#20032)
|
||||
hasRestParameter(#20028)
|
||||
#20033=*
|
||||
tokeninfo(#20033,8,#20001,4,"{")
|
||||
#20034=@"loc,{#10000},1,28,1,28"
|
||||
locations_default(#20034,#10000,1,28,1,28)
|
||||
hasLocation(#20033,#20034)
|
||||
stmts(#20033,1,#20028,-2,"{ super(...args); }")
|
||||
hasLocation(#20033,#20026)
|
||||
stmtContainers(#20033,#20028)
|
||||
#20034=*
|
||||
stmts(#20034,2,#20033,0,"super(...args);")
|
||||
hasLocation(#20034,#20026)
|
||||
stmtContainers(#20034,#20028)
|
||||
#20035=*
|
||||
tokeninfo(#20035,8,#20001,5,"}")
|
||||
#20036=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20036,#10000,1,29,1,29)
|
||||
hasLocation(#20035,#20036)
|
||||
exprs(#20035,13,#20034,0,"super(...args)")
|
||||
hasLocation(#20035,#20026)
|
||||
enclosingStmt(#20035,#20034)
|
||||
exprContainers(#20035,#20028)
|
||||
#20036=*
|
||||
exprs(#20036,81,#20035,-1,"super")
|
||||
hasLocation(#20036,#20026)
|
||||
enclosingStmt(#20036,#20034)
|
||||
exprContainers(#20036,#20028)
|
||||
#20037=*
|
||||
tokeninfo(#20037,0,#20001,6,"")
|
||||
#20038=@"loc,{#10000},1,30,1,29"
|
||||
locations_default(#20038,#10000,1,30,1,29)
|
||||
hasLocation(#20037,#20038)
|
||||
exprs(#20037,66,#20035,0,"...args")
|
||||
hasLocation(#20037,#20026)
|
||||
enclosingStmt(#20037,#20034)
|
||||
exprContainers(#20037,#20028)
|
||||
#20038=*
|
||||
exprs(#20038,79,#20037,0,"args")
|
||||
hasLocation(#20038,#20026)
|
||||
enclosingStmt(#20038,#20034)
|
||||
exprContainers(#20038,#20028)
|
||||
literals("args","args",#20038)
|
||||
bind(#20038,#20030)
|
||||
isMethod(#20025)
|
||||
#20039=*
|
||||
entry_cfg_node(#20039,#20001)
|
||||
#20040=@"loc,{#10000},1,1,1,0"
|
||||
@@ -152,27 +151,27 @@ locations_default(#20040,#10000,1,1,1,0)
|
||||
hasLocation(#20039,#20040)
|
||||
#20041=*
|
||||
exit_cfg_node(#20041,#20001)
|
||||
hasLocation(#20041,#20038)
|
||||
successor(#20015,#20012)
|
||||
hasLocation(#20041,#20017)
|
||||
successor(#20028,#20025)
|
||||
#20042=*
|
||||
entry_cfg_node(#20042,#20015)
|
||||
hasLocation(#20042,#20013)
|
||||
entry_cfg_node(#20042,#20028)
|
||||
hasLocation(#20042,#20026)
|
||||
#20043=*
|
||||
exit_cfg_node(#20043,#20015)
|
||||
hasLocation(#20043,#20013)
|
||||
successor(#20020,#20021)
|
||||
exit_cfg_node(#20043,#20028)
|
||||
hasLocation(#20043,#20026)
|
||||
successor(#20033,#20034)
|
||||
successor(#20034,#20036)
|
||||
successor(#20038,#20037)
|
||||
successor(#20037,#20035)
|
||||
successor(#20036,#20038)
|
||||
successor(#20035,#20043)
|
||||
successor(#20031,#20033)
|
||||
successor(#20042,#20031)
|
||||
successor(#20027,#20028)
|
||||
successor(#20025,#20020)
|
||||
successor(#20023,#20027)
|
||||
successor(#20021,#20023)
|
||||
successor(#20025,#20024)
|
||||
successor(#20024,#20022)
|
||||
successor(#20023,#20025)
|
||||
successor(#20022,#20043)
|
||||
successor(#20018,#20020)
|
||||
successor(#20042,#20018)
|
||||
successor(#20014,#20015)
|
||||
successor(#20012,#20005)
|
||||
successor(#20009,#20014)
|
||||
successor(#20006,#20009)
|
||||
successor(#20005,#20041)
|
||||
successor(#20039,#20006)
|
||||
successor(#20020,#20041)
|
||||
successor(#20039,#20021)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,244 +9,243 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,55"
|
||||
locations_default(#20002,#10000,1,1,1,55)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{Point};{#20000}"
|
||||
variables(#20003,"Point",#20000)
|
||||
#20004=@"local_type_name;{Point};{#20000}"
|
||||
local_type_names(#20004,"Point",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,26,#20001,0,"class P ... ray) {}")
|
||||
hasLocation(#20005,#20002)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"class Point extends (Math.random() ? Object : Array) {}","")
|
||||
#20003=@"loc,{#10000},1,1,1,55"
|
||||
locations_default(#20003,#10000,1,1,1,55)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"class")
|
||||
#20005=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20005,#10000,1,1,1,5)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
exprs(#20006,78,#20005,0,"Point")
|
||||
tokeninfo(#20006,6,#20001,1,"Point")
|
||||
#20007=@"loc,{#10000},1,7,1,11"
|
||||
locations_default(#20007,#10000,1,7,1,11)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20005)
|
||||
exprContainers(#20006,#20001)
|
||||
literals("Point","Point",#20006)
|
||||
decl(#20006,#20003)
|
||||
typedecl(#20006,#20004)
|
||||
#20008=*
|
||||
scopes(#20008,10)
|
||||
scopenodes(#20005,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=*
|
||||
exprs(#20009,63,#20005,1,"(Math.r ... Array)")
|
||||
#20010=@"loc,{#10000},1,21,1,52"
|
||||
locations_default(#20010,#10000,1,21,1,52)
|
||||
hasLocation(#20009,#20010)
|
||||
enclosingStmt(#20009,#20005)
|
||||
exprContainers(#20009,#20001)
|
||||
#20011=*
|
||||
exprs(#20011,11,#20009,0,"Math.ra ... : Array")
|
||||
#20012=@"loc,{#10000},1,22,1,51"
|
||||
locations_default(#20012,#10000,1,22,1,51)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20005)
|
||||
exprContainers(#20011,#20001)
|
||||
#20013=*
|
||||
exprs(#20013,13,#20011,0,"Math.random()")
|
||||
#20014=@"loc,{#10000},1,22,1,34"
|
||||
locations_default(#20014,#10000,1,22,1,34)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20005)
|
||||
exprContainers(#20013,#20001)
|
||||
#20015=*
|
||||
exprs(#20015,14,#20013,-1,"Math.random")
|
||||
#20016=@"loc,{#10000},1,22,1,32"
|
||||
locations_default(#20016,#10000,1,22,1,32)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20005)
|
||||
exprContainers(#20015,#20001)
|
||||
#20017=*
|
||||
exprs(#20017,79,#20015,0,"Math")
|
||||
#20018=@"loc,{#10000},1,22,1,25"
|
||||
locations_default(#20018,#10000,1,22,1,25)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20005)
|
||||
exprContainers(#20017,#20001)
|
||||
literals("Math","Math",#20017)
|
||||
#20019=@"var;{Math};{#20000}"
|
||||
variables(#20019,"Math",#20000)
|
||||
bind(#20017,#20019)
|
||||
tokeninfo(#20008,7,#20001,2,"extends")
|
||||
#20009=@"loc,{#10000},1,13,1,19"
|
||||
locations_default(#20009,#10000,1,13,1,19)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,"(")
|
||||
#20011=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20011,#10000,1,21,1,21)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,4,"Math")
|
||||
#20013=@"loc,{#10000},1,22,1,25"
|
||||
locations_default(#20013,#10000,1,22,1,25)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,".")
|
||||
#20015=@"loc,{#10000},1,26,1,26"
|
||||
locations_default(#20015,#10000,1,26,1,26)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,6,#20001,6,"random")
|
||||
#20017=@"loc,{#10000},1,27,1,32"
|
||||
locations_default(#20017,#10000,1,27,1,32)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,7,"(")
|
||||
#20019=@"loc,{#10000},1,33,1,33"
|
||||
locations_default(#20019,#10000,1,33,1,33)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
exprs(#20020,0,#20015,1,"random")
|
||||
#20021=@"loc,{#10000},1,27,1,32"
|
||||
locations_default(#20021,#10000,1,27,1,32)
|
||||
tokeninfo(#20020,8,#20001,8,")")
|
||||
#20021=@"loc,{#10000},1,34,1,34"
|
||||
locations_default(#20021,#10000,1,34,1,34)
|
||||
hasLocation(#20020,#20021)
|
||||
enclosingStmt(#20020,#20005)
|
||||
exprContainers(#20020,#20001)
|
||||
literals("random","random",#20020)
|
||||
#20022=*
|
||||
exprs(#20022,79,#20011,1,"Object")
|
||||
#20023=@"loc,{#10000},1,38,1,43"
|
||||
locations_default(#20023,#10000,1,38,1,43)
|
||||
tokeninfo(#20022,8,#20001,9,"?")
|
||||
#20023=@"loc,{#10000},1,36,1,36"
|
||||
locations_default(#20023,#10000,1,36,1,36)
|
||||
hasLocation(#20022,#20023)
|
||||
enclosingStmt(#20022,#20005)
|
||||
exprContainers(#20022,#20001)
|
||||
literals("Object","Object",#20022)
|
||||
#20024=@"var;{Object};{#20000}"
|
||||
variables(#20024,"Object",#20000)
|
||||
bind(#20022,#20024)
|
||||
#20025=*
|
||||
exprs(#20025,79,#20011,2,"Array")
|
||||
#20026=@"loc,{#10000},1,47,1,51"
|
||||
locations_default(#20026,#10000,1,47,1,51)
|
||||
hasLocation(#20025,#20026)
|
||||
enclosingStmt(#20025,#20005)
|
||||
exprContainers(#20025,#20001)
|
||||
literals("Array","Array",#20025)
|
||||
#20027=@"var;{Array};{#20000}"
|
||||
variables(#20027,"Array",#20000)
|
||||
bind(#20025,#20027)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,10,"Object")
|
||||
#20025=@"loc,{#10000},1,38,1,43"
|
||||
locations_default(#20025,#10000,1,38,1,43)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,11,":")
|
||||
#20027=@"loc,{#10000},1,45,1,45"
|
||||
locations_default(#20027,#10000,1,45,1,45)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
properties(#20028,#20005,2,0,"constru ... rgs); }")
|
||||
#20029=@"loc,{#10000},1,54,1,53"
|
||||
locations_default(#20029,#10000,1,54,1,53)
|
||||
tokeninfo(#20028,6,#20001,12,"Array")
|
||||
#20029=@"loc,{#10000},1,47,1,51"
|
||||
locations_default(#20029,#10000,1,47,1,51)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
exprs(#20030,0,#20028,0,"constructor")
|
||||
hasLocation(#20030,#20029)
|
||||
enclosingStmt(#20030,#20005)
|
||||
exprContainers(#20030,#20001)
|
||||
literals("constructor","constructor",#20030)
|
||||
#20031=*
|
||||
exprs(#20031,9,#20028,1,"(...arg ... rgs); }")
|
||||
hasLocation(#20031,#20029)
|
||||
enclosingStmt(#20031,#20005)
|
||||
exprContainers(#20031,#20001)
|
||||
tokeninfo(#20030,8,#20001,13,")")
|
||||
#20031=@"loc,{#10000},1,52,1,52"
|
||||
locations_default(#20031,#10000,1,52,1,52)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
scopes(#20032,1)
|
||||
scopenodes(#20031,#20032)
|
||||
scopenesting(#20032,#20008)
|
||||
#20033=@"var;{args};{#20032}"
|
||||
variables(#20033,"args",#20032)
|
||||
tokeninfo(#20032,8,#20001,14,"{")
|
||||
#20033=@"loc,{#10000},1,54,1,54"
|
||||
locations_default(#20033,#10000,1,54,1,54)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
exprs(#20034,78,#20031,0,"args")
|
||||
hasLocation(#20034,#20029)
|
||||
exprContainers(#20034,#20031)
|
||||
literals("args","args",#20034)
|
||||
decl(#20034,#20033)
|
||||
#20035=@"var;{arguments};{#20032}"
|
||||
variables(#20035,"arguments",#20032)
|
||||
isArgumentsObject(#20035)
|
||||
hasRestParameter(#20031)
|
||||
tokeninfo(#20034,8,#20001,15,"}")
|
||||
#20035=@"loc,{#10000},1,55,1,55"
|
||||
locations_default(#20035,#10000,1,55,1,55)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
stmts(#20036,1,#20031,-2,"{ super(...args); }")
|
||||
hasLocation(#20036,#20029)
|
||||
stmtContainers(#20036,#20031)
|
||||
#20037=*
|
||||
stmts(#20037,2,#20036,0,"super(...args);")
|
||||
hasLocation(#20037,#20029)
|
||||
stmtContainers(#20037,#20031)
|
||||
#20038=*
|
||||
exprs(#20038,13,#20037,0,"super(...args)")
|
||||
hasLocation(#20038,#20029)
|
||||
enclosingStmt(#20038,#20037)
|
||||
exprContainers(#20038,#20031)
|
||||
#20039=*
|
||||
exprs(#20039,81,#20038,-1,"super")
|
||||
hasLocation(#20039,#20029)
|
||||
enclosingStmt(#20039,#20037)
|
||||
exprContainers(#20039,#20031)
|
||||
tokeninfo(#20036,0,#20001,16,"")
|
||||
#20037=@"loc,{#10000},1,56,1,55"
|
||||
locations_default(#20037,#10000,1,56,1,55)
|
||||
hasLocation(#20036,#20037)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20038=@"var;{Point};{#20000}"
|
||||
variables(#20038,"Point",#20000)
|
||||
#20039=@"local_type_name;{Point};{#20000}"
|
||||
local_type_names(#20039,"Point",#20000)
|
||||
#20040=*
|
||||
exprs(#20040,66,#20038,0,"...args")
|
||||
hasLocation(#20040,#20029)
|
||||
enclosingStmt(#20040,#20037)
|
||||
exprContainers(#20040,#20031)
|
||||
stmts(#20040,26,#20001,0,"class P ... ray) {}")
|
||||
hasLocation(#20040,#20003)
|
||||
stmtContainers(#20040,#20001)
|
||||
#20041=*
|
||||
exprs(#20041,79,#20040,0,"args")
|
||||
hasLocation(#20041,#20029)
|
||||
enclosingStmt(#20041,#20037)
|
||||
exprContainers(#20041,#20031)
|
||||
literals("args","args",#20041)
|
||||
bind(#20041,#20033)
|
||||
numlines(#20031,1,0,0)
|
||||
isMethod(#20028)
|
||||
exprs(#20041,78,#20040,0,"Point")
|
||||
hasLocation(#20041,#20007)
|
||||
enclosingStmt(#20041,#20040)
|
||||
exprContainers(#20041,#20001)
|
||||
literals("Point","Point",#20041)
|
||||
decl(#20041,#20038)
|
||||
typedecl(#20041,#20039)
|
||||
#20042=*
|
||||
lines(#20042,#20001,"class Point extends (Math.random() ? Object : Array) {}","")
|
||||
hasLocation(#20042,#20002)
|
||||
numlines(#20001,1,1,0)
|
||||
scopes(#20042,10)
|
||||
scopenodes(#20040,#20042)
|
||||
scopenesting(#20042,#20000)
|
||||
#20043=*
|
||||
tokeninfo(#20043,7,#20001,0,"class")
|
||||
#20044=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20044,#10000,1,1,1,5)
|
||||
exprs(#20043,63,#20040,1,"(Math.r ... Array)")
|
||||
#20044=@"loc,{#10000},1,21,1,52"
|
||||
locations_default(#20044,#10000,1,21,1,52)
|
||||
hasLocation(#20043,#20044)
|
||||
enclosingStmt(#20043,#20040)
|
||||
exprContainers(#20043,#20001)
|
||||
#20045=*
|
||||
tokeninfo(#20045,6,#20001,1,"Point")
|
||||
hasLocation(#20045,#20007)
|
||||
#20046=*
|
||||
tokeninfo(#20046,7,#20001,2,"extends")
|
||||
#20047=@"loc,{#10000},1,13,1,19"
|
||||
locations_default(#20047,#10000,1,13,1,19)
|
||||
hasLocation(#20046,#20047)
|
||||
#20048=*
|
||||
tokeninfo(#20048,8,#20001,3,"(")
|
||||
#20049=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20049,#10000,1,21,1,21)
|
||||
hasLocation(#20048,#20049)
|
||||
#20050=*
|
||||
tokeninfo(#20050,6,#20001,4,"Math")
|
||||
hasLocation(#20050,#20018)
|
||||
exprs(#20045,11,#20043,0,"Math.ra ... : Array")
|
||||
#20046=@"loc,{#10000},1,22,1,51"
|
||||
locations_default(#20046,#10000,1,22,1,51)
|
||||
hasLocation(#20045,#20046)
|
||||
enclosingStmt(#20045,#20040)
|
||||
exprContainers(#20045,#20001)
|
||||
#20047=*
|
||||
exprs(#20047,13,#20045,0,"Math.random()")
|
||||
#20048=@"loc,{#10000},1,22,1,34"
|
||||
locations_default(#20048,#10000,1,22,1,34)
|
||||
hasLocation(#20047,#20048)
|
||||
enclosingStmt(#20047,#20040)
|
||||
exprContainers(#20047,#20001)
|
||||
#20049=*
|
||||
exprs(#20049,14,#20047,-1,"Math.random")
|
||||
#20050=@"loc,{#10000},1,22,1,32"
|
||||
locations_default(#20050,#10000,1,22,1,32)
|
||||
hasLocation(#20049,#20050)
|
||||
enclosingStmt(#20049,#20040)
|
||||
exprContainers(#20049,#20001)
|
||||
#20051=*
|
||||
tokeninfo(#20051,8,#20001,5,".")
|
||||
#20052=@"loc,{#10000},1,26,1,26"
|
||||
locations_default(#20052,#10000,1,26,1,26)
|
||||
hasLocation(#20051,#20052)
|
||||
exprs(#20051,79,#20049,0,"Math")
|
||||
hasLocation(#20051,#20013)
|
||||
enclosingStmt(#20051,#20040)
|
||||
exprContainers(#20051,#20001)
|
||||
literals("Math","Math",#20051)
|
||||
#20052=@"var;{Math};{#20000}"
|
||||
variables(#20052,"Math",#20000)
|
||||
bind(#20051,#20052)
|
||||
#20053=*
|
||||
tokeninfo(#20053,6,#20001,6,"random")
|
||||
hasLocation(#20053,#20021)
|
||||
exprs(#20053,0,#20049,1,"random")
|
||||
hasLocation(#20053,#20017)
|
||||
enclosingStmt(#20053,#20040)
|
||||
exprContainers(#20053,#20001)
|
||||
literals("random","random",#20053)
|
||||
#20054=*
|
||||
tokeninfo(#20054,8,#20001,7,"(")
|
||||
#20055=@"loc,{#10000},1,33,1,33"
|
||||
locations_default(#20055,#10000,1,33,1,33)
|
||||
hasLocation(#20054,#20055)
|
||||
exprs(#20054,79,#20045,1,"Object")
|
||||
hasLocation(#20054,#20025)
|
||||
enclosingStmt(#20054,#20040)
|
||||
exprContainers(#20054,#20001)
|
||||
literals("Object","Object",#20054)
|
||||
#20055=@"var;{Object};{#20000}"
|
||||
variables(#20055,"Object",#20000)
|
||||
bind(#20054,#20055)
|
||||
#20056=*
|
||||
tokeninfo(#20056,8,#20001,8,")")
|
||||
#20057=@"loc,{#10000},1,34,1,34"
|
||||
locations_default(#20057,#10000,1,34,1,34)
|
||||
hasLocation(#20056,#20057)
|
||||
exprs(#20056,79,#20045,2,"Array")
|
||||
hasLocation(#20056,#20029)
|
||||
enclosingStmt(#20056,#20040)
|
||||
exprContainers(#20056,#20001)
|
||||
literals("Array","Array",#20056)
|
||||
#20057=@"var;{Array};{#20000}"
|
||||
variables(#20057,"Array",#20000)
|
||||
bind(#20056,#20057)
|
||||
#20058=*
|
||||
tokeninfo(#20058,8,#20001,9,"?")
|
||||
#20059=@"loc,{#10000},1,36,1,36"
|
||||
locations_default(#20059,#10000,1,36,1,36)
|
||||
properties(#20058,#20040,2,0,"constru ... rgs); }")
|
||||
#20059=@"loc,{#10000},1,54,1,53"
|
||||
locations_default(#20059,#10000,1,54,1,53)
|
||||
hasLocation(#20058,#20059)
|
||||
#20060=*
|
||||
tokeninfo(#20060,6,#20001,10,"Object")
|
||||
hasLocation(#20060,#20023)
|
||||
exprs(#20060,0,#20058,0,"constructor")
|
||||
hasLocation(#20060,#20059)
|
||||
enclosingStmt(#20060,#20040)
|
||||
exprContainers(#20060,#20001)
|
||||
literals("constructor","constructor",#20060)
|
||||
#20061=*
|
||||
tokeninfo(#20061,8,#20001,11,":")
|
||||
#20062=@"loc,{#10000},1,45,1,45"
|
||||
locations_default(#20062,#10000,1,45,1,45)
|
||||
hasLocation(#20061,#20062)
|
||||
#20063=*
|
||||
tokeninfo(#20063,6,#20001,12,"Array")
|
||||
hasLocation(#20063,#20026)
|
||||
exprs(#20061,9,#20058,1,"(...arg ... rgs); }")
|
||||
hasLocation(#20061,#20059)
|
||||
enclosingStmt(#20061,#20040)
|
||||
exprContainers(#20061,#20001)
|
||||
#20062=*
|
||||
scopes(#20062,1)
|
||||
scopenodes(#20061,#20062)
|
||||
scopenesting(#20062,#20042)
|
||||
#20063=@"var;{args};{#20062}"
|
||||
variables(#20063,"args",#20062)
|
||||
#20064=*
|
||||
tokeninfo(#20064,8,#20001,13,")")
|
||||
#20065=@"loc,{#10000},1,52,1,52"
|
||||
locations_default(#20065,#10000,1,52,1,52)
|
||||
hasLocation(#20064,#20065)
|
||||
exprs(#20064,78,#20061,0,"args")
|
||||
hasLocation(#20064,#20059)
|
||||
exprContainers(#20064,#20061)
|
||||
literals("args","args",#20064)
|
||||
decl(#20064,#20063)
|
||||
#20065=@"var;{arguments};{#20062}"
|
||||
variables(#20065,"arguments",#20062)
|
||||
isArgumentsObject(#20065)
|
||||
hasRestParameter(#20061)
|
||||
#20066=*
|
||||
tokeninfo(#20066,8,#20001,14,"{")
|
||||
#20067=@"loc,{#10000},1,54,1,54"
|
||||
locations_default(#20067,#10000,1,54,1,54)
|
||||
hasLocation(#20066,#20067)
|
||||
stmts(#20066,1,#20061,-2,"{ super(...args); }")
|
||||
hasLocation(#20066,#20059)
|
||||
stmtContainers(#20066,#20061)
|
||||
#20067=*
|
||||
stmts(#20067,2,#20066,0,"super(...args);")
|
||||
hasLocation(#20067,#20059)
|
||||
stmtContainers(#20067,#20061)
|
||||
#20068=*
|
||||
tokeninfo(#20068,8,#20001,15,"}")
|
||||
#20069=@"loc,{#10000},1,55,1,55"
|
||||
locations_default(#20069,#10000,1,55,1,55)
|
||||
hasLocation(#20068,#20069)
|
||||
exprs(#20068,13,#20067,0,"super(...args)")
|
||||
hasLocation(#20068,#20059)
|
||||
enclosingStmt(#20068,#20067)
|
||||
exprContainers(#20068,#20061)
|
||||
#20069=*
|
||||
exprs(#20069,81,#20068,-1,"super")
|
||||
hasLocation(#20069,#20059)
|
||||
enclosingStmt(#20069,#20067)
|
||||
exprContainers(#20069,#20061)
|
||||
#20070=*
|
||||
tokeninfo(#20070,0,#20001,16,"")
|
||||
#20071=@"loc,{#10000},1,56,1,55"
|
||||
locations_default(#20071,#10000,1,56,1,55)
|
||||
hasLocation(#20070,#20071)
|
||||
exprs(#20070,66,#20068,0,"...args")
|
||||
hasLocation(#20070,#20059)
|
||||
enclosingStmt(#20070,#20067)
|
||||
exprContainers(#20070,#20061)
|
||||
#20071=*
|
||||
exprs(#20071,79,#20070,0,"args")
|
||||
hasLocation(#20071,#20059)
|
||||
enclosingStmt(#20071,#20067)
|
||||
exprContainers(#20071,#20061)
|
||||
literals("args","args",#20071)
|
||||
bind(#20071,#20063)
|
||||
isMethod(#20058)
|
||||
#20072=*
|
||||
entry_cfg_node(#20072,#20001)
|
||||
#20073=@"loc,{#10000},1,1,1,0"
|
||||
@@ -254,43 +253,43 @@ locations_default(#20073,#10000,1,1,1,0)
|
||||
hasLocation(#20072,#20073)
|
||||
#20074=*
|
||||
exit_cfg_node(#20074,#20001)
|
||||
hasLocation(#20074,#20071)
|
||||
successor(#20031,#20028)
|
||||
hasLocation(#20074,#20037)
|
||||
successor(#20061,#20058)
|
||||
#20075=*
|
||||
entry_cfg_node(#20075,#20031)
|
||||
hasLocation(#20075,#20029)
|
||||
entry_cfg_node(#20075,#20061)
|
||||
hasLocation(#20075,#20059)
|
||||
#20076=*
|
||||
exit_cfg_node(#20076,#20031)
|
||||
hasLocation(#20076,#20029)
|
||||
successor(#20036,#20037)
|
||||
successor(#20037,#20039)
|
||||
successor(#20041,#20040)
|
||||
successor(#20040,#20038)
|
||||
successor(#20039,#20041)
|
||||
successor(#20038,#20076)
|
||||
successor(#20034,#20036)
|
||||
successor(#20075,#20034)
|
||||
successor(#20030,#20031)
|
||||
successor(#20028,#20005)
|
||||
successor(#20009,#20011)
|
||||
successor(#20011,#20017)
|
||||
successor(#20020,#20015)
|
||||
successor(#20017,#20020)
|
||||
successor(#20015,#20013)
|
||||
exit_cfg_node(#20076,#20061)
|
||||
hasLocation(#20076,#20059)
|
||||
successor(#20066,#20067)
|
||||
successor(#20067,#20069)
|
||||
successor(#20071,#20070)
|
||||
successor(#20070,#20068)
|
||||
successor(#20069,#20071)
|
||||
successor(#20068,#20076)
|
||||
successor(#20064,#20066)
|
||||
successor(#20075,#20064)
|
||||
successor(#20060,#20061)
|
||||
successor(#20058,#20040)
|
||||
successor(#20043,#20045)
|
||||
successor(#20045,#20051)
|
||||
successor(#20053,#20049)
|
||||
successor(#20051,#20053)
|
||||
successor(#20049,#20047)
|
||||
#20077=*
|
||||
guard_node(#20077,1,#20013)
|
||||
hasLocation(#20077,#20014)
|
||||
successor(#20077,#20022)
|
||||
guard_node(#20077,1,#20047)
|
||||
hasLocation(#20077,#20048)
|
||||
successor(#20077,#20054)
|
||||
#20078=*
|
||||
guard_node(#20078,0,#20013)
|
||||
hasLocation(#20078,#20014)
|
||||
successor(#20078,#20025)
|
||||
successor(#20013,#20077)
|
||||
successor(#20013,#20078)
|
||||
successor(#20022,#20030)
|
||||
successor(#20025,#20030)
|
||||
successor(#20006,#20009)
|
||||
successor(#20005,#20074)
|
||||
successor(#20072,#20006)
|
||||
guard_node(#20078,0,#20047)
|
||||
hasLocation(#20078,#20048)
|
||||
successor(#20078,#20056)
|
||||
successor(#20047,#20077)
|
||||
successor(#20047,#20078)
|
||||
successor(#20054,#20060)
|
||||
successor(#20056,#20060)
|
||||
successor(#20041,#20043)
|
||||
successor(#20040,#20074)
|
||||
successor(#20072,#20041)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,222 +9,220 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,5,1"
|
||||
locations_default(#20002,#10000,1,1,5,1)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{A};{#20000}"
|
||||
variables(#20003,"A",#20000)
|
||||
#20004=@"local_type_name;{A};{#20000}"
|
||||
local_type_names(#20004,"A",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,26,#20001,0,"class A ... ;\n }\n}")
|
||||
hasLocation(#20005,#20002)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,78,#20005,0,"A")
|
||||
#20007=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20007,#10000,1,7,1,7)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20005)
|
||||
exprContainers(#20006,#20001)
|
||||
literals("A","A",#20006)
|
||||
decl(#20006,#20003)
|
||||
typedecl(#20006,#20004)
|
||||
#20008=*
|
||||
scopes(#20008,10)
|
||||
scopenodes(#20005,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=*
|
||||
properties(#20009,#20005,2,0,"getX() ... .x;\n }")
|
||||
#20010=@"loc,{#10000},2,3,4,3"
|
||||
locations_default(#20010,#10000,2,3,4,3)
|
||||
hasLocation(#20009,#20010)
|
||||
#20011=*
|
||||
exprs(#20011,0,#20009,0,"getX")
|
||||
#20012=@"loc,{#10000},2,3,2,6"
|
||||
locations_default(#20012,#10000,2,3,2,6)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20005)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("getX","getX",#20011)
|
||||
#20013=*
|
||||
exprs(#20013,9,#20009,1,"() {\n ... .x;\n }")
|
||||
#20014=@"loc,{#10000},2,7,4,3"
|
||||
locations_default(#20014,#10000,2,7,4,3)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20005)
|
||||
exprContainers(#20013,#20001)
|
||||
#20015=*
|
||||
scopes(#20015,1)
|
||||
scopenodes(#20013,#20015)
|
||||
scopenesting(#20015,#20008)
|
||||
#20016=@"var;{arguments};{#20015}"
|
||||
variables(#20016,"arguments",#20015)
|
||||
isArgumentsObject(#20016)
|
||||
#20017=*
|
||||
stmts(#20017,1,#20013,-2,"{\n r ... .x;\n }")
|
||||
#20018=@"loc,{#10000},2,10,4,3"
|
||||
locations_default(#20018,#10000,2,10,4,3)
|
||||
hasLocation(#20017,#20018)
|
||||
stmtContainers(#20017,#20013)
|
||||
#20019=*
|
||||
stmts(#20019,9,#20017,0,"return this.x;")
|
||||
#20020=@"loc,{#10000},3,5,3,18"
|
||||
locations_default(#20020,#10000,3,5,3,18)
|
||||
hasLocation(#20019,#20020)
|
||||
stmtContainers(#20019,#20013)
|
||||
#20021=*
|
||||
exprs(#20021,14,#20019,0,"this.x")
|
||||
#20022=@"loc,{#10000},3,12,3,17"
|
||||
locations_default(#20022,#10000,3,12,3,17)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20019)
|
||||
exprContainers(#20021,#20013)
|
||||
#20023=*
|
||||
exprs(#20023,6,#20021,0,"this")
|
||||
#20024=@"loc,{#10000},3,12,3,15"
|
||||
locations_default(#20024,#10000,3,12,3,15)
|
||||
hasLocation(#20023,#20024)
|
||||
enclosingStmt(#20023,#20019)
|
||||
exprContainers(#20023,#20013)
|
||||
#20025=*
|
||||
exprs(#20025,0,#20021,1,"x")
|
||||
#20026=@"loc,{#10000},3,17,3,17"
|
||||
locations_default(#20026,#10000,3,17,3,17)
|
||||
hasLocation(#20025,#20026)
|
||||
enclosingStmt(#20025,#20019)
|
||||
exprContainers(#20025,#20013)
|
||||
literals("x","x",#20025)
|
||||
numlines(#20013,3,3,0)
|
||||
isMethod(#20009)
|
||||
#20027=*
|
||||
properties(#20027,#20005,3,0,"constructor() {}")
|
||||
#20028=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20028,#10000,1,9,1,8)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
exprs(#20029,0,#20027,0,"constructor")
|
||||
hasLocation(#20029,#20028)
|
||||
enclosingStmt(#20029,#20005)
|
||||
exprContainers(#20029,#20001)
|
||||
literals("constructor","constructor",#20029)
|
||||
#20030=*
|
||||
exprs(#20030,9,#20027,1,"() {}")
|
||||
hasLocation(#20030,#20028)
|
||||
enclosingStmt(#20030,#20005)
|
||||
exprContainers(#20030,#20001)
|
||||
#20031=*
|
||||
scopes(#20031,1)
|
||||
scopenodes(#20030,#20031)
|
||||
scopenesting(#20031,#20008)
|
||||
#20032=@"var;{arguments};{#20031}"
|
||||
variables(#20032,"arguments",#20031)
|
||||
isArgumentsObject(#20032)
|
||||
#20033=*
|
||||
stmts(#20033,1,#20030,-2,"{}")
|
||||
hasLocation(#20033,#20028)
|
||||
stmtContainers(#20033,#20030)
|
||||
numlines(#20030,1,0,0)
|
||||
isMethod(#20027)
|
||||
#20034=*
|
||||
lines(#20034,#20001,"class A {","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"class A {","
|
||||
")
|
||||
#20035=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20035,#10000,1,1,1,9)
|
||||
#20003=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20003,#10000,1,1,1,9)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001," getX() {","
|
||||
")
|
||||
#20005=@"loc,{#10000},2,1,2,10"
|
||||
locations_default(#20005,#10000,2,1,2,10)
|
||||
hasLocation(#20004,#20005)
|
||||
indentation(#10000,2," ",2)
|
||||
#20006=*
|
||||
lines(#20006,#20001," return this.x;","
|
||||
")
|
||||
#20007=@"loc,{#10000},3,1,3,18"
|
||||
locations_default(#20007,#10000,3,1,3,18)
|
||||
hasLocation(#20006,#20007)
|
||||
indentation(#10000,3," ",4)
|
||||
#20008=*
|
||||
lines(#20008,#20001," }","
|
||||
")
|
||||
#20009=@"loc,{#10000},4,1,4,3"
|
||||
locations_default(#20009,#10000,4,1,4,3)
|
||||
hasLocation(#20008,#20009)
|
||||
indentation(#10000,4," ",2)
|
||||
#20010=*
|
||||
lines(#20010,#20001,"}","")
|
||||
#20011=@"loc,{#10000},5,1,5,1"
|
||||
locations_default(#20011,#10000,5,1,5,1)
|
||||
hasLocation(#20010,#20011)
|
||||
numlines(#20001,5,5,0)
|
||||
#20012=*
|
||||
tokeninfo(#20012,7,#20001,0,"class")
|
||||
#20013=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20013,#10000,1,1,1,5)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,1,"A")
|
||||
#20015=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20015,#10000,1,7,1,7)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,2,"{")
|
||||
#20017=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20017,#10000,1,9,1,9)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,6,#20001,3,"getX")
|
||||
#20019=@"loc,{#10000},2,3,2,6"
|
||||
locations_default(#20019,#10000,2,3,2,6)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,4,"(")
|
||||
#20021=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20021,#10000,2,7,2,7)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,5,")")
|
||||
#20023=@"loc,{#10000},2,8,2,8"
|
||||
locations_default(#20023,#10000,2,8,2,8)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,6,"{")
|
||||
#20025=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20025,#10000,2,10,2,10)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,7,#20001,7,"return")
|
||||
#20027=@"loc,{#10000},3,5,3,10"
|
||||
locations_default(#20027,#10000,3,5,3,10)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,7,#20001,8,"this")
|
||||
#20029=@"loc,{#10000},3,12,3,15"
|
||||
locations_default(#20029,#10000,3,12,3,15)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,9,".")
|
||||
#20031=@"loc,{#10000},3,16,3,16"
|
||||
locations_default(#20031,#10000,3,16,3,16)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,6,#20001,10,"x")
|
||||
#20033=@"loc,{#10000},3,17,3,17"
|
||||
locations_default(#20033,#10000,3,17,3,17)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,11,";")
|
||||
#20035=@"loc,{#10000},3,18,3,18"
|
||||
locations_default(#20035,#10000,3,18,3,18)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
lines(#20036,#20001," getX() {","
|
||||
")
|
||||
#20037=@"loc,{#10000},2,1,2,10"
|
||||
locations_default(#20037,#10000,2,1,2,10)
|
||||
tokeninfo(#20036,8,#20001,12,"}")
|
||||
#20037=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20037,#10000,4,3,4,3)
|
||||
hasLocation(#20036,#20037)
|
||||
indentation(#10000,2," ",2)
|
||||
#20038=*
|
||||
lines(#20038,#20001," return this.x;","
|
||||
")
|
||||
#20039=@"loc,{#10000},3,1,3,18"
|
||||
locations_default(#20039,#10000,3,1,3,18)
|
||||
hasLocation(#20038,#20039)
|
||||
indentation(#10000,3," ",4)
|
||||
#20040=*
|
||||
lines(#20040,#20001," }","
|
||||
")
|
||||
#20041=@"loc,{#10000},4,1,4,3"
|
||||
locations_default(#20041,#10000,4,1,4,3)
|
||||
hasLocation(#20040,#20041)
|
||||
indentation(#10000,4," ",2)
|
||||
#20042=*
|
||||
lines(#20042,#20001,"}","")
|
||||
#20043=@"loc,{#10000},5,1,5,1"
|
||||
locations_default(#20043,#10000,5,1,5,1)
|
||||
hasLocation(#20042,#20043)
|
||||
numlines(#20001,5,5,0)
|
||||
tokeninfo(#20038,8,#20001,13,"}")
|
||||
hasLocation(#20038,#20011)
|
||||
#20039=*
|
||||
tokeninfo(#20039,0,#20001,14,"")
|
||||
#20040=@"loc,{#10000},5,2,5,1"
|
||||
locations_default(#20040,#10000,5,2,5,1)
|
||||
hasLocation(#20039,#20040)
|
||||
toplevels(#20001,0)
|
||||
#20041=@"loc,{#10000},1,1,5,1"
|
||||
locations_default(#20041,#10000,1,1,5,1)
|
||||
hasLocation(#20001,#20041)
|
||||
#20042=@"var;{A};{#20000}"
|
||||
variables(#20042,"A",#20000)
|
||||
#20043=@"local_type_name;{A};{#20000}"
|
||||
local_type_names(#20043,"A",#20000)
|
||||
#20044=*
|
||||
tokeninfo(#20044,7,#20001,0,"class")
|
||||
#20045=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20045,#10000,1,1,1,5)
|
||||
hasLocation(#20044,#20045)
|
||||
stmts(#20044,26,#20001,0,"class A ... ;\n }\n}")
|
||||
hasLocation(#20044,#20041)
|
||||
stmtContainers(#20044,#20001)
|
||||
#20045=*
|
||||
exprs(#20045,78,#20044,0,"A")
|
||||
hasLocation(#20045,#20015)
|
||||
enclosingStmt(#20045,#20044)
|
||||
exprContainers(#20045,#20001)
|
||||
literals("A","A",#20045)
|
||||
decl(#20045,#20042)
|
||||
typedecl(#20045,#20043)
|
||||
#20046=*
|
||||
tokeninfo(#20046,6,#20001,1,"A")
|
||||
hasLocation(#20046,#20007)
|
||||
scopes(#20046,10)
|
||||
scopenodes(#20044,#20046)
|
||||
scopenesting(#20046,#20000)
|
||||
#20047=*
|
||||
tokeninfo(#20047,8,#20001,2,"{")
|
||||
#20048=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20048,#10000,1,9,1,9)
|
||||
properties(#20047,#20044,2,0,"getX() ... .x;\n }")
|
||||
#20048=@"loc,{#10000},2,3,4,3"
|
||||
locations_default(#20048,#10000,2,3,4,3)
|
||||
hasLocation(#20047,#20048)
|
||||
#20049=*
|
||||
tokeninfo(#20049,6,#20001,3,"getX")
|
||||
hasLocation(#20049,#20012)
|
||||
exprs(#20049,0,#20047,0,"getX")
|
||||
hasLocation(#20049,#20019)
|
||||
enclosingStmt(#20049,#20044)
|
||||
exprContainers(#20049,#20001)
|
||||
literals("getX","getX",#20049)
|
||||
#20050=*
|
||||
tokeninfo(#20050,8,#20001,4,"(")
|
||||
#20051=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20051,#10000,2,7,2,7)
|
||||
exprs(#20050,9,#20047,1,"() {\n ... .x;\n }")
|
||||
#20051=@"loc,{#10000},2,7,4,3"
|
||||
locations_default(#20051,#10000,2,7,4,3)
|
||||
hasLocation(#20050,#20051)
|
||||
enclosingStmt(#20050,#20044)
|
||||
exprContainers(#20050,#20001)
|
||||
#20052=*
|
||||
tokeninfo(#20052,8,#20001,5,")")
|
||||
#20053=@"loc,{#10000},2,8,2,8"
|
||||
locations_default(#20053,#10000,2,8,2,8)
|
||||
hasLocation(#20052,#20053)
|
||||
scopes(#20052,1)
|
||||
scopenodes(#20050,#20052)
|
||||
scopenesting(#20052,#20046)
|
||||
#20053=@"var;{arguments};{#20052}"
|
||||
variables(#20053,"arguments",#20052)
|
||||
isArgumentsObject(#20053)
|
||||
#20054=*
|
||||
tokeninfo(#20054,8,#20001,6,"{")
|
||||
#20055=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20055,#10000,2,10,2,10)
|
||||
stmts(#20054,1,#20050,-2,"{\n r ... .x;\n }")
|
||||
#20055=@"loc,{#10000},2,10,4,3"
|
||||
locations_default(#20055,#10000,2,10,4,3)
|
||||
hasLocation(#20054,#20055)
|
||||
stmtContainers(#20054,#20050)
|
||||
#20056=*
|
||||
tokeninfo(#20056,7,#20001,7,"return")
|
||||
#20057=@"loc,{#10000},3,5,3,10"
|
||||
locations_default(#20057,#10000,3,5,3,10)
|
||||
stmts(#20056,9,#20054,0,"return this.x;")
|
||||
#20057=@"loc,{#10000},3,5,3,18"
|
||||
locations_default(#20057,#10000,3,5,3,18)
|
||||
hasLocation(#20056,#20057)
|
||||
stmtContainers(#20056,#20050)
|
||||
#20058=*
|
||||
tokeninfo(#20058,7,#20001,8,"this")
|
||||
hasLocation(#20058,#20024)
|
||||
#20059=*
|
||||
tokeninfo(#20059,8,#20001,9,".")
|
||||
#20060=@"loc,{#10000},3,16,3,16"
|
||||
locations_default(#20060,#10000,3,16,3,16)
|
||||
hasLocation(#20059,#20060)
|
||||
exprs(#20058,14,#20056,0,"this.x")
|
||||
#20059=@"loc,{#10000},3,12,3,17"
|
||||
locations_default(#20059,#10000,3,12,3,17)
|
||||
hasLocation(#20058,#20059)
|
||||
enclosingStmt(#20058,#20056)
|
||||
exprContainers(#20058,#20050)
|
||||
#20060=*
|
||||
exprs(#20060,6,#20058,0,"this")
|
||||
hasLocation(#20060,#20029)
|
||||
enclosingStmt(#20060,#20056)
|
||||
exprContainers(#20060,#20050)
|
||||
#20061=*
|
||||
tokeninfo(#20061,6,#20001,10,"x")
|
||||
hasLocation(#20061,#20026)
|
||||
exprs(#20061,0,#20058,1,"x")
|
||||
hasLocation(#20061,#20033)
|
||||
enclosingStmt(#20061,#20056)
|
||||
exprContainers(#20061,#20050)
|
||||
literals("x","x",#20061)
|
||||
isMethod(#20047)
|
||||
#20062=*
|
||||
tokeninfo(#20062,8,#20001,11,";")
|
||||
#20063=@"loc,{#10000},3,18,3,18"
|
||||
locations_default(#20063,#10000,3,18,3,18)
|
||||
properties(#20062,#20044,3,0,"constructor() {}")
|
||||
#20063=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20063,#10000,1,9,1,8)
|
||||
hasLocation(#20062,#20063)
|
||||
#20064=*
|
||||
tokeninfo(#20064,8,#20001,12,"}")
|
||||
#20065=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20065,#10000,4,3,4,3)
|
||||
hasLocation(#20064,#20065)
|
||||
exprs(#20064,0,#20062,0,"constructor")
|
||||
hasLocation(#20064,#20063)
|
||||
enclosingStmt(#20064,#20044)
|
||||
exprContainers(#20064,#20001)
|
||||
literals("constructor","constructor",#20064)
|
||||
#20065=*
|
||||
exprs(#20065,9,#20062,1,"() {}")
|
||||
hasLocation(#20065,#20063)
|
||||
enclosingStmt(#20065,#20044)
|
||||
exprContainers(#20065,#20001)
|
||||
#20066=*
|
||||
tokeninfo(#20066,8,#20001,13,"}")
|
||||
hasLocation(#20066,#20043)
|
||||
#20067=*
|
||||
tokeninfo(#20067,0,#20001,14,"")
|
||||
#20068=@"loc,{#10000},5,2,5,1"
|
||||
locations_default(#20068,#10000,5,2,5,1)
|
||||
hasLocation(#20067,#20068)
|
||||
scopes(#20066,1)
|
||||
scopenodes(#20065,#20066)
|
||||
scopenesting(#20066,#20046)
|
||||
#20067=@"var;{arguments};{#20066}"
|
||||
variables(#20067,"arguments",#20066)
|
||||
isArgumentsObject(#20067)
|
||||
#20068=*
|
||||
stmts(#20068,1,#20065,-2,"{}")
|
||||
hasLocation(#20068,#20063)
|
||||
stmtContainers(#20068,#20065)
|
||||
isMethod(#20062)
|
||||
#20069=*
|
||||
entry_cfg_node(#20069,#20001)
|
||||
#20070=@"loc,{#10000},1,1,1,0"
|
||||
@@ -232,39 +230,39 @@ locations_default(#20070,#10000,1,1,1,0)
|
||||
hasLocation(#20069,#20070)
|
||||
#20071=*
|
||||
exit_cfg_node(#20071,#20001)
|
||||
hasLocation(#20071,#20068)
|
||||
successor(#20030,#20027)
|
||||
hasLocation(#20071,#20040)
|
||||
successor(#20065,#20062)
|
||||
#20072=*
|
||||
entry_cfg_node(#20072,#20030)
|
||||
hasLocation(#20072,#20028)
|
||||
entry_cfg_node(#20072,#20065)
|
||||
hasLocation(#20072,#20063)
|
||||
#20073=*
|
||||
exit_cfg_node(#20073,#20030)
|
||||
hasLocation(#20073,#20028)
|
||||
successor(#20033,#20073)
|
||||
successor(#20072,#20033)
|
||||
successor(#20029,#20030)
|
||||
successor(#20027,#20005)
|
||||
successor(#20013,#20009)
|
||||
exit_cfg_node(#20073,#20065)
|
||||
hasLocation(#20073,#20063)
|
||||
successor(#20068,#20073)
|
||||
successor(#20072,#20068)
|
||||
successor(#20064,#20065)
|
||||
successor(#20062,#20044)
|
||||
successor(#20050,#20047)
|
||||
#20074=*
|
||||
entry_cfg_node(#20074,#20013)
|
||||
entry_cfg_node(#20074,#20050)
|
||||
#20075=@"loc,{#10000},2,7,2,6"
|
||||
locations_default(#20075,#10000,2,7,2,6)
|
||||
hasLocation(#20074,#20075)
|
||||
#20076=*
|
||||
exit_cfg_node(#20076,#20013)
|
||||
exit_cfg_node(#20076,#20050)
|
||||
#20077=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20077,#10000,4,4,4,3)
|
||||
hasLocation(#20076,#20077)
|
||||
successor(#20017,#20023)
|
||||
successor(#20025,#20021)
|
||||
successor(#20023,#20025)
|
||||
successor(#20021,#20019)
|
||||
successor(#20019,#20076)
|
||||
successor(#20074,#20017)
|
||||
successor(#20011,#20013)
|
||||
successor(#20009,#20029)
|
||||
successor(#20006,#20011)
|
||||
successor(#20005,#20071)
|
||||
successor(#20069,#20006)
|
||||
successor(#20054,#20060)
|
||||
successor(#20061,#20058)
|
||||
successor(#20060,#20061)
|
||||
successor(#20058,#20056)
|
||||
successor(#20056,#20076)
|
||||
successor(#20074,#20054)
|
||||
successor(#20049,#20050)
|
||||
successor(#20047,#20064)
|
||||
successor(#20045,#20049)
|
||||
successor(#20044,#20071)
|
||||
successor(#20069,#20045)
|
||||
numlines(#10000,5,5,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,206 +9,204 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,5,1"
|
||||
locations_default(#20002,#10000,1,1,5,1)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{A};{#20000}"
|
||||
variables(#20003,"A",#20000)
|
||||
#20004=@"local_type_name;{A};{#20000}"
|
||||
local_type_names(#20004,"A",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,26,#20001,0,"class A ... ;\n }\n}")
|
||||
hasLocation(#20005,#20002)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,78,#20005,0,"A")
|
||||
#20007=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20007,#10000,1,7,1,7)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20005)
|
||||
exprContainers(#20006,#20001)
|
||||
literals("A","A",#20006)
|
||||
decl(#20006,#20003)
|
||||
typedecl(#20006,#20004)
|
||||
#20008=*
|
||||
scopes(#20008,10)
|
||||
scopenodes(#20005,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=*
|
||||
properties(#20009,#20005,2,0,"static ... A"";\n }")
|
||||
#20010=@"loc,{#10000},2,3,4,3"
|
||||
locations_default(#20010,#10000,2,3,4,3)
|
||||
hasLocation(#20009,#20010)
|
||||
#20011=*
|
||||
exprs(#20011,0,#20009,0,"className")
|
||||
#20012=@"loc,{#10000},2,10,2,18"
|
||||
locations_default(#20012,#10000,2,10,2,18)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20005)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("className","className",#20011)
|
||||
#20013=*
|
||||
exprs(#20013,9,#20009,1,"() {\n ... A"";\n }")
|
||||
#20014=@"loc,{#10000},2,19,4,3"
|
||||
locations_default(#20014,#10000,2,19,4,3)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20005)
|
||||
exprContainers(#20013,#20001)
|
||||
#20015=*
|
||||
scopes(#20015,1)
|
||||
scopenodes(#20013,#20015)
|
||||
scopenesting(#20015,#20008)
|
||||
#20016=@"var;{arguments};{#20015}"
|
||||
variables(#20016,"arguments",#20015)
|
||||
isArgumentsObject(#20016)
|
||||
#20017=*
|
||||
stmts(#20017,1,#20013,-2,"{\n r ... A"";\n }")
|
||||
#20018=@"loc,{#10000},2,22,4,3"
|
||||
locations_default(#20018,#10000,2,22,4,3)
|
||||
hasLocation(#20017,#20018)
|
||||
stmtContainers(#20017,#20013)
|
||||
#20019=*
|
||||
stmts(#20019,9,#20017,0,"return ""A"";")
|
||||
#20020=@"loc,{#10000},3,5,3,15"
|
||||
locations_default(#20020,#10000,3,5,3,15)
|
||||
hasLocation(#20019,#20020)
|
||||
stmtContainers(#20019,#20013)
|
||||
#20021=*
|
||||
exprs(#20021,4,#20019,0,"""A""")
|
||||
#20022=@"loc,{#10000},3,12,3,14"
|
||||
locations_default(#20022,#10000,3,12,3,14)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20019)
|
||||
exprContainers(#20021,#20013)
|
||||
literals("A","""A""",#20021)
|
||||
numlines(#20013,3,3,0)
|
||||
isMethod(#20009)
|
||||
isStatic(#20009)
|
||||
#20023=*
|
||||
properties(#20023,#20005,3,0,"constructor() {}")
|
||||
#20024=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20024,#10000,1,9,1,8)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
exprs(#20025,0,#20023,0,"constructor")
|
||||
hasLocation(#20025,#20024)
|
||||
enclosingStmt(#20025,#20005)
|
||||
exprContainers(#20025,#20001)
|
||||
literals("constructor","constructor",#20025)
|
||||
#20026=*
|
||||
exprs(#20026,9,#20023,1,"() {}")
|
||||
hasLocation(#20026,#20024)
|
||||
enclosingStmt(#20026,#20005)
|
||||
exprContainers(#20026,#20001)
|
||||
#20027=*
|
||||
scopes(#20027,1)
|
||||
scopenodes(#20026,#20027)
|
||||
scopenesting(#20027,#20008)
|
||||
#20028=@"var;{arguments};{#20027}"
|
||||
variables(#20028,"arguments",#20027)
|
||||
isArgumentsObject(#20028)
|
||||
#20029=*
|
||||
stmts(#20029,1,#20026,-2,"{}")
|
||||
hasLocation(#20029,#20024)
|
||||
stmtContainers(#20029,#20026)
|
||||
numlines(#20026,1,0,0)
|
||||
isMethod(#20023)
|
||||
#20030=*
|
||||
lines(#20030,#20001,"class A {","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"class A {","
|
||||
")
|
||||
#20031=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20031,#10000,1,1,1,9)
|
||||
#20003=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20003,#10000,1,1,1,9)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001," static className() {","
|
||||
")
|
||||
#20005=@"loc,{#10000},2,1,2,22"
|
||||
locations_default(#20005,#10000,2,1,2,22)
|
||||
hasLocation(#20004,#20005)
|
||||
indentation(#10000,2," ",2)
|
||||
#20006=*
|
||||
lines(#20006,#20001," return ""A"";","
|
||||
")
|
||||
#20007=@"loc,{#10000},3,1,3,15"
|
||||
locations_default(#20007,#10000,3,1,3,15)
|
||||
hasLocation(#20006,#20007)
|
||||
indentation(#10000,3," ",4)
|
||||
#20008=*
|
||||
lines(#20008,#20001," }","
|
||||
")
|
||||
#20009=@"loc,{#10000},4,1,4,3"
|
||||
locations_default(#20009,#10000,4,1,4,3)
|
||||
hasLocation(#20008,#20009)
|
||||
indentation(#10000,4," ",2)
|
||||
#20010=*
|
||||
lines(#20010,#20001,"}","")
|
||||
#20011=@"loc,{#10000},5,1,5,1"
|
||||
locations_default(#20011,#10000,5,1,5,1)
|
||||
hasLocation(#20010,#20011)
|
||||
numlines(#20001,5,5,0)
|
||||
#20012=*
|
||||
tokeninfo(#20012,7,#20001,0,"class")
|
||||
#20013=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20013,#10000,1,1,1,5)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,1,"A")
|
||||
#20015=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20015,#10000,1,7,1,7)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,2,"{")
|
||||
#20017=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20017,#10000,1,9,1,9)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,6,#20001,3,"static")
|
||||
#20019=@"loc,{#10000},2,3,2,8"
|
||||
locations_default(#20019,#10000,2,3,2,8)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,6,#20001,4,"className")
|
||||
#20021=@"loc,{#10000},2,10,2,18"
|
||||
locations_default(#20021,#10000,2,10,2,18)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,5,"(")
|
||||
#20023=@"loc,{#10000},2,19,2,19"
|
||||
locations_default(#20023,#10000,2,19,2,19)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,6,")")
|
||||
#20025=@"loc,{#10000},2,20,2,20"
|
||||
locations_default(#20025,#10000,2,20,2,20)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,7,"{")
|
||||
#20027=@"loc,{#10000},2,22,2,22"
|
||||
locations_default(#20027,#10000,2,22,2,22)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,7,#20001,8,"return")
|
||||
#20029=@"loc,{#10000},3,5,3,10"
|
||||
locations_default(#20029,#10000,3,5,3,10)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,4,#20001,9,"""A""")
|
||||
#20031=@"loc,{#10000},3,12,3,14"
|
||||
locations_default(#20031,#10000,3,12,3,14)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
lines(#20032,#20001," static className() {","
|
||||
")
|
||||
#20033=@"loc,{#10000},2,1,2,22"
|
||||
locations_default(#20033,#10000,2,1,2,22)
|
||||
tokeninfo(#20032,8,#20001,10,";")
|
||||
#20033=@"loc,{#10000},3,15,3,15"
|
||||
locations_default(#20033,#10000,3,15,3,15)
|
||||
hasLocation(#20032,#20033)
|
||||
indentation(#10000,2," ",2)
|
||||
#20034=*
|
||||
lines(#20034,#20001," return ""A"";","
|
||||
")
|
||||
#20035=@"loc,{#10000},3,1,3,15"
|
||||
locations_default(#20035,#10000,3,1,3,15)
|
||||
tokeninfo(#20034,8,#20001,11,"}")
|
||||
#20035=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20035,#10000,4,3,4,3)
|
||||
hasLocation(#20034,#20035)
|
||||
indentation(#10000,3," ",4)
|
||||
#20036=*
|
||||
lines(#20036,#20001," }","
|
||||
")
|
||||
#20037=@"loc,{#10000},4,1,4,3"
|
||||
locations_default(#20037,#10000,4,1,4,3)
|
||||
hasLocation(#20036,#20037)
|
||||
indentation(#10000,4," ",2)
|
||||
#20038=*
|
||||
lines(#20038,#20001,"}","")
|
||||
#20039=@"loc,{#10000},5,1,5,1"
|
||||
locations_default(#20039,#10000,5,1,5,1)
|
||||
hasLocation(#20038,#20039)
|
||||
numlines(#20001,5,5,0)
|
||||
#20040=*
|
||||
tokeninfo(#20040,7,#20001,0,"class")
|
||||
#20041=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20041,#10000,1,1,1,5)
|
||||
hasLocation(#20040,#20041)
|
||||
tokeninfo(#20036,8,#20001,12,"}")
|
||||
hasLocation(#20036,#20011)
|
||||
#20037=*
|
||||
tokeninfo(#20037,0,#20001,13,"")
|
||||
#20038=@"loc,{#10000},5,2,5,1"
|
||||
locations_default(#20038,#10000,5,2,5,1)
|
||||
hasLocation(#20037,#20038)
|
||||
toplevels(#20001,0)
|
||||
#20039=@"loc,{#10000},1,1,5,1"
|
||||
locations_default(#20039,#10000,1,1,5,1)
|
||||
hasLocation(#20001,#20039)
|
||||
#20040=@"var;{A};{#20000}"
|
||||
variables(#20040,"A",#20000)
|
||||
#20041=@"local_type_name;{A};{#20000}"
|
||||
local_type_names(#20041,"A",#20000)
|
||||
#20042=*
|
||||
tokeninfo(#20042,6,#20001,1,"A")
|
||||
hasLocation(#20042,#20007)
|
||||
stmts(#20042,26,#20001,0,"class A ... ;\n }\n}")
|
||||
hasLocation(#20042,#20039)
|
||||
stmtContainers(#20042,#20001)
|
||||
#20043=*
|
||||
tokeninfo(#20043,8,#20001,2,"{")
|
||||
#20044=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20044,#10000,1,9,1,9)
|
||||
hasLocation(#20043,#20044)
|
||||
exprs(#20043,78,#20042,0,"A")
|
||||
hasLocation(#20043,#20015)
|
||||
enclosingStmt(#20043,#20042)
|
||||
exprContainers(#20043,#20001)
|
||||
literals("A","A",#20043)
|
||||
decl(#20043,#20040)
|
||||
typedecl(#20043,#20041)
|
||||
#20044=*
|
||||
scopes(#20044,10)
|
||||
scopenodes(#20042,#20044)
|
||||
scopenesting(#20044,#20000)
|
||||
#20045=*
|
||||
tokeninfo(#20045,6,#20001,3,"static")
|
||||
#20046=@"loc,{#10000},2,3,2,8"
|
||||
locations_default(#20046,#10000,2,3,2,8)
|
||||
properties(#20045,#20042,2,0,"static ... A"";\n }")
|
||||
#20046=@"loc,{#10000},2,3,4,3"
|
||||
locations_default(#20046,#10000,2,3,4,3)
|
||||
hasLocation(#20045,#20046)
|
||||
#20047=*
|
||||
tokeninfo(#20047,6,#20001,4,"className")
|
||||
hasLocation(#20047,#20012)
|
||||
exprs(#20047,0,#20045,0,"className")
|
||||
hasLocation(#20047,#20021)
|
||||
enclosingStmt(#20047,#20042)
|
||||
exprContainers(#20047,#20001)
|
||||
literals("className","className",#20047)
|
||||
#20048=*
|
||||
tokeninfo(#20048,8,#20001,5,"(")
|
||||
#20049=@"loc,{#10000},2,19,2,19"
|
||||
locations_default(#20049,#10000,2,19,2,19)
|
||||
exprs(#20048,9,#20045,1,"() {\n ... A"";\n }")
|
||||
#20049=@"loc,{#10000},2,19,4,3"
|
||||
locations_default(#20049,#10000,2,19,4,3)
|
||||
hasLocation(#20048,#20049)
|
||||
enclosingStmt(#20048,#20042)
|
||||
exprContainers(#20048,#20001)
|
||||
#20050=*
|
||||
tokeninfo(#20050,8,#20001,6,")")
|
||||
#20051=@"loc,{#10000},2,20,2,20"
|
||||
locations_default(#20051,#10000,2,20,2,20)
|
||||
hasLocation(#20050,#20051)
|
||||
scopes(#20050,1)
|
||||
scopenodes(#20048,#20050)
|
||||
scopenesting(#20050,#20044)
|
||||
#20051=@"var;{arguments};{#20050}"
|
||||
variables(#20051,"arguments",#20050)
|
||||
isArgumentsObject(#20051)
|
||||
#20052=*
|
||||
tokeninfo(#20052,8,#20001,7,"{")
|
||||
#20053=@"loc,{#10000},2,22,2,22"
|
||||
locations_default(#20053,#10000,2,22,2,22)
|
||||
stmts(#20052,1,#20048,-2,"{\n r ... A"";\n }")
|
||||
#20053=@"loc,{#10000},2,22,4,3"
|
||||
locations_default(#20053,#10000,2,22,4,3)
|
||||
hasLocation(#20052,#20053)
|
||||
stmtContainers(#20052,#20048)
|
||||
#20054=*
|
||||
tokeninfo(#20054,7,#20001,8,"return")
|
||||
#20055=@"loc,{#10000},3,5,3,10"
|
||||
locations_default(#20055,#10000,3,5,3,10)
|
||||
stmts(#20054,9,#20052,0,"return ""A"";")
|
||||
#20055=@"loc,{#10000},3,5,3,15"
|
||||
locations_default(#20055,#10000,3,5,3,15)
|
||||
hasLocation(#20054,#20055)
|
||||
stmtContainers(#20054,#20048)
|
||||
#20056=*
|
||||
tokeninfo(#20056,4,#20001,9,"""A""")
|
||||
hasLocation(#20056,#20022)
|
||||
exprs(#20056,4,#20054,0,"""A""")
|
||||
hasLocation(#20056,#20031)
|
||||
enclosingStmt(#20056,#20054)
|
||||
exprContainers(#20056,#20048)
|
||||
literals("A","""A""",#20056)
|
||||
isMethod(#20045)
|
||||
isStatic(#20045)
|
||||
#20057=*
|
||||
tokeninfo(#20057,8,#20001,10,";")
|
||||
#20058=@"loc,{#10000},3,15,3,15"
|
||||
locations_default(#20058,#10000,3,15,3,15)
|
||||
properties(#20057,#20042,3,0,"constructor() {}")
|
||||
#20058=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20058,#10000,1,9,1,8)
|
||||
hasLocation(#20057,#20058)
|
||||
#20059=*
|
||||
tokeninfo(#20059,8,#20001,11,"}")
|
||||
#20060=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20060,#10000,4,3,4,3)
|
||||
hasLocation(#20059,#20060)
|
||||
exprs(#20059,0,#20057,0,"constructor")
|
||||
hasLocation(#20059,#20058)
|
||||
enclosingStmt(#20059,#20042)
|
||||
exprContainers(#20059,#20001)
|
||||
literals("constructor","constructor",#20059)
|
||||
#20060=*
|
||||
exprs(#20060,9,#20057,1,"() {}")
|
||||
hasLocation(#20060,#20058)
|
||||
enclosingStmt(#20060,#20042)
|
||||
exprContainers(#20060,#20001)
|
||||
#20061=*
|
||||
tokeninfo(#20061,8,#20001,12,"}")
|
||||
hasLocation(#20061,#20039)
|
||||
#20062=*
|
||||
tokeninfo(#20062,0,#20001,13,"")
|
||||
#20063=@"loc,{#10000},5,2,5,1"
|
||||
locations_default(#20063,#10000,5,2,5,1)
|
||||
hasLocation(#20062,#20063)
|
||||
scopes(#20061,1)
|
||||
scopenodes(#20060,#20061)
|
||||
scopenesting(#20061,#20044)
|
||||
#20062=@"var;{arguments};{#20061}"
|
||||
variables(#20062,"arguments",#20061)
|
||||
isArgumentsObject(#20062)
|
||||
#20063=*
|
||||
stmts(#20063,1,#20060,-2,"{}")
|
||||
hasLocation(#20063,#20058)
|
||||
stmtContainers(#20063,#20060)
|
||||
isMethod(#20057)
|
||||
#20064=*
|
||||
entry_cfg_node(#20064,#20001)
|
||||
#20065=@"loc,{#10000},1,1,1,0"
|
||||
@@ -216,37 +214,37 @@ locations_default(#20065,#10000,1,1,1,0)
|
||||
hasLocation(#20064,#20065)
|
||||
#20066=*
|
||||
exit_cfg_node(#20066,#20001)
|
||||
hasLocation(#20066,#20063)
|
||||
successor(#20026,#20023)
|
||||
hasLocation(#20066,#20038)
|
||||
successor(#20060,#20057)
|
||||
#20067=*
|
||||
entry_cfg_node(#20067,#20026)
|
||||
hasLocation(#20067,#20024)
|
||||
entry_cfg_node(#20067,#20060)
|
||||
hasLocation(#20067,#20058)
|
||||
#20068=*
|
||||
exit_cfg_node(#20068,#20026)
|
||||
hasLocation(#20068,#20024)
|
||||
successor(#20029,#20068)
|
||||
successor(#20067,#20029)
|
||||
successor(#20025,#20026)
|
||||
successor(#20023,#20005)
|
||||
successor(#20013,#20009)
|
||||
exit_cfg_node(#20068,#20060)
|
||||
hasLocation(#20068,#20058)
|
||||
successor(#20063,#20068)
|
||||
successor(#20067,#20063)
|
||||
successor(#20059,#20060)
|
||||
successor(#20057,#20042)
|
||||
successor(#20048,#20045)
|
||||
#20069=*
|
||||
entry_cfg_node(#20069,#20013)
|
||||
entry_cfg_node(#20069,#20048)
|
||||
#20070=@"loc,{#10000},2,19,2,18"
|
||||
locations_default(#20070,#10000,2,19,2,18)
|
||||
hasLocation(#20069,#20070)
|
||||
#20071=*
|
||||
exit_cfg_node(#20071,#20013)
|
||||
exit_cfg_node(#20071,#20048)
|
||||
#20072=@"loc,{#10000},4,4,4,3"
|
||||
locations_default(#20072,#10000,4,4,4,3)
|
||||
hasLocation(#20071,#20072)
|
||||
successor(#20017,#20021)
|
||||
successor(#20021,#20019)
|
||||
successor(#20019,#20071)
|
||||
successor(#20069,#20017)
|
||||
successor(#20011,#20013)
|
||||
successor(#20009,#20025)
|
||||
successor(#20006,#20011)
|
||||
successor(#20005,#20066)
|
||||
successor(#20064,#20006)
|
||||
successor(#20052,#20056)
|
||||
successor(#20056,#20054)
|
||||
successor(#20054,#20071)
|
||||
successor(#20069,#20052)
|
||||
successor(#20047,#20048)
|
||||
successor(#20045,#20059)
|
||||
successor(#20043,#20047)
|
||||
successor(#20042,#20066)
|
||||
successor(#20064,#20043)
|
||||
numlines(#10000,5,5,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,88 +9,87 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,14"
|
||||
locations_default(#20002,#10000,1,1,1,14)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{Point};{#20000}"
|
||||
variables(#20003,"Point",#20000)
|
||||
#20004=@"local_type_name;{Point};{#20000}"
|
||||
local_type_names(#20004,"Point",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,26,#20001,0,"class Point {}")
|
||||
hasLocation(#20005,#20002)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"class Point {}","")
|
||||
#20003=@"loc,{#10000},1,1,1,14"
|
||||
locations_default(#20003,#10000,1,1,1,14)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"class")
|
||||
#20005=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20005,#10000,1,1,1,5)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
exprs(#20006,78,#20005,0,"Point")
|
||||
tokeninfo(#20006,6,#20001,1,"Point")
|
||||
#20007=@"loc,{#10000},1,7,1,11"
|
||||
locations_default(#20007,#10000,1,7,1,11)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20005)
|
||||
exprContainers(#20006,#20001)
|
||||
literals("Point","Point",#20006)
|
||||
decl(#20006,#20003)
|
||||
typedecl(#20006,#20004)
|
||||
#20008=*
|
||||
scopes(#20008,10)
|
||||
scopenodes(#20005,#20008)
|
||||
scopenesting(#20008,#20000)
|
||||
#20009=*
|
||||
properties(#20009,#20005,2,0,"constructor() {}")
|
||||
#20010=@"loc,{#10000},1,13,1,12"
|
||||
locations_default(#20010,#10000,1,13,1,12)
|
||||
hasLocation(#20009,#20010)
|
||||
#20011=*
|
||||
exprs(#20011,0,#20009,0,"constructor")
|
||||
hasLocation(#20011,#20010)
|
||||
enclosingStmt(#20011,#20005)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("constructor","constructor",#20011)
|
||||
tokeninfo(#20008,8,#20001,2,"{")
|
||||
#20009=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20009,#10000,1,13,1,13)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,"}")
|
||||
#20011=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20011,#10000,1,14,1,14)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
exprs(#20012,9,#20009,1,"() {}")
|
||||
hasLocation(#20012,#20010)
|
||||
enclosingStmt(#20012,#20005)
|
||||
exprContainers(#20012,#20001)
|
||||
#20013=*
|
||||
scopes(#20013,1)
|
||||
scopenodes(#20012,#20013)
|
||||
scopenesting(#20013,#20008)
|
||||
#20014=@"var;{arguments};{#20013}"
|
||||
variables(#20014,"arguments",#20013)
|
||||
isArgumentsObject(#20014)
|
||||
#20015=*
|
||||
stmts(#20015,1,#20012,-2,"{}")
|
||||
hasLocation(#20015,#20010)
|
||||
stmtContainers(#20015,#20012)
|
||||
numlines(#20012,1,0,0)
|
||||
isMethod(#20009)
|
||||
tokeninfo(#20012,0,#20001,4,"")
|
||||
#20013=@"loc,{#10000},1,15,1,14"
|
||||
locations_default(#20013,#10000,1,15,1,14)
|
||||
hasLocation(#20012,#20013)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20014=@"var;{Point};{#20000}"
|
||||
variables(#20014,"Point",#20000)
|
||||
#20015=@"local_type_name;{Point};{#20000}"
|
||||
local_type_names(#20015,"Point",#20000)
|
||||
#20016=*
|
||||
lines(#20016,#20001,"class Point {}","")
|
||||
hasLocation(#20016,#20002)
|
||||
numlines(#20001,1,1,0)
|
||||
stmts(#20016,26,#20001,0,"class Point {}")
|
||||
hasLocation(#20016,#20003)
|
||||
stmtContainers(#20016,#20001)
|
||||
#20017=*
|
||||
tokeninfo(#20017,7,#20001,0,"class")
|
||||
#20018=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20018,#10000,1,1,1,5)
|
||||
hasLocation(#20017,#20018)
|
||||
exprs(#20017,78,#20016,0,"Point")
|
||||
hasLocation(#20017,#20007)
|
||||
enclosingStmt(#20017,#20016)
|
||||
exprContainers(#20017,#20001)
|
||||
literals("Point","Point",#20017)
|
||||
decl(#20017,#20014)
|
||||
typedecl(#20017,#20015)
|
||||
#20018=*
|
||||
scopes(#20018,10)
|
||||
scopenodes(#20016,#20018)
|
||||
scopenesting(#20018,#20000)
|
||||
#20019=*
|
||||
tokeninfo(#20019,6,#20001,1,"Point")
|
||||
hasLocation(#20019,#20007)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,2,"{")
|
||||
#20021=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20021,#10000,1,13,1,13)
|
||||
hasLocation(#20020,#20021)
|
||||
properties(#20019,#20016,2,0,"constructor() {}")
|
||||
#20020=@"loc,{#10000},1,13,1,12"
|
||||
locations_default(#20020,#10000,1,13,1,12)
|
||||
hasLocation(#20019,#20020)
|
||||
#20021=*
|
||||
exprs(#20021,0,#20019,0,"constructor")
|
||||
hasLocation(#20021,#20020)
|
||||
enclosingStmt(#20021,#20016)
|
||||
exprContainers(#20021,#20001)
|
||||
literals("constructor","constructor",#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,3,"}")
|
||||
#20023=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20023,#10000,1,14,1,14)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,0,#20001,4,"")
|
||||
#20025=@"loc,{#10000},1,15,1,14"
|
||||
locations_default(#20025,#10000,1,15,1,14)
|
||||
hasLocation(#20024,#20025)
|
||||
exprs(#20022,9,#20019,1,"() {}")
|
||||
hasLocation(#20022,#20020)
|
||||
enclosingStmt(#20022,#20016)
|
||||
exprContainers(#20022,#20001)
|
||||
#20023=*
|
||||
scopes(#20023,1)
|
||||
scopenodes(#20022,#20023)
|
||||
scopenesting(#20023,#20018)
|
||||
#20024=@"var;{arguments};{#20023}"
|
||||
variables(#20024,"arguments",#20023)
|
||||
isArgumentsObject(#20024)
|
||||
#20025=*
|
||||
stmts(#20025,1,#20022,-2,"{}")
|
||||
hasLocation(#20025,#20020)
|
||||
stmtContainers(#20025,#20022)
|
||||
isMethod(#20019)
|
||||
#20026=*
|
||||
entry_cfg_node(#20026,#20001)
|
||||
#20027=@"loc,{#10000},1,1,1,0"
|
||||
@@ -98,20 +97,20 @@ locations_default(#20027,#10000,1,1,1,0)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
exit_cfg_node(#20028,#20001)
|
||||
hasLocation(#20028,#20025)
|
||||
successor(#20012,#20009)
|
||||
hasLocation(#20028,#20013)
|
||||
successor(#20022,#20019)
|
||||
#20029=*
|
||||
entry_cfg_node(#20029,#20012)
|
||||
hasLocation(#20029,#20010)
|
||||
entry_cfg_node(#20029,#20022)
|
||||
hasLocation(#20029,#20020)
|
||||
#20030=*
|
||||
exit_cfg_node(#20030,#20012)
|
||||
hasLocation(#20030,#20010)
|
||||
successor(#20015,#20030)
|
||||
successor(#20029,#20015)
|
||||
successor(#20011,#20012)
|
||||
successor(#20009,#20005)
|
||||
successor(#20006,#20011)
|
||||
successor(#20005,#20028)
|
||||
successor(#20026,#20006)
|
||||
exit_cfg_node(#20030,#20022)
|
||||
hasLocation(#20030,#20020)
|
||||
successor(#20025,#20030)
|
||||
successor(#20029,#20025)
|
||||
successor(#20021,#20022)
|
||||
successor(#20019,#20016)
|
||||
successor(#20017,#20021)
|
||||
successor(#20016,#20028)
|
||||
successor(#20026,#20017)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,110 +9,109 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,16"
|
||||
locations_default(#20002,#10000,1,1,1,16)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"(class Point {})")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"(class Point {})","")
|
||||
#20003=@"loc,{#10000},1,1,1,16"
|
||||
locations_default(#20003,#10000,1,1,1,16)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
exprs(#20004,63,#20003,0,"(class Point {})")
|
||||
hasLocation(#20004,#20002)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,80,#20004,0,"class Point {}")
|
||||
#20006=@"loc,{#10000},1,2,1,15"
|
||||
locations_default(#20006,#10000,1,2,1,15)
|
||||
hasLocation(#20005,#20006)
|
||||
enclosingStmt(#20005,#20003)
|
||||
exprContainers(#20005,#20001)
|
||||
#20007=*
|
||||
scopes(#20007,8)
|
||||
scopenodes(#20005,#20007)
|
||||
scopenesting(#20007,#20000)
|
||||
#20008=@"var;{Point};{#20007}"
|
||||
variables(#20008,"Point",#20007)
|
||||
#20009=@"local_type_name;{Point};{#20007}"
|
||||
local_type_names(#20009,"Point",#20007)
|
||||
tokeninfo(#20004,8,#20001,0,"(")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,7,#20001,1,"class")
|
||||
#20007=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20007,#10000,1,2,1,6)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,6,#20001,2,"Point")
|
||||
#20009=@"loc,{#10000},1,8,1,12"
|
||||
locations_default(#20009,#10000,1,8,1,12)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
exprs(#20010,78,#20005,0,"Point")
|
||||
#20011=@"loc,{#10000},1,8,1,12"
|
||||
locations_default(#20011,#10000,1,8,1,12)
|
||||
tokeninfo(#20010,8,#20001,3,"{")
|
||||
#20011=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20011,#10000,1,14,1,14)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20003)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("Point","Point",#20010)
|
||||
decl(#20010,#20008)
|
||||
typedecl(#20010,#20009)
|
||||
#20012=*
|
||||
properties(#20012,#20005,2,0,"constructor() {}")
|
||||
#20013=@"loc,{#10000},1,14,1,13"
|
||||
locations_default(#20013,#10000,1,14,1,13)
|
||||
tokeninfo(#20012,8,#20001,4,"}")
|
||||
#20013=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20013,#10000,1,15,1,15)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
exprs(#20014,0,#20012,0,"constructor")
|
||||
hasLocation(#20014,#20013)
|
||||
enclosingStmt(#20014,#20003)
|
||||
exprContainers(#20014,#20001)
|
||||
literals("constructor","constructor",#20014)
|
||||
#20015=*
|
||||
exprs(#20015,9,#20012,1,"() {}")
|
||||
hasLocation(#20015,#20013)
|
||||
enclosingStmt(#20015,#20003)
|
||||
exprContainers(#20015,#20001)
|
||||
tokeninfo(#20014,8,#20001,5,")")
|
||||
#20015=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20015,#10000,1,16,1,16)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
scopes(#20016,1)
|
||||
scopenodes(#20015,#20016)
|
||||
scopenesting(#20016,#20007)
|
||||
#20017=@"var;{arguments};{#20016}"
|
||||
variables(#20017,"arguments",#20016)
|
||||
isArgumentsObject(#20017)
|
||||
tokeninfo(#20016,0,#20001,6,"")
|
||||
#20017=@"loc,{#10000},1,17,1,16"
|
||||
locations_default(#20017,#10000,1,17,1,16)
|
||||
hasLocation(#20016,#20017)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20018=*
|
||||
stmts(#20018,1,#20015,-2,"{}")
|
||||
hasLocation(#20018,#20013)
|
||||
stmtContainers(#20018,#20015)
|
||||
numlines(#20015,1,0,0)
|
||||
isMethod(#20012)
|
||||
stmts(#20018,2,#20001,0,"(class Point {})")
|
||||
hasLocation(#20018,#20003)
|
||||
stmtContainers(#20018,#20001)
|
||||
#20019=*
|
||||
lines(#20019,#20001,"(class Point {})","")
|
||||
hasLocation(#20019,#20002)
|
||||
numlines(#20001,1,1,0)
|
||||
exprs(#20019,63,#20018,0,"(class Point {})")
|
||||
hasLocation(#20019,#20003)
|
||||
enclosingStmt(#20019,#20018)
|
||||
exprContainers(#20019,#20001)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,0,"(")
|
||||
#20021=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20021,#10000,1,1,1,1)
|
||||
exprs(#20020,80,#20019,0,"class Point {}")
|
||||
#20021=@"loc,{#10000},1,2,1,15"
|
||||
locations_default(#20021,#10000,1,2,1,15)
|
||||
hasLocation(#20020,#20021)
|
||||
enclosingStmt(#20020,#20018)
|
||||
exprContainers(#20020,#20001)
|
||||
#20022=*
|
||||
tokeninfo(#20022,7,#20001,1,"class")
|
||||
#20023=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20023,#10000,1,2,1,6)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,2,"Point")
|
||||
hasLocation(#20024,#20011)
|
||||
scopes(#20022,8)
|
||||
scopenodes(#20020,#20022)
|
||||
scopenesting(#20022,#20000)
|
||||
#20023=@"var;{Point};{#20022}"
|
||||
variables(#20023,"Point",#20022)
|
||||
#20024=@"local_type_name;{Point};{#20022}"
|
||||
local_type_names(#20024,"Point",#20022)
|
||||
#20025=*
|
||||
tokeninfo(#20025,8,#20001,3,"{")
|
||||
#20026=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20026,#10000,1,14,1,14)
|
||||
hasLocation(#20025,#20026)
|
||||
#20027=*
|
||||
tokeninfo(#20027,8,#20001,4,"}")
|
||||
#20028=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20028,#10000,1,15,1,15)
|
||||
hasLocation(#20027,#20028)
|
||||
exprs(#20025,78,#20020,0,"Point")
|
||||
hasLocation(#20025,#20009)
|
||||
enclosingStmt(#20025,#20018)
|
||||
exprContainers(#20025,#20001)
|
||||
literals("Point","Point",#20025)
|
||||
decl(#20025,#20023)
|
||||
typedecl(#20025,#20024)
|
||||
#20026=*
|
||||
properties(#20026,#20020,2,0,"constructor() {}")
|
||||
#20027=@"loc,{#10000},1,14,1,13"
|
||||
locations_default(#20027,#10000,1,14,1,13)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
exprs(#20028,0,#20026,0,"constructor")
|
||||
hasLocation(#20028,#20027)
|
||||
enclosingStmt(#20028,#20018)
|
||||
exprContainers(#20028,#20001)
|
||||
literals("constructor","constructor",#20028)
|
||||
#20029=*
|
||||
tokeninfo(#20029,8,#20001,5,")")
|
||||
#20030=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20030,#10000,1,16,1,16)
|
||||
hasLocation(#20029,#20030)
|
||||
#20031=*
|
||||
tokeninfo(#20031,0,#20001,6,"")
|
||||
#20032=@"loc,{#10000},1,17,1,16"
|
||||
locations_default(#20032,#10000,1,17,1,16)
|
||||
hasLocation(#20031,#20032)
|
||||
exprs(#20029,9,#20026,1,"() {}")
|
||||
hasLocation(#20029,#20027)
|
||||
enclosingStmt(#20029,#20018)
|
||||
exprContainers(#20029,#20001)
|
||||
#20030=*
|
||||
scopes(#20030,1)
|
||||
scopenodes(#20029,#20030)
|
||||
scopenesting(#20030,#20022)
|
||||
#20031=@"var;{arguments};{#20030}"
|
||||
variables(#20031,"arguments",#20030)
|
||||
isArgumentsObject(#20031)
|
||||
#20032=*
|
||||
stmts(#20032,1,#20029,-2,"{}")
|
||||
hasLocation(#20032,#20027)
|
||||
stmtContainers(#20032,#20029)
|
||||
isMethod(#20026)
|
||||
#20033=*
|
||||
entry_cfg_node(#20033,#20001)
|
||||
#20034=@"loc,{#10000},1,1,1,0"
|
||||
@@ -120,22 +119,22 @@ locations_default(#20034,#10000,1,1,1,0)
|
||||
hasLocation(#20033,#20034)
|
||||
#20035=*
|
||||
exit_cfg_node(#20035,#20001)
|
||||
hasLocation(#20035,#20032)
|
||||
successor(#20003,#20004)
|
||||
successor(#20004,#20010)
|
||||
successor(#20015,#20012)
|
||||
hasLocation(#20035,#20017)
|
||||
successor(#20018,#20019)
|
||||
successor(#20019,#20025)
|
||||
successor(#20029,#20026)
|
||||
#20036=*
|
||||
entry_cfg_node(#20036,#20015)
|
||||
hasLocation(#20036,#20013)
|
||||
entry_cfg_node(#20036,#20029)
|
||||
hasLocation(#20036,#20027)
|
||||
#20037=*
|
||||
exit_cfg_node(#20037,#20015)
|
||||
hasLocation(#20037,#20013)
|
||||
successor(#20018,#20037)
|
||||
successor(#20036,#20018)
|
||||
successor(#20014,#20015)
|
||||
successor(#20012,#20005)
|
||||
successor(#20010,#20014)
|
||||
successor(#20005,#20035)
|
||||
successor(#20033,#20003)
|
||||
exit_cfg_node(#20037,#20029)
|
||||
hasLocation(#20037,#20027)
|
||||
successor(#20032,#20037)
|
||||
successor(#20036,#20032)
|
||||
successor(#20028,#20029)
|
||||
successor(#20026,#20020)
|
||||
successor(#20025,#20028)
|
||||
successor(#20020,#20035)
|
||||
successor(#20033,#20018)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,89 +9,88 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,16"
|
||||
locations_default(#20002,#10000,1,1,1,16)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"(class {})")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20004=*
|
||||
exprs(#20004,63,#20003,0,"(class {})")
|
||||
hasLocation(#20004,#20002)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,80,#20004,0,"class {}")
|
||||
#20006=@"loc,{#10000},1,2,1,15"
|
||||
locations_default(#20006,#10000,1,2,1,15)
|
||||
hasLocation(#20005,#20006)
|
||||
enclosingStmt(#20005,#20003)
|
||||
exprContainers(#20005,#20001)
|
||||
#20007=*
|
||||
properties(#20007,#20005,2,0,"constructor() {}")
|
||||
#20008=@"loc,{#10000},1,14,1,13"
|
||||
locations_default(#20008,#10000,1,14,1,13)
|
||||
hasLocation(#20007,#20008)
|
||||
#20009=*
|
||||
exprs(#20009,0,#20007,0,"constructor")
|
||||
hasLocation(#20009,#20008)
|
||||
enclosingStmt(#20009,#20003)
|
||||
exprContainers(#20009,#20001)
|
||||
literals("constructor","constructor",#20009)
|
||||
#20010=*
|
||||
exprs(#20010,9,#20007,1,"() {}")
|
||||
hasLocation(#20010,#20008)
|
||||
enclosingStmt(#20010,#20003)
|
||||
exprContainers(#20010,#20001)
|
||||
#20011=*
|
||||
scopes(#20011,1)
|
||||
scopenodes(#20010,#20011)
|
||||
scopenesting(#20011,#20000)
|
||||
#20012=@"var;{arguments};{#20011}"
|
||||
variables(#20012,"arguments",#20011)
|
||||
isArgumentsObject(#20012)
|
||||
#20013=*
|
||||
stmts(#20013,1,#20010,-2,"{}")
|
||||
hasLocation(#20013,#20008)
|
||||
stmtContainers(#20013,#20010)
|
||||
numlines(#20010,1,0,0)
|
||||
isMethod(#20007)
|
||||
#20014=*
|
||||
lines(#20014,#20001,"(class {})","")
|
||||
hasLocation(#20014,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"(class {})","")
|
||||
#20003=@"loc,{#10000},1,1,1,16"
|
||||
locations_default(#20003,#10000,1,1,1,16)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20015=*
|
||||
tokeninfo(#20015,8,#20001,0,"(")
|
||||
#20016=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20016,#10000,1,1,1,1)
|
||||
hasLocation(#20015,#20016)
|
||||
#20004=*
|
||||
tokeninfo(#20004,8,#20001,0,"(")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,7,#20001,1,"class")
|
||||
#20007=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20007,#10000,1,2,1,6)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,8,#20001,2,"{")
|
||||
#20009=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20009,#10000,1,14,1,14)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,"}")
|
||||
#20011=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20011,#10000,1,15,1,15)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,")")
|
||||
#20013=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20013,#10000,1,16,1,16)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,0,#20001,5,"")
|
||||
#20015=@"loc,{#10000},1,17,1,16"
|
||||
locations_default(#20015,#10000,1,17,1,16)
|
||||
hasLocation(#20014,#20015)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20016=*
|
||||
stmts(#20016,2,#20001,0,"(class {})")
|
||||
hasLocation(#20016,#20003)
|
||||
stmtContainers(#20016,#20001)
|
||||
#20017=*
|
||||
tokeninfo(#20017,7,#20001,1,"class")
|
||||
#20018=@"loc,{#10000},1,2,1,6"
|
||||
locations_default(#20018,#10000,1,2,1,6)
|
||||
hasLocation(#20017,#20018)
|
||||
#20019=*
|
||||
tokeninfo(#20019,8,#20001,2,"{")
|
||||
#20020=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20020,#10000,1,14,1,14)
|
||||
hasLocation(#20019,#20020)
|
||||
#20021=*
|
||||
tokeninfo(#20021,8,#20001,3,"}")
|
||||
#20022=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20022,#10000,1,15,1,15)
|
||||
hasLocation(#20021,#20022)
|
||||
exprs(#20017,63,#20016,0,"(class {})")
|
||||
hasLocation(#20017,#20003)
|
||||
enclosingStmt(#20017,#20016)
|
||||
exprContainers(#20017,#20001)
|
||||
#20018=*
|
||||
exprs(#20018,80,#20017,0,"class {}")
|
||||
#20019=@"loc,{#10000},1,2,1,15"
|
||||
locations_default(#20019,#10000,1,2,1,15)
|
||||
hasLocation(#20018,#20019)
|
||||
enclosingStmt(#20018,#20016)
|
||||
exprContainers(#20018,#20001)
|
||||
#20020=*
|
||||
properties(#20020,#20018,2,0,"constructor() {}")
|
||||
#20021=@"loc,{#10000},1,14,1,13"
|
||||
locations_default(#20021,#10000,1,14,1,13)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
exprs(#20022,0,#20020,0,"constructor")
|
||||
hasLocation(#20022,#20021)
|
||||
enclosingStmt(#20022,#20016)
|
||||
exprContainers(#20022,#20001)
|
||||
literals("constructor","constructor",#20022)
|
||||
#20023=*
|
||||
tokeninfo(#20023,8,#20001,4,")")
|
||||
#20024=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20024,#10000,1,16,1,16)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
tokeninfo(#20025,0,#20001,5,"")
|
||||
#20026=@"loc,{#10000},1,17,1,16"
|
||||
locations_default(#20026,#10000,1,17,1,16)
|
||||
hasLocation(#20025,#20026)
|
||||
exprs(#20023,9,#20020,1,"() {}")
|
||||
hasLocation(#20023,#20021)
|
||||
enclosingStmt(#20023,#20016)
|
||||
exprContainers(#20023,#20001)
|
||||
#20024=*
|
||||
scopes(#20024,1)
|
||||
scopenodes(#20023,#20024)
|
||||
scopenesting(#20024,#20000)
|
||||
#20025=@"var;{arguments};{#20024}"
|
||||
variables(#20025,"arguments",#20024)
|
||||
isArgumentsObject(#20025)
|
||||
#20026=*
|
||||
stmts(#20026,1,#20023,-2,"{}")
|
||||
hasLocation(#20026,#20021)
|
||||
stmtContainers(#20026,#20023)
|
||||
isMethod(#20020)
|
||||
#20027=*
|
||||
entry_cfg_node(#20027,#20001)
|
||||
#20028=@"loc,{#10000},1,1,1,0"
|
||||
@@ -99,21 +98,21 @@ locations_default(#20028,#10000,1,1,1,0)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
exit_cfg_node(#20029,#20001)
|
||||
hasLocation(#20029,#20026)
|
||||
successor(#20003,#20004)
|
||||
successor(#20004,#20009)
|
||||
successor(#20010,#20007)
|
||||
hasLocation(#20029,#20015)
|
||||
successor(#20016,#20017)
|
||||
successor(#20017,#20022)
|
||||
successor(#20023,#20020)
|
||||
#20030=*
|
||||
entry_cfg_node(#20030,#20010)
|
||||
hasLocation(#20030,#20008)
|
||||
entry_cfg_node(#20030,#20023)
|
||||
hasLocation(#20030,#20021)
|
||||
#20031=*
|
||||
exit_cfg_node(#20031,#20010)
|
||||
hasLocation(#20031,#20008)
|
||||
successor(#20013,#20031)
|
||||
successor(#20030,#20013)
|
||||
successor(#20009,#20010)
|
||||
successor(#20007,#20005)
|
||||
successor(#20005,#20029)
|
||||
successor(#20027,#20003)
|
||||
exit_cfg_node(#20031,#20023)
|
||||
hasLocation(#20031,#20021)
|
||||
successor(#20026,#20031)
|
||||
successor(#20030,#20026)
|
||||
successor(#20022,#20023)
|
||||
successor(#20020,#20018)
|
||||
successor(#20018,#20029)
|
||||
successor(#20027,#20016)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,124 +9,124 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,13"
|
||||
locations_default(#20002,#10000,1,1,1,13)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"[o.x] = [42];")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20004=*
|
||||
exprs(#20004,47,#20003,0,"[o.x] = [42]")
|
||||
#20005=@"loc,{#10000},1,1,1,12"
|
||||
locations_default(#20005,#10000,1,1,1,12)
|
||||
hasLocation(#20004,#20005)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,67,#20004,0,"[o.x]")
|
||||
#20007=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20007,#10000,1,1,1,5)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20003)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,14,#20006,0,"o.x")
|
||||
#20009=@"loc,{#10000},1,2,1,4"
|
||||
locations_default(#20009,#10000,1,2,1,4)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20003)
|
||||
exprContainers(#20008,#20001)
|
||||
#20010=*
|
||||
exprs(#20010,79,#20008,0,"o")
|
||||
#20011=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20011,#10000,1,2,1,2)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20003)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("o","o",#20010)
|
||||
#20012=@"var;{o};{#20000}"
|
||||
variables(#20012,"o",#20000)
|
||||
bind(#20010,#20012)
|
||||
#20013=*
|
||||
exprs(#20013,0,#20008,1,"x")
|
||||
#20014=@"loc,{#10000},1,4,1,4"
|
||||
locations_default(#20014,#10000,1,4,1,4)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20003)
|
||||
exprContainers(#20013,#20001)
|
||||
literals("x","x",#20013)
|
||||
arraySize(#20006,1)
|
||||
#20015=*
|
||||
exprs(#20015,7,#20004,1,"[42]")
|
||||
#20016=@"loc,{#10000},1,9,1,12"
|
||||
locations_default(#20016,#10000,1,9,1,12)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20003)
|
||||
exprContainers(#20015,#20001)
|
||||
#20017=*
|
||||
exprs(#20017,3,#20015,0,"42")
|
||||
#20018=@"loc,{#10000},1,10,1,11"
|
||||
locations_default(#20018,#10000,1,10,1,11)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20003)
|
||||
exprContainers(#20017,#20001)
|
||||
literals("42","42",#20017)
|
||||
arraySize(#20015,1)
|
||||
#20019=*
|
||||
lines(#20019,#20001,"[o.x] = [42];","")
|
||||
hasLocation(#20019,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"[o.x] = [42];","")
|
||||
#20003=@"loc,{#10000},1,1,1,13"
|
||||
locations_default(#20003,#10000,1,1,1,13)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,8,#20001,0,"[")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,6,#20001,1,"o")
|
||||
#20007=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20007,#10000,1,2,1,2)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,8,#20001,2,".")
|
||||
#20009=@"loc,{#10000},1,3,1,3"
|
||||
locations_default(#20009,#10000,1,3,1,3)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,3,"x")
|
||||
#20011=@"loc,{#10000},1,4,1,4"
|
||||
locations_default(#20011,#10000,1,4,1,4)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,"]")
|
||||
#20013=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20013,#10000,1,5,1,5)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,"=")
|
||||
#20015=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20015,#10000,1,7,1,7)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,6,"[")
|
||||
#20017=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20017,#10000,1,9,1,9)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,3,#20001,7,"42")
|
||||
#20019=@"loc,{#10000},1,10,1,11"
|
||||
locations_default(#20019,#10000,1,10,1,11)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,0,"[")
|
||||
#20021=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20021,#10000,1,1,1,1)
|
||||
tokeninfo(#20020,8,#20001,8,"]")
|
||||
#20021=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20021,#10000,1,12,1,12)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,6,#20001,1,"o")
|
||||
hasLocation(#20022,#20011)
|
||||
#20023=*
|
||||
tokeninfo(#20023,8,#20001,2,".")
|
||||
#20024=@"loc,{#10000},1,3,1,3"
|
||||
locations_default(#20024,#10000,1,3,1,3)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
tokeninfo(#20025,6,#20001,3,"x")
|
||||
hasLocation(#20025,#20014)
|
||||
tokeninfo(#20022,8,#20001,9,";")
|
||||
#20023=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20023,#10000,1,13,1,13)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,0,#20001,10,"")
|
||||
#20025=@"loc,{#10000},1,14,1,13"
|
||||
locations_default(#20025,#10000,1,14,1,13)
|
||||
hasLocation(#20024,#20025)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,4,"]")
|
||||
#20027=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20027,#10000,1,5,1,5)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,5,"=")
|
||||
#20029=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20029,#10000,1,7,1,7)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,6,"[")
|
||||
#20031=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20031,#10000,1,9,1,9)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,3,#20001,7,"42")
|
||||
hasLocation(#20032,#20018)
|
||||
stmts(#20026,2,#20001,0,"[o.x] = [42];")
|
||||
hasLocation(#20026,#20003)
|
||||
stmtContainers(#20026,#20001)
|
||||
#20027=*
|
||||
exprs(#20027,47,#20026,0,"[o.x] = [42]")
|
||||
#20028=@"loc,{#10000},1,1,1,12"
|
||||
locations_default(#20028,#10000,1,1,1,12)
|
||||
hasLocation(#20027,#20028)
|
||||
enclosingStmt(#20027,#20026)
|
||||
exprContainers(#20027,#20001)
|
||||
#20029=*
|
||||
exprs(#20029,67,#20027,0,"[o.x]")
|
||||
#20030=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20030,#10000,1,1,1,5)
|
||||
hasLocation(#20029,#20030)
|
||||
enclosingStmt(#20029,#20026)
|
||||
exprContainers(#20029,#20001)
|
||||
#20031=*
|
||||
exprs(#20031,14,#20029,0,"o.x")
|
||||
#20032=@"loc,{#10000},1,2,1,4"
|
||||
locations_default(#20032,#10000,1,2,1,4)
|
||||
hasLocation(#20031,#20032)
|
||||
enclosingStmt(#20031,#20026)
|
||||
exprContainers(#20031,#20001)
|
||||
#20033=*
|
||||
tokeninfo(#20033,8,#20001,8,"]")
|
||||
#20034=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20034,#10000,1,12,1,12)
|
||||
hasLocation(#20033,#20034)
|
||||
exprs(#20033,79,#20031,0,"o")
|
||||
hasLocation(#20033,#20007)
|
||||
enclosingStmt(#20033,#20026)
|
||||
exprContainers(#20033,#20001)
|
||||
literals("o","o",#20033)
|
||||
#20034=@"var;{o};{#20000}"
|
||||
variables(#20034,"o",#20000)
|
||||
bind(#20033,#20034)
|
||||
#20035=*
|
||||
tokeninfo(#20035,8,#20001,9,";")
|
||||
#20036=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20036,#10000,1,13,1,13)
|
||||
hasLocation(#20035,#20036)
|
||||
#20037=*
|
||||
tokeninfo(#20037,0,#20001,10,"")
|
||||
#20038=@"loc,{#10000},1,14,1,13"
|
||||
locations_default(#20038,#10000,1,14,1,13)
|
||||
hasLocation(#20037,#20038)
|
||||
exprs(#20035,0,#20031,1,"x")
|
||||
hasLocation(#20035,#20011)
|
||||
enclosingStmt(#20035,#20026)
|
||||
exprContainers(#20035,#20001)
|
||||
literals("x","x",#20035)
|
||||
arraySize(#20029,1)
|
||||
#20036=*
|
||||
exprs(#20036,7,#20027,1,"[42]")
|
||||
#20037=@"loc,{#10000},1,9,1,12"
|
||||
locations_default(#20037,#10000,1,9,1,12)
|
||||
hasLocation(#20036,#20037)
|
||||
enclosingStmt(#20036,#20026)
|
||||
exprContainers(#20036,#20001)
|
||||
#20038=*
|
||||
exprs(#20038,3,#20036,0,"42")
|
||||
hasLocation(#20038,#20019)
|
||||
enclosingStmt(#20038,#20026)
|
||||
exprContainers(#20038,#20001)
|
||||
literals("42","42",#20038)
|
||||
arraySize(#20036,1)
|
||||
#20039=*
|
||||
entry_cfg_node(#20039,#20001)
|
||||
#20040=@"loc,{#10000},1,1,1,0"
|
||||
@@ -134,15 +134,15 @@ locations_default(#20040,#10000,1,1,1,0)
|
||||
hasLocation(#20039,#20040)
|
||||
#20041=*
|
||||
exit_cfg_node(#20041,#20001)
|
||||
hasLocation(#20041,#20038)
|
||||
successor(#20003,#20015)
|
||||
successor(#20006,#20010)
|
||||
successor(#20013,#20008)
|
||||
successor(#20010,#20013)
|
||||
successor(#20008,#20004)
|
||||
successor(#20015,#20017)
|
||||
successor(#20017,#20006)
|
||||
successor(#20004,#20041)
|
||||
successor(#20039,#20003)
|
||||
hasLocation(#20041,#20025)
|
||||
successor(#20026,#20036)
|
||||
successor(#20029,#20033)
|
||||
successor(#20035,#20031)
|
||||
successor(#20033,#20035)
|
||||
successor(#20031,#20027)
|
||||
successor(#20036,#20038)
|
||||
successor(#20038,#20029)
|
||||
successor(#20027,#20041)
|
||||
successor(#20039,#20026)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,146 +9,146 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,17"
|
||||
locations_default(#20002,#10000,1,1,1,17)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"({ x: o.x } = q);")
|
||||
hasLocation(#20003,#20002)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"({ x: o.x } = q);","")
|
||||
#20003=@"loc,{#10000},1,1,1,17"
|
||||
locations_default(#20003,#10000,1,1,1,17)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
exprs(#20004,63,#20003,0,"({ x: o.x } = q)")
|
||||
#20005=@"loc,{#10000},1,1,1,16"
|
||||
locations_default(#20005,#10000,1,1,1,16)
|
||||
tokeninfo(#20004,8,#20001,0,"(")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
enclosingStmt(#20004,#20003)
|
||||
exprContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,47,#20004,0,"{ x: o.x } = q")
|
||||
#20007=@"loc,{#10000},1,2,1,15"
|
||||
locations_default(#20007,#10000,1,2,1,15)
|
||||
tokeninfo(#20006,8,#20001,1,"{")
|
||||
#20007=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20007,#10000,1,2,1,2)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20003)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,68,#20006,0,"{ x: o.x }")
|
||||
#20009=@"loc,{#10000},1,2,1,11"
|
||||
locations_default(#20009,#10000,1,2,1,11)
|
||||
tokeninfo(#20008,6,#20001,2,"x")
|
||||
#20009=@"loc,{#10000},1,4,1,4"
|
||||
locations_default(#20009,#10000,1,4,1,4)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20003)
|
||||
exprContainers(#20008,#20001)
|
||||
#20010=*
|
||||
properties(#20010,#20008,0,0,"x: o.x")
|
||||
#20011=@"loc,{#10000},1,4,1,9"
|
||||
locations_default(#20011,#10000,1,4,1,9)
|
||||
tokeninfo(#20010,8,#20001,3,":")
|
||||
#20011=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20011,#10000,1,5,1,5)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
exprs(#20012,0,#20010,0,"x")
|
||||
#20013=@"loc,{#10000},1,4,1,4"
|
||||
locations_default(#20013,#10000,1,4,1,4)
|
||||
tokeninfo(#20012,6,#20001,4,"o")
|
||||
#20013=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20013,#10000,1,7,1,7)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20003)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("x","x",#20012)
|
||||
#20014=*
|
||||
exprs(#20014,14,#20010,1,"o.x")
|
||||
#20015=@"loc,{#10000},1,7,1,9"
|
||||
locations_default(#20015,#10000,1,7,1,9)
|
||||
tokeninfo(#20014,8,#20001,5,".")
|
||||
#20015=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20015,#10000,1,8,1,8)
|
||||
hasLocation(#20014,#20015)
|
||||
enclosingStmt(#20014,#20003)
|
||||
exprContainers(#20014,#20001)
|
||||
#20016=*
|
||||
exprs(#20016,79,#20014,0,"o")
|
||||
#20017=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20017,#10000,1,7,1,7)
|
||||
tokeninfo(#20016,6,#20001,6,"x")
|
||||
#20017=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20017,#10000,1,9,1,9)
|
||||
hasLocation(#20016,#20017)
|
||||
enclosingStmt(#20016,#20003)
|
||||
exprContainers(#20016,#20001)
|
||||
literals("o","o",#20016)
|
||||
#20018=@"var;{o};{#20000}"
|
||||
variables(#20018,"o",#20000)
|
||||
bind(#20016,#20018)
|
||||
#20019=*
|
||||
exprs(#20019,0,#20014,1,"x")
|
||||
#20020=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20020,#10000,1,9,1,9)
|
||||
hasLocation(#20019,#20020)
|
||||
enclosingStmt(#20019,#20003)
|
||||
exprContainers(#20019,#20001)
|
||||
literals("x","x",#20019)
|
||||
#20021=*
|
||||
exprs(#20021,79,#20006,1,"q")
|
||||
#20022=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20022,#10000,1,15,1,15)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20003)
|
||||
exprContainers(#20021,#20001)
|
||||
literals("q","q",#20021)
|
||||
#20023=@"var;{q};{#20000}"
|
||||
variables(#20023,"q",#20000)
|
||||
bind(#20021,#20023)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,7,"}")
|
||||
#20019=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20019,#10000,1,11,1,11)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,8,"=")
|
||||
#20021=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20021,#10000,1,13,1,13)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,6,#20001,9,"q")
|
||||
#20023=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20023,#10000,1,15,1,15)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
lines(#20024,#20001,"({ x: o.x } = q);","")
|
||||
hasLocation(#20024,#20002)
|
||||
numlines(#20001,1,1,0)
|
||||
#20025=*
|
||||
tokeninfo(#20025,8,#20001,0,"(")
|
||||
#20026=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20026,#10000,1,1,1,1)
|
||||
hasLocation(#20025,#20026)
|
||||
#20027=*
|
||||
tokeninfo(#20027,8,#20001,1,"{")
|
||||
#20028=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20028,#10000,1,2,1,2)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
tokeninfo(#20029,6,#20001,2,"x")
|
||||
hasLocation(#20029,#20013)
|
||||
tokeninfo(#20024,8,#20001,10,")")
|
||||
#20025=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20025,#10000,1,16,1,16)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,11,";")
|
||||
#20027=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20027,#10000,1,17,1,17)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,0,#20001,12,"")
|
||||
#20029=@"loc,{#10000},1,18,1,17"
|
||||
locations_default(#20029,#10000,1,18,1,17)
|
||||
hasLocation(#20028,#20029)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,3,":")
|
||||
#20031=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20031,#10000,1,5,1,5)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,6,#20001,4,"o")
|
||||
hasLocation(#20032,#20017)
|
||||
stmts(#20030,2,#20001,0,"({ x: o.x } = q);")
|
||||
hasLocation(#20030,#20003)
|
||||
stmtContainers(#20030,#20001)
|
||||
#20031=*
|
||||
exprs(#20031,63,#20030,0,"({ x: o.x } = q)")
|
||||
#20032=@"loc,{#10000},1,1,1,16"
|
||||
locations_default(#20032,#10000,1,1,1,16)
|
||||
hasLocation(#20031,#20032)
|
||||
enclosingStmt(#20031,#20030)
|
||||
exprContainers(#20031,#20001)
|
||||
#20033=*
|
||||
tokeninfo(#20033,8,#20001,5,".")
|
||||
#20034=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20034,#10000,1,8,1,8)
|
||||
exprs(#20033,47,#20031,0,"{ x: o.x } = q")
|
||||
#20034=@"loc,{#10000},1,2,1,15"
|
||||
locations_default(#20034,#10000,1,2,1,15)
|
||||
hasLocation(#20033,#20034)
|
||||
enclosingStmt(#20033,#20030)
|
||||
exprContainers(#20033,#20001)
|
||||
#20035=*
|
||||
tokeninfo(#20035,6,#20001,6,"x")
|
||||
hasLocation(#20035,#20020)
|
||||
#20036=*
|
||||
tokeninfo(#20036,8,#20001,7,"}")
|
||||
#20037=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20037,#10000,1,11,1,11)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,8,#20001,8,"=")
|
||||
#20039=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20039,#10000,1,13,1,13)
|
||||
hasLocation(#20038,#20039)
|
||||
exprs(#20035,68,#20033,0,"{ x: o.x }")
|
||||
#20036=@"loc,{#10000},1,2,1,11"
|
||||
locations_default(#20036,#10000,1,2,1,11)
|
||||
hasLocation(#20035,#20036)
|
||||
enclosingStmt(#20035,#20030)
|
||||
exprContainers(#20035,#20001)
|
||||
#20037=*
|
||||
properties(#20037,#20035,0,0,"x: o.x")
|
||||
#20038=@"loc,{#10000},1,4,1,9"
|
||||
locations_default(#20038,#10000,1,4,1,9)
|
||||
hasLocation(#20037,#20038)
|
||||
#20039=*
|
||||
exprs(#20039,0,#20037,0,"x")
|
||||
hasLocation(#20039,#20009)
|
||||
enclosingStmt(#20039,#20030)
|
||||
exprContainers(#20039,#20001)
|
||||
literals("x","x",#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,6,#20001,9,"q")
|
||||
hasLocation(#20040,#20022)
|
||||
#20041=*
|
||||
tokeninfo(#20041,8,#20001,10,")")
|
||||
#20042=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20042,#10000,1,16,1,16)
|
||||
hasLocation(#20041,#20042)
|
||||
#20043=*
|
||||
tokeninfo(#20043,8,#20001,11,";")
|
||||
#20044=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20044,#10000,1,17,1,17)
|
||||
hasLocation(#20043,#20044)
|
||||
exprs(#20040,14,#20037,1,"o.x")
|
||||
#20041=@"loc,{#10000},1,7,1,9"
|
||||
locations_default(#20041,#10000,1,7,1,9)
|
||||
hasLocation(#20040,#20041)
|
||||
enclosingStmt(#20040,#20030)
|
||||
exprContainers(#20040,#20001)
|
||||
#20042=*
|
||||
exprs(#20042,79,#20040,0,"o")
|
||||
hasLocation(#20042,#20013)
|
||||
enclosingStmt(#20042,#20030)
|
||||
exprContainers(#20042,#20001)
|
||||
literals("o","o",#20042)
|
||||
#20043=@"var;{o};{#20000}"
|
||||
variables(#20043,"o",#20000)
|
||||
bind(#20042,#20043)
|
||||
#20044=*
|
||||
exprs(#20044,0,#20040,1,"x")
|
||||
hasLocation(#20044,#20017)
|
||||
enclosingStmt(#20044,#20030)
|
||||
exprContainers(#20044,#20001)
|
||||
literals("x","x",#20044)
|
||||
#20045=*
|
||||
tokeninfo(#20045,0,#20001,12,"")
|
||||
#20046=@"loc,{#10000},1,18,1,17"
|
||||
locations_default(#20046,#10000,1,18,1,17)
|
||||
hasLocation(#20045,#20046)
|
||||
exprs(#20045,79,#20033,1,"q")
|
||||
hasLocation(#20045,#20023)
|
||||
enclosingStmt(#20045,#20030)
|
||||
exprContainers(#20045,#20001)
|
||||
literals("q","q",#20045)
|
||||
#20046=@"var;{q};{#20000}"
|
||||
variables(#20046,"q",#20000)
|
||||
bind(#20045,#20046)
|
||||
#20047=*
|
||||
entry_cfg_node(#20047,#20001)
|
||||
#20048=@"loc,{#10000},1,1,1,0"
|
||||
@@ -156,17 +156,17 @@ locations_default(#20048,#10000,1,1,1,0)
|
||||
hasLocation(#20047,#20048)
|
||||
#20049=*
|
||||
exit_cfg_node(#20049,#20001)
|
||||
hasLocation(#20049,#20046)
|
||||
successor(#20003,#20004)
|
||||
successor(#20004,#20021)
|
||||
successor(#20008,#20012)
|
||||
successor(#20019,#20014)
|
||||
successor(#20016,#20019)
|
||||
successor(#20014,#20010)
|
||||
successor(#20012,#20016)
|
||||
successor(#20010,#20006)
|
||||
successor(#20021,#20008)
|
||||
successor(#20006,#20049)
|
||||
successor(#20047,#20003)
|
||||
hasLocation(#20049,#20029)
|
||||
successor(#20030,#20031)
|
||||
successor(#20031,#20045)
|
||||
successor(#20035,#20039)
|
||||
successor(#20044,#20040)
|
||||
successor(#20042,#20044)
|
||||
successor(#20040,#20037)
|
||||
successor(#20039,#20042)
|
||||
successor(#20037,#20033)
|
||||
successor(#20045,#20035)
|
||||
successor(#20033,#20049)
|
||||
successor(#20047,#20030)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,73 +9,73 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20002,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{x};{#20000}"
|
||||
variables(#20003,"x",#20000)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"const x = 23;","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,13"
|
||||
locations_default(#20003,#10000,1,1,1,13)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
stmts(#20004,22,#20001,0,"const x = 23;")
|
||||
#20005=@"loc,{#10000},1,1,1,13"
|
||||
locations_default(#20005,#10000,1,1,1,13)
|
||||
tokeninfo(#20004,7,#20001,0,"const")
|
||||
#20005=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20005,#10000,1,1,1,5)
|
||||
hasLocation(#20004,#20005)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,64,#20004,0,"x = 23")
|
||||
#20007=@"loc,{#10000},1,7,1,12"
|
||||
locations_default(#20007,#10000,1,7,1,12)
|
||||
tokeninfo(#20006,6,#20001,1,"x")
|
||||
#20007=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20007,#10000,1,7,1,7)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20004)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,78,#20006,0,"x")
|
||||
#20009=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20009,#10000,1,7,1,7)
|
||||
tokeninfo(#20008,8,#20001,2,"=")
|
||||
#20009=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20009,#10000,1,9,1,9)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20004)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("x","x",#20008)
|
||||
decl(#20008,#20003)
|
||||
#20010=*
|
||||
exprs(#20010,3,#20006,1,"23")
|
||||
tokeninfo(#20010,3,#20001,3,"23")
|
||||
#20011=@"loc,{#10000},1,11,1,12"
|
||||
locations_default(#20011,#10000,1,11,1,12)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20004)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("23","23",#20010)
|
||||
#20012=*
|
||||
lines(#20012,#20001,"const x = 23;","
|
||||
")
|
||||
hasLocation(#20012,#20005)
|
||||
numlines(#20001,1,1,0)
|
||||
#20013=*
|
||||
tokeninfo(#20013,7,#20001,0,"const")
|
||||
#20014=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20014,#10000,1,1,1,5)
|
||||
hasLocation(#20013,#20014)
|
||||
#20015=*
|
||||
tokeninfo(#20015,6,#20001,1,"x")
|
||||
hasLocation(#20015,#20009)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,2,"=")
|
||||
#20017=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20017,#10000,1,9,1,9)
|
||||
hasLocation(#20016,#20017)
|
||||
tokeninfo(#20012,8,#20001,4,";")
|
||||
#20013=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20013,#10000,1,13,1,13)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,0,#20001,5,"")
|
||||
#20015=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20015,#10000,2,1,2,0)
|
||||
hasLocation(#20014,#20015)
|
||||
toplevels(#20001,0)
|
||||
#20016=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20016,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20016)
|
||||
#20017=@"var;{x};{#20000}"
|
||||
variables(#20017,"x",#20000)
|
||||
#20018=*
|
||||
tokeninfo(#20018,3,#20001,3,"23")
|
||||
hasLocation(#20018,#20011)
|
||||
stmts(#20018,22,#20001,0,"const x = 23;")
|
||||
hasLocation(#20018,#20003)
|
||||
stmtContainers(#20018,#20001)
|
||||
#20019=*
|
||||
tokeninfo(#20019,8,#20001,4,";")
|
||||
#20020=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20020,#10000,1,13,1,13)
|
||||
exprs(#20019,64,#20018,0,"x = 23")
|
||||
#20020=@"loc,{#10000},1,7,1,12"
|
||||
locations_default(#20020,#10000,1,7,1,12)
|
||||
hasLocation(#20019,#20020)
|
||||
enclosingStmt(#20019,#20018)
|
||||
exprContainers(#20019,#20001)
|
||||
#20021=*
|
||||
tokeninfo(#20021,0,#20001,5,"")
|
||||
#20022=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20022,#10000,2,1,2,0)
|
||||
hasLocation(#20021,#20022)
|
||||
exprs(#20021,78,#20019,0,"x")
|
||||
hasLocation(#20021,#20007)
|
||||
enclosingStmt(#20021,#20018)
|
||||
exprContainers(#20021,#20001)
|
||||
literals("x","x",#20021)
|
||||
decl(#20021,#20017)
|
||||
#20022=*
|
||||
exprs(#20022,3,#20019,1,"23")
|
||||
hasLocation(#20022,#20011)
|
||||
enclosingStmt(#20022,#20018)
|
||||
exprContainers(#20022,#20001)
|
||||
literals("23","23",#20022)
|
||||
#20023=*
|
||||
entry_cfg_node(#20023,#20001)
|
||||
#20024=@"loc,{#10000},1,1,1,0"
|
||||
@@ -83,11 +83,11 @@ locations_default(#20024,#10000,1,1,1,0)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
exit_cfg_node(#20025,#20001)
|
||||
hasLocation(#20025,#20022)
|
||||
successor(#20004,#20008)
|
||||
successor(#20010,#20006)
|
||||
successor(#20008,#20010)
|
||||
successor(#20006,#20025)
|
||||
successor(#20023,#20004)
|
||||
hasLocation(#20025,#20015)
|
||||
successor(#20018,#20021)
|
||||
successor(#20022,#20019)
|
||||
successor(#20021,#20022)
|
||||
successor(#20019,#20025)
|
||||
successor(#20023,#20018)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,143 +9,142 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,24"
|
||||
locations_default(#20002,#10000,1,1,1,24)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{f};{#20000}"
|
||||
variables(#20003,"f",#20000)
|
||||
#20004=*
|
||||
stmts(#20004,17,#20001,0,"functio ... +19) {}")
|
||||
hasLocation(#20004,#20002)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,78,#20004,-1,"f")
|
||||
#20006=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20006,#10000,1,10,1,10)
|
||||
hasLocation(#20005,#20006)
|
||||
exprContainers(#20005,#20004)
|
||||
literals("f","f",#20005)
|
||||
decl(#20005,#20003)
|
||||
#20007=*
|
||||
scopes(#20007,1)
|
||||
scopenodes(#20004,#20007)
|
||||
scopenesting(#20007,#20000)
|
||||
#20008=@"var;{x};{#20007}"
|
||||
variables(#20008,"x",#20007)
|
||||
#20009=*
|
||||
exprs(#20009,78,#20004,0,"x")
|
||||
#20010=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20010,#10000,1,12,1,12)
|
||||
hasLocation(#20009,#20010)
|
||||
exprContainers(#20009,#20004)
|
||||
literals("x","x",#20009)
|
||||
decl(#20009,#20008)
|
||||
#20011=@"var;{y};{#20007}"
|
||||
variables(#20011,"y",#20007)
|
||||
#20012=*
|
||||
exprs(#20012,78,#20004,1,"y")
|
||||
#20013=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20013,#10000,1,15,1,15)
|
||||
hasLocation(#20012,#20013)
|
||||
exprContainers(#20012,#20004)
|
||||
literals("y","y",#20012)
|
||||
decl(#20012,#20011)
|
||||
#20014=@"var;{arguments};{#20007}"
|
||||
variables(#20014,"arguments",#20007)
|
||||
isArgumentsObject(#20014)
|
||||
#20015=*
|
||||
exprs(#20015,34,#20004,-9,"x+19")
|
||||
#20016=@"loc,{#10000},1,17,1,20"
|
||||
locations_default(#20016,#10000,1,17,1,20)
|
||||
hasLocation(#20015,#20016)
|
||||
exprContainers(#20015,#20004)
|
||||
#20017=*
|
||||
exprs(#20017,79,#20015,0,"x")
|
||||
#20018=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20018,#10000,1,17,1,17)
|
||||
hasLocation(#20017,#20018)
|
||||
exprContainers(#20017,#20004)
|
||||
literals("x","x",#20017)
|
||||
bind(#20017,#20008)
|
||||
#20019=*
|
||||
exprs(#20019,3,#20015,1,"19")
|
||||
#20020=@"loc,{#10000},1,19,1,20"
|
||||
locations_default(#20020,#10000,1,19,1,20)
|
||||
hasLocation(#20019,#20020)
|
||||
exprContainers(#20019,#20004)
|
||||
literals("19","19",#20019)
|
||||
#20021=*
|
||||
stmts(#20021,1,#20004,-2,"{}")
|
||||
#20022=@"loc,{#10000},1,23,1,24"
|
||||
locations_default(#20022,#10000,1,23,1,24)
|
||||
hasLocation(#20021,#20022)
|
||||
stmtContainers(#20021,#20004)
|
||||
numlines(#20004,1,1,0)
|
||||
#20023=*
|
||||
lines(#20023,#20001,"function f(x, y=x+19) {}","")
|
||||
hasLocation(#20023,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"function f(x, y=x+19) {}","")
|
||||
#20003=@"loc,{#10000},1,1,1,24"
|
||||
locations_default(#20003,#10000,1,1,1,24)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"function")
|
||||
#20005=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20005,#10000,1,1,1,8)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,6,#20001,1,"f")
|
||||
#20007=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20007,#10000,1,10,1,10)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,8,#20001,2,"(")
|
||||
#20009=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20009,#10000,1,11,1,11)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,3,"x")
|
||||
#20011=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20011,#10000,1,12,1,12)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,",")
|
||||
#20013=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20013,#10000,1,13,1,13)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,5,"y")
|
||||
#20015=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20015,#10000,1,15,1,15)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,6,"=")
|
||||
#20017=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20017,#10000,1,16,1,16)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,6,#20001,7,"x")
|
||||
#20019=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20019,#10000,1,17,1,17)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,8,"+")
|
||||
#20021=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20021,#10000,1,18,1,18)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,3,#20001,9,"19")
|
||||
#20023=@"loc,{#10000},1,19,1,20"
|
||||
locations_default(#20023,#10000,1,19,1,20)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,7,#20001,0,"function")
|
||||
#20025=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20025,#10000,1,1,1,8)
|
||||
tokeninfo(#20024,8,#20001,10,")")
|
||||
#20025=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20025,#10000,1,21,1,21)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,6,#20001,1,"f")
|
||||
hasLocation(#20026,#20006)
|
||||
#20027=*
|
||||
tokeninfo(#20027,8,#20001,2,"(")
|
||||
#20028=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20028,#10000,1,11,1,11)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
tokeninfo(#20029,6,#20001,3,"x")
|
||||
hasLocation(#20029,#20010)
|
||||
tokeninfo(#20026,8,#20001,11,"{")
|
||||
#20027=@"loc,{#10000},1,23,1,23"
|
||||
locations_default(#20027,#10000,1,23,1,23)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,12,"}")
|
||||
#20029=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20029,#10000,1,24,1,24)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,4,",")
|
||||
#20031=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20031,#10000,1,13,1,13)
|
||||
tokeninfo(#20030,0,#20001,13,"")
|
||||
#20031=@"loc,{#10000},1,25,1,24"
|
||||
locations_default(#20031,#10000,1,25,1,24)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,6,#20001,5,"y")
|
||||
hasLocation(#20032,#20013)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20032=@"var;{f};{#20000}"
|
||||
variables(#20032,"f",#20000)
|
||||
#20033=*
|
||||
tokeninfo(#20033,8,#20001,6,"=")
|
||||
#20034=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20034,#10000,1,16,1,16)
|
||||
hasLocation(#20033,#20034)
|
||||
stmts(#20033,17,#20001,0,"functio ... +19) {}")
|
||||
hasLocation(#20033,#20003)
|
||||
stmtContainers(#20033,#20001)
|
||||
#20034=*
|
||||
exprs(#20034,78,#20033,-1,"f")
|
||||
hasLocation(#20034,#20007)
|
||||
exprContainers(#20034,#20033)
|
||||
literals("f","f",#20034)
|
||||
decl(#20034,#20032)
|
||||
#20035=*
|
||||
tokeninfo(#20035,6,#20001,7,"x")
|
||||
hasLocation(#20035,#20018)
|
||||
#20036=*
|
||||
tokeninfo(#20036,8,#20001,8,"+")
|
||||
#20037=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20037,#10000,1,18,1,18)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,3,#20001,9,"19")
|
||||
hasLocation(#20038,#20020)
|
||||
scopes(#20035,1)
|
||||
scopenodes(#20033,#20035)
|
||||
scopenesting(#20035,#20000)
|
||||
#20036=@"var;{x};{#20035}"
|
||||
variables(#20036,"x",#20035)
|
||||
#20037=*
|
||||
exprs(#20037,78,#20033,0,"x")
|
||||
hasLocation(#20037,#20011)
|
||||
exprContainers(#20037,#20033)
|
||||
literals("x","x",#20037)
|
||||
decl(#20037,#20036)
|
||||
#20038=@"var;{y};{#20035}"
|
||||
variables(#20038,"y",#20035)
|
||||
#20039=*
|
||||
tokeninfo(#20039,8,#20001,10,")")
|
||||
#20040=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20040,#10000,1,21,1,21)
|
||||
hasLocation(#20039,#20040)
|
||||
exprs(#20039,78,#20033,1,"y")
|
||||
hasLocation(#20039,#20015)
|
||||
exprContainers(#20039,#20033)
|
||||
literals("y","y",#20039)
|
||||
decl(#20039,#20038)
|
||||
#20040=@"var;{arguments};{#20035}"
|
||||
variables(#20040,"arguments",#20035)
|
||||
isArgumentsObject(#20040)
|
||||
#20041=*
|
||||
tokeninfo(#20041,8,#20001,11,"{")
|
||||
#20042=@"loc,{#10000},1,23,1,23"
|
||||
locations_default(#20042,#10000,1,23,1,23)
|
||||
exprs(#20041,34,#20033,-9,"x+19")
|
||||
#20042=@"loc,{#10000},1,17,1,20"
|
||||
locations_default(#20042,#10000,1,17,1,20)
|
||||
hasLocation(#20041,#20042)
|
||||
exprContainers(#20041,#20033)
|
||||
#20043=*
|
||||
tokeninfo(#20043,8,#20001,12,"}")
|
||||
#20044=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20044,#10000,1,24,1,24)
|
||||
hasLocation(#20043,#20044)
|
||||
exprs(#20043,79,#20041,0,"x")
|
||||
hasLocation(#20043,#20019)
|
||||
exprContainers(#20043,#20033)
|
||||
literals("x","x",#20043)
|
||||
bind(#20043,#20036)
|
||||
#20044=*
|
||||
exprs(#20044,3,#20041,1,"19")
|
||||
hasLocation(#20044,#20023)
|
||||
exprContainers(#20044,#20033)
|
||||
literals("19","19",#20044)
|
||||
#20045=*
|
||||
tokeninfo(#20045,0,#20001,13,"")
|
||||
#20046=@"loc,{#10000},1,25,1,24"
|
||||
locations_default(#20046,#10000,1,25,1,24)
|
||||
stmts(#20045,1,#20033,-2,"{}")
|
||||
#20046=@"loc,{#10000},1,23,1,24"
|
||||
locations_default(#20046,#10000,1,23,1,24)
|
||||
hasLocation(#20045,#20046)
|
||||
stmtContainers(#20045,#20033)
|
||||
#20047=*
|
||||
entry_cfg_node(#20047,#20001)
|
||||
#20048=@"loc,{#10000},1,1,1,0"
|
||||
@@ -153,22 +152,22 @@ locations_default(#20048,#10000,1,1,1,0)
|
||||
hasLocation(#20047,#20048)
|
||||
#20049=*
|
||||
exit_cfg_node(#20049,#20001)
|
||||
hasLocation(#20049,#20046)
|
||||
successor(#20004,#20049)
|
||||
hasLocation(#20049,#20031)
|
||||
successor(#20033,#20049)
|
||||
#20050=*
|
||||
entry_cfg_node(#20050,#20004)
|
||||
entry_cfg_node(#20050,#20033)
|
||||
hasLocation(#20050,#20048)
|
||||
#20051=*
|
||||
exit_cfg_node(#20051,#20004)
|
||||
hasLocation(#20051,#20046)
|
||||
successor(#20021,#20051)
|
||||
successor(#20012,#20021)
|
||||
successor(#20019,#20015)
|
||||
successor(#20017,#20019)
|
||||
successor(#20015,#20012)
|
||||
successor(#20009,#20017)
|
||||
successor(#20050,#20009)
|
||||
successor(#20005,#20004)
|
||||
successor(#20047,#20005)
|
||||
exit_cfg_node(#20051,#20033)
|
||||
hasLocation(#20051,#20031)
|
||||
successor(#20045,#20051)
|
||||
successor(#20039,#20045)
|
||||
successor(#20044,#20041)
|
||||
successor(#20043,#20044)
|
||||
successor(#20041,#20039)
|
||||
successor(#20037,#20043)
|
||||
successor(#20050,#20037)
|
||||
successor(#20034,#20033)
|
||||
successor(#20047,#20034)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,154 +9,153 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,3,1"
|
||||
locations_default(#20002,#10000,1,1,3,1)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{f};{#20000}"
|
||||
variables(#20003,"f",#20000)
|
||||
#20004=*
|
||||
stmts(#20004,17,#20001,0,"functio ... g();\n}")
|
||||
hasLocation(#20004,#20002)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,78,#20004,-1,"f")
|
||||
#20006=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20006,#10000,1,11,1,11)
|
||||
hasLocation(#20005,#20006)
|
||||
exprContainers(#20005,#20004)
|
||||
literals("f","f",#20005)
|
||||
decl(#20005,#20003)
|
||||
#20007=*
|
||||
scopes(#20007,1)
|
||||
scopenodes(#20004,#20007)
|
||||
scopenesting(#20007,#20000)
|
||||
#20008=@"var;{arguments};{#20007}"
|
||||
variables(#20008,"arguments",#20007)
|
||||
isArgumentsObject(#20008)
|
||||
isGenerator(#20004)
|
||||
#20009=*
|
||||
stmts(#20009,1,#20004,-2,"{\n yield* g();\n}")
|
||||
#20010=@"loc,{#10000},1,15,3,1"
|
||||
locations_default(#20010,#10000,1,15,3,1)
|
||||
hasLocation(#20009,#20010)
|
||||
stmtContainers(#20009,#20004)
|
||||
#20011=*
|
||||
stmts(#20011,2,#20009,0,"yield* g();")
|
||||
#20012=@"loc,{#10000},2,5,2,15"
|
||||
locations_default(#20012,#10000,2,5,2,15)
|
||||
hasLocation(#20011,#20012)
|
||||
stmtContainers(#20011,#20004)
|
||||
#20013=*
|
||||
exprs(#20013,69,#20011,0,"yield* g()")
|
||||
#20014=@"loc,{#10000},2,5,2,14"
|
||||
locations_default(#20014,#10000,2,5,2,14)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20011)
|
||||
exprContainers(#20013,#20004)
|
||||
#20015=*
|
||||
exprs(#20015,13,#20013,0,"g()")
|
||||
#20016=@"loc,{#10000},2,12,2,14"
|
||||
locations_default(#20016,#10000,2,12,2,14)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20011)
|
||||
exprContainers(#20015,#20004)
|
||||
#20017=*
|
||||
exprs(#20017,79,#20015,-1,"g")
|
||||
#20018=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20018,#10000,2,12,2,12)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20011)
|
||||
exprContainers(#20017,#20004)
|
||||
literals("g","g",#20017)
|
||||
#20019=@"var;{g};{#20000}"
|
||||
variables(#20019,"g",#20000)
|
||||
bind(#20017,#20019)
|
||||
isDelegating(#20013)
|
||||
numlines(#20004,3,3,0)
|
||||
#20020=*
|
||||
lines(#20020,#20001,"function* f() {","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"function* f() {","
|
||||
")
|
||||
#20021=@"loc,{#10000},1,1,1,15"
|
||||
locations_default(#20021,#10000,1,1,1,15)
|
||||
#20003=@"loc,{#10000},1,1,1,15"
|
||||
locations_default(#20003,#10000,1,1,1,15)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001," yield* g();","
|
||||
")
|
||||
#20005=@"loc,{#10000},2,1,2,15"
|
||||
locations_default(#20005,#10000,2,1,2,15)
|
||||
hasLocation(#20004,#20005)
|
||||
indentation(#10000,2," ",4)
|
||||
#20006=*
|
||||
lines(#20006,#20001,"}","")
|
||||
#20007=@"loc,{#10000},3,1,3,1"
|
||||
locations_default(#20007,#10000,3,1,3,1)
|
||||
hasLocation(#20006,#20007)
|
||||
numlines(#20001,3,3,0)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,0,"function")
|
||||
#20009=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20009,#10000,1,1,1,8)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,1,"*")
|
||||
#20011=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20011,#10000,1,9,1,9)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,2,"f")
|
||||
#20013=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20013,#10000,1,11,1,11)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,3,"(")
|
||||
#20015=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20015,#10000,1,12,1,12)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,4,")")
|
||||
#20017=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20017,#10000,1,13,1,13)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,5,"{")
|
||||
#20019=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20019,#10000,1,15,1,15)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,7,#20001,6,"yield")
|
||||
#20021=@"loc,{#10000},2,5,2,9"
|
||||
locations_default(#20021,#10000,2,5,2,9)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
lines(#20022,#20001," yield* g();","
|
||||
")
|
||||
#20023=@"loc,{#10000},2,1,2,15"
|
||||
locations_default(#20023,#10000,2,1,2,15)
|
||||
tokeninfo(#20022,8,#20001,7,"*")
|
||||
#20023=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20023,#10000,2,10,2,10)
|
||||
hasLocation(#20022,#20023)
|
||||
indentation(#10000,2," ",4)
|
||||
#20024=*
|
||||
lines(#20024,#20001,"}","")
|
||||
#20025=@"loc,{#10000},3,1,3,1"
|
||||
locations_default(#20025,#10000,3,1,3,1)
|
||||
tokeninfo(#20024,6,#20001,8,"g")
|
||||
#20025=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20025,#10000,2,12,2,12)
|
||||
hasLocation(#20024,#20025)
|
||||
numlines(#20001,3,3,0)
|
||||
#20026=*
|
||||
tokeninfo(#20026,7,#20001,0,"function")
|
||||
#20027=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20027,#10000,1,1,1,8)
|
||||
tokeninfo(#20026,8,#20001,9,"(")
|
||||
#20027=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20027,#10000,2,13,2,13)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,1,"*")
|
||||
#20029=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20029,#10000,1,9,1,9)
|
||||
tokeninfo(#20028,8,#20001,10,")")
|
||||
#20029=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20029,#10000,2,14,2,14)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,6,#20001,2,"f")
|
||||
hasLocation(#20030,#20006)
|
||||
#20031=*
|
||||
tokeninfo(#20031,8,#20001,3,"(")
|
||||
#20032=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20032,#10000,1,12,1,12)
|
||||
hasLocation(#20031,#20032)
|
||||
tokeninfo(#20030,8,#20001,11,";")
|
||||
#20031=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20031,#10000,2,15,2,15)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,8,#20001,12,"}")
|
||||
hasLocation(#20032,#20007)
|
||||
#20033=*
|
||||
tokeninfo(#20033,8,#20001,4,")")
|
||||
#20034=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20034,#10000,1,13,1,13)
|
||||
tokeninfo(#20033,0,#20001,13,"")
|
||||
#20034=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20034,#10000,3,2,3,1)
|
||||
hasLocation(#20033,#20034)
|
||||
#20035=*
|
||||
tokeninfo(#20035,8,#20001,5,"{")
|
||||
#20036=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20036,#10000,1,15,1,15)
|
||||
hasLocation(#20035,#20036)
|
||||
toplevels(#20001,0)
|
||||
#20035=@"loc,{#10000},1,1,3,1"
|
||||
locations_default(#20035,#10000,1,1,3,1)
|
||||
hasLocation(#20001,#20035)
|
||||
#20036=@"var;{f};{#20000}"
|
||||
variables(#20036,"f",#20000)
|
||||
#20037=*
|
||||
tokeninfo(#20037,7,#20001,6,"yield")
|
||||
#20038=@"loc,{#10000},2,5,2,9"
|
||||
locations_default(#20038,#10000,2,5,2,9)
|
||||
hasLocation(#20037,#20038)
|
||||
stmts(#20037,17,#20001,0,"functio ... g();\n}")
|
||||
hasLocation(#20037,#20035)
|
||||
stmtContainers(#20037,#20001)
|
||||
#20038=*
|
||||
exprs(#20038,78,#20037,-1,"f")
|
||||
hasLocation(#20038,#20013)
|
||||
exprContainers(#20038,#20037)
|
||||
literals("f","f",#20038)
|
||||
decl(#20038,#20036)
|
||||
#20039=*
|
||||
tokeninfo(#20039,8,#20001,7,"*")
|
||||
#20040=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20040,#10000,2,10,2,10)
|
||||
hasLocation(#20039,#20040)
|
||||
scopes(#20039,1)
|
||||
scopenodes(#20037,#20039)
|
||||
scopenesting(#20039,#20000)
|
||||
#20040=@"var;{arguments};{#20039}"
|
||||
variables(#20040,"arguments",#20039)
|
||||
isArgumentsObject(#20040)
|
||||
isGenerator(#20037)
|
||||
#20041=*
|
||||
tokeninfo(#20041,6,#20001,8,"g")
|
||||
hasLocation(#20041,#20018)
|
||||
#20042=*
|
||||
tokeninfo(#20042,8,#20001,9,"(")
|
||||
#20043=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20043,#10000,2,13,2,13)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,8,#20001,10,")")
|
||||
#20045=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20045,#10000,2,14,2,14)
|
||||
hasLocation(#20044,#20045)
|
||||
#20046=*
|
||||
tokeninfo(#20046,8,#20001,11,";")
|
||||
#20047=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20047,#10000,2,15,2,15)
|
||||
hasLocation(#20046,#20047)
|
||||
#20048=*
|
||||
tokeninfo(#20048,8,#20001,12,"}")
|
||||
hasLocation(#20048,#20025)
|
||||
stmts(#20041,1,#20037,-2,"{\n yield* g();\n}")
|
||||
#20042=@"loc,{#10000},1,15,3,1"
|
||||
locations_default(#20042,#10000,1,15,3,1)
|
||||
hasLocation(#20041,#20042)
|
||||
stmtContainers(#20041,#20037)
|
||||
#20043=*
|
||||
stmts(#20043,2,#20041,0,"yield* g();")
|
||||
#20044=@"loc,{#10000},2,5,2,15"
|
||||
locations_default(#20044,#10000,2,5,2,15)
|
||||
hasLocation(#20043,#20044)
|
||||
stmtContainers(#20043,#20037)
|
||||
#20045=*
|
||||
exprs(#20045,69,#20043,0,"yield* g()")
|
||||
#20046=@"loc,{#10000},2,5,2,14"
|
||||
locations_default(#20046,#10000,2,5,2,14)
|
||||
hasLocation(#20045,#20046)
|
||||
enclosingStmt(#20045,#20043)
|
||||
exprContainers(#20045,#20037)
|
||||
#20047=*
|
||||
exprs(#20047,13,#20045,0,"g()")
|
||||
#20048=@"loc,{#10000},2,12,2,14"
|
||||
locations_default(#20048,#10000,2,12,2,14)
|
||||
hasLocation(#20047,#20048)
|
||||
enclosingStmt(#20047,#20043)
|
||||
exprContainers(#20047,#20037)
|
||||
#20049=*
|
||||
tokeninfo(#20049,0,#20001,13,"")
|
||||
#20050=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20050,#10000,3,2,3,1)
|
||||
hasLocation(#20049,#20050)
|
||||
exprs(#20049,79,#20047,-1,"g")
|
||||
hasLocation(#20049,#20025)
|
||||
enclosingStmt(#20049,#20043)
|
||||
exprContainers(#20049,#20037)
|
||||
literals("g","g",#20049)
|
||||
#20050=@"var;{g};{#20000}"
|
||||
variables(#20050,"g",#20000)
|
||||
bind(#20049,#20050)
|
||||
isDelegating(#20045)
|
||||
#20051=*
|
||||
entry_cfg_node(#20051,#20001)
|
||||
#20052=@"loc,{#10000},1,1,1,0"
|
||||
@@ -164,21 +163,21 @@ locations_default(#20052,#10000,1,1,1,0)
|
||||
hasLocation(#20051,#20052)
|
||||
#20053=*
|
||||
exit_cfg_node(#20053,#20001)
|
||||
hasLocation(#20053,#20050)
|
||||
successor(#20004,#20053)
|
||||
hasLocation(#20053,#20034)
|
||||
successor(#20037,#20053)
|
||||
#20054=*
|
||||
entry_cfg_node(#20054,#20004)
|
||||
entry_cfg_node(#20054,#20037)
|
||||
hasLocation(#20054,#20052)
|
||||
#20055=*
|
||||
exit_cfg_node(#20055,#20004)
|
||||
hasLocation(#20055,#20050)
|
||||
successor(#20009,#20011)
|
||||
successor(#20011,#20017)
|
||||
successor(#20017,#20015)
|
||||
successor(#20015,#20013)
|
||||
successor(#20013,#20055)
|
||||
successor(#20054,#20009)
|
||||
successor(#20005,#20004)
|
||||
successor(#20051,#20005)
|
||||
exit_cfg_node(#20055,#20037)
|
||||
hasLocation(#20055,#20034)
|
||||
successor(#20041,#20043)
|
||||
successor(#20043,#20049)
|
||||
successor(#20049,#20047)
|
||||
successor(#20047,#20045)
|
||||
successor(#20045,#20055)
|
||||
successor(#20054,#20041)
|
||||
successor(#20038,#20037)
|
||||
successor(#20051,#20038)
|
||||
numlines(#10000,3,3,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,86 +9,86 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,18"
|
||||
locations_default(#20002,#10000,1,1,1,18)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{x};{#20003}"
|
||||
variables(#20004,"x",#20003)
|
||||
#20005=*
|
||||
stmts(#20005,30,#20001,0,"export var x = 23;")
|
||||
hasLocation(#20005,#20002)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"export var x = 23;","")
|
||||
#20003=@"loc,{#10000},1,1,1,18"
|
||||
locations_default(#20003,#10000,1,1,1,18)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"export")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
stmts(#20006,18,#20005,-1,"var x = 23;")
|
||||
#20007=@"loc,{#10000},1,8,1,18"
|
||||
locations_default(#20007,#10000,1,8,1,18)
|
||||
tokeninfo(#20006,7,#20001,1,"var")
|
||||
#20007=@"loc,{#10000},1,8,1,10"
|
||||
locations_default(#20007,#10000,1,8,1,10)
|
||||
hasLocation(#20006,#20007)
|
||||
stmtContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,64,#20006,0,"x = 23")
|
||||
#20009=@"loc,{#10000},1,12,1,17"
|
||||
locations_default(#20009,#10000,1,12,1,17)
|
||||
tokeninfo(#20008,6,#20001,2,"x")
|
||||
#20009=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20009,#10000,1,12,1,12)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20006)
|
||||
exprContainers(#20008,#20001)
|
||||
#20010=*
|
||||
exprs(#20010,78,#20008,0,"x")
|
||||
#20011=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20011,#10000,1,12,1,12)
|
||||
tokeninfo(#20010,8,#20001,3,"=")
|
||||
#20011=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20011,#10000,1,14,1,14)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20006)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("x","x",#20010)
|
||||
decl(#20010,#20004)
|
||||
#20012=*
|
||||
exprs(#20012,3,#20008,1,"23")
|
||||
tokeninfo(#20012,3,#20001,4,"23")
|
||||
#20013=@"loc,{#10000},1,16,1,17"
|
||||
locations_default(#20013,#10000,1,16,1,17)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20006)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("23","23",#20012)
|
||||
#20014=*
|
||||
lines(#20014,#20001,"export var x = 23;","")
|
||||
hasLocation(#20014,#20002)
|
||||
numlines(#20001,1,1,0)
|
||||
#20015=*
|
||||
tokeninfo(#20015,7,#20001,0,"export")
|
||||
#20016=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20016,#10000,1,1,1,6)
|
||||
hasLocation(#20015,#20016)
|
||||
#20017=*
|
||||
tokeninfo(#20017,7,#20001,1,"var")
|
||||
#20018=@"loc,{#10000},1,8,1,10"
|
||||
locations_default(#20018,#10000,1,8,1,10)
|
||||
hasLocation(#20017,#20018)
|
||||
#20019=*
|
||||
tokeninfo(#20019,6,#20001,2,"x")
|
||||
hasLocation(#20019,#20011)
|
||||
tokeninfo(#20014,8,#20001,5,";")
|
||||
#20015=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20015,#10000,1,18,1,18)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,0,#20001,6,"")
|
||||
#20017=@"loc,{#10000},1,19,1,18"
|
||||
locations_default(#20017,#10000,1,19,1,18)
|
||||
hasLocation(#20016,#20017)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20018=@"module;{#10000},1,1"
|
||||
scopes(#20018,3)
|
||||
scopenodes(#20001,#20018)
|
||||
scopenesting(#20018,#20000)
|
||||
isModule(#20001)
|
||||
#20019=@"var;{x};{#20018}"
|
||||
variables(#20019,"x",#20018)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,3,"=")
|
||||
#20021=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20021,#10000,1,14,1,14)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,3,#20001,4,"23")
|
||||
hasLocation(#20022,#20013)
|
||||
stmts(#20020,30,#20001,0,"export var x = 23;")
|
||||
hasLocation(#20020,#20003)
|
||||
stmtContainers(#20020,#20001)
|
||||
#20021=*
|
||||
stmts(#20021,18,#20020,-1,"var x = 23;")
|
||||
#20022=@"loc,{#10000},1,8,1,18"
|
||||
locations_default(#20022,#10000,1,8,1,18)
|
||||
hasLocation(#20021,#20022)
|
||||
stmtContainers(#20021,#20001)
|
||||
#20023=*
|
||||
tokeninfo(#20023,8,#20001,5,";")
|
||||
#20024=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20024,#10000,1,18,1,18)
|
||||
exprs(#20023,64,#20021,0,"x = 23")
|
||||
#20024=@"loc,{#10000},1,12,1,17"
|
||||
locations_default(#20024,#10000,1,12,1,17)
|
||||
hasLocation(#20023,#20024)
|
||||
enclosingStmt(#20023,#20021)
|
||||
exprContainers(#20023,#20001)
|
||||
#20025=*
|
||||
tokeninfo(#20025,0,#20001,6,"")
|
||||
#20026=@"loc,{#10000},1,19,1,18"
|
||||
locations_default(#20026,#10000,1,19,1,18)
|
||||
hasLocation(#20025,#20026)
|
||||
exprs(#20025,78,#20023,0,"x")
|
||||
hasLocation(#20025,#20009)
|
||||
enclosingStmt(#20025,#20021)
|
||||
exprContainers(#20025,#20001)
|
||||
literals("x","x",#20025)
|
||||
decl(#20025,#20019)
|
||||
#20026=*
|
||||
exprs(#20026,3,#20023,1,"23")
|
||||
hasLocation(#20026,#20013)
|
||||
enclosingStmt(#20026,#20021)
|
||||
exprContainers(#20026,#20001)
|
||||
literals("23","23",#20026)
|
||||
#20027=*
|
||||
entry_cfg_node(#20027,#20001)
|
||||
#20028=@"loc,{#10000},1,1,1,0"
|
||||
@@ -96,12 +96,12 @@ locations_default(#20028,#10000,1,1,1,0)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
exit_cfg_node(#20029,#20001)
|
||||
hasLocation(#20029,#20026)
|
||||
successor(#20005,#20006)
|
||||
successor(#20006,#20010)
|
||||
successor(#20012,#20008)
|
||||
successor(#20010,#20012)
|
||||
successor(#20008,#20029)
|
||||
successor(#20027,#20005)
|
||||
hasLocation(#20029,#20017)
|
||||
successor(#20020,#20021)
|
||||
successor(#20021,#20025)
|
||||
successor(#20026,#20023)
|
||||
successor(#20025,#20026)
|
||||
successor(#20023,#20029)
|
||||
successor(#20027,#20020)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,128 +9,127 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20002,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{f};{#20003}"
|
||||
variables(#20004,"f",#20003)
|
||||
#20005=*
|
||||
stmts(#20005,29,#20001,0,"export ... f () {}")
|
||||
#20006=@"loc,{#10000},1,1,1,31"
|
||||
locations_default(#20006,#10000,1,1,1,31)
|
||||
hasLocation(#20005,#20006)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20007=*
|
||||
stmts(#20007,17,#20005,0,"function f () {}")
|
||||
#20008=@"loc,{#10000},1,16,1,31"
|
||||
locations_default(#20008,#10000,1,16,1,31)
|
||||
hasLocation(#20007,#20008)
|
||||
stmtContainers(#20007,#20001)
|
||||
#20009=*
|
||||
exprs(#20009,78,#20007,-1,"f")
|
||||
#20010=@"loc,{#10000},1,25,1,25"
|
||||
locations_default(#20010,#10000,1,25,1,25)
|
||||
hasLocation(#20009,#20010)
|
||||
exprContainers(#20009,#20007)
|
||||
literals("f","f",#20009)
|
||||
decl(#20009,#20004)
|
||||
#20011=*
|
||||
scopes(#20011,1)
|
||||
scopenodes(#20007,#20011)
|
||||
scopenesting(#20011,#20003)
|
||||
#20012=@"var;{arguments};{#20011}"
|
||||
variables(#20012,"arguments",#20011)
|
||||
isArgumentsObject(#20012)
|
||||
#20013=*
|
||||
stmts(#20013,1,#20007,-2,"{}")
|
||||
#20014=@"loc,{#10000},1,30,1,31"
|
||||
locations_default(#20014,#10000,1,30,1,31)
|
||||
hasLocation(#20013,#20014)
|
||||
stmtContainers(#20013,#20007)
|
||||
numlines(#20007,1,1,0)
|
||||
#20015=*
|
||||
stmts(#20015,2,#20001,1,"[,]")
|
||||
#20016=@"loc,{#10000},1,33,1,35"
|
||||
locations_default(#20016,#10000,1,33,1,35)
|
||||
hasLocation(#20015,#20016)
|
||||
stmtContainers(#20015,#20001)
|
||||
#20017=*
|
||||
exprs(#20017,7,#20015,0,"[,]")
|
||||
hasLocation(#20017,#20016)
|
||||
enclosingStmt(#20017,#20015)
|
||||
exprContainers(#20017,#20001)
|
||||
arraySize(#20017,1)
|
||||
#20018=*
|
||||
lines(#20018,#20001,"export default function f () {} [,]","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"export default function f () {} [,]","
|
||||
")
|
||||
#20019=@"loc,{#10000},1,1,1,35"
|
||||
locations_default(#20019,#10000,1,1,1,35)
|
||||
hasLocation(#20018,#20019)
|
||||
#20003=@"loc,{#10000},1,1,1,35"
|
||||
locations_default(#20003,#10000,1,1,1,35)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"export")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,7,#20001,1,"default")
|
||||
#20007=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20007,#10000,1,8,1,14)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,2,"function")
|
||||
#20009=@"loc,{#10000},1,16,1,23"
|
||||
locations_default(#20009,#10000,1,16,1,23)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,3,"f")
|
||||
#20011=@"loc,{#10000},1,25,1,25"
|
||||
locations_default(#20011,#10000,1,25,1,25)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,"(")
|
||||
#20013=@"loc,{#10000},1,27,1,27"
|
||||
locations_default(#20013,#10000,1,27,1,27)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,")")
|
||||
#20015=@"loc,{#10000},1,28,1,28"
|
||||
locations_default(#20015,#10000,1,28,1,28)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,6,"{")
|
||||
#20017=@"loc,{#10000},1,30,1,30"
|
||||
locations_default(#20017,#10000,1,30,1,30)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,7,"}")
|
||||
#20019=@"loc,{#10000},1,31,1,31"
|
||||
locations_default(#20019,#10000,1,31,1,31)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,7,#20001,0,"export")
|
||||
#20021=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20021,#10000,1,1,1,6)
|
||||
tokeninfo(#20020,8,#20001,8,"[")
|
||||
#20021=@"loc,{#10000},1,33,1,33"
|
||||
locations_default(#20021,#10000,1,33,1,33)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,7,#20001,1,"default")
|
||||
#20023=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20023,#10000,1,8,1,14)
|
||||
tokeninfo(#20022,8,#20001,9,",")
|
||||
#20023=@"loc,{#10000},1,34,1,34"
|
||||
locations_default(#20023,#10000,1,34,1,34)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,7,#20001,2,"function")
|
||||
#20025=@"loc,{#10000},1,16,1,23"
|
||||
locations_default(#20025,#10000,1,16,1,23)
|
||||
tokeninfo(#20024,8,#20001,10,"]")
|
||||
#20025=@"loc,{#10000},1,35,1,35"
|
||||
locations_default(#20025,#10000,1,35,1,35)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,6,#20001,3,"f")
|
||||
hasLocation(#20026,#20010)
|
||||
#20027=*
|
||||
tokeninfo(#20027,8,#20001,4,"(")
|
||||
#20028=@"loc,{#10000},1,27,1,27"
|
||||
locations_default(#20028,#10000,1,27,1,27)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
tokeninfo(#20029,8,#20001,5,")")
|
||||
#20030=@"loc,{#10000},1,28,1,28"
|
||||
locations_default(#20030,#10000,1,28,1,28)
|
||||
hasLocation(#20029,#20030)
|
||||
tokeninfo(#20026,0,#20001,11,"")
|
||||
#20027=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20027,#10000,2,1,2,0)
|
||||
hasLocation(#20026,#20027)
|
||||
toplevels(#20001,0)
|
||||
#20028=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20028,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20028)
|
||||
#20029=@"module;{#10000},1,1"
|
||||
scopes(#20029,3)
|
||||
scopenodes(#20001,#20029)
|
||||
scopenesting(#20029,#20000)
|
||||
isModule(#20001)
|
||||
#20030=@"var;{f};{#20029}"
|
||||
variables(#20030,"f",#20029)
|
||||
#20031=*
|
||||
tokeninfo(#20031,8,#20001,6,"{")
|
||||
#20032=@"loc,{#10000},1,30,1,30"
|
||||
locations_default(#20032,#10000,1,30,1,30)
|
||||
stmts(#20031,29,#20001,0,"export ... f () {}")
|
||||
#20032=@"loc,{#10000},1,1,1,31"
|
||||
locations_default(#20032,#10000,1,1,1,31)
|
||||
hasLocation(#20031,#20032)
|
||||
stmtContainers(#20031,#20001)
|
||||
#20033=*
|
||||
tokeninfo(#20033,8,#20001,7,"}")
|
||||
#20034=@"loc,{#10000},1,31,1,31"
|
||||
locations_default(#20034,#10000,1,31,1,31)
|
||||
stmts(#20033,17,#20031,0,"function f () {}")
|
||||
#20034=@"loc,{#10000},1,16,1,31"
|
||||
locations_default(#20034,#10000,1,16,1,31)
|
||||
hasLocation(#20033,#20034)
|
||||
stmtContainers(#20033,#20001)
|
||||
#20035=*
|
||||
tokeninfo(#20035,8,#20001,8,"[")
|
||||
#20036=@"loc,{#10000},1,33,1,33"
|
||||
locations_default(#20036,#10000,1,33,1,33)
|
||||
hasLocation(#20035,#20036)
|
||||
#20037=*
|
||||
tokeninfo(#20037,8,#20001,9,",")
|
||||
#20038=@"loc,{#10000},1,34,1,34"
|
||||
locations_default(#20038,#10000,1,34,1,34)
|
||||
hasLocation(#20037,#20038)
|
||||
#20039=*
|
||||
tokeninfo(#20039,8,#20001,10,"]")
|
||||
#20040=@"loc,{#10000},1,35,1,35"
|
||||
locations_default(#20040,#10000,1,35,1,35)
|
||||
hasLocation(#20039,#20040)
|
||||
#20041=*
|
||||
tokeninfo(#20041,0,#20001,11,"")
|
||||
#20042=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20042,#10000,2,1,2,0)
|
||||
hasLocation(#20041,#20042)
|
||||
exprs(#20035,78,#20033,-1,"f")
|
||||
hasLocation(#20035,#20011)
|
||||
exprContainers(#20035,#20033)
|
||||
literals("f","f",#20035)
|
||||
decl(#20035,#20030)
|
||||
#20036=*
|
||||
scopes(#20036,1)
|
||||
scopenodes(#20033,#20036)
|
||||
scopenesting(#20036,#20029)
|
||||
#20037=@"var;{arguments};{#20036}"
|
||||
variables(#20037,"arguments",#20036)
|
||||
isArgumentsObject(#20037)
|
||||
#20038=*
|
||||
stmts(#20038,1,#20033,-2,"{}")
|
||||
#20039=@"loc,{#10000},1,30,1,31"
|
||||
locations_default(#20039,#10000,1,30,1,31)
|
||||
hasLocation(#20038,#20039)
|
||||
stmtContainers(#20038,#20033)
|
||||
#20040=*
|
||||
stmts(#20040,2,#20001,1,"[,]")
|
||||
#20041=@"loc,{#10000},1,33,1,35"
|
||||
locations_default(#20041,#10000,1,33,1,35)
|
||||
hasLocation(#20040,#20041)
|
||||
stmtContainers(#20040,#20001)
|
||||
#20042=*
|
||||
exprs(#20042,7,#20040,0,"[,]")
|
||||
hasLocation(#20042,#20041)
|
||||
enclosingStmt(#20042,#20040)
|
||||
exprContainers(#20042,#20001)
|
||||
arraySize(#20042,1)
|
||||
#20043=*
|
||||
entry_cfg_node(#20043,#20001)
|
||||
#20044=@"loc,{#10000},1,1,1,0"
|
||||
@@ -138,24 +137,24 @@ locations_default(#20044,#10000,1,1,1,0)
|
||||
hasLocation(#20043,#20044)
|
||||
#20045=*
|
||||
exit_cfg_node(#20045,#20001)
|
||||
hasLocation(#20045,#20042)
|
||||
successor(#20015,#20017)
|
||||
successor(#20017,#20045)
|
||||
successor(#20005,#20007)
|
||||
successor(#20007,#20015)
|
||||
hasLocation(#20045,#20027)
|
||||
successor(#20040,#20042)
|
||||
successor(#20042,#20045)
|
||||
successor(#20031,#20033)
|
||||
successor(#20033,#20040)
|
||||
#20046=*
|
||||
entry_cfg_node(#20046,#20007)
|
||||
entry_cfg_node(#20046,#20033)
|
||||
#20047=@"loc,{#10000},1,16,1,15"
|
||||
locations_default(#20047,#10000,1,16,1,15)
|
||||
hasLocation(#20046,#20047)
|
||||
#20048=*
|
||||
exit_cfg_node(#20048,#20007)
|
||||
exit_cfg_node(#20048,#20033)
|
||||
#20049=@"loc,{#10000},1,32,1,31"
|
||||
locations_default(#20049,#10000,1,32,1,31)
|
||||
hasLocation(#20048,#20049)
|
||||
successor(#20013,#20048)
|
||||
successor(#20046,#20013)
|
||||
successor(#20009,#20005)
|
||||
successor(#20043,#20009)
|
||||
successor(#20038,#20048)
|
||||
successor(#20046,#20038)
|
||||
successor(#20035,#20031)
|
||||
successor(#20043,#20035)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,92 +9,91 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20002,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"export default class {}","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,23"
|
||||
locations_default(#20003,#10000,1,1,1,23)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
stmts(#20004,29,#20001,0,"export ... lass {}")
|
||||
#20005=@"loc,{#10000},1,1,1,23"
|
||||
locations_default(#20005,#10000,1,1,1,23)
|
||||
tokeninfo(#20004,7,#20001,0,"export")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,80,#20004,0,"class {}")
|
||||
#20007=@"loc,{#10000},1,16,1,23"
|
||||
locations_default(#20007,#10000,1,16,1,23)
|
||||
tokeninfo(#20006,7,#20001,1,"default")
|
||||
#20007=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20007,#10000,1,8,1,14)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20004)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
properties(#20008,#20006,2,0,"constructor() {}")
|
||||
#20009=@"loc,{#10000},1,22,1,21"
|
||||
locations_default(#20009,#10000,1,22,1,21)
|
||||
tokeninfo(#20008,7,#20001,2,"class")
|
||||
#20009=@"loc,{#10000},1,16,1,20"
|
||||
locations_default(#20009,#10000,1,16,1,20)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
exprs(#20010,0,#20008,0,"constructor")
|
||||
hasLocation(#20010,#20009)
|
||||
enclosingStmt(#20010,#20004)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("constructor","constructor",#20010)
|
||||
#20011=*
|
||||
exprs(#20011,9,#20008,1,"() {}")
|
||||
hasLocation(#20011,#20009)
|
||||
enclosingStmt(#20011,#20004)
|
||||
exprContainers(#20011,#20001)
|
||||
tokeninfo(#20010,8,#20001,3,"{")
|
||||
#20011=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20011,#10000,1,22,1,22)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
scopes(#20012,1)
|
||||
scopenodes(#20011,#20012)
|
||||
scopenesting(#20012,#20003)
|
||||
#20013=@"var;{arguments};{#20012}"
|
||||
variables(#20013,"arguments",#20012)
|
||||
isArgumentsObject(#20013)
|
||||
tokeninfo(#20012,8,#20001,4,"}")
|
||||
#20013=@"loc,{#10000},1,23,1,23"
|
||||
locations_default(#20013,#10000,1,23,1,23)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
stmts(#20014,1,#20011,-2,"{}")
|
||||
hasLocation(#20014,#20009)
|
||||
stmtContainers(#20014,#20011)
|
||||
numlines(#20011,1,0,0)
|
||||
isMethod(#20008)
|
||||
#20015=*
|
||||
lines(#20015,#20001,"export default class {}","
|
||||
")
|
||||
hasLocation(#20015,#20005)
|
||||
numlines(#20001,1,1,0)
|
||||
#20016=*
|
||||
tokeninfo(#20016,7,#20001,0,"export")
|
||||
#20017=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20017,#10000,1,1,1,6)
|
||||
hasLocation(#20016,#20017)
|
||||
tokeninfo(#20014,0,#20001,5,"")
|
||||
#20015=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20015,#10000,2,1,2,0)
|
||||
hasLocation(#20014,#20015)
|
||||
toplevels(#20001,0)
|
||||
#20016=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20016,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20016)
|
||||
#20017=@"module;{#10000},1,1"
|
||||
scopes(#20017,3)
|
||||
scopenodes(#20001,#20017)
|
||||
scopenesting(#20017,#20000)
|
||||
isModule(#20001)
|
||||
#20018=*
|
||||
tokeninfo(#20018,7,#20001,1,"default")
|
||||
#20019=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20019,#10000,1,8,1,14)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,7,#20001,2,"class")
|
||||
#20021=@"loc,{#10000},1,16,1,20"
|
||||
locations_default(#20021,#10000,1,16,1,20)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,3,"{")
|
||||
#20023=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20023,#10000,1,22,1,22)
|
||||
hasLocation(#20022,#20023)
|
||||
stmts(#20018,29,#20001,0,"export ... lass {}")
|
||||
hasLocation(#20018,#20003)
|
||||
stmtContainers(#20018,#20001)
|
||||
#20019=*
|
||||
exprs(#20019,80,#20018,0,"class {}")
|
||||
#20020=@"loc,{#10000},1,16,1,23"
|
||||
locations_default(#20020,#10000,1,16,1,23)
|
||||
hasLocation(#20019,#20020)
|
||||
enclosingStmt(#20019,#20018)
|
||||
exprContainers(#20019,#20001)
|
||||
#20021=*
|
||||
properties(#20021,#20019,2,0,"constructor() {}")
|
||||
#20022=@"loc,{#10000},1,22,1,21"
|
||||
locations_default(#20022,#10000,1,22,1,21)
|
||||
hasLocation(#20021,#20022)
|
||||
#20023=*
|
||||
exprs(#20023,0,#20021,0,"constructor")
|
||||
hasLocation(#20023,#20022)
|
||||
enclosingStmt(#20023,#20018)
|
||||
exprContainers(#20023,#20001)
|
||||
literals("constructor","constructor",#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,4,"}")
|
||||
#20025=@"loc,{#10000},1,23,1,23"
|
||||
locations_default(#20025,#10000,1,23,1,23)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,0,#20001,5,"")
|
||||
#20027=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20027,#10000,2,1,2,0)
|
||||
hasLocation(#20026,#20027)
|
||||
exprs(#20024,9,#20021,1,"() {}")
|
||||
hasLocation(#20024,#20022)
|
||||
enclosingStmt(#20024,#20018)
|
||||
exprContainers(#20024,#20001)
|
||||
#20025=*
|
||||
scopes(#20025,1)
|
||||
scopenodes(#20024,#20025)
|
||||
scopenesting(#20025,#20017)
|
||||
#20026=@"var;{arguments};{#20025}"
|
||||
variables(#20026,"arguments",#20025)
|
||||
isArgumentsObject(#20026)
|
||||
#20027=*
|
||||
stmts(#20027,1,#20024,-2,"{}")
|
||||
hasLocation(#20027,#20022)
|
||||
stmtContainers(#20027,#20024)
|
||||
isMethod(#20021)
|
||||
#20028=*
|
||||
entry_cfg_node(#20028,#20001)
|
||||
#20029=@"loc,{#10000},1,1,1,0"
|
||||
@@ -102,20 +101,20 @@ locations_default(#20029,#10000,1,1,1,0)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
exit_cfg_node(#20030,#20001)
|
||||
hasLocation(#20030,#20027)
|
||||
successor(#20004,#20010)
|
||||
successor(#20011,#20008)
|
||||
hasLocation(#20030,#20015)
|
||||
successor(#20018,#20023)
|
||||
successor(#20024,#20021)
|
||||
#20031=*
|
||||
entry_cfg_node(#20031,#20011)
|
||||
hasLocation(#20031,#20009)
|
||||
entry_cfg_node(#20031,#20024)
|
||||
hasLocation(#20031,#20022)
|
||||
#20032=*
|
||||
exit_cfg_node(#20032,#20011)
|
||||
hasLocation(#20032,#20009)
|
||||
successor(#20014,#20032)
|
||||
successor(#20031,#20014)
|
||||
successor(#20010,#20011)
|
||||
successor(#20008,#20006)
|
||||
successor(#20006,#20030)
|
||||
successor(#20028,#20004)
|
||||
exit_cfg_node(#20032,#20024)
|
||||
hasLocation(#20032,#20022)
|
||||
successor(#20027,#20032)
|
||||
successor(#20031,#20027)
|
||||
successor(#20023,#20024)
|
||||
successor(#20021,#20019)
|
||||
successor(#20019,#20030)
|
||||
successor(#20028,#20018)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,102 +9,101 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,23"
|
||||
locations_default(#20002,#10000,1,1,1,23)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{f};{#20003}"
|
||||
variables(#20004,"f",#20003)
|
||||
#20005=*
|
||||
stmts(#20005,30,#20001,0,"export ... f() {}")
|
||||
#20006=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20006,#10000,1,1,1,22)
|
||||
hasLocation(#20005,#20006)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20007=*
|
||||
stmts(#20007,17,#20005,-1,"function f() {}")
|
||||
#20008=@"loc,{#10000},1,8,1,22"
|
||||
locations_default(#20008,#10000,1,8,1,22)
|
||||
hasLocation(#20007,#20008)
|
||||
stmtContainers(#20007,#20001)
|
||||
#20009=*
|
||||
exprs(#20009,78,#20007,-1,"f")
|
||||
#20010=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20010,#10000,1,17,1,17)
|
||||
hasLocation(#20009,#20010)
|
||||
exprContainers(#20009,#20007)
|
||||
literals("f","f",#20009)
|
||||
decl(#20009,#20004)
|
||||
#20011=*
|
||||
scopes(#20011,1)
|
||||
scopenodes(#20007,#20011)
|
||||
scopenesting(#20011,#20003)
|
||||
#20012=@"var;{arguments};{#20011}"
|
||||
variables(#20012,"arguments",#20011)
|
||||
isArgumentsObject(#20012)
|
||||
#20013=*
|
||||
stmts(#20013,1,#20007,-2,"{}")
|
||||
#20014=@"loc,{#10000},1,21,1,22"
|
||||
locations_default(#20014,#10000,1,21,1,22)
|
||||
hasLocation(#20013,#20014)
|
||||
stmtContainers(#20013,#20007)
|
||||
numlines(#20007,1,1,0)
|
||||
#20015=*
|
||||
stmts(#20015,0,#20001,1,";")
|
||||
#20016=@"loc,{#10000},1,23,1,23"
|
||||
locations_default(#20016,#10000,1,23,1,23)
|
||||
hasLocation(#20015,#20016)
|
||||
stmtContainers(#20015,#20001)
|
||||
#20017=*
|
||||
lines(#20017,#20001,"export function f() {};","")
|
||||
hasLocation(#20017,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"export function f() {};","")
|
||||
#20003=@"loc,{#10000},1,1,1,23"
|
||||
locations_default(#20003,#10000,1,1,1,23)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"export")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,7,#20001,1,"function")
|
||||
#20007=@"loc,{#10000},1,8,1,15"
|
||||
locations_default(#20007,#10000,1,8,1,15)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,6,#20001,2,"f")
|
||||
#20009=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20009,#10000,1,17,1,17)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,"(")
|
||||
#20011=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20011,#10000,1,18,1,18)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,")")
|
||||
#20013=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20013,#10000,1,19,1,19)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,"{")
|
||||
#20015=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20015,#10000,1,21,1,21)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,6,"}")
|
||||
#20017=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20017,#10000,1,22,1,22)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,7,#20001,0,"export")
|
||||
#20019=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20019,#10000,1,1,1,6)
|
||||
tokeninfo(#20018,8,#20001,7,";")
|
||||
#20019=@"loc,{#10000},1,23,1,23"
|
||||
locations_default(#20019,#10000,1,23,1,23)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,7,#20001,1,"function")
|
||||
#20021=@"loc,{#10000},1,8,1,15"
|
||||
locations_default(#20021,#10000,1,8,1,15)
|
||||
tokeninfo(#20020,0,#20001,8,"")
|
||||
#20021=@"loc,{#10000},1,24,1,23"
|
||||
locations_default(#20021,#10000,1,24,1,23)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,6,#20001,2,"f")
|
||||
hasLocation(#20022,#20010)
|
||||
#20023=*
|
||||
tokeninfo(#20023,8,#20001,3,"(")
|
||||
#20024=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20024,#10000,1,18,1,18)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
tokeninfo(#20025,8,#20001,4,")")
|
||||
#20026=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20026,#10000,1,19,1,19)
|
||||
hasLocation(#20025,#20026)
|
||||
#20027=*
|
||||
tokeninfo(#20027,8,#20001,5,"{")
|
||||
#20028=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20028,#10000,1,21,1,21)
|
||||
hasLocation(#20027,#20028)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20022=@"module;{#10000},1,1"
|
||||
scopes(#20022,3)
|
||||
scopenodes(#20001,#20022)
|
||||
scopenesting(#20022,#20000)
|
||||
isModule(#20001)
|
||||
#20023=@"var;{f};{#20022}"
|
||||
variables(#20023,"f",#20022)
|
||||
#20024=*
|
||||
stmts(#20024,30,#20001,0,"export ... f() {}")
|
||||
#20025=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20025,#10000,1,1,1,22)
|
||||
hasLocation(#20024,#20025)
|
||||
stmtContainers(#20024,#20001)
|
||||
#20026=*
|
||||
stmts(#20026,17,#20024,-1,"function f() {}")
|
||||
#20027=@"loc,{#10000},1,8,1,22"
|
||||
locations_default(#20027,#10000,1,8,1,22)
|
||||
hasLocation(#20026,#20027)
|
||||
stmtContainers(#20026,#20001)
|
||||
#20028=*
|
||||
exprs(#20028,78,#20026,-1,"f")
|
||||
hasLocation(#20028,#20009)
|
||||
exprContainers(#20028,#20026)
|
||||
literals("f","f",#20028)
|
||||
decl(#20028,#20023)
|
||||
#20029=*
|
||||
tokeninfo(#20029,8,#20001,6,"}")
|
||||
#20030=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20030,#10000,1,22,1,22)
|
||||
hasLocation(#20029,#20030)
|
||||
scopes(#20029,1)
|
||||
scopenodes(#20026,#20029)
|
||||
scopenesting(#20029,#20022)
|
||||
#20030=@"var;{arguments};{#20029}"
|
||||
variables(#20030,"arguments",#20029)
|
||||
isArgumentsObject(#20030)
|
||||
#20031=*
|
||||
tokeninfo(#20031,8,#20001,7,";")
|
||||
hasLocation(#20031,#20016)
|
||||
#20032=*
|
||||
tokeninfo(#20032,0,#20001,8,"")
|
||||
#20033=@"loc,{#10000},1,24,1,23"
|
||||
locations_default(#20033,#10000,1,24,1,23)
|
||||
hasLocation(#20032,#20033)
|
||||
stmts(#20031,1,#20026,-2,"{}")
|
||||
#20032=@"loc,{#10000},1,21,1,22"
|
||||
locations_default(#20032,#10000,1,21,1,22)
|
||||
hasLocation(#20031,#20032)
|
||||
stmtContainers(#20031,#20026)
|
||||
#20033=*
|
||||
stmts(#20033,0,#20001,1,";")
|
||||
hasLocation(#20033,#20019)
|
||||
stmtContainers(#20033,#20001)
|
||||
#20034=*
|
||||
entry_cfg_node(#20034,#20001)
|
||||
#20035=@"loc,{#10000},1,1,1,0"
|
||||
@@ -112,23 +111,23 @@ locations_default(#20035,#10000,1,1,1,0)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
exit_cfg_node(#20036,#20001)
|
||||
hasLocation(#20036,#20033)
|
||||
successor(#20015,#20036)
|
||||
successor(#20005,#20007)
|
||||
successor(#20007,#20015)
|
||||
hasLocation(#20036,#20021)
|
||||
successor(#20033,#20036)
|
||||
successor(#20024,#20026)
|
||||
successor(#20026,#20033)
|
||||
#20037=*
|
||||
entry_cfg_node(#20037,#20007)
|
||||
entry_cfg_node(#20037,#20026)
|
||||
#20038=@"loc,{#10000},1,8,1,7"
|
||||
locations_default(#20038,#10000,1,8,1,7)
|
||||
hasLocation(#20037,#20038)
|
||||
#20039=*
|
||||
exit_cfg_node(#20039,#20007)
|
||||
exit_cfg_node(#20039,#20026)
|
||||
#20040=@"loc,{#10000},1,23,1,22"
|
||||
locations_default(#20040,#10000,1,23,1,22)
|
||||
hasLocation(#20039,#20040)
|
||||
successor(#20013,#20039)
|
||||
successor(#20037,#20013)
|
||||
successor(#20009,#20005)
|
||||
successor(#20034,#20009)
|
||||
successor(#20031,#20039)
|
||||
successor(#20037,#20031)
|
||||
successor(#20028,#20024)
|
||||
successor(#20034,#20028)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,107 +9,106 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,31"
|
||||
locations_default(#20002,#10000,1,1,1,31)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{f};{#20003}"
|
||||
variables(#20004,"f",#20003)
|
||||
#20005=*
|
||||
stmts(#20005,29,#20001,0,"export ... f() {}")
|
||||
#20006=@"loc,{#10000},1,1,1,30"
|
||||
locations_default(#20006,#10000,1,1,1,30)
|
||||
hasLocation(#20005,#20006)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20007=*
|
||||
stmts(#20007,17,#20005,0,"function f() {}")
|
||||
#20008=@"loc,{#10000},1,16,1,30"
|
||||
locations_default(#20008,#10000,1,16,1,30)
|
||||
hasLocation(#20007,#20008)
|
||||
stmtContainers(#20007,#20001)
|
||||
#20009=*
|
||||
exprs(#20009,78,#20007,-1,"f")
|
||||
#20010=@"loc,{#10000},1,25,1,25"
|
||||
locations_default(#20010,#10000,1,25,1,25)
|
||||
hasLocation(#20009,#20010)
|
||||
exprContainers(#20009,#20007)
|
||||
literals("f","f",#20009)
|
||||
decl(#20009,#20004)
|
||||
#20011=*
|
||||
scopes(#20011,1)
|
||||
scopenodes(#20007,#20011)
|
||||
scopenesting(#20011,#20003)
|
||||
#20012=@"var;{arguments};{#20011}"
|
||||
variables(#20012,"arguments",#20011)
|
||||
isArgumentsObject(#20012)
|
||||
#20013=*
|
||||
stmts(#20013,1,#20007,-2,"{}")
|
||||
#20014=@"loc,{#10000},1,29,1,30"
|
||||
locations_default(#20014,#10000,1,29,1,30)
|
||||
hasLocation(#20013,#20014)
|
||||
stmtContainers(#20013,#20007)
|
||||
numlines(#20007,1,1,0)
|
||||
#20015=*
|
||||
stmts(#20015,0,#20001,1,";")
|
||||
#20016=@"loc,{#10000},1,31,1,31"
|
||||
locations_default(#20016,#10000,1,31,1,31)
|
||||
hasLocation(#20015,#20016)
|
||||
stmtContainers(#20015,#20001)
|
||||
#20017=*
|
||||
lines(#20017,#20001,"export default function f() {};","")
|
||||
hasLocation(#20017,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"export default function f() {};","")
|
||||
#20003=@"loc,{#10000},1,1,1,31"
|
||||
locations_default(#20003,#10000,1,1,1,31)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"export")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,7,#20001,1,"default")
|
||||
#20007=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20007,#10000,1,8,1,14)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,2,"function")
|
||||
#20009=@"loc,{#10000},1,16,1,23"
|
||||
locations_default(#20009,#10000,1,16,1,23)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,3,"f")
|
||||
#20011=@"loc,{#10000},1,25,1,25"
|
||||
locations_default(#20011,#10000,1,25,1,25)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,"(")
|
||||
#20013=@"loc,{#10000},1,26,1,26"
|
||||
locations_default(#20013,#10000,1,26,1,26)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,")")
|
||||
#20015=@"loc,{#10000},1,27,1,27"
|
||||
locations_default(#20015,#10000,1,27,1,27)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,6,"{")
|
||||
#20017=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20017,#10000,1,29,1,29)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,7,#20001,0,"export")
|
||||
#20019=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20019,#10000,1,1,1,6)
|
||||
tokeninfo(#20018,8,#20001,7,"}")
|
||||
#20019=@"loc,{#10000},1,30,1,30"
|
||||
locations_default(#20019,#10000,1,30,1,30)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,7,#20001,1,"default")
|
||||
#20021=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20021,#10000,1,8,1,14)
|
||||
tokeninfo(#20020,8,#20001,8,";")
|
||||
#20021=@"loc,{#10000},1,31,1,31"
|
||||
locations_default(#20021,#10000,1,31,1,31)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,7,#20001,2,"function")
|
||||
#20023=@"loc,{#10000},1,16,1,23"
|
||||
locations_default(#20023,#10000,1,16,1,23)
|
||||
tokeninfo(#20022,0,#20001,9,"")
|
||||
#20023=@"loc,{#10000},1,32,1,31"
|
||||
locations_default(#20023,#10000,1,32,1,31)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,3,"f")
|
||||
hasLocation(#20024,#20010)
|
||||
#20025=*
|
||||
tokeninfo(#20025,8,#20001,4,"(")
|
||||
#20026=@"loc,{#10000},1,26,1,26"
|
||||
locations_default(#20026,#10000,1,26,1,26)
|
||||
hasLocation(#20025,#20026)
|
||||
#20027=*
|
||||
tokeninfo(#20027,8,#20001,5,")")
|
||||
#20028=@"loc,{#10000},1,27,1,27"
|
||||
locations_default(#20028,#10000,1,27,1,27)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
tokeninfo(#20029,8,#20001,6,"{")
|
||||
#20030=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20030,#10000,1,29,1,29)
|
||||
hasLocation(#20029,#20030)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20024=@"module;{#10000},1,1"
|
||||
scopes(#20024,3)
|
||||
scopenodes(#20001,#20024)
|
||||
scopenesting(#20024,#20000)
|
||||
isModule(#20001)
|
||||
#20025=@"var;{f};{#20024}"
|
||||
variables(#20025,"f",#20024)
|
||||
#20026=*
|
||||
stmts(#20026,29,#20001,0,"export ... f() {}")
|
||||
#20027=@"loc,{#10000},1,1,1,30"
|
||||
locations_default(#20027,#10000,1,1,1,30)
|
||||
hasLocation(#20026,#20027)
|
||||
stmtContainers(#20026,#20001)
|
||||
#20028=*
|
||||
stmts(#20028,17,#20026,0,"function f() {}")
|
||||
#20029=@"loc,{#10000},1,16,1,30"
|
||||
locations_default(#20029,#10000,1,16,1,30)
|
||||
hasLocation(#20028,#20029)
|
||||
stmtContainers(#20028,#20001)
|
||||
#20030=*
|
||||
exprs(#20030,78,#20028,-1,"f")
|
||||
hasLocation(#20030,#20011)
|
||||
exprContainers(#20030,#20028)
|
||||
literals("f","f",#20030)
|
||||
decl(#20030,#20025)
|
||||
#20031=*
|
||||
tokeninfo(#20031,8,#20001,7,"}")
|
||||
#20032=@"loc,{#10000},1,30,1,30"
|
||||
locations_default(#20032,#10000,1,30,1,30)
|
||||
hasLocation(#20031,#20032)
|
||||
scopes(#20031,1)
|
||||
scopenodes(#20028,#20031)
|
||||
scopenesting(#20031,#20024)
|
||||
#20032=@"var;{arguments};{#20031}"
|
||||
variables(#20032,"arguments",#20031)
|
||||
isArgumentsObject(#20032)
|
||||
#20033=*
|
||||
tokeninfo(#20033,8,#20001,8,";")
|
||||
hasLocation(#20033,#20016)
|
||||
#20034=*
|
||||
tokeninfo(#20034,0,#20001,9,"")
|
||||
#20035=@"loc,{#10000},1,32,1,31"
|
||||
locations_default(#20035,#10000,1,32,1,31)
|
||||
hasLocation(#20034,#20035)
|
||||
stmts(#20033,1,#20028,-2,"{}")
|
||||
#20034=@"loc,{#10000},1,29,1,30"
|
||||
locations_default(#20034,#10000,1,29,1,30)
|
||||
hasLocation(#20033,#20034)
|
||||
stmtContainers(#20033,#20028)
|
||||
#20035=*
|
||||
stmts(#20035,0,#20001,1,";")
|
||||
hasLocation(#20035,#20021)
|
||||
stmtContainers(#20035,#20001)
|
||||
#20036=*
|
||||
entry_cfg_node(#20036,#20001)
|
||||
#20037=@"loc,{#10000},1,1,1,0"
|
||||
@@ -117,23 +116,23 @@ locations_default(#20037,#10000,1,1,1,0)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
exit_cfg_node(#20038,#20001)
|
||||
hasLocation(#20038,#20035)
|
||||
successor(#20015,#20038)
|
||||
successor(#20005,#20007)
|
||||
successor(#20007,#20015)
|
||||
hasLocation(#20038,#20023)
|
||||
successor(#20035,#20038)
|
||||
successor(#20026,#20028)
|
||||
successor(#20028,#20035)
|
||||
#20039=*
|
||||
entry_cfg_node(#20039,#20007)
|
||||
entry_cfg_node(#20039,#20028)
|
||||
#20040=@"loc,{#10000},1,16,1,15"
|
||||
locations_default(#20040,#10000,1,16,1,15)
|
||||
hasLocation(#20039,#20040)
|
||||
#20041=*
|
||||
exit_cfg_node(#20041,#20007)
|
||||
exit_cfg_node(#20041,#20028)
|
||||
#20042=@"loc,{#10000},1,31,1,30"
|
||||
locations_default(#20042,#10000,1,31,1,30)
|
||||
hasLocation(#20041,#20042)
|
||||
successor(#20013,#20041)
|
||||
successor(#20039,#20013)
|
||||
successor(#20009,#20005)
|
||||
successor(#20036,#20009)
|
||||
successor(#20033,#20041)
|
||||
successor(#20039,#20033)
|
||||
successor(#20030,#20026)
|
||||
successor(#20036,#20030)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,95 +9,94 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,30"
|
||||
locations_default(#20002,#10000,1,1,1,30)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=*
|
||||
stmts(#20004,29,#20001,0,"export ... n () {}")
|
||||
#20005=@"loc,{#10000},1,1,1,29"
|
||||
locations_default(#20005,#10000,1,1,1,29)
|
||||
hasLocation(#20004,#20005)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,9,#20004,0,"function () {}")
|
||||
#20007=@"loc,{#10000},1,16,1,29"
|
||||
locations_default(#20007,#10000,1,16,1,29)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20004)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
scopes(#20008,1)
|
||||
scopenodes(#20006,#20008)
|
||||
scopenesting(#20008,#20003)
|
||||
#20009=@"var;{arguments};{#20008}"
|
||||
variables(#20009,"arguments",#20008)
|
||||
isArgumentsObject(#20009)
|
||||
#20010=*
|
||||
stmts(#20010,1,#20006,-2,"{}")
|
||||
#20011=@"loc,{#10000},1,28,1,29"
|
||||
locations_default(#20011,#10000,1,28,1,29)
|
||||
hasLocation(#20010,#20011)
|
||||
stmtContainers(#20010,#20006)
|
||||
numlines(#20006,1,1,0)
|
||||
#20012=*
|
||||
stmts(#20012,0,#20001,1,";")
|
||||
#20013=@"loc,{#10000},1,30,1,30"
|
||||
locations_default(#20013,#10000,1,30,1,30)
|
||||
hasLocation(#20012,#20013)
|
||||
stmtContainers(#20012,#20001)
|
||||
#20014=*
|
||||
lines(#20014,#20001,"export default function () {};","")
|
||||
hasLocation(#20014,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"export default function () {};","")
|
||||
#20003=@"loc,{#10000},1,1,1,30"
|
||||
locations_default(#20003,#10000,1,1,1,30)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20015=*
|
||||
tokeninfo(#20015,7,#20001,0,"export")
|
||||
#20016=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20016,#10000,1,1,1,6)
|
||||
hasLocation(#20015,#20016)
|
||||
#20017=*
|
||||
tokeninfo(#20017,7,#20001,1,"default")
|
||||
#20018=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20018,#10000,1,8,1,14)
|
||||
hasLocation(#20017,#20018)
|
||||
#20019=*
|
||||
tokeninfo(#20019,7,#20001,2,"function")
|
||||
#20020=@"loc,{#10000},1,16,1,23"
|
||||
locations_default(#20020,#10000,1,16,1,23)
|
||||
hasLocation(#20019,#20020)
|
||||
#20021=*
|
||||
tokeninfo(#20021,8,#20001,3,"(")
|
||||
#20022=@"loc,{#10000},1,25,1,25"
|
||||
locations_default(#20022,#10000,1,25,1,25)
|
||||
hasLocation(#20021,#20022)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"export")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,7,#20001,1,"default")
|
||||
#20007=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20007,#10000,1,8,1,14)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,2,"function")
|
||||
#20009=@"loc,{#10000},1,16,1,23"
|
||||
locations_default(#20009,#10000,1,16,1,23)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,"(")
|
||||
#20011=@"loc,{#10000},1,25,1,25"
|
||||
locations_default(#20011,#10000,1,25,1,25)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,")")
|
||||
#20013=@"loc,{#10000},1,26,1,26"
|
||||
locations_default(#20013,#10000,1,26,1,26)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,"{")
|
||||
#20015=@"loc,{#10000},1,28,1,28"
|
||||
locations_default(#20015,#10000,1,28,1,28)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,6,"}")
|
||||
#20017=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20017,#10000,1,29,1,29)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,7,";")
|
||||
#20019=@"loc,{#10000},1,30,1,30"
|
||||
locations_default(#20019,#10000,1,30,1,30)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,0,#20001,8,"")
|
||||
#20021=@"loc,{#10000},1,31,1,30"
|
||||
locations_default(#20021,#10000,1,31,1,30)
|
||||
hasLocation(#20020,#20021)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20022=@"module;{#10000},1,1"
|
||||
scopes(#20022,3)
|
||||
scopenodes(#20001,#20022)
|
||||
scopenesting(#20022,#20000)
|
||||
isModule(#20001)
|
||||
#20023=*
|
||||
tokeninfo(#20023,8,#20001,4,")")
|
||||
#20024=@"loc,{#10000},1,26,1,26"
|
||||
locations_default(#20024,#10000,1,26,1,26)
|
||||
stmts(#20023,29,#20001,0,"export ... n () {}")
|
||||
#20024=@"loc,{#10000},1,1,1,29"
|
||||
locations_default(#20024,#10000,1,1,1,29)
|
||||
hasLocation(#20023,#20024)
|
||||
stmtContainers(#20023,#20001)
|
||||
#20025=*
|
||||
tokeninfo(#20025,8,#20001,5,"{")
|
||||
#20026=@"loc,{#10000},1,28,1,28"
|
||||
locations_default(#20026,#10000,1,28,1,28)
|
||||
exprs(#20025,9,#20023,0,"function () {}")
|
||||
#20026=@"loc,{#10000},1,16,1,29"
|
||||
locations_default(#20026,#10000,1,16,1,29)
|
||||
hasLocation(#20025,#20026)
|
||||
enclosingStmt(#20025,#20023)
|
||||
exprContainers(#20025,#20001)
|
||||
#20027=*
|
||||
tokeninfo(#20027,8,#20001,6,"}")
|
||||
#20028=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20028,#10000,1,29,1,29)
|
||||
hasLocation(#20027,#20028)
|
||||
scopes(#20027,1)
|
||||
scopenodes(#20025,#20027)
|
||||
scopenesting(#20027,#20022)
|
||||
#20028=@"var;{arguments};{#20027}"
|
||||
variables(#20028,"arguments",#20027)
|
||||
isArgumentsObject(#20028)
|
||||
#20029=*
|
||||
tokeninfo(#20029,8,#20001,7,";")
|
||||
hasLocation(#20029,#20013)
|
||||
#20030=*
|
||||
tokeninfo(#20030,0,#20001,8,"")
|
||||
#20031=@"loc,{#10000},1,31,1,30"
|
||||
locations_default(#20031,#10000,1,31,1,30)
|
||||
hasLocation(#20030,#20031)
|
||||
stmts(#20029,1,#20025,-2,"{}")
|
||||
#20030=@"loc,{#10000},1,28,1,29"
|
||||
locations_default(#20030,#10000,1,28,1,29)
|
||||
hasLocation(#20029,#20030)
|
||||
stmtContainers(#20029,#20025)
|
||||
#20031=*
|
||||
stmts(#20031,0,#20001,1,";")
|
||||
hasLocation(#20031,#20019)
|
||||
stmtContainers(#20031,#20001)
|
||||
#20032=*
|
||||
entry_cfg_node(#20032,#20001)
|
||||
#20033=@"loc,{#10000},1,1,1,0"
|
||||
@@ -105,22 +104,22 @@ locations_default(#20033,#10000,1,1,1,0)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
exit_cfg_node(#20034,#20001)
|
||||
hasLocation(#20034,#20031)
|
||||
successor(#20012,#20034)
|
||||
successor(#20004,#20006)
|
||||
successor(#20006,#20012)
|
||||
hasLocation(#20034,#20021)
|
||||
successor(#20031,#20034)
|
||||
successor(#20023,#20025)
|
||||
successor(#20025,#20031)
|
||||
#20035=*
|
||||
entry_cfg_node(#20035,#20006)
|
||||
entry_cfg_node(#20035,#20025)
|
||||
#20036=@"loc,{#10000},1,16,1,15"
|
||||
locations_default(#20036,#10000,1,16,1,15)
|
||||
hasLocation(#20035,#20036)
|
||||
#20037=*
|
||||
exit_cfg_node(#20037,#20006)
|
||||
exit_cfg_node(#20037,#20025)
|
||||
#20038=@"loc,{#10000},1,30,1,29"
|
||||
locations_default(#20038,#10000,1,30,1,29)
|
||||
hasLocation(#20037,#20038)
|
||||
successor(#20010,#20037)
|
||||
successor(#20035,#20010)
|
||||
successor(#20032,#20004)
|
||||
successor(#20029,#20037)
|
||||
successor(#20035,#20029)
|
||||
successor(#20032,#20023)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,212 +9,212 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,21"
|
||||
locations_default(#20002,#10000,1,1,2,21)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{x};{#20003}"
|
||||
variables(#20004,"x",#20003)
|
||||
#20005=@"var;{y};{#20003}"
|
||||
variables(#20005,"y",#20003)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"var x = 23, y = 42;","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,19"
|
||||
locations_default(#20003,#10000,1,1,1,19)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001,"export { x, y as z };","")
|
||||
#20005=@"loc,{#10000},2,1,2,21"
|
||||
locations_default(#20005,#10000,2,1,2,21)
|
||||
hasLocation(#20004,#20005)
|
||||
numlines(#20001,2,2,0)
|
||||
#20006=*
|
||||
stmts(#20006,18,#20001,0,"var x = 23, y = 42;")
|
||||
#20007=@"loc,{#10000},1,1,1,19"
|
||||
locations_default(#20007,#10000,1,1,1,19)
|
||||
tokeninfo(#20006,7,#20001,0,"var")
|
||||
#20007=@"loc,{#10000},1,1,1,3"
|
||||
locations_default(#20007,#10000,1,1,1,3)
|
||||
hasLocation(#20006,#20007)
|
||||
stmtContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,64,#20006,0,"x = 23")
|
||||
#20009=@"loc,{#10000},1,5,1,10"
|
||||
locations_default(#20009,#10000,1,5,1,10)
|
||||
tokeninfo(#20008,6,#20001,1,"x")
|
||||
#20009=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20009,#10000,1,5,1,5)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20006)
|
||||
exprContainers(#20008,#20001)
|
||||
#20010=*
|
||||
exprs(#20010,78,#20008,0,"x")
|
||||
#20011=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20011,#10000,1,5,1,5)
|
||||
tokeninfo(#20010,8,#20001,2,"=")
|
||||
#20011=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20011,#10000,1,7,1,7)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20006)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("x","x",#20010)
|
||||
decl(#20010,#20004)
|
||||
#20012=*
|
||||
exprs(#20012,3,#20008,1,"23")
|
||||
tokeninfo(#20012,3,#20001,3,"23")
|
||||
#20013=@"loc,{#10000},1,9,1,10"
|
||||
locations_default(#20013,#10000,1,9,1,10)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20006)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("23","23",#20012)
|
||||
#20014=*
|
||||
exprs(#20014,64,#20006,1,"y = 42")
|
||||
#20015=@"loc,{#10000},1,13,1,18"
|
||||
locations_default(#20015,#10000,1,13,1,18)
|
||||
tokeninfo(#20014,8,#20001,4,",")
|
||||
#20015=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20015,#10000,1,11,1,11)
|
||||
hasLocation(#20014,#20015)
|
||||
enclosingStmt(#20014,#20006)
|
||||
exprContainers(#20014,#20001)
|
||||
#20016=*
|
||||
exprs(#20016,78,#20014,0,"y")
|
||||
tokeninfo(#20016,6,#20001,5,"y")
|
||||
#20017=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20017,#10000,1,13,1,13)
|
||||
hasLocation(#20016,#20017)
|
||||
enclosingStmt(#20016,#20006)
|
||||
exprContainers(#20016,#20001)
|
||||
literals("y","y",#20016)
|
||||
decl(#20016,#20005)
|
||||
#20018=*
|
||||
exprs(#20018,3,#20014,1,"42")
|
||||
#20019=@"loc,{#10000},1,17,1,18"
|
||||
locations_default(#20019,#10000,1,17,1,18)
|
||||
tokeninfo(#20018,8,#20001,6,"=")
|
||||
#20019=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20019,#10000,1,15,1,15)
|
||||
hasLocation(#20018,#20019)
|
||||
enclosingStmt(#20018,#20006)
|
||||
exprContainers(#20018,#20001)
|
||||
literals("42","42",#20018)
|
||||
#20020=*
|
||||
stmts(#20020,30,#20001,1,"export ... as z };")
|
||||
#20021=@"loc,{#10000},2,1,2,21"
|
||||
locations_default(#20021,#10000,2,1,2,21)
|
||||
tokeninfo(#20020,3,#20001,7,"42")
|
||||
#20021=@"loc,{#10000},1,17,1,18"
|
||||
locations_default(#20021,#10000,1,17,1,18)
|
||||
hasLocation(#20020,#20021)
|
||||
stmtContainers(#20020,#20001)
|
||||
#20022=*
|
||||
exprs(#20022,86,#20020,0,"x")
|
||||
#20023=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20023,#10000,2,10,2,10)
|
||||
tokeninfo(#20022,8,#20001,8,";")
|
||||
#20023=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20023,#10000,1,19,1,19)
|
||||
hasLocation(#20022,#20023)
|
||||
enclosingStmt(#20022,#20020)
|
||||
exprContainers(#20022,#20001)
|
||||
#20024=*
|
||||
exprs(#20024,103,#20022,0,"x")
|
||||
hasLocation(#20024,#20023)
|
||||
enclosingStmt(#20024,#20020)
|
||||
exprContainers(#20024,#20001)
|
||||
literals("x","x",#20024)
|
||||
bind(#20024,#20004)
|
||||
#20025=*
|
||||
exprs(#20025,0,#20022,1,"x")
|
||||
hasLocation(#20025,#20023)
|
||||
enclosingStmt(#20025,#20020)
|
||||
exprContainers(#20025,#20001)
|
||||
literals("x","x",#20025)
|
||||
tokeninfo(#20024,7,#20001,9,"export")
|
||||
#20025=@"loc,{#10000},2,1,2,6"
|
||||
locations_default(#20025,#10000,2,1,2,6)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
exprs(#20026,86,#20020,1,"y as z")
|
||||
#20027=@"loc,{#10000},2,13,2,18"
|
||||
locations_default(#20027,#10000,2,13,2,18)
|
||||
tokeninfo(#20026,8,#20001,10,"{")
|
||||
#20027=@"loc,{#10000},2,8,2,8"
|
||||
locations_default(#20027,#10000,2,8,2,8)
|
||||
hasLocation(#20026,#20027)
|
||||
enclosingStmt(#20026,#20020)
|
||||
exprContainers(#20026,#20001)
|
||||
#20028=*
|
||||
exprs(#20028,103,#20026,0,"y")
|
||||
#20029=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20029,#10000,2,13,2,13)
|
||||
tokeninfo(#20028,6,#20001,11,"x")
|
||||
#20029=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20029,#10000,2,10,2,10)
|
||||
hasLocation(#20028,#20029)
|
||||
enclosingStmt(#20028,#20020)
|
||||
exprContainers(#20028,#20001)
|
||||
literals("y","y",#20028)
|
||||
bind(#20028,#20005)
|
||||
#20030=*
|
||||
exprs(#20030,0,#20026,1,"z")
|
||||
#20031=@"loc,{#10000},2,18,2,18"
|
||||
locations_default(#20031,#10000,2,18,2,18)
|
||||
tokeninfo(#20030,8,#20001,12,",")
|
||||
#20031=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20031,#10000,2,11,2,11)
|
||||
hasLocation(#20030,#20031)
|
||||
enclosingStmt(#20030,#20020)
|
||||
exprContainers(#20030,#20001)
|
||||
literals("z","z",#20030)
|
||||
#20032=*
|
||||
lines(#20032,#20001,"var x = 23, y = 42;","
|
||||
")
|
||||
hasLocation(#20032,#20007)
|
||||
#20033=*
|
||||
lines(#20033,#20001,"export { x, y as z };","")
|
||||
hasLocation(#20033,#20021)
|
||||
numlines(#20001,2,2,0)
|
||||
tokeninfo(#20032,6,#20001,13,"y")
|
||||
#20033=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20033,#10000,2,13,2,13)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,7,#20001,0,"var")
|
||||
#20035=@"loc,{#10000},1,1,1,3"
|
||||
locations_default(#20035,#10000,1,1,1,3)
|
||||
tokeninfo(#20034,6,#20001,14,"as")
|
||||
#20035=@"loc,{#10000},2,15,2,16"
|
||||
locations_default(#20035,#10000,2,15,2,16)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,6,#20001,1,"x")
|
||||
hasLocation(#20036,#20011)
|
||||
#20037=*
|
||||
tokeninfo(#20037,8,#20001,2,"=")
|
||||
#20038=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20038,#10000,1,7,1,7)
|
||||
hasLocation(#20037,#20038)
|
||||
#20039=*
|
||||
tokeninfo(#20039,3,#20001,3,"23")
|
||||
hasLocation(#20039,#20013)
|
||||
tokeninfo(#20036,6,#20001,15,"z")
|
||||
#20037=@"loc,{#10000},2,18,2,18"
|
||||
locations_default(#20037,#10000,2,18,2,18)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,8,#20001,16,"}")
|
||||
#20039=@"loc,{#10000},2,20,2,20"
|
||||
locations_default(#20039,#10000,2,20,2,20)
|
||||
hasLocation(#20038,#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,8,#20001,4,",")
|
||||
#20041=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20041,#10000,1,11,1,11)
|
||||
tokeninfo(#20040,8,#20001,17,";")
|
||||
#20041=@"loc,{#10000},2,21,2,21"
|
||||
locations_default(#20041,#10000,2,21,2,21)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,6,#20001,5,"y")
|
||||
hasLocation(#20042,#20017)
|
||||
#20043=*
|
||||
tokeninfo(#20043,8,#20001,6,"=")
|
||||
#20044=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20044,#10000,1,15,1,15)
|
||||
hasLocation(#20043,#20044)
|
||||
#20045=*
|
||||
tokeninfo(#20045,3,#20001,7,"42")
|
||||
hasLocation(#20045,#20019)
|
||||
#20046=*
|
||||
tokeninfo(#20046,8,#20001,8,";")
|
||||
#20047=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20047,#10000,1,19,1,19)
|
||||
hasLocation(#20046,#20047)
|
||||
tokeninfo(#20042,0,#20001,18,"")
|
||||
#20043=@"loc,{#10000},2,22,2,21"
|
||||
locations_default(#20043,#10000,2,22,2,21)
|
||||
hasLocation(#20042,#20043)
|
||||
toplevels(#20001,0)
|
||||
#20044=@"loc,{#10000},1,1,2,21"
|
||||
locations_default(#20044,#10000,1,1,2,21)
|
||||
hasLocation(#20001,#20044)
|
||||
#20045=@"module;{#10000},1,1"
|
||||
scopes(#20045,3)
|
||||
scopenodes(#20001,#20045)
|
||||
scopenesting(#20045,#20000)
|
||||
isModule(#20001)
|
||||
#20046=@"var;{x};{#20045}"
|
||||
variables(#20046,"x",#20045)
|
||||
#20047=@"var;{y};{#20045}"
|
||||
variables(#20047,"y",#20045)
|
||||
#20048=*
|
||||
tokeninfo(#20048,7,#20001,9,"export")
|
||||
#20049=@"loc,{#10000},2,1,2,6"
|
||||
locations_default(#20049,#10000,2,1,2,6)
|
||||
hasLocation(#20048,#20049)
|
||||
#20050=*
|
||||
tokeninfo(#20050,8,#20001,10,"{")
|
||||
#20051=@"loc,{#10000},2,8,2,8"
|
||||
locations_default(#20051,#10000,2,8,2,8)
|
||||
hasLocation(#20050,#20051)
|
||||
stmts(#20048,18,#20001,0,"var x = 23, y = 42;")
|
||||
hasLocation(#20048,#20003)
|
||||
stmtContainers(#20048,#20001)
|
||||
#20049=*
|
||||
exprs(#20049,64,#20048,0,"x = 23")
|
||||
#20050=@"loc,{#10000},1,5,1,10"
|
||||
locations_default(#20050,#10000,1,5,1,10)
|
||||
hasLocation(#20049,#20050)
|
||||
enclosingStmt(#20049,#20048)
|
||||
exprContainers(#20049,#20001)
|
||||
#20051=*
|
||||
exprs(#20051,78,#20049,0,"x")
|
||||
hasLocation(#20051,#20009)
|
||||
enclosingStmt(#20051,#20048)
|
||||
exprContainers(#20051,#20001)
|
||||
literals("x","x",#20051)
|
||||
decl(#20051,#20046)
|
||||
#20052=*
|
||||
tokeninfo(#20052,6,#20001,11,"x")
|
||||
hasLocation(#20052,#20023)
|
||||
exprs(#20052,3,#20049,1,"23")
|
||||
hasLocation(#20052,#20013)
|
||||
enclosingStmt(#20052,#20048)
|
||||
exprContainers(#20052,#20001)
|
||||
literals("23","23",#20052)
|
||||
#20053=*
|
||||
tokeninfo(#20053,8,#20001,12,",")
|
||||
#20054=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20054,#10000,2,11,2,11)
|
||||
exprs(#20053,64,#20048,1,"y = 42")
|
||||
#20054=@"loc,{#10000},1,13,1,18"
|
||||
locations_default(#20054,#10000,1,13,1,18)
|
||||
hasLocation(#20053,#20054)
|
||||
enclosingStmt(#20053,#20048)
|
||||
exprContainers(#20053,#20001)
|
||||
#20055=*
|
||||
tokeninfo(#20055,6,#20001,13,"y")
|
||||
hasLocation(#20055,#20029)
|
||||
exprs(#20055,78,#20053,0,"y")
|
||||
hasLocation(#20055,#20017)
|
||||
enclosingStmt(#20055,#20048)
|
||||
exprContainers(#20055,#20001)
|
||||
literals("y","y",#20055)
|
||||
decl(#20055,#20047)
|
||||
#20056=*
|
||||
tokeninfo(#20056,6,#20001,14,"as")
|
||||
#20057=@"loc,{#10000},2,15,2,16"
|
||||
locations_default(#20057,#10000,2,15,2,16)
|
||||
hasLocation(#20056,#20057)
|
||||
exprs(#20056,3,#20053,1,"42")
|
||||
hasLocation(#20056,#20021)
|
||||
enclosingStmt(#20056,#20048)
|
||||
exprContainers(#20056,#20001)
|
||||
literals("42","42",#20056)
|
||||
#20057=*
|
||||
stmts(#20057,30,#20001,1,"export ... as z };")
|
||||
hasLocation(#20057,#20005)
|
||||
stmtContainers(#20057,#20001)
|
||||
#20058=*
|
||||
tokeninfo(#20058,6,#20001,15,"z")
|
||||
hasLocation(#20058,#20031)
|
||||
exprs(#20058,86,#20057,0,"x")
|
||||
hasLocation(#20058,#20029)
|
||||
enclosingStmt(#20058,#20057)
|
||||
exprContainers(#20058,#20001)
|
||||
#20059=*
|
||||
tokeninfo(#20059,8,#20001,16,"}")
|
||||
#20060=@"loc,{#10000},2,20,2,20"
|
||||
locations_default(#20060,#10000,2,20,2,20)
|
||||
hasLocation(#20059,#20060)
|
||||
exprs(#20059,103,#20058,0,"x")
|
||||
hasLocation(#20059,#20029)
|
||||
enclosingStmt(#20059,#20057)
|
||||
exprContainers(#20059,#20001)
|
||||
literals("x","x",#20059)
|
||||
bind(#20059,#20046)
|
||||
#20060=*
|
||||
exprs(#20060,0,#20058,1,"x")
|
||||
hasLocation(#20060,#20029)
|
||||
enclosingStmt(#20060,#20057)
|
||||
exprContainers(#20060,#20001)
|
||||
literals("x","x",#20060)
|
||||
#20061=*
|
||||
tokeninfo(#20061,8,#20001,17,";")
|
||||
#20062=@"loc,{#10000},2,21,2,21"
|
||||
locations_default(#20062,#10000,2,21,2,21)
|
||||
exprs(#20061,86,#20057,1,"y as z")
|
||||
#20062=@"loc,{#10000},2,13,2,18"
|
||||
locations_default(#20062,#10000,2,13,2,18)
|
||||
hasLocation(#20061,#20062)
|
||||
enclosingStmt(#20061,#20057)
|
||||
exprContainers(#20061,#20001)
|
||||
#20063=*
|
||||
tokeninfo(#20063,0,#20001,18,"")
|
||||
#20064=@"loc,{#10000},2,22,2,21"
|
||||
locations_default(#20064,#10000,2,22,2,21)
|
||||
hasLocation(#20063,#20064)
|
||||
exprs(#20063,103,#20061,0,"y")
|
||||
hasLocation(#20063,#20033)
|
||||
enclosingStmt(#20063,#20057)
|
||||
exprContainers(#20063,#20001)
|
||||
literals("y","y",#20063)
|
||||
bind(#20063,#20047)
|
||||
#20064=*
|
||||
exprs(#20064,0,#20061,1,"z")
|
||||
hasLocation(#20064,#20037)
|
||||
enclosingStmt(#20064,#20057)
|
||||
exprContainers(#20064,#20001)
|
||||
literals("z","z",#20064)
|
||||
#20065=*
|
||||
entry_cfg_node(#20065,#20001)
|
||||
#20066=@"loc,{#10000},1,1,1,0"
|
||||
@@ -222,21 +222,21 @@ locations_default(#20066,#10000,1,1,1,0)
|
||||
hasLocation(#20065,#20066)
|
||||
#20067=*
|
||||
exit_cfg_node(#20067,#20001)
|
||||
hasLocation(#20067,#20064)
|
||||
successor(#20020,#20022)
|
||||
successor(#20026,#20028)
|
||||
successor(#20030,#20067)
|
||||
successor(#20028,#20030)
|
||||
successor(#20022,#20024)
|
||||
successor(#20025,#20026)
|
||||
successor(#20024,#20025)
|
||||
successor(#20006,#20010)
|
||||
successor(#20018,#20014)
|
||||
successor(#20016,#20018)
|
||||
successor(#20014,#20020)
|
||||
successor(#20012,#20008)
|
||||
successor(#20010,#20012)
|
||||
successor(#20008,#20016)
|
||||
successor(#20065,#20006)
|
||||
hasLocation(#20067,#20043)
|
||||
successor(#20057,#20058)
|
||||
successor(#20061,#20063)
|
||||
successor(#20064,#20067)
|
||||
successor(#20063,#20064)
|
||||
successor(#20058,#20059)
|
||||
successor(#20060,#20061)
|
||||
successor(#20059,#20060)
|
||||
successor(#20048,#20051)
|
||||
successor(#20056,#20053)
|
||||
successor(#20055,#20056)
|
||||
successor(#20053,#20057)
|
||||
successor(#20052,#20049)
|
||||
successor(#20051,#20052)
|
||||
successor(#20049,#20055)
|
||||
successor(#20065,#20048)
|
||||
numlines(#10000,2,2,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,59 +9,59 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,20"
|
||||
locations_default(#20002,#10000,1,1,1,20)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=*
|
||||
stmts(#20004,28,#20001,0,"export * from 'foo';")
|
||||
hasLocation(#20004,#20002)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,4,#20004,0,"'foo'")
|
||||
#20006=@"loc,{#10000},1,15,1,19"
|
||||
locations_default(#20006,#10000,1,15,1,19)
|
||||
hasLocation(#20005,#20006)
|
||||
enclosingStmt(#20005,#20004)
|
||||
exprContainers(#20005,#20001)
|
||||
literals("foo","'foo'",#20005)
|
||||
#20007=*
|
||||
lines(#20007,#20001,"export * from 'foo';","")
|
||||
hasLocation(#20007,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"export * from 'foo';","")
|
||||
#20003=@"loc,{#10000},1,1,1,20"
|
||||
locations_default(#20003,#10000,1,1,1,20)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"export")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,8,#20001,1,"*")
|
||||
#20007=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20007,#10000,1,8,1,8)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,0,"export")
|
||||
#20009=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20009,#10000,1,1,1,6)
|
||||
tokeninfo(#20008,6,#20001,2,"from")
|
||||
#20009=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20009,#10000,1,10,1,13)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,1,"*")
|
||||
#20011=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20011,#10000,1,8,1,8)
|
||||
tokeninfo(#20010,4,#20001,3,"'foo'")
|
||||
#20011=@"loc,{#10000},1,15,1,19"
|
||||
locations_default(#20011,#10000,1,15,1,19)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,2,"from")
|
||||
#20013=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20013,#10000,1,10,1,13)
|
||||
tokeninfo(#20012,8,#20001,4,";")
|
||||
#20013=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20013,#10000,1,20,1,20)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,4,#20001,3,"'foo'")
|
||||
hasLocation(#20014,#20006)
|
||||
#20015=*
|
||||
tokeninfo(#20015,8,#20001,4,";")
|
||||
#20016=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20016,#10000,1,20,1,20)
|
||||
hasLocation(#20015,#20016)
|
||||
tokeninfo(#20014,0,#20001,5,"")
|
||||
#20015=@"loc,{#10000},1,21,1,20"
|
||||
locations_default(#20015,#10000,1,21,1,20)
|
||||
hasLocation(#20014,#20015)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20016=@"module;{#10000},1,1"
|
||||
scopes(#20016,3)
|
||||
scopenodes(#20001,#20016)
|
||||
scopenesting(#20016,#20000)
|
||||
isModule(#20001)
|
||||
#20017=*
|
||||
tokeninfo(#20017,0,#20001,5,"")
|
||||
#20018=@"loc,{#10000},1,21,1,20"
|
||||
locations_default(#20018,#10000,1,21,1,20)
|
||||
hasLocation(#20017,#20018)
|
||||
stmts(#20017,28,#20001,0,"export * from 'foo';")
|
||||
hasLocation(#20017,#20003)
|
||||
stmtContainers(#20017,#20001)
|
||||
#20018=*
|
||||
exprs(#20018,4,#20017,0,"'foo'")
|
||||
hasLocation(#20018,#20011)
|
||||
enclosingStmt(#20018,#20017)
|
||||
exprContainers(#20018,#20001)
|
||||
literals("foo","'foo'",#20018)
|
||||
#20019=*
|
||||
entry_cfg_node(#20019,#20001)
|
||||
#20020=@"loc,{#10000},1,1,1,0"
|
||||
@@ -69,9 +69,9 @@ locations_default(#20020,#10000,1,1,1,0)
|
||||
hasLocation(#20019,#20020)
|
||||
#20021=*
|
||||
exit_cfg_node(#20021,#20001)
|
||||
hasLocation(#20021,#20018)
|
||||
successor(#20004,#20005)
|
||||
successor(#20005,#20021)
|
||||
successor(#20019,#20004)
|
||||
hasLocation(#20021,#20015)
|
||||
successor(#20017,#20018)
|
||||
successor(#20018,#20021)
|
||||
successor(#20019,#20017)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,125 +9,125 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,32"
|
||||
locations_default(#20002,#10000,1,1,1,32)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=*
|
||||
stmts(#20004,30,#20001,0,"export ... 'foo';")
|
||||
hasLocation(#20004,#20002)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,4,#20004,-2,"'foo'")
|
||||
#20006=@"loc,{#10000},1,27,1,31"
|
||||
locations_default(#20006,#10000,1,27,1,31)
|
||||
hasLocation(#20005,#20006)
|
||||
enclosingStmt(#20005,#20004)
|
||||
exprContainers(#20005,#20001)
|
||||
literals("foo","'foo'",#20005)
|
||||
#20007=*
|
||||
exprs(#20007,86,#20004,0,"x")
|
||||
#20008=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20008,#10000,1,10,1,10)
|
||||
hasLocation(#20007,#20008)
|
||||
enclosingStmt(#20007,#20004)
|
||||
exprContainers(#20007,#20001)
|
||||
#20009=*
|
||||
exprs(#20009,0,#20007,0,"x")
|
||||
hasLocation(#20009,#20008)
|
||||
enclosingStmt(#20009,#20004)
|
||||
exprContainers(#20009,#20001)
|
||||
literals("x","x",#20009)
|
||||
#20010=*
|
||||
exprs(#20010,0,#20007,1,"x")
|
||||
hasLocation(#20010,#20008)
|
||||
enclosingStmt(#20010,#20004)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("x","x",#20010)
|
||||
#20011=*
|
||||
exprs(#20011,86,#20004,1,"y as z")
|
||||
#20012=@"loc,{#10000},1,13,1,18"
|
||||
locations_default(#20012,#10000,1,13,1,18)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20004)
|
||||
exprContainers(#20011,#20001)
|
||||
#20013=*
|
||||
exprs(#20013,0,#20011,0,"y")
|
||||
#20014=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20014,#10000,1,13,1,13)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20004)
|
||||
exprContainers(#20013,#20001)
|
||||
literals("y","y",#20013)
|
||||
#20015=*
|
||||
exprs(#20015,0,#20011,1,"z")
|
||||
#20016=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20016,#10000,1,18,1,18)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20004)
|
||||
exprContainers(#20015,#20001)
|
||||
literals("z","z",#20015)
|
||||
#20017=*
|
||||
lines(#20017,#20001,"export { x, y as z } from 'foo';","")
|
||||
hasLocation(#20017,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"export { x, y as z } from 'foo';","")
|
||||
#20003=@"loc,{#10000},1,1,1,32"
|
||||
locations_default(#20003,#10000,1,1,1,32)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"export")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,8,#20001,1,"{")
|
||||
#20007=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20007,#10000,1,8,1,8)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,6,#20001,2,"x")
|
||||
#20009=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20009,#10000,1,10,1,10)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,",")
|
||||
#20011=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20011,#10000,1,11,1,11)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,4,"y")
|
||||
#20013=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20013,#10000,1,13,1,13)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,5,"as")
|
||||
#20015=@"loc,{#10000},1,15,1,16"
|
||||
locations_default(#20015,#10000,1,15,1,16)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,6,#20001,6,"z")
|
||||
#20017=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20017,#10000,1,18,1,18)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,7,#20001,0,"export")
|
||||
#20019=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20019,#10000,1,1,1,6)
|
||||
tokeninfo(#20018,8,#20001,7,"}")
|
||||
#20019=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20019,#10000,1,20,1,20)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,1,"{")
|
||||
#20021=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20021,#10000,1,8,1,8)
|
||||
tokeninfo(#20020,6,#20001,8,"from")
|
||||
#20021=@"loc,{#10000},1,22,1,25"
|
||||
locations_default(#20021,#10000,1,22,1,25)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,6,#20001,2,"x")
|
||||
hasLocation(#20022,#20008)
|
||||
#20023=*
|
||||
tokeninfo(#20023,8,#20001,3,",")
|
||||
#20024=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20024,#10000,1,11,1,11)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
tokeninfo(#20025,6,#20001,4,"y")
|
||||
hasLocation(#20025,#20014)
|
||||
tokeninfo(#20022,4,#20001,9,"'foo'")
|
||||
#20023=@"loc,{#10000},1,27,1,31"
|
||||
locations_default(#20023,#10000,1,27,1,31)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,10,";")
|
||||
#20025=@"loc,{#10000},1,32,1,32"
|
||||
locations_default(#20025,#10000,1,32,1,32)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,6,#20001,5,"as")
|
||||
#20027=@"loc,{#10000},1,15,1,16"
|
||||
locations_default(#20027,#10000,1,15,1,16)
|
||||
tokeninfo(#20026,0,#20001,11,"")
|
||||
#20027=@"loc,{#10000},1,33,1,32"
|
||||
locations_default(#20027,#10000,1,33,1,32)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,6,#20001,6,"z")
|
||||
hasLocation(#20028,#20016)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20028=@"module;{#10000},1,1"
|
||||
scopes(#20028,3)
|
||||
scopenodes(#20001,#20028)
|
||||
scopenesting(#20028,#20000)
|
||||
isModule(#20001)
|
||||
#20029=*
|
||||
tokeninfo(#20029,8,#20001,7,"}")
|
||||
#20030=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20030,#10000,1,20,1,20)
|
||||
hasLocation(#20029,#20030)
|
||||
stmts(#20029,30,#20001,0,"export ... 'foo';")
|
||||
hasLocation(#20029,#20003)
|
||||
stmtContainers(#20029,#20001)
|
||||
#20030=*
|
||||
exprs(#20030,4,#20029,-2,"'foo'")
|
||||
hasLocation(#20030,#20023)
|
||||
enclosingStmt(#20030,#20029)
|
||||
exprContainers(#20030,#20001)
|
||||
literals("foo","'foo'",#20030)
|
||||
#20031=*
|
||||
tokeninfo(#20031,6,#20001,8,"from")
|
||||
#20032=@"loc,{#10000},1,22,1,25"
|
||||
locations_default(#20032,#10000,1,22,1,25)
|
||||
hasLocation(#20031,#20032)
|
||||
exprs(#20031,86,#20029,0,"x")
|
||||
hasLocation(#20031,#20009)
|
||||
enclosingStmt(#20031,#20029)
|
||||
exprContainers(#20031,#20001)
|
||||
#20032=*
|
||||
exprs(#20032,0,#20031,0,"x")
|
||||
hasLocation(#20032,#20009)
|
||||
enclosingStmt(#20032,#20029)
|
||||
exprContainers(#20032,#20001)
|
||||
literals("x","x",#20032)
|
||||
#20033=*
|
||||
tokeninfo(#20033,4,#20001,9,"'foo'")
|
||||
hasLocation(#20033,#20006)
|
||||
exprs(#20033,0,#20031,1,"x")
|
||||
hasLocation(#20033,#20009)
|
||||
enclosingStmt(#20033,#20029)
|
||||
exprContainers(#20033,#20001)
|
||||
literals("x","x",#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,10,";")
|
||||
#20035=@"loc,{#10000},1,32,1,32"
|
||||
locations_default(#20035,#10000,1,32,1,32)
|
||||
exprs(#20034,86,#20029,1,"y as z")
|
||||
#20035=@"loc,{#10000},1,13,1,18"
|
||||
locations_default(#20035,#10000,1,13,1,18)
|
||||
hasLocation(#20034,#20035)
|
||||
enclosingStmt(#20034,#20029)
|
||||
exprContainers(#20034,#20001)
|
||||
#20036=*
|
||||
tokeninfo(#20036,0,#20001,11,"")
|
||||
#20037=@"loc,{#10000},1,33,1,32"
|
||||
locations_default(#20037,#10000,1,33,1,32)
|
||||
hasLocation(#20036,#20037)
|
||||
exprs(#20036,0,#20034,0,"y")
|
||||
hasLocation(#20036,#20013)
|
||||
enclosingStmt(#20036,#20029)
|
||||
exprContainers(#20036,#20001)
|
||||
literals("y","y",#20036)
|
||||
#20037=*
|
||||
exprs(#20037,0,#20034,1,"z")
|
||||
hasLocation(#20037,#20017)
|
||||
enclosingStmt(#20037,#20029)
|
||||
exprContainers(#20037,#20001)
|
||||
literals("z","z",#20037)
|
||||
#20038=*
|
||||
entry_cfg_node(#20038,#20001)
|
||||
#20039=@"loc,{#10000},1,1,1,0"
|
||||
@@ -135,15 +135,15 @@ locations_default(#20039,#10000,1,1,1,0)
|
||||
hasLocation(#20038,#20039)
|
||||
#20040=*
|
||||
exit_cfg_node(#20040,#20001)
|
||||
hasLocation(#20040,#20037)
|
||||
successor(#20004,#20005)
|
||||
successor(#20011,#20013)
|
||||
successor(#20015,#20040)
|
||||
successor(#20013,#20015)
|
||||
successor(#20007,#20009)
|
||||
successor(#20010,#20011)
|
||||
successor(#20009,#20010)
|
||||
successor(#20005,#20007)
|
||||
successor(#20038,#20004)
|
||||
hasLocation(#20040,#20027)
|
||||
successor(#20029,#20030)
|
||||
successor(#20034,#20036)
|
||||
successor(#20037,#20040)
|
||||
successor(#20036,#20037)
|
||||
successor(#20031,#20032)
|
||||
successor(#20033,#20034)
|
||||
successor(#20032,#20033)
|
||||
successor(#20030,#20031)
|
||||
successor(#20038,#20029)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,109 +9,109 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,19"
|
||||
locations_default(#20002,#10000,1,1,2,19)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=*
|
||||
stmts(#20004,2,#20001,0,"foo = 42;")
|
||||
#20005=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20005,#10000,1,1,1,9)
|
||||
hasLocation(#20004,#20005)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,47,#20004,0,"foo = 42")
|
||||
#20007=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20007,#10000,1,1,1,8)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20004)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,79,#20006,0,"foo")
|
||||
#20009=@"loc,{#10000},1,1,1,3"
|
||||
locations_default(#20009,#10000,1,1,1,3)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20004)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("foo","foo",#20008)
|
||||
#20010=@"var;{foo};{#20000}"
|
||||
variables(#20010,"foo",#20000)
|
||||
bind(#20008,#20010)
|
||||
#20011=*
|
||||
exprs(#20011,3,#20006,1,"42")
|
||||
#20012=@"loc,{#10000},1,7,1,8"
|
||||
locations_default(#20012,#10000,1,7,1,8)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20004)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("42","42",#20011)
|
||||
#20013=*
|
||||
stmts(#20013,29,#20001,1,"export default foo;")
|
||||
#20014=@"loc,{#10000},2,1,2,19"
|
||||
locations_default(#20014,#10000,2,1,2,19)
|
||||
hasLocation(#20013,#20014)
|
||||
stmtContainers(#20013,#20001)
|
||||
#20015=*
|
||||
exprs(#20015,103,#20013,0,"foo")
|
||||
#20016=@"loc,{#10000},2,16,2,18"
|
||||
locations_default(#20016,#10000,2,16,2,18)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20013)
|
||||
exprContainers(#20015,#20001)
|
||||
literals("foo","foo",#20015)
|
||||
bind(#20015,#20010)
|
||||
#20017=*
|
||||
lines(#20017,#20001,"foo = 42;","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"foo = 42;","
|
||||
")
|
||||
hasLocation(#20017,#20005)
|
||||
#20018=*
|
||||
lines(#20018,#20001,"export default foo;","")
|
||||
hasLocation(#20018,#20014)
|
||||
#20003=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20003,#10000,1,1,1,9)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001,"export default foo;","")
|
||||
#20005=@"loc,{#10000},2,1,2,19"
|
||||
locations_default(#20005,#10000,2,1,2,19)
|
||||
hasLocation(#20004,#20005)
|
||||
numlines(#20001,2,2,0)
|
||||
#20019=*
|
||||
tokeninfo(#20019,6,#20001,0,"foo")
|
||||
hasLocation(#20019,#20009)
|
||||
#20006=*
|
||||
tokeninfo(#20006,6,#20001,0,"foo")
|
||||
#20007=@"loc,{#10000},1,1,1,3"
|
||||
locations_default(#20007,#10000,1,1,1,3)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,8,#20001,1,"=")
|
||||
#20009=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20009,#10000,1,5,1,5)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,3,#20001,2,"42")
|
||||
#20011=@"loc,{#10000},1,7,1,8"
|
||||
locations_default(#20011,#10000,1,7,1,8)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,3,";")
|
||||
#20013=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20013,#10000,1,9,1,9)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,7,#20001,4,"export")
|
||||
#20015=@"loc,{#10000},2,1,2,6"
|
||||
locations_default(#20015,#10000,2,1,2,6)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,7,#20001,5,"default")
|
||||
#20017=@"loc,{#10000},2,8,2,14"
|
||||
locations_default(#20017,#10000,2,8,2,14)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,6,#20001,6,"foo")
|
||||
#20019=@"loc,{#10000},2,16,2,18"
|
||||
locations_default(#20019,#10000,2,16,2,18)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,1,"=")
|
||||
#20021=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20021,#10000,1,5,1,5)
|
||||
tokeninfo(#20020,8,#20001,7,";")
|
||||
#20021=@"loc,{#10000},2,19,2,19"
|
||||
locations_default(#20021,#10000,2,19,2,19)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,3,#20001,2,"42")
|
||||
hasLocation(#20022,#20012)
|
||||
#20023=*
|
||||
tokeninfo(#20023,8,#20001,3,";")
|
||||
#20024=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20024,#10000,1,9,1,9)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
tokeninfo(#20025,7,#20001,4,"export")
|
||||
#20026=@"loc,{#10000},2,1,2,6"
|
||||
locations_default(#20026,#10000,2,1,2,6)
|
||||
hasLocation(#20025,#20026)
|
||||
tokeninfo(#20022,0,#20001,8,"")
|
||||
#20023=@"loc,{#10000},2,20,2,19"
|
||||
locations_default(#20023,#10000,2,20,2,19)
|
||||
hasLocation(#20022,#20023)
|
||||
toplevels(#20001,0)
|
||||
#20024=@"loc,{#10000},1,1,2,19"
|
||||
locations_default(#20024,#10000,1,1,2,19)
|
||||
hasLocation(#20001,#20024)
|
||||
#20025=@"module;{#10000},1,1"
|
||||
scopes(#20025,3)
|
||||
scopenodes(#20001,#20025)
|
||||
scopenesting(#20025,#20000)
|
||||
isModule(#20001)
|
||||
#20026=*
|
||||
stmts(#20026,2,#20001,0,"foo = 42;")
|
||||
hasLocation(#20026,#20003)
|
||||
stmtContainers(#20026,#20001)
|
||||
#20027=*
|
||||
tokeninfo(#20027,7,#20001,5,"default")
|
||||
#20028=@"loc,{#10000},2,8,2,14"
|
||||
locations_default(#20028,#10000,2,8,2,14)
|
||||
exprs(#20027,47,#20026,0,"foo = 42")
|
||||
#20028=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20028,#10000,1,1,1,8)
|
||||
hasLocation(#20027,#20028)
|
||||
enclosingStmt(#20027,#20026)
|
||||
exprContainers(#20027,#20001)
|
||||
#20029=*
|
||||
tokeninfo(#20029,6,#20001,6,"foo")
|
||||
hasLocation(#20029,#20016)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,7,";")
|
||||
#20031=@"loc,{#10000},2,19,2,19"
|
||||
locations_default(#20031,#10000,2,19,2,19)
|
||||
hasLocation(#20030,#20031)
|
||||
exprs(#20029,79,#20027,0,"foo")
|
||||
hasLocation(#20029,#20007)
|
||||
enclosingStmt(#20029,#20026)
|
||||
exprContainers(#20029,#20001)
|
||||
literals("foo","foo",#20029)
|
||||
#20030=@"var;{foo};{#20000}"
|
||||
variables(#20030,"foo",#20000)
|
||||
bind(#20029,#20030)
|
||||
#20031=*
|
||||
exprs(#20031,3,#20027,1,"42")
|
||||
hasLocation(#20031,#20011)
|
||||
enclosingStmt(#20031,#20026)
|
||||
exprContainers(#20031,#20001)
|
||||
literals("42","42",#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,0,#20001,8,"")
|
||||
#20033=@"loc,{#10000},2,20,2,19"
|
||||
locations_default(#20033,#10000,2,20,2,19)
|
||||
hasLocation(#20032,#20033)
|
||||
stmts(#20032,29,#20001,1,"export default foo;")
|
||||
hasLocation(#20032,#20005)
|
||||
stmtContainers(#20032,#20001)
|
||||
#20033=*
|
||||
exprs(#20033,103,#20032,0,"foo")
|
||||
hasLocation(#20033,#20019)
|
||||
enclosingStmt(#20033,#20032)
|
||||
exprContainers(#20033,#20001)
|
||||
literals("foo","foo",#20033)
|
||||
bind(#20033,#20030)
|
||||
#20034=*
|
||||
entry_cfg_node(#20034,#20001)
|
||||
#20035=@"loc,{#10000},1,1,1,0"
|
||||
@@ -119,13 +119,13 @@ locations_default(#20035,#10000,1,1,1,0)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
exit_cfg_node(#20036,#20001)
|
||||
hasLocation(#20036,#20033)
|
||||
successor(#20013,#20015)
|
||||
successor(#20015,#20036)
|
||||
successor(#20004,#20008)
|
||||
successor(#20011,#20006)
|
||||
successor(#20008,#20011)
|
||||
successor(#20006,#20013)
|
||||
successor(#20034,#20004)
|
||||
hasLocation(#20036,#20023)
|
||||
successor(#20032,#20033)
|
||||
successor(#20033,#20036)
|
||||
successor(#20026,#20029)
|
||||
successor(#20031,#20027)
|
||||
successor(#20029,#20031)
|
||||
successor(#20027,#20032)
|
||||
successor(#20034,#20026)
|
||||
numlines(#10000,2,2,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,141 +9,140 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20002,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{C};{#20003}"
|
||||
variables(#20004,"C",#20003)
|
||||
#20005=@"local_type_name;{C};{#20003}"
|
||||
local_type_names(#20005,"C",#20003)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"export default class C {} [,]","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,29"
|
||||
locations_default(#20003,#10000,1,1,1,29)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"export")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
stmts(#20006,29,#20001,0,"export ... ss C {}")
|
||||
#20007=@"loc,{#10000},1,1,1,25"
|
||||
locations_default(#20007,#10000,1,1,1,25)
|
||||
tokeninfo(#20006,7,#20001,1,"default")
|
||||
#20007=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20007,#10000,1,8,1,14)
|
||||
hasLocation(#20006,#20007)
|
||||
stmtContainers(#20006,#20001)
|
||||
#20008=*
|
||||
stmts(#20008,26,#20006,0,"class C {}")
|
||||
#20009=@"loc,{#10000},1,16,1,25"
|
||||
locations_default(#20009,#10000,1,16,1,25)
|
||||
tokeninfo(#20008,7,#20001,2,"class")
|
||||
#20009=@"loc,{#10000},1,16,1,20"
|
||||
locations_default(#20009,#10000,1,16,1,20)
|
||||
hasLocation(#20008,#20009)
|
||||
stmtContainers(#20008,#20001)
|
||||
#20010=*
|
||||
exprs(#20010,78,#20008,0,"C")
|
||||
tokeninfo(#20010,6,#20001,3,"C")
|
||||
#20011=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20011,#10000,1,22,1,22)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20008)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("C","C",#20010)
|
||||
decl(#20010,#20004)
|
||||
typedecl(#20010,#20005)
|
||||
#20012=*
|
||||
scopes(#20012,10)
|
||||
scopenodes(#20008,#20012)
|
||||
scopenesting(#20012,#20003)
|
||||
#20013=*
|
||||
properties(#20013,#20008,2,0,"constructor() {}")
|
||||
#20014=@"loc,{#10000},1,24,1,23"
|
||||
locations_default(#20014,#10000,1,24,1,23)
|
||||
hasLocation(#20013,#20014)
|
||||
#20015=*
|
||||
exprs(#20015,0,#20013,0,"constructor")
|
||||
hasLocation(#20015,#20014)
|
||||
enclosingStmt(#20015,#20008)
|
||||
exprContainers(#20015,#20001)
|
||||
literals("constructor","constructor",#20015)
|
||||
tokeninfo(#20012,8,#20001,4,"{")
|
||||
#20013=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20013,#10000,1,24,1,24)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,"}")
|
||||
#20015=@"loc,{#10000},1,25,1,25"
|
||||
locations_default(#20015,#10000,1,25,1,25)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
exprs(#20016,9,#20013,1,"() {}")
|
||||
hasLocation(#20016,#20014)
|
||||
enclosingStmt(#20016,#20008)
|
||||
exprContainers(#20016,#20001)
|
||||
#20017=*
|
||||
scopes(#20017,1)
|
||||
scopenodes(#20016,#20017)
|
||||
scopenesting(#20017,#20012)
|
||||
#20018=@"var;{arguments};{#20017}"
|
||||
variables(#20018,"arguments",#20017)
|
||||
isArgumentsObject(#20018)
|
||||
#20019=*
|
||||
stmts(#20019,1,#20016,-2,"{}")
|
||||
hasLocation(#20019,#20014)
|
||||
stmtContainers(#20019,#20016)
|
||||
numlines(#20016,1,0,0)
|
||||
isMethod(#20013)
|
||||
tokeninfo(#20016,8,#20001,6,"[")
|
||||
#20017=@"loc,{#10000},1,27,1,27"
|
||||
locations_default(#20017,#10000,1,27,1,27)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,7,",")
|
||||
#20019=@"loc,{#10000},1,28,1,28"
|
||||
locations_default(#20019,#10000,1,28,1,28)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
stmts(#20020,2,#20001,1,"[,]")
|
||||
#20021=@"loc,{#10000},1,27,1,29"
|
||||
locations_default(#20021,#10000,1,27,1,29)
|
||||
tokeninfo(#20020,8,#20001,8,"]")
|
||||
#20021=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20021,#10000,1,29,1,29)
|
||||
hasLocation(#20020,#20021)
|
||||
stmtContainers(#20020,#20001)
|
||||
#20022=*
|
||||
exprs(#20022,7,#20020,0,"[,]")
|
||||
hasLocation(#20022,#20021)
|
||||
enclosingStmt(#20022,#20020)
|
||||
exprContainers(#20022,#20001)
|
||||
arraySize(#20022,1)
|
||||
#20023=*
|
||||
lines(#20023,#20001,"export default class C {} [,]","
|
||||
")
|
||||
#20024=@"loc,{#10000},1,1,1,29"
|
||||
locations_default(#20024,#10000,1,1,1,29)
|
||||
hasLocation(#20023,#20024)
|
||||
numlines(#20001,1,1,0)
|
||||
#20025=*
|
||||
tokeninfo(#20025,7,#20001,0,"export")
|
||||
#20026=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20026,#10000,1,1,1,6)
|
||||
hasLocation(#20025,#20026)
|
||||
#20027=*
|
||||
tokeninfo(#20027,7,#20001,1,"default")
|
||||
#20028=@"loc,{#10000},1,8,1,14"
|
||||
locations_default(#20028,#10000,1,8,1,14)
|
||||
hasLocation(#20027,#20028)
|
||||
#20029=*
|
||||
tokeninfo(#20029,7,#20001,2,"class")
|
||||
#20030=@"loc,{#10000},1,16,1,20"
|
||||
locations_default(#20030,#10000,1,16,1,20)
|
||||
hasLocation(#20029,#20030)
|
||||
#20031=*
|
||||
tokeninfo(#20031,6,#20001,3,"C")
|
||||
hasLocation(#20031,#20011)
|
||||
tokeninfo(#20022,0,#20001,9,"")
|
||||
#20023=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20023,#10000,2,1,2,0)
|
||||
hasLocation(#20022,#20023)
|
||||
toplevels(#20001,0)
|
||||
#20024=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20024,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20024)
|
||||
#20025=@"module;{#10000},1,1"
|
||||
scopes(#20025,3)
|
||||
scopenodes(#20001,#20025)
|
||||
scopenesting(#20025,#20000)
|
||||
isModule(#20001)
|
||||
#20026=@"var;{C};{#20025}"
|
||||
variables(#20026,"C",#20025)
|
||||
#20027=@"local_type_name;{C};{#20025}"
|
||||
local_type_names(#20027,"C",#20025)
|
||||
#20028=*
|
||||
stmts(#20028,29,#20001,0,"export ... ss C {}")
|
||||
#20029=@"loc,{#10000},1,1,1,25"
|
||||
locations_default(#20029,#10000,1,1,1,25)
|
||||
hasLocation(#20028,#20029)
|
||||
stmtContainers(#20028,#20001)
|
||||
#20030=*
|
||||
stmts(#20030,26,#20028,0,"class C {}")
|
||||
#20031=@"loc,{#10000},1,16,1,25"
|
||||
locations_default(#20031,#10000,1,16,1,25)
|
||||
hasLocation(#20030,#20031)
|
||||
stmtContainers(#20030,#20001)
|
||||
#20032=*
|
||||
tokeninfo(#20032,8,#20001,4,"{")
|
||||
#20033=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20033,#10000,1,24,1,24)
|
||||
hasLocation(#20032,#20033)
|
||||
exprs(#20032,78,#20030,0,"C")
|
||||
hasLocation(#20032,#20011)
|
||||
enclosingStmt(#20032,#20030)
|
||||
exprContainers(#20032,#20001)
|
||||
literals("C","C",#20032)
|
||||
decl(#20032,#20026)
|
||||
typedecl(#20032,#20027)
|
||||
#20033=*
|
||||
scopes(#20033,10)
|
||||
scopenodes(#20030,#20033)
|
||||
scopenesting(#20033,#20025)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,5,"}")
|
||||
#20035=@"loc,{#10000},1,25,1,25"
|
||||
locations_default(#20035,#10000,1,25,1,25)
|
||||
properties(#20034,#20030,2,0,"constructor() {}")
|
||||
#20035=@"loc,{#10000},1,24,1,23"
|
||||
locations_default(#20035,#10000,1,24,1,23)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,8,#20001,6,"[")
|
||||
#20037=@"loc,{#10000},1,27,1,27"
|
||||
locations_default(#20037,#10000,1,27,1,27)
|
||||
hasLocation(#20036,#20037)
|
||||
exprs(#20036,0,#20034,0,"constructor")
|
||||
hasLocation(#20036,#20035)
|
||||
enclosingStmt(#20036,#20030)
|
||||
exprContainers(#20036,#20001)
|
||||
literals("constructor","constructor",#20036)
|
||||
#20037=*
|
||||
exprs(#20037,9,#20034,1,"() {}")
|
||||
hasLocation(#20037,#20035)
|
||||
enclosingStmt(#20037,#20030)
|
||||
exprContainers(#20037,#20001)
|
||||
#20038=*
|
||||
tokeninfo(#20038,8,#20001,7,",")
|
||||
#20039=@"loc,{#10000},1,28,1,28"
|
||||
locations_default(#20039,#10000,1,28,1,28)
|
||||
hasLocation(#20038,#20039)
|
||||
scopes(#20038,1)
|
||||
scopenodes(#20037,#20038)
|
||||
scopenesting(#20038,#20033)
|
||||
#20039=@"var;{arguments};{#20038}"
|
||||
variables(#20039,"arguments",#20038)
|
||||
isArgumentsObject(#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,8,#20001,8,"]")
|
||||
#20041=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20041,#10000,1,29,1,29)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,0,#20001,9,"")
|
||||
#20043=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20043,#10000,2,1,2,0)
|
||||
hasLocation(#20042,#20043)
|
||||
stmts(#20040,1,#20037,-2,"{}")
|
||||
hasLocation(#20040,#20035)
|
||||
stmtContainers(#20040,#20037)
|
||||
isMethod(#20034)
|
||||
#20041=*
|
||||
stmts(#20041,2,#20001,1,"[,]")
|
||||
#20042=@"loc,{#10000},1,27,1,29"
|
||||
locations_default(#20042,#10000,1,27,1,29)
|
||||
hasLocation(#20041,#20042)
|
||||
stmtContainers(#20041,#20001)
|
||||
#20043=*
|
||||
exprs(#20043,7,#20041,0,"[,]")
|
||||
hasLocation(#20043,#20042)
|
||||
enclosingStmt(#20043,#20041)
|
||||
exprContainers(#20043,#20001)
|
||||
arraySize(#20043,1)
|
||||
#20044=*
|
||||
entry_cfg_node(#20044,#20001)
|
||||
#20045=@"loc,{#10000},1,1,1,0"
|
||||
@@ -151,23 +150,23 @@ locations_default(#20045,#10000,1,1,1,0)
|
||||
hasLocation(#20044,#20045)
|
||||
#20046=*
|
||||
exit_cfg_node(#20046,#20001)
|
||||
hasLocation(#20046,#20043)
|
||||
successor(#20020,#20022)
|
||||
successor(#20022,#20046)
|
||||
successor(#20006,#20010)
|
||||
successor(#20016,#20013)
|
||||
hasLocation(#20046,#20023)
|
||||
successor(#20041,#20043)
|
||||
successor(#20043,#20046)
|
||||
successor(#20028,#20032)
|
||||
successor(#20037,#20034)
|
||||
#20047=*
|
||||
entry_cfg_node(#20047,#20016)
|
||||
hasLocation(#20047,#20014)
|
||||
entry_cfg_node(#20047,#20037)
|
||||
hasLocation(#20047,#20035)
|
||||
#20048=*
|
||||
exit_cfg_node(#20048,#20016)
|
||||
hasLocation(#20048,#20014)
|
||||
successor(#20019,#20048)
|
||||
successor(#20047,#20019)
|
||||
successor(#20015,#20016)
|
||||
successor(#20013,#20008)
|
||||
successor(#20010,#20015)
|
||||
successor(#20008,#20020)
|
||||
successor(#20044,#20006)
|
||||
exit_cfg_node(#20048,#20037)
|
||||
hasLocation(#20048,#20035)
|
||||
successor(#20040,#20048)
|
||||
successor(#20047,#20040)
|
||||
successor(#20036,#20037)
|
||||
successor(#20034,#20030)
|
||||
successor(#20032,#20036)
|
||||
successor(#20030,#20041)
|
||||
successor(#20044,#20028)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,415 +9,414 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,8,0"
|
||||
locations_default(#20002,#10000,1,1,8,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{f};{#20000}"
|
||||
variables(#20003,"f",#20000)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"for (let x of [1,2,3]) {","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,24"
|
||||
locations_default(#20003,#10000,1,1,1,24)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
stmts(#20004,21,#20001,0,"for (le ... x+1;\n}")
|
||||
#20005=@"loc,{#10000},1,1,3,1"
|
||||
locations_default(#20005,#10000,1,1,3,1)
|
||||
lines(#20004,#20001," let y = x+1;","
|
||||
")
|
||||
#20005=@"loc,{#10000},2,1,2,16"
|
||||
locations_default(#20005,#10000,2,1,2,16)
|
||||
hasLocation(#20004,#20005)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20006=*
|
||||
exprs(#20006,7,#20004,1,"[1,2,3]")
|
||||
#20007=@"loc,{#10000},1,15,1,21"
|
||||
locations_default(#20007,#10000,1,15,1,21)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20004)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,3,#20006,0,"1")
|
||||
#20009=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20009,#10000,1,16,1,16)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20004)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("1","1",#20008)
|
||||
#20010=*
|
||||
exprs(#20010,3,#20006,1,"2")
|
||||
#20011=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20011,#10000,1,18,1,18)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20004)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("2","2",#20010)
|
||||
#20012=*
|
||||
exprs(#20012,3,#20006,2,"3")
|
||||
#20013=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20013,#10000,1,20,1,20)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20004)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("3","3",#20012)
|
||||
arraySize(#20006,3)
|
||||
#20014=*
|
||||
scopes(#20014,6)
|
||||
scopenodes(#20004,#20014)
|
||||
scopenesting(#20014,#20000)
|
||||
#20015=@"var;{x};{#20014}"
|
||||
variables(#20015,"x",#20014)
|
||||
#20016=*
|
||||
stmts(#20016,23,#20004,0,"let x")
|
||||
#20017=@"loc,{#10000},1,6,1,10"
|
||||
locations_default(#20017,#10000,1,6,1,10)
|
||||
hasLocation(#20016,#20017)
|
||||
stmtContainers(#20016,#20001)
|
||||
#20018=*
|
||||
exprs(#20018,64,#20016,0,"x")
|
||||
#20019=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20019,#10000,1,10,1,10)
|
||||
hasLocation(#20018,#20019)
|
||||
enclosingStmt(#20018,#20016)
|
||||
exprContainers(#20018,#20001)
|
||||
#20020=*
|
||||
exprs(#20020,78,#20018,0,"x")
|
||||
hasLocation(#20020,#20019)
|
||||
enclosingStmt(#20020,#20016)
|
||||
exprContainers(#20020,#20001)
|
||||
literals("x","x",#20020)
|
||||
decl(#20020,#20015)
|
||||
#20021=*
|
||||
stmts(#20021,1,#20004,2,"{\n let y = x+1;\n}")
|
||||
#20022=@"loc,{#10000},1,24,3,1"
|
||||
locations_default(#20022,#10000,1,24,3,1)
|
||||
hasLocation(#20021,#20022)
|
||||
stmtContainers(#20021,#20001)
|
||||
#20023=*
|
||||
scopes(#20023,4)
|
||||
scopenodes(#20021,#20023)
|
||||
scopenesting(#20023,#20014)
|
||||
#20024=@"var;{y};{#20023}"
|
||||
variables(#20024,"y",#20023)
|
||||
#20025=*
|
||||
stmts(#20025,23,#20021,0,"let y = x+1;")
|
||||
#20026=@"loc,{#10000},2,5,2,16"
|
||||
locations_default(#20026,#10000,2,5,2,16)
|
||||
hasLocation(#20025,#20026)
|
||||
stmtContainers(#20025,#20001)
|
||||
#20027=*
|
||||
exprs(#20027,64,#20025,0,"y = x+1")
|
||||
#20028=@"loc,{#10000},2,9,2,15"
|
||||
locations_default(#20028,#10000,2,9,2,15)
|
||||
hasLocation(#20027,#20028)
|
||||
enclosingStmt(#20027,#20025)
|
||||
exprContainers(#20027,#20001)
|
||||
#20029=*
|
||||
exprs(#20029,78,#20027,0,"y")
|
||||
#20030=@"loc,{#10000},2,9,2,9"
|
||||
locations_default(#20030,#10000,2,9,2,9)
|
||||
hasLocation(#20029,#20030)
|
||||
enclosingStmt(#20029,#20025)
|
||||
exprContainers(#20029,#20001)
|
||||
literals("y","y",#20029)
|
||||
decl(#20029,#20024)
|
||||
#20031=*
|
||||
exprs(#20031,34,#20027,1,"x+1")
|
||||
#20032=@"loc,{#10000},2,13,2,15"
|
||||
locations_default(#20032,#10000,2,13,2,15)
|
||||
hasLocation(#20031,#20032)
|
||||
enclosingStmt(#20031,#20025)
|
||||
exprContainers(#20031,#20001)
|
||||
#20033=*
|
||||
exprs(#20033,79,#20031,0,"x")
|
||||
#20034=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20034,#10000,2,13,2,13)
|
||||
hasLocation(#20033,#20034)
|
||||
enclosingStmt(#20033,#20025)
|
||||
exprContainers(#20033,#20001)
|
||||
literals("x","x",#20033)
|
||||
bind(#20033,#20015)
|
||||
#20035=*
|
||||
exprs(#20035,3,#20031,1,"1")
|
||||
#20036=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20036,#10000,2,15,2,15)
|
||||
hasLocation(#20035,#20036)
|
||||
enclosingStmt(#20035,#20025)
|
||||
exprContainers(#20035,#20001)
|
||||
literals("1","1",#20035)
|
||||
#20037=*
|
||||
stmts(#20037,17,#20001,1,"functio ... []);\n}")
|
||||
#20038=@"loc,{#10000},5,1,7,1"
|
||||
locations_default(#20038,#10000,5,1,7,1)
|
||||
hasLocation(#20037,#20038)
|
||||
stmtContainers(#20037,#20001)
|
||||
#20039=*
|
||||
exprs(#20039,78,#20037,-1,"f")
|
||||
#20040=@"loc,{#10000},5,10,5,10"
|
||||
locations_default(#20040,#10000,5,10,5,10)
|
||||
hasLocation(#20039,#20040)
|
||||
exprContainers(#20039,#20037)
|
||||
literals("f","f",#20039)
|
||||
decl(#20039,#20003)
|
||||
#20041=*
|
||||
scopes(#20041,1)
|
||||
scopenodes(#20037,#20041)
|
||||
scopenesting(#20041,#20000)
|
||||
#20042=@"var;{x};{#20041}"
|
||||
variables(#20042,"x",#20041)
|
||||
#20043=@"var;{arguments};{#20041}"
|
||||
variables(#20043,"arguments",#20041)
|
||||
isArgumentsObject(#20043)
|
||||
#20044=*
|
||||
stmts(#20044,1,#20037,-2,"{\n f ... []);\n}")
|
||||
#20045=@"loc,{#10000},5,14,7,1"
|
||||
locations_default(#20045,#10000,5,14,7,1)
|
||||
hasLocation(#20044,#20045)
|
||||
stmtContainers(#20044,#20037)
|
||||
#20046=*
|
||||
stmts(#20046,21,#20044,0,"for (var x of []);")
|
||||
#20047=@"loc,{#10000},6,5,6,22"
|
||||
locations_default(#20047,#10000,6,5,6,22)
|
||||
hasLocation(#20046,#20047)
|
||||
stmtContainers(#20046,#20037)
|
||||
#20048=*
|
||||
exprs(#20048,7,#20046,1,"[]")
|
||||
#20049=@"loc,{#10000},6,19,6,20"
|
||||
locations_default(#20049,#10000,6,19,6,20)
|
||||
hasLocation(#20048,#20049)
|
||||
enclosingStmt(#20048,#20046)
|
||||
exprContainers(#20048,#20037)
|
||||
arraySize(#20048,0)
|
||||
#20050=*
|
||||
stmts(#20050,18,#20046,0,"var x")
|
||||
#20051=@"loc,{#10000},6,10,6,14"
|
||||
locations_default(#20051,#10000,6,10,6,14)
|
||||
hasLocation(#20050,#20051)
|
||||
stmtContainers(#20050,#20037)
|
||||
#20052=*
|
||||
exprs(#20052,64,#20050,0,"x")
|
||||
#20053=@"loc,{#10000},6,14,6,14"
|
||||
locations_default(#20053,#10000,6,14,6,14)
|
||||
hasLocation(#20052,#20053)
|
||||
enclosingStmt(#20052,#20050)
|
||||
exprContainers(#20052,#20037)
|
||||
#20054=*
|
||||
exprs(#20054,78,#20052,0,"x")
|
||||
hasLocation(#20054,#20053)
|
||||
enclosingStmt(#20054,#20050)
|
||||
exprContainers(#20054,#20037)
|
||||
literals("x","x",#20054)
|
||||
decl(#20054,#20042)
|
||||
#20055=*
|
||||
stmts(#20055,0,#20046,2,";")
|
||||
#20056=@"loc,{#10000},6,22,6,22"
|
||||
locations_default(#20056,#10000,6,22,6,22)
|
||||
hasLocation(#20055,#20056)
|
||||
stmtContainers(#20055,#20037)
|
||||
numlines(#20037,3,3,0)
|
||||
#20057=*
|
||||
lines(#20057,#20001,"for (let x of [1,2,3]) {","
|
||||
")
|
||||
#20058=@"loc,{#10000},1,1,1,24"
|
||||
locations_default(#20058,#10000,1,1,1,24)
|
||||
hasLocation(#20057,#20058)
|
||||
#20059=*
|
||||
lines(#20059,#20001," let y = x+1;","
|
||||
")
|
||||
#20060=@"loc,{#10000},2,1,2,16"
|
||||
locations_default(#20060,#10000,2,1,2,16)
|
||||
hasLocation(#20059,#20060)
|
||||
indentation(#10000,2," ",4)
|
||||
#20061=*
|
||||
lines(#20061,#20001,"}","
|
||||
#20006=*
|
||||
lines(#20006,#20001,"}","
|
||||
")
|
||||
#20062=@"loc,{#10000},3,1,3,1"
|
||||
locations_default(#20062,#10000,3,1,3,1)
|
||||
#20007=@"loc,{#10000},3,1,3,1"
|
||||
locations_default(#20007,#10000,3,1,3,1)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
lines(#20008,#20001,"","
|
||||
")
|
||||
#20009=@"loc,{#10000},4,1,4,0"
|
||||
locations_default(#20009,#10000,4,1,4,0)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
lines(#20010,#20001,"function f() {","
|
||||
")
|
||||
#20011=@"loc,{#10000},5,1,5,14"
|
||||
locations_default(#20011,#10000,5,1,5,14)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
lines(#20012,#20001," for (var x of []);","
|
||||
")
|
||||
#20013=@"loc,{#10000},6,1,6,22"
|
||||
locations_default(#20013,#10000,6,1,6,22)
|
||||
hasLocation(#20012,#20013)
|
||||
indentation(#10000,6," ",4)
|
||||
#20014=*
|
||||
lines(#20014,#20001,"}","
|
||||
")
|
||||
#20015=@"loc,{#10000},7,1,7,1"
|
||||
locations_default(#20015,#10000,7,1,7,1)
|
||||
hasLocation(#20014,#20015)
|
||||
numlines(#20001,7,6,0)
|
||||
#20016=*
|
||||
tokeninfo(#20016,7,#20001,0,"for")
|
||||
#20017=@"loc,{#10000},1,1,1,3"
|
||||
locations_default(#20017,#10000,1,1,1,3)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,1,"(")
|
||||
#20019=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20019,#10000,1,5,1,5)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,7,#20001,2,"let")
|
||||
#20021=@"loc,{#10000},1,6,1,8"
|
||||
locations_default(#20021,#10000,1,6,1,8)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,6,#20001,3,"x")
|
||||
#20023=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20023,#10000,1,10,1,10)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,4,"of")
|
||||
#20025=@"loc,{#10000},1,12,1,13"
|
||||
locations_default(#20025,#10000,1,12,1,13)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,5,"[")
|
||||
#20027=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20027,#10000,1,15,1,15)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,3,#20001,6,"1")
|
||||
#20029=@"loc,{#10000},1,16,1,16"
|
||||
locations_default(#20029,#10000,1,16,1,16)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,7,",")
|
||||
#20031=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20031,#10000,1,17,1,17)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,3,#20001,8,"2")
|
||||
#20033=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20033,#10000,1,18,1,18)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,9,",")
|
||||
#20035=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20035,#10000,1,19,1,19)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,3,#20001,10,"3")
|
||||
#20037=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20037,#10000,1,20,1,20)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,8,#20001,11,"]")
|
||||
#20039=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20039,#10000,1,21,1,21)
|
||||
hasLocation(#20038,#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,8,#20001,12,")")
|
||||
#20041=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20041,#10000,1,22,1,22)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,8,#20001,13,"{")
|
||||
#20043=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20043,#10000,1,24,1,24)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,7,#20001,14,"let")
|
||||
#20045=@"loc,{#10000},2,5,2,7"
|
||||
locations_default(#20045,#10000,2,5,2,7)
|
||||
hasLocation(#20044,#20045)
|
||||
#20046=*
|
||||
tokeninfo(#20046,6,#20001,15,"y")
|
||||
#20047=@"loc,{#10000},2,9,2,9"
|
||||
locations_default(#20047,#10000,2,9,2,9)
|
||||
hasLocation(#20046,#20047)
|
||||
#20048=*
|
||||
tokeninfo(#20048,8,#20001,16,"=")
|
||||
#20049=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20049,#10000,2,11,2,11)
|
||||
hasLocation(#20048,#20049)
|
||||
#20050=*
|
||||
tokeninfo(#20050,6,#20001,17,"x")
|
||||
#20051=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20051,#10000,2,13,2,13)
|
||||
hasLocation(#20050,#20051)
|
||||
#20052=*
|
||||
tokeninfo(#20052,8,#20001,18,"+")
|
||||
#20053=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20053,#10000,2,14,2,14)
|
||||
hasLocation(#20052,#20053)
|
||||
#20054=*
|
||||
tokeninfo(#20054,3,#20001,19,"1")
|
||||
#20055=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20055,#10000,2,15,2,15)
|
||||
hasLocation(#20054,#20055)
|
||||
#20056=*
|
||||
tokeninfo(#20056,8,#20001,20,";")
|
||||
#20057=@"loc,{#10000},2,16,2,16"
|
||||
locations_default(#20057,#10000,2,16,2,16)
|
||||
hasLocation(#20056,#20057)
|
||||
#20058=*
|
||||
tokeninfo(#20058,8,#20001,21,"}")
|
||||
hasLocation(#20058,#20007)
|
||||
#20059=*
|
||||
tokeninfo(#20059,7,#20001,22,"function")
|
||||
#20060=@"loc,{#10000},5,1,5,8"
|
||||
locations_default(#20060,#10000,5,1,5,8)
|
||||
hasLocation(#20059,#20060)
|
||||
#20061=*
|
||||
tokeninfo(#20061,6,#20001,23,"f")
|
||||
#20062=@"loc,{#10000},5,10,5,10"
|
||||
locations_default(#20062,#10000,5,10,5,10)
|
||||
hasLocation(#20061,#20062)
|
||||
#20063=*
|
||||
lines(#20063,#20001,"","
|
||||
")
|
||||
#20064=@"loc,{#10000},4,1,4,0"
|
||||
locations_default(#20064,#10000,4,1,4,0)
|
||||
tokeninfo(#20063,8,#20001,24,"(")
|
||||
#20064=@"loc,{#10000},5,11,5,11"
|
||||
locations_default(#20064,#10000,5,11,5,11)
|
||||
hasLocation(#20063,#20064)
|
||||
#20065=*
|
||||
lines(#20065,#20001,"function f() {","
|
||||
")
|
||||
#20066=@"loc,{#10000},5,1,5,14"
|
||||
locations_default(#20066,#10000,5,1,5,14)
|
||||
tokeninfo(#20065,8,#20001,25,")")
|
||||
#20066=@"loc,{#10000},5,12,5,12"
|
||||
locations_default(#20066,#10000,5,12,5,12)
|
||||
hasLocation(#20065,#20066)
|
||||
#20067=*
|
||||
lines(#20067,#20001," for (var x of []);","
|
||||
")
|
||||
#20068=@"loc,{#10000},6,1,6,22"
|
||||
locations_default(#20068,#10000,6,1,6,22)
|
||||
tokeninfo(#20067,8,#20001,26,"{")
|
||||
#20068=@"loc,{#10000},5,14,5,14"
|
||||
locations_default(#20068,#10000,5,14,5,14)
|
||||
hasLocation(#20067,#20068)
|
||||
indentation(#10000,6," ",4)
|
||||
#20069=*
|
||||
lines(#20069,#20001,"}","
|
||||
")
|
||||
#20070=@"loc,{#10000},7,1,7,1"
|
||||
locations_default(#20070,#10000,7,1,7,1)
|
||||
tokeninfo(#20069,7,#20001,27,"for")
|
||||
#20070=@"loc,{#10000},6,5,6,7"
|
||||
locations_default(#20070,#10000,6,5,6,7)
|
||||
hasLocation(#20069,#20070)
|
||||
numlines(#20001,7,6,0)
|
||||
#20071=*
|
||||
tokeninfo(#20071,7,#20001,0,"for")
|
||||
#20072=@"loc,{#10000},1,1,1,3"
|
||||
locations_default(#20072,#10000,1,1,1,3)
|
||||
tokeninfo(#20071,8,#20001,28,"(")
|
||||
#20072=@"loc,{#10000},6,9,6,9"
|
||||
locations_default(#20072,#10000,6,9,6,9)
|
||||
hasLocation(#20071,#20072)
|
||||
#20073=*
|
||||
tokeninfo(#20073,8,#20001,1,"(")
|
||||
#20074=@"loc,{#10000},1,5,1,5"
|
||||
locations_default(#20074,#10000,1,5,1,5)
|
||||
tokeninfo(#20073,7,#20001,29,"var")
|
||||
#20074=@"loc,{#10000},6,10,6,12"
|
||||
locations_default(#20074,#10000,6,10,6,12)
|
||||
hasLocation(#20073,#20074)
|
||||
#20075=*
|
||||
tokeninfo(#20075,7,#20001,2,"let")
|
||||
#20076=@"loc,{#10000},1,6,1,8"
|
||||
locations_default(#20076,#10000,1,6,1,8)
|
||||
tokeninfo(#20075,6,#20001,30,"x")
|
||||
#20076=@"loc,{#10000},6,14,6,14"
|
||||
locations_default(#20076,#10000,6,14,6,14)
|
||||
hasLocation(#20075,#20076)
|
||||
#20077=*
|
||||
tokeninfo(#20077,6,#20001,3,"x")
|
||||
hasLocation(#20077,#20019)
|
||||
#20078=*
|
||||
tokeninfo(#20078,6,#20001,4,"of")
|
||||
#20079=@"loc,{#10000},1,12,1,13"
|
||||
locations_default(#20079,#10000,1,12,1,13)
|
||||
hasLocation(#20078,#20079)
|
||||
#20080=*
|
||||
tokeninfo(#20080,8,#20001,5,"[")
|
||||
#20081=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20081,#10000,1,15,1,15)
|
||||
hasLocation(#20080,#20081)
|
||||
#20082=*
|
||||
tokeninfo(#20082,3,#20001,6,"1")
|
||||
hasLocation(#20082,#20009)
|
||||
tokeninfo(#20077,6,#20001,31,"of")
|
||||
#20078=@"loc,{#10000},6,16,6,17"
|
||||
locations_default(#20078,#10000,6,16,6,17)
|
||||
hasLocation(#20077,#20078)
|
||||
#20079=*
|
||||
tokeninfo(#20079,8,#20001,32,"[")
|
||||
#20080=@"loc,{#10000},6,19,6,19"
|
||||
locations_default(#20080,#10000,6,19,6,19)
|
||||
hasLocation(#20079,#20080)
|
||||
#20081=*
|
||||
tokeninfo(#20081,8,#20001,33,"]")
|
||||
#20082=@"loc,{#10000},6,20,6,20"
|
||||
locations_default(#20082,#10000,6,20,6,20)
|
||||
hasLocation(#20081,#20082)
|
||||
#20083=*
|
||||
tokeninfo(#20083,8,#20001,7,",")
|
||||
#20084=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20084,#10000,1,17,1,17)
|
||||
tokeninfo(#20083,8,#20001,34,")")
|
||||
#20084=@"loc,{#10000},6,21,6,21"
|
||||
locations_default(#20084,#10000,6,21,6,21)
|
||||
hasLocation(#20083,#20084)
|
||||
#20085=*
|
||||
tokeninfo(#20085,3,#20001,8,"2")
|
||||
hasLocation(#20085,#20011)
|
||||
#20086=*
|
||||
tokeninfo(#20086,8,#20001,9,",")
|
||||
#20087=@"loc,{#10000},1,19,1,19"
|
||||
locations_default(#20087,#10000,1,19,1,19)
|
||||
hasLocation(#20086,#20087)
|
||||
tokeninfo(#20085,8,#20001,35,";")
|
||||
#20086=@"loc,{#10000},6,22,6,22"
|
||||
locations_default(#20086,#10000,6,22,6,22)
|
||||
hasLocation(#20085,#20086)
|
||||
#20087=*
|
||||
tokeninfo(#20087,8,#20001,36,"}")
|
||||
hasLocation(#20087,#20015)
|
||||
#20088=*
|
||||
tokeninfo(#20088,3,#20001,10,"3")
|
||||
hasLocation(#20088,#20013)
|
||||
#20089=*
|
||||
tokeninfo(#20089,8,#20001,11,"]")
|
||||
#20090=@"loc,{#10000},1,21,1,21"
|
||||
locations_default(#20090,#10000,1,21,1,21)
|
||||
hasLocation(#20089,#20090)
|
||||
#20091=*
|
||||
tokeninfo(#20091,8,#20001,12,")")
|
||||
#20092=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20092,#10000,1,22,1,22)
|
||||
hasLocation(#20091,#20092)
|
||||
#20093=*
|
||||
tokeninfo(#20093,8,#20001,13,"{")
|
||||
#20094=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20094,#10000,1,24,1,24)
|
||||
hasLocation(#20093,#20094)
|
||||
#20095=*
|
||||
tokeninfo(#20095,7,#20001,14,"let")
|
||||
#20096=@"loc,{#10000},2,5,2,7"
|
||||
locations_default(#20096,#10000,2,5,2,7)
|
||||
hasLocation(#20095,#20096)
|
||||
tokeninfo(#20088,0,#20001,37,"")
|
||||
#20089=@"loc,{#10000},8,1,8,0"
|
||||
locations_default(#20089,#10000,8,1,8,0)
|
||||
hasLocation(#20088,#20089)
|
||||
toplevels(#20001,0)
|
||||
#20090=@"loc,{#10000},1,1,8,0"
|
||||
locations_default(#20090,#10000,1,1,8,0)
|
||||
hasLocation(#20001,#20090)
|
||||
#20091=@"var;{f};{#20000}"
|
||||
variables(#20091,"f",#20000)
|
||||
#20092=*
|
||||
stmts(#20092,21,#20001,0,"for (le ... x+1;\n}")
|
||||
#20093=@"loc,{#10000},1,1,3,1"
|
||||
locations_default(#20093,#10000,1,1,3,1)
|
||||
hasLocation(#20092,#20093)
|
||||
stmtContainers(#20092,#20001)
|
||||
#20094=*
|
||||
exprs(#20094,7,#20092,1,"[1,2,3]")
|
||||
#20095=@"loc,{#10000},1,15,1,21"
|
||||
locations_default(#20095,#10000,1,15,1,21)
|
||||
hasLocation(#20094,#20095)
|
||||
enclosingStmt(#20094,#20092)
|
||||
exprContainers(#20094,#20001)
|
||||
#20096=*
|
||||
exprs(#20096,3,#20094,0,"1")
|
||||
hasLocation(#20096,#20029)
|
||||
enclosingStmt(#20096,#20092)
|
||||
exprContainers(#20096,#20001)
|
||||
literals("1","1",#20096)
|
||||
#20097=*
|
||||
tokeninfo(#20097,6,#20001,15,"y")
|
||||
hasLocation(#20097,#20030)
|
||||
exprs(#20097,3,#20094,1,"2")
|
||||
hasLocation(#20097,#20033)
|
||||
enclosingStmt(#20097,#20092)
|
||||
exprContainers(#20097,#20001)
|
||||
literals("2","2",#20097)
|
||||
#20098=*
|
||||
tokeninfo(#20098,8,#20001,16,"=")
|
||||
#20099=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20099,#10000,2,11,2,11)
|
||||
hasLocation(#20098,#20099)
|
||||
#20100=*
|
||||
tokeninfo(#20100,6,#20001,17,"x")
|
||||
hasLocation(#20100,#20034)
|
||||
exprs(#20098,3,#20094,2,"3")
|
||||
hasLocation(#20098,#20037)
|
||||
enclosingStmt(#20098,#20092)
|
||||
exprContainers(#20098,#20001)
|
||||
literals("3","3",#20098)
|
||||
arraySize(#20094,3)
|
||||
#20099=*
|
||||
scopes(#20099,6)
|
||||
scopenodes(#20092,#20099)
|
||||
scopenesting(#20099,#20000)
|
||||
#20100=@"var;{x};{#20099}"
|
||||
variables(#20100,"x",#20099)
|
||||
#20101=*
|
||||
tokeninfo(#20101,8,#20001,18,"+")
|
||||
#20102=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20102,#10000,2,14,2,14)
|
||||
stmts(#20101,23,#20092,0,"let x")
|
||||
#20102=@"loc,{#10000},1,6,1,10"
|
||||
locations_default(#20102,#10000,1,6,1,10)
|
||||
hasLocation(#20101,#20102)
|
||||
stmtContainers(#20101,#20001)
|
||||
#20103=*
|
||||
tokeninfo(#20103,3,#20001,19,"1")
|
||||
hasLocation(#20103,#20036)
|
||||
exprs(#20103,64,#20101,0,"x")
|
||||
hasLocation(#20103,#20023)
|
||||
enclosingStmt(#20103,#20101)
|
||||
exprContainers(#20103,#20001)
|
||||
#20104=*
|
||||
tokeninfo(#20104,8,#20001,20,";")
|
||||
#20105=@"loc,{#10000},2,16,2,16"
|
||||
locations_default(#20105,#10000,2,16,2,16)
|
||||
hasLocation(#20104,#20105)
|
||||
#20106=*
|
||||
tokeninfo(#20106,8,#20001,21,"}")
|
||||
hasLocation(#20106,#20062)
|
||||
exprs(#20104,78,#20103,0,"x")
|
||||
hasLocation(#20104,#20023)
|
||||
enclosingStmt(#20104,#20101)
|
||||
exprContainers(#20104,#20001)
|
||||
literals("x","x",#20104)
|
||||
decl(#20104,#20100)
|
||||
#20105=*
|
||||
stmts(#20105,1,#20092,2,"{\n let y = x+1;\n}")
|
||||
#20106=@"loc,{#10000},1,24,3,1"
|
||||
locations_default(#20106,#10000,1,24,3,1)
|
||||
hasLocation(#20105,#20106)
|
||||
stmtContainers(#20105,#20001)
|
||||
#20107=*
|
||||
tokeninfo(#20107,7,#20001,22,"function")
|
||||
#20108=@"loc,{#10000},5,1,5,8"
|
||||
locations_default(#20108,#10000,5,1,5,8)
|
||||
hasLocation(#20107,#20108)
|
||||
scopes(#20107,4)
|
||||
scopenodes(#20105,#20107)
|
||||
scopenesting(#20107,#20099)
|
||||
#20108=@"var;{y};{#20107}"
|
||||
variables(#20108,"y",#20107)
|
||||
#20109=*
|
||||
tokeninfo(#20109,6,#20001,23,"f")
|
||||
hasLocation(#20109,#20040)
|
||||
#20110=*
|
||||
tokeninfo(#20110,8,#20001,24,"(")
|
||||
#20111=@"loc,{#10000},5,11,5,11"
|
||||
locations_default(#20111,#10000,5,11,5,11)
|
||||
hasLocation(#20110,#20111)
|
||||
#20112=*
|
||||
tokeninfo(#20112,8,#20001,25,")")
|
||||
#20113=@"loc,{#10000},5,12,5,12"
|
||||
locations_default(#20113,#10000,5,12,5,12)
|
||||
hasLocation(#20112,#20113)
|
||||
stmts(#20109,23,#20105,0,"let y = x+1;")
|
||||
#20110=@"loc,{#10000},2,5,2,16"
|
||||
locations_default(#20110,#10000,2,5,2,16)
|
||||
hasLocation(#20109,#20110)
|
||||
stmtContainers(#20109,#20001)
|
||||
#20111=*
|
||||
exprs(#20111,64,#20109,0,"y = x+1")
|
||||
#20112=@"loc,{#10000},2,9,2,15"
|
||||
locations_default(#20112,#10000,2,9,2,15)
|
||||
hasLocation(#20111,#20112)
|
||||
enclosingStmt(#20111,#20109)
|
||||
exprContainers(#20111,#20001)
|
||||
#20113=*
|
||||
exprs(#20113,78,#20111,0,"y")
|
||||
hasLocation(#20113,#20047)
|
||||
enclosingStmt(#20113,#20109)
|
||||
exprContainers(#20113,#20001)
|
||||
literals("y","y",#20113)
|
||||
decl(#20113,#20108)
|
||||
#20114=*
|
||||
tokeninfo(#20114,8,#20001,26,"{")
|
||||
#20115=@"loc,{#10000},5,14,5,14"
|
||||
locations_default(#20115,#10000,5,14,5,14)
|
||||
exprs(#20114,34,#20111,1,"x+1")
|
||||
#20115=@"loc,{#10000},2,13,2,15"
|
||||
locations_default(#20115,#10000,2,13,2,15)
|
||||
hasLocation(#20114,#20115)
|
||||
enclosingStmt(#20114,#20109)
|
||||
exprContainers(#20114,#20001)
|
||||
#20116=*
|
||||
tokeninfo(#20116,7,#20001,27,"for")
|
||||
#20117=@"loc,{#10000},6,5,6,7"
|
||||
locations_default(#20117,#10000,6,5,6,7)
|
||||
hasLocation(#20116,#20117)
|
||||
exprs(#20116,79,#20114,0,"x")
|
||||
hasLocation(#20116,#20051)
|
||||
enclosingStmt(#20116,#20109)
|
||||
exprContainers(#20116,#20001)
|
||||
literals("x","x",#20116)
|
||||
bind(#20116,#20100)
|
||||
#20117=*
|
||||
exprs(#20117,3,#20114,1,"1")
|
||||
hasLocation(#20117,#20055)
|
||||
enclosingStmt(#20117,#20109)
|
||||
exprContainers(#20117,#20001)
|
||||
literals("1","1",#20117)
|
||||
#20118=*
|
||||
tokeninfo(#20118,8,#20001,28,"(")
|
||||
#20119=@"loc,{#10000},6,9,6,9"
|
||||
locations_default(#20119,#10000,6,9,6,9)
|
||||
stmts(#20118,17,#20001,1,"functio ... []);\n}")
|
||||
#20119=@"loc,{#10000},5,1,7,1"
|
||||
locations_default(#20119,#10000,5,1,7,1)
|
||||
hasLocation(#20118,#20119)
|
||||
stmtContainers(#20118,#20001)
|
||||
#20120=*
|
||||
tokeninfo(#20120,7,#20001,29,"var")
|
||||
#20121=@"loc,{#10000},6,10,6,12"
|
||||
locations_default(#20121,#10000,6,10,6,12)
|
||||
hasLocation(#20120,#20121)
|
||||
#20122=*
|
||||
tokeninfo(#20122,6,#20001,30,"x")
|
||||
hasLocation(#20122,#20053)
|
||||
#20123=*
|
||||
tokeninfo(#20123,6,#20001,31,"of")
|
||||
#20124=@"loc,{#10000},6,16,6,17"
|
||||
locations_default(#20124,#10000,6,16,6,17)
|
||||
hasLocation(#20123,#20124)
|
||||
#20125=*
|
||||
tokeninfo(#20125,8,#20001,32,"[")
|
||||
#20126=@"loc,{#10000},6,19,6,19"
|
||||
locations_default(#20126,#10000,6,19,6,19)
|
||||
hasLocation(#20125,#20126)
|
||||
#20127=*
|
||||
tokeninfo(#20127,8,#20001,33,"]")
|
||||
#20128=@"loc,{#10000},6,20,6,20"
|
||||
locations_default(#20128,#10000,6,20,6,20)
|
||||
hasLocation(#20127,#20128)
|
||||
#20129=*
|
||||
tokeninfo(#20129,8,#20001,34,")")
|
||||
#20130=@"loc,{#10000},6,21,6,21"
|
||||
locations_default(#20130,#10000,6,21,6,21)
|
||||
hasLocation(#20129,#20130)
|
||||
#20131=*
|
||||
tokeninfo(#20131,8,#20001,35,";")
|
||||
hasLocation(#20131,#20056)
|
||||
exprs(#20120,78,#20118,-1,"f")
|
||||
hasLocation(#20120,#20062)
|
||||
exprContainers(#20120,#20118)
|
||||
literals("f","f",#20120)
|
||||
decl(#20120,#20091)
|
||||
#20121=*
|
||||
scopes(#20121,1)
|
||||
scopenodes(#20118,#20121)
|
||||
scopenesting(#20121,#20000)
|
||||
#20122=@"var;{x};{#20121}"
|
||||
variables(#20122,"x",#20121)
|
||||
#20123=@"var;{arguments};{#20121}"
|
||||
variables(#20123,"arguments",#20121)
|
||||
isArgumentsObject(#20123)
|
||||
#20124=*
|
||||
stmts(#20124,1,#20118,-2,"{\n f ... []);\n}")
|
||||
#20125=@"loc,{#10000},5,14,7,1"
|
||||
locations_default(#20125,#10000,5,14,7,1)
|
||||
hasLocation(#20124,#20125)
|
||||
stmtContainers(#20124,#20118)
|
||||
#20126=*
|
||||
stmts(#20126,21,#20124,0,"for (var x of []);")
|
||||
#20127=@"loc,{#10000},6,5,6,22"
|
||||
locations_default(#20127,#10000,6,5,6,22)
|
||||
hasLocation(#20126,#20127)
|
||||
stmtContainers(#20126,#20118)
|
||||
#20128=*
|
||||
exprs(#20128,7,#20126,1,"[]")
|
||||
#20129=@"loc,{#10000},6,19,6,20"
|
||||
locations_default(#20129,#10000,6,19,6,20)
|
||||
hasLocation(#20128,#20129)
|
||||
enclosingStmt(#20128,#20126)
|
||||
exprContainers(#20128,#20118)
|
||||
arraySize(#20128,0)
|
||||
#20130=*
|
||||
stmts(#20130,18,#20126,0,"var x")
|
||||
#20131=@"loc,{#10000},6,10,6,14"
|
||||
locations_default(#20131,#10000,6,10,6,14)
|
||||
hasLocation(#20130,#20131)
|
||||
stmtContainers(#20130,#20118)
|
||||
#20132=*
|
||||
tokeninfo(#20132,8,#20001,36,"}")
|
||||
hasLocation(#20132,#20070)
|
||||
exprs(#20132,64,#20130,0,"x")
|
||||
hasLocation(#20132,#20076)
|
||||
enclosingStmt(#20132,#20130)
|
||||
exprContainers(#20132,#20118)
|
||||
#20133=*
|
||||
tokeninfo(#20133,0,#20001,37,"")
|
||||
#20134=@"loc,{#10000},8,1,8,0"
|
||||
locations_default(#20134,#10000,8,1,8,0)
|
||||
hasLocation(#20133,#20134)
|
||||
exprs(#20133,78,#20132,0,"x")
|
||||
hasLocation(#20133,#20076)
|
||||
enclosingStmt(#20133,#20130)
|
||||
exprContainers(#20133,#20118)
|
||||
literals("x","x",#20133)
|
||||
decl(#20133,#20122)
|
||||
#20134=*
|
||||
stmts(#20134,0,#20126,2,";")
|
||||
hasLocation(#20134,#20086)
|
||||
stmtContainers(#20134,#20118)
|
||||
#20135=*
|
||||
entry_cfg_node(#20135,#20001)
|
||||
#20136=@"loc,{#10000},1,1,1,0"
|
||||
@@ -425,44 +424,44 @@ locations_default(#20136,#10000,1,1,1,0)
|
||||
hasLocation(#20135,#20136)
|
||||
#20137=*
|
||||
exit_cfg_node(#20137,#20001)
|
||||
hasLocation(#20137,#20134)
|
||||
successor(#20037,#20137)
|
||||
hasLocation(#20137,#20089)
|
||||
successor(#20118,#20137)
|
||||
#20138=*
|
||||
entry_cfg_node(#20138,#20037)
|
||||
entry_cfg_node(#20138,#20118)
|
||||
#20139=@"loc,{#10000},5,1,5,0"
|
||||
locations_default(#20139,#10000,5,1,5,0)
|
||||
hasLocation(#20138,#20139)
|
||||
#20140=*
|
||||
exit_cfg_node(#20140,#20037)
|
||||
exit_cfg_node(#20140,#20118)
|
||||
#20141=@"loc,{#10000},7,2,7,1"
|
||||
locations_default(#20141,#10000,7,2,7,1)
|
||||
hasLocation(#20140,#20141)
|
||||
successor(#20044,#20048)
|
||||
successor(#20048,#20046)
|
||||
successor(#20046,#20050)
|
||||
successor(#20046,#20140)
|
||||
successor(#20055,#20046)
|
||||
successor(#20050,#20054)
|
||||
successor(#20054,#20052)
|
||||
successor(#20052,#20055)
|
||||
successor(#20138,#20044)
|
||||
successor(#20006,#20008)
|
||||
successor(#20012,#20004)
|
||||
successor(#20010,#20012)
|
||||
successor(#20008,#20010)
|
||||
successor(#20004,#20016)
|
||||
successor(#20004,#20037)
|
||||
successor(#20021,#20025)
|
||||
successor(#20025,#20029)
|
||||
successor(#20035,#20031)
|
||||
successor(#20033,#20035)
|
||||
successor(#20031,#20027)
|
||||
successor(#20029,#20033)
|
||||
successor(#20027,#20004)
|
||||
successor(#20016,#20020)
|
||||
successor(#20020,#20018)
|
||||
successor(#20018,#20021)
|
||||
successor(#20039,#20006)
|
||||
successor(#20135,#20039)
|
||||
successor(#20124,#20128)
|
||||
successor(#20128,#20126)
|
||||
successor(#20126,#20130)
|
||||
successor(#20126,#20140)
|
||||
successor(#20134,#20126)
|
||||
successor(#20130,#20133)
|
||||
successor(#20133,#20132)
|
||||
successor(#20132,#20134)
|
||||
successor(#20138,#20124)
|
||||
successor(#20094,#20096)
|
||||
successor(#20098,#20092)
|
||||
successor(#20097,#20098)
|
||||
successor(#20096,#20097)
|
||||
successor(#20092,#20101)
|
||||
successor(#20092,#20118)
|
||||
successor(#20105,#20109)
|
||||
successor(#20109,#20113)
|
||||
successor(#20117,#20114)
|
||||
successor(#20116,#20117)
|
||||
successor(#20114,#20111)
|
||||
successor(#20113,#20116)
|
||||
successor(#20111,#20092)
|
||||
successor(#20101,#20104)
|
||||
successor(#20104,#20103)
|
||||
successor(#20103,#20105)
|
||||
successor(#20120,#20094)
|
||||
successor(#20135,#20120)
|
||||
numlines(#10000,7,6,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,82 +9,82 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,20"
|
||||
locations_default(#20002,#10000,1,1,1,20)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{x};{#20003}"
|
||||
variables(#20004,"x",#20003)
|
||||
#20005=@"local_type_name;{x};{#20003}"
|
||||
local_type_names(#20005,"x",#20003)
|
||||
#20006=@"local_namespace_name;{x};{#20003}"
|
||||
local_namespace_names(#20006,"x",#20003)
|
||||
variables(#20004,"x",#20003)
|
||||
local_type_names(#20005,"x",#20003)
|
||||
local_namespace_names(#20006,"x",#20003)
|
||||
#20007=*
|
||||
stmts(#20007,27,#20001,0,"import x from 'foo';")
|
||||
hasLocation(#20007,#20002)
|
||||
stmtContainers(#20007,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,4,#20007,-1,"'foo'")
|
||||
#20009=@"loc,{#10000},1,15,1,19"
|
||||
locations_default(#20009,#10000,1,15,1,19)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20007)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("foo","'foo'",#20008)
|
||||
#20010=*
|
||||
exprs(#20010,84,#20007,0,"x")
|
||||
#20011=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20011,#10000,1,8,1,8)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20007)
|
||||
exprContainers(#20010,#20001)
|
||||
#20012=*
|
||||
exprs(#20012,78,#20010,1,"x")
|
||||
hasLocation(#20012,#20011)
|
||||
enclosingStmt(#20012,#20007)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("x","x",#20012)
|
||||
decl(#20012,#20004)
|
||||
typedecl(#20012,#20005)
|
||||
namespacedecl(#20012,#20006)
|
||||
#20013=*
|
||||
lines(#20013,#20001,"import x from 'foo';","")
|
||||
hasLocation(#20013,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"import x from 'foo';","")
|
||||
#20003=@"loc,{#10000},1,1,1,20"
|
||||
locations_default(#20003,#10000,1,1,1,20)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"import")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,6,#20001,1,"x")
|
||||
#20007=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20007,#10000,1,8,1,8)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,6,#20001,2,"from")
|
||||
#20009=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20009,#10000,1,10,1,13)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,4,#20001,3,"'foo'")
|
||||
#20011=@"loc,{#10000},1,15,1,19"
|
||||
locations_default(#20011,#10000,1,15,1,19)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,4,";")
|
||||
#20013=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20013,#10000,1,20,1,20)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,7,#20001,0,"import")
|
||||
#20015=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20015,#10000,1,1,1,6)
|
||||
tokeninfo(#20014,0,#20001,5,"")
|
||||
#20015=@"loc,{#10000},1,21,1,20"
|
||||
locations_default(#20015,#10000,1,21,1,20)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,6,#20001,1,"x")
|
||||
hasLocation(#20016,#20011)
|
||||
#20017=*
|
||||
tokeninfo(#20017,6,#20001,2,"from")
|
||||
#20018=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20018,#10000,1,10,1,13)
|
||||
hasLocation(#20017,#20018)
|
||||
#20019=*
|
||||
tokeninfo(#20019,4,#20001,3,"'foo'")
|
||||
hasLocation(#20019,#20009)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20016=@"module;{#10000},1,1"
|
||||
scopes(#20016,3)
|
||||
scopenodes(#20001,#20016)
|
||||
scopenesting(#20016,#20000)
|
||||
isModule(#20001)
|
||||
#20017=@"var;{x};{#20016}"
|
||||
variables(#20017,"x",#20016)
|
||||
#20018=@"local_type_name;{x};{#20016}"
|
||||
local_type_names(#20018,"x",#20016)
|
||||
#20019=@"local_namespace_name;{x};{#20016}"
|
||||
local_namespace_names(#20019,"x",#20016)
|
||||
variables(#20017,"x",#20016)
|
||||
local_type_names(#20018,"x",#20016)
|
||||
local_namespace_names(#20019,"x",#20016)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,4,";")
|
||||
#20021=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20021,#10000,1,20,1,20)
|
||||
hasLocation(#20020,#20021)
|
||||
stmts(#20020,27,#20001,0,"import x from 'foo';")
|
||||
hasLocation(#20020,#20003)
|
||||
stmtContainers(#20020,#20001)
|
||||
#20021=*
|
||||
exprs(#20021,4,#20020,-1,"'foo'")
|
||||
hasLocation(#20021,#20011)
|
||||
enclosingStmt(#20021,#20020)
|
||||
exprContainers(#20021,#20001)
|
||||
literals("foo","'foo'",#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,0,#20001,5,"")
|
||||
#20023=@"loc,{#10000},1,21,1,20"
|
||||
locations_default(#20023,#10000,1,21,1,20)
|
||||
hasLocation(#20022,#20023)
|
||||
exprs(#20022,84,#20020,0,"x")
|
||||
hasLocation(#20022,#20007)
|
||||
enclosingStmt(#20022,#20020)
|
||||
exprContainers(#20022,#20001)
|
||||
#20023=*
|
||||
exprs(#20023,78,#20022,1,"x")
|
||||
hasLocation(#20023,#20007)
|
||||
enclosingStmt(#20023,#20020)
|
||||
exprContainers(#20023,#20001)
|
||||
literals("x","x",#20023)
|
||||
decl(#20023,#20017)
|
||||
typedecl(#20023,#20018)
|
||||
namespacedecl(#20023,#20019)
|
||||
#20024=*
|
||||
entry_cfg_node(#20024,#20001)
|
||||
#20025=@"loc,{#10000},1,1,1,0"
|
||||
@@ -92,9 +92,9 @@ locations_default(#20025,#10000,1,1,1,0)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
exit_cfg_node(#20026,#20001)
|
||||
hasLocation(#20026,#20023)
|
||||
successor(#20007,#20026)
|
||||
successor(#20010,#20007)
|
||||
successor(#20024,#20010)
|
||||
hasLocation(#20026,#20015)
|
||||
successor(#20020,#20026)
|
||||
successor(#20022,#20020)
|
||||
successor(#20024,#20022)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,98 +9,98 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,24"
|
||||
locations_default(#20002,#10000,1,1,1,24)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{y};{#20003}"
|
||||
variables(#20004,"y",#20003)
|
||||
#20005=@"local_type_name;{y};{#20003}"
|
||||
local_type_names(#20005,"y",#20003)
|
||||
#20006=@"local_namespace_name;{y};{#20003}"
|
||||
local_namespace_names(#20006,"y",#20003)
|
||||
variables(#20004,"y",#20003)
|
||||
local_type_names(#20005,"y",#20003)
|
||||
local_namespace_names(#20006,"y",#20003)
|
||||
#20007=*
|
||||
stmts(#20007,27,#20001,0,"import ... 'foo';")
|
||||
hasLocation(#20007,#20002)
|
||||
stmtContainers(#20007,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,4,#20007,-1,"'foo'")
|
||||
#20009=@"loc,{#10000},1,19,1,23"
|
||||
locations_default(#20009,#10000,1,19,1,23)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20007)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("foo","'foo'",#20008)
|
||||
#20010=*
|
||||
exprs(#20010,83,#20007,0,"y")
|
||||
#20011=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20011,#10000,1,10,1,10)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20007)
|
||||
exprContainers(#20010,#20001)
|
||||
#20012=*
|
||||
exprs(#20012,0,#20010,0,"y")
|
||||
hasLocation(#20012,#20011)
|
||||
enclosingStmt(#20012,#20007)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("y","y",#20012)
|
||||
#20013=*
|
||||
exprs(#20013,78,#20010,1,"y")
|
||||
hasLocation(#20013,#20011)
|
||||
enclosingStmt(#20013,#20007)
|
||||
exprContainers(#20013,#20001)
|
||||
literals("y","y",#20013)
|
||||
decl(#20013,#20004)
|
||||
typedecl(#20013,#20005)
|
||||
namespacedecl(#20013,#20006)
|
||||
#20014=*
|
||||
lines(#20014,#20001,"import { y } from 'foo';","")
|
||||
hasLocation(#20014,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"import { y } from 'foo';","")
|
||||
#20003=@"loc,{#10000},1,1,1,24"
|
||||
locations_default(#20003,#10000,1,1,1,24)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20015=*
|
||||
tokeninfo(#20015,7,#20001,0,"import")
|
||||
#20016=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20016,#10000,1,1,1,6)
|
||||
hasLocation(#20015,#20016)
|
||||
#20017=*
|
||||
tokeninfo(#20017,8,#20001,1,"{")
|
||||
#20018=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20018,#10000,1,8,1,8)
|
||||
hasLocation(#20017,#20018)
|
||||
#20019=*
|
||||
tokeninfo(#20019,6,#20001,2,"y")
|
||||
hasLocation(#20019,#20011)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,3,"}")
|
||||
#20021=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20021,#10000,1,12,1,12)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,6,#20001,4,"from")
|
||||
#20023=@"loc,{#10000},1,14,1,17"
|
||||
locations_default(#20023,#10000,1,14,1,17)
|
||||
hasLocation(#20022,#20023)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"import")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,8,#20001,1,"{")
|
||||
#20007=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20007,#10000,1,8,1,8)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,6,#20001,2,"y")
|
||||
#20009=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20009,#10000,1,10,1,10)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,"}")
|
||||
#20011=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20011,#10000,1,12,1,12)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,4,"from")
|
||||
#20013=@"loc,{#10000},1,14,1,17"
|
||||
locations_default(#20013,#10000,1,14,1,17)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,4,#20001,5,"'foo'")
|
||||
#20015=@"loc,{#10000},1,19,1,23"
|
||||
locations_default(#20015,#10000,1,19,1,23)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,6,";")
|
||||
#20017=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20017,#10000,1,24,1,24)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,0,#20001,7,"")
|
||||
#20019=@"loc,{#10000},1,25,1,24"
|
||||
locations_default(#20019,#10000,1,25,1,24)
|
||||
hasLocation(#20018,#20019)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20020=@"module;{#10000},1,1"
|
||||
scopes(#20020,3)
|
||||
scopenodes(#20001,#20020)
|
||||
scopenesting(#20020,#20000)
|
||||
isModule(#20001)
|
||||
#20021=@"var;{y};{#20020}"
|
||||
variables(#20021,"y",#20020)
|
||||
#20022=@"local_type_name;{y};{#20020}"
|
||||
local_type_names(#20022,"y",#20020)
|
||||
#20023=@"local_namespace_name;{y};{#20020}"
|
||||
local_namespace_names(#20023,"y",#20020)
|
||||
variables(#20021,"y",#20020)
|
||||
local_type_names(#20022,"y",#20020)
|
||||
local_namespace_names(#20023,"y",#20020)
|
||||
#20024=*
|
||||
tokeninfo(#20024,4,#20001,5,"'foo'")
|
||||
hasLocation(#20024,#20009)
|
||||
stmts(#20024,27,#20001,0,"import ... 'foo';")
|
||||
hasLocation(#20024,#20003)
|
||||
stmtContainers(#20024,#20001)
|
||||
#20025=*
|
||||
tokeninfo(#20025,8,#20001,6,";")
|
||||
#20026=@"loc,{#10000},1,24,1,24"
|
||||
locations_default(#20026,#10000,1,24,1,24)
|
||||
hasLocation(#20025,#20026)
|
||||
exprs(#20025,4,#20024,-1,"'foo'")
|
||||
hasLocation(#20025,#20015)
|
||||
enclosingStmt(#20025,#20024)
|
||||
exprContainers(#20025,#20001)
|
||||
literals("foo","'foo'",#20025)
|
||||
#20026=*
|
||||
exprs(#20026,83,#20024,0,"y")
|
||||
hasLocation(#20026,#20009)
|
||||
enclosingStmt(#20026,#20024)
|
||||
exprContainers(#20026,#20001)
|
||||
#20027=*
|
||||
tokeninfo(#20027,0,#20001,7,"")
|
||||
#20028=@"loc,{#10000},1,25,1,24"
|
||||
locations_default(#20028,#10000,1,25,1,24)
|
||||
hasLocation(#20027,#20028)
|
||||
exprs(#20027,0,#20026,0,"y")
|
||||
hasLocation(#20027,#20009)
|
||||
enclosingStmt(#20027,#20024)
|
||||
exprContainers(#20027,#20001)
|
||||
literals("y","y",#20027)
|
||||
#20028=*
|
||||
exprs(#20028,78,#20026,1,"y")
|
||||
hasLocation(#20028,#20009)
|
||||
enclosingStmt(#20028,#20024)
|
||||
exprContainers(#20028,#20001)
|
||||
literals("y","y",#20028)
|
||||
decl(#20028,#20021)
|
||||
typedecl(#20028,#20022)
|
||||
namespacedecl(#20028,#20023)
|
||||
#20029=*
|
||||
entry_cfg_node(#20029,#20001)
|
||||
#20030=@"loc,{#10000},1,1,1,0"
|
||||
@@ -108,9 +108,9 @@ locations_default(#20030,#10000,1,1,1,0)
|
||||
hasLocation(#20029,#20030)
|
||||
#20031=*
|
||||
exit_cfg_node(#20031,#20001)
|
||||
hasLocation(#20031,#20028)
|
||||
successor(#20007,#20031)
|
||||
successor(#20010,#20007)
|
||||
successor(#20029,#20010)
|
||||
hasLocation(#20031,#20019)
|
||||
successor(#20024,#20031)
|
||||
successor(#20026,#20024)
|
||||
successor(#20029,#20026)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,110 +9,110 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,29"
|
||||
locations_default(#20002,#10000,1,1,1,29)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{z};{#20003}"
|
||||
variables(#20004,"z",#20003)
|
||||
#20005=@"local_type_name;{z};{#20003}"
|
||||
local_type_names(#20005,"z",#20003)
|
||||
#20006=@"local_namespace_name;{z};{#20003}"
|
||||
local_namespace_names(#20006,"z",#20003)
|
||||
variables(#20004,"z",#20003)
|
||||
local_type_names(#20005,"z",#20003)
|
||||
local_namespace_names(#20006,"z",#20003)
|
||||
#20007=*
|
||||
stmts(#20007,27,#20001,0,"import ... 'foo';")
|
||||
hasLocation(#20007,#20002)
|
||||
stmtContainers(#20007,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,4,#20007,-1,"'foo'")
|
||||
#20009=@"loc,{#10000},1,24,1,28"
|
||||
locations_default(#20009,#10000,1,24,1,28)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20007)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("foo","'foo'",#20008)
|
||||
#20010=*
|
||||
exprs(#20010,83,#20007,0,"y as z")
|
||||
#20011=@"loc,{#10000},1,10,1,15"
|
||||
locations_default(#20011,#10000,1,10,1,15)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20007)
|
||||
exprContainers(#20010,#20001)
|
||||
#20012=*
|
||||
exprs(#20012,0,#20010,0,"y")
|
||||
#20013=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20013,#10000,1,10,1,10)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20007)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("y","y",#20012)
|
||||
#20014=*
|
||||
exprs(#20014,78,#20010,1,"z")
|
||||
#20015=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20015,#10000,1,15,1,15)
|
||||
hasLocation(#20014,#20015)
|
||||
enclosingStmt(#20014,#20007)
|
||||
exprContainers(#20014,#20001)
|
||||
literals("z","z",#20014)
|
||||
decl(#20014,#20004)
|
||||
typedecl(#20014,#20005)
|
||||
namespacedecl(#20014,#20006)
|
||||
#20016=*
|
||||
lines(#20016,#20001,"import { y as z } from 'foo';","")
|
||||
hasLocation(#20016,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"import { y as z } from 'foo';","")
|
||||
#20003=@"loc,{#10000},1,1,1,29"
|
||||
locations_default(#20003,#10000,1,1,1,29)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20017=*
|
||||
tokeninfo(#20017,7,#20001,0,"import")
|
||||
#20018=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20018,#10000,1,1,1,6)
|
||||
hasLocation(#20017,#20018)
|
||||
#20019=*
|
||||
tokeninfo(#20019,8,#20001,1,"{")
|
||||
#20020=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20020,#10000,1,8,1,8)
|
||||
hasLocation(#20019,#20020)
|
||||
#20021=*
|
||||
tokeninfo(#20021,6,#20001,2,"y")
|
||||
hasLocation(#20021,#20013)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"import")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,8,#20001,1,"{")
|
||||
#20007=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20007,#10000,1,8,1,8)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,6,#20001,2,"y")
|
||||
#20009=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20009,#10000,1,10,1,10)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,3,"as")
|
||||
#20011=@"loc,{#10000},1,12,1,13"
|
||||
locations_default(#20011,#10000,1,12,1,13)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,4,"z")
|
||||
#20013=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20013,#10000,1,15,1,15)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,5,"}")
|
||||
#20015=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20015,#10000,1,17,1,17)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,6,#20001,6,"from")
|
||||
#20017=@"loc,{#10000},1,19,1,22"
|
||||
locations_default(#20017,#10000,1,19,1,22)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,4,#20001,7,"'foo'")
|
||||
#20019=@"loc,{#10000},1,24,1,28"
|
||||
locations_default(#20019,#10000,1,24,1,28)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,8,";")
|
||||
#20021=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20021,#10000,1,29,1,29)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,6,#20001,3,"as")
|
||||
#20023=@"loc,{#10000},1,12,1,13"
|
||||
locations_default(#20023,#10000,1,12,1,13)
|
||||
tokeninfo(#20022,0,#20001,9,"")
|
||||
#20023=@"loc,{#10000},1,30,1,29"
|
||||
locations_default(#20023,#10000,1,30,1,29)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,4,"z")
|
||||
hasLocation(#20024,#20015)
|
||||
#20025=*
|
||||
tokeninfo(#20025,8,#20001,5,"}")
|
||||
#20026=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20026,#10000,1,17,1,17)
|
||||
hasLocation(#20025,#20026)
|
||||
#20027=*
|
||||
tokeninfo(#20027,6,#20001,6,"from")
|
||||
#20028=@"loc,{#10000},1,19,1,22"
|
||||
locations_default(#20028,#10000,1,19,1,22)
|
||||
hasLocation(#20027,#20028)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20024=@"module;{#10000},1,1"
|
||||
scopes(#20024,3)
|
||||
scopenodes(#20001,#20024)
|
||||
scopenesting(#20024,#20000)
|
||||
isModule(#20001)
|
||||
#20025=@"var;{z};{#20024}"
|
||||
variables(#20025,"z",#20024)
|
||||
#20026=@"local_type_name;{z};{#20024}"
|
||||
local_type_names(#20026,"z",#20024)
|
||||
#20027=@"local_namespace_name;{z};{#20024}"
|
||||
local_namespace_names(#20027,"z",#20024)
|
||||
variables(#20025,"z",#20024)
|
||||
local_type_names(#20026,"z",#20024)
|
||||
local_namespace_names(#20027,"z",#20024)
|
||||
#20028=*
|
||||
stmts(#20028,27,#20001,0,"import ... 'foo';")
|
||||
hasLocation(#20028,#20003)
|
||||
stmtContainers(#20028,#20001)
|
||||
#20029=*
|
||||
tokeninfo(#20029,4,#20001,7,"'foo'")
|
||||
hasLocation(#20029,#20009)
|
||||
exprs(#20029,4,#20028,-1,"'foo'")
|
||||
hasLocation(#20029,#20019)
|
||||
enclosingStmt(#20029,#20028)
|
||||
exprContainers(#20029,#20001)
|
||||
literals("foo","'foo'",#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,8,";")
|
||||
#20031=@"loc,{#10000},1,29,1,29"
|
||||
locations_default(#20031,#10000,1,29,1,29)
|
||||
exprs(#20030,83,#20028,0,"y as z")
|
||||
#20031=@"loc,{#10000},1,10,1,15"
|
||||
locations_default(#20031,#10000,1,10,1,15)
|
||||
hasLocation(#20030,#20031)
|
||||
enclosingStmt(#20030,#20028)
|
||||
exprContainers(#20030,#20001)
|
||||
#20032=*
|
||||
tokeninfo(#20032,0,#20001,9,"")
|
||||
#20033=@"loc,{#10000},1,30,1,29"
|
||||
locations_default(#20033,#10000,1,30,1,29)
|
||||
hasLocation(#20032,#20033)
|
||||
exprs(#20032,0,#20030,0,"y")
|
||||
hasLocation(#20032,#20009)
|
||||
enclosingStmt(#20032,#20028)
|
||||
exprContainers(#20032,#20001)
|
||||
literals("y","y",#20032)
|
||||
#20033=*
|
||||
exprs(#20033,78,#20030,1,"z")
|
||||
hasLocation(#20033,#20013)
|
||||
enclosingStmt(#20033,#20028)
|
||||
exprContainers(#20033,#20001)
|
||||
literals("z","z",#20033)
|
||||
decl(#20033,#20025)
|
||||
typedecl(#20033,#20026)
|
||||
namespacedecl(#20033,#20027)
|
||||
#20034=*
|
||||
entry_cfg_node(#20034,#20001)
|
||||
#20035=@"loc,{#10000},1,1,1,0"
|
||||
@@ -120,9 +120,9 @@ locations_default(#20035,#10000,1,1,1,0)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
exit_cfg_node(#20036,#20001)
|
||||
hasLocation(#20036,#20033)
|
||||
successor(#20007,#20036)
|
||||
successor(#20010,#20007)
|
||||
successor(#20034,#20010)
|
||||
hasLocation(#20036,#20023)
|
||||
successor(#20028,#20036)
|
||||
successor(#20030,#20028)
|
||||
successor(#20034,#20030)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,143 +9,143 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,32"
|
||||
locations_default(#20002,#10000,1,1,1,32)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{x};{#20003}"
|
||||
variables(#20004,"x",#20003)
|
||||
#20005=@"var;{z};{#20003}"
|
||||
variables(#20005,"z",#20003)
|
||||
#20006=@"local_type_name;{x};{#20003}"
|
||||
local_type_names(#20006,"x",#20003)
|
||||
#20007=@"local_type_name;{z};{#20003}"
|
||||
local_type_names(#20007,"z",#20003)
|
||||
#20008=@"local_namespace_name;{x};{#20003}"
|
||||
local_namespace_names(#20008,"x",#20003)
|
||||
#20009=@"local_namespace_name;{z};{#20003}"
|
||||
local_namespace_names(#20009,"z",#20003)
|
||||
variables(#20004,"x",#20003)
|
||||
variables(#20005,"z",#20003)
|
||||
local_type_names(#20006,"x",#20003)
|
||||
local_type_names(#20007,"z",#20003)
|
||||
local_namespace_names(#20008,"x",#20003)
|
||||
local_namespace_names(#20009,"z",#20003)
|
||||
#20010=*
|
||||
stmts(#20010,27,#20001,0,"import ... 'foo';")
|
||||
hasLocation(#20010,#20002)
|
||||
stmtContainers(#20010,#20001)
|
||||
#20011=*
|
||||
exprs(#20011,4,#20010,-1,"'foo'")
|
||||
#20012=@"loc,{#10000},1,27,1,31"
|
||||
locations_default(#20012,#10000,1,27,1,31)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20010)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("foo","'foo'",#20011)
|
||||
#20013=*
|
||||
exprs(#20013,84,#20010,0,"x")
|
||||
#20014=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20014,#10000,1,8,1,8)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20010)
|
||||
exprContainers(#20013,#20001)
|
||||
#20015=*
|
||||
exprs(#20015,78,#20013,1,"x")
|
||||
hasLocation(#20015,#20014)
|
||||
enclosingStmt(#20015,#20010)
|
||||
exprContainers(#20015,#20001)
|
||||
literals("x","x",#20015)
|
||||
decl(#20015,#20004)
|
||||
typedecl(#20015,#20006)
|
||||
namespacedecl(#20015,#20008)
|
||||
#20016=*
|
||||
exprs(#20016,83,#20010,1,"y as z")
|
||||
#20017=@"loc,{#10000},1,13,1,18"
|
||||
locations_default(#20017,#10000,1,13,1,18)
|
||||
hasLocation(#20016,#20017)
|
||||
enclosingStmt(#20016,#20010)
|
||||
exprContainers(#20016,#20001)
|
||||
#20018=*
|
||||
exprs(#20018,0,#20016,0,"y")
|
||||
#20019=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20019,#10000,1,13,1,13)
|
||||
hasLocation(#20018,#20019)
|
||||
enclosingStmt(#20018,#20010)
|
||||
exprContainers(#20018,#20001)
|
||||
literals("y","y",#20018)
|
||||
#20020=*
|
||||
exprs(#20020,78,#20016,1,"z")
|
||||
#20021=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20021,#10000,1,18,1,18)
|
||||
hasLocation(#20020,#20021)
|
||||
enclosingStmt(#20020,#20010)
|
||||
exprContainers(#20020,#20001)
|
||||
literals("z","z",#20020)
|
||||
decl(#20020,#20005)
|
||||
typedecl(#20020,#20007)
|
||||
namespacedecl(#20020,#20009)
|
||||
#20022=*
|
||||
lines(#20022,#20001,"import x, { y as z } from 'foo';","")
|
||||
hasLocation(#20022,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"import x, { y as z } from 'foo';","")
|
||||
#20003=@"loc,{#10000},1,1,1,32"
|
||||
locations_default(#20003,#10000,1,1,1,32)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20023=*
|
||||
tokeninfo(#20023,7,#20001,0,"import")
|
||||
#20024=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20024,#10000,1,1,1,6)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
tokeninfo(#20025,6,#20001,1,"x")
|
||||
hasLocation(#20025,#20014)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"import")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,6,#20001,1,"x")
|
||||
#20007=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20007,#10000,1,8,1,8)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,8,#20001,2,",")
|
||||
#20009=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20009,#10000,1,9,1,9)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,8,#20001,3,"{")
|
||||
#20011=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20011,#10000,1,11,1,11)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,4,"y")
|
||||
#20013=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20013,#10000,1,13,1,13)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,6,#20001,5,"as")
|
||||
#20015=@"loc,{#10000},1,15,1,16"
|
||||
locations_default(#20015,#10000,1,15,1,16)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,6,#20001,6,"z")
|
||||
#20017=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20017,#10000,1,18,1,18)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,7,"}")
|
||||
#20019=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20019,#10000,1,20,1,20)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,6,#20001,8,"from")
|
||||
#20021=@"loc,{#10000},1,22,1,25"
|
||||
locations_default(#20021,#10000,1,22,1,25)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,4,#20001,9,"'foo'")
|
||||
#20023=@"loc,{#10000},1,27,1,31"
|
||||
locations_default(#20023,#10000,1,27,1,31)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,10,";")
|
||||
#20025=@"loc,{#10000},1,32,1,32"
|
||||
locations_default(#20025,#10000,1,32,1,32)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,2,",")
|
||||
#20027=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20027,#10000,1,9,1,9)
|
||||
tokeninfo(#20026,0,#20001,11,"")
|
||||
#20027=@"loc,{#10000},1,33,1,32"
|
||||
locations_default(#20027,#10000,1,33,1,32)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,3,"{")
|
||||
#20029=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20029,#10000,1,11,1,11)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,6,#20001,4,"y")
|
||||
hasLocation(#20030,#20019)
|
||||
#20031=*
|
||||
tokeninfo(#20031,6,#20001,5,"as")
|
||||
#20032=@"loc,{#10000},1,15,1,16"
|
||||
locations_default(#20032,#10000,1,15,1,16)
|
||||
hasLocation(#20031,#20032)
|
||||
#20033=*
|
||||
tokeninfo(#20033,6,#20001,6,"z")
|
||||
hasLocation(#20033,#20021)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,7,"}")
|
||||
#20035=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20035,#10000,1,20,1,20)
|
||||
hasLocation(#20034,#20035)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20028=@"module;{#10000},1,1"
|
||||
scopes(#20028,3)
|
||||
scopenodes(#20001,#20028)
|
||||
scopenesting(#20028,#20000)
|
||||
isModule(#20001)
|
||||
#20029=@"var;{x};{#20028}"
|
||||
variables(#20029,"x",#20028)
|
||||
#20030=@"var;{z};{#20028}"
|
||||
variables(#20030,"z",#20028)
|
||||
#20031=@"local_type_name;{x};{#20028}"
|
||||
local_type_names(#20031,"x",#20028)
|
||||
#20032=@"local_type_name;{z};{#20028}"
|
||||
local_type_names(#20032,"z",#20028)
|
||||
#20033=@"local_namespace_name;{x};{#20028}"
|
||||
local_namespace_names(#20033,"x",#20028)
|
||||
#20034=@"local_namespace_name;{z};{#20028}"
|
||||
local_namespace_names(#20034,"z",#20028)
|
||||
variables(#20029,"x",#20028)
|
||||
variables(#20030,"z",#20028)
|
||||
local_type_names(#20031,"x",#20028)
|
||||
local_type_names(#20032,"z",#20028)
|
||||
local_namespace_names(#20033,"x",#20028)
|
||||
local_namespace_names(#20034,"z",#20028)
|
||||
#20035=*
|
||||
stmts(#20035,27,#20001,0,"import ... 'foo';")
|
||||
hasLocation(#20035,#20003)
|
||||
stmtContainers(#20035,#20001)
|
||||
#20036=*
|
||||
tokeninfo(#20036,6,#20001,8,"from")
|
||||
#20037=@"loc,{#10000},1,22,1,25"
|
||||
locations_default(#20037,#10000,1,22,1,25)
|
||||
hasLocation(#20036,#20037)
|
||||
exprs(#20036,4,#20035,-1,"'foo'")
|
||||
hasLocation(#20036,#20023)
|
||||
enclosingStmt(#20036,#20035)
|
||||
exprContainers(#20036,#20001)
|
||||
literals("foo","'foo'",#20036)
|
||||
#20037=*
|
||||
exprs(#20037,84,#20035,0,"x")
|
||||
hasLocation(#20037,#20007)
|
||||
enclosingStmt(#20037,#20035)
|
||||
exprContainers(#20037,#20001)
|
||||
#20038=*
|
||||
tokeninfo(#20038,4,#20001,9,"'foo'")
|
||||
hasLocation(#20038,#20012)
|
||||
exprs(#20038,78,#20037,1,"x")
|
||||
hasLocation(#20038,#20007)
|
||||
enclosingStmt(#20038,#20035)
|
||||
exprContainers(#20038,#20001)
|
||||
literals("x","x",#20038)
|
||||
decl(#20038,#20029)
|
||||
typedecl(#20038,#20031)
|
||||
namespacedecl(#20038,#20033)
|
||||
#20039=*
|
||||
tokeninfo(#20039,8,#20001,10,";")
|
||||
#20040=@"loc,{#10000},1,32,1,32"
|
||||
locations_default(#20040,#10000,1,32,1,32)
|
||||
exprs(#20039,83,#20035,1,"y as z")
|
||||
#20040=@"loc,{#10000},1,13,1,18"
|
||||
locations_default(#20040,#10000,1,13,1,18)
|
||||
hasLocation(#20039,#20040)
|
||||
enclosingStmt(#20039,#20035)
|
||||
exprContainers(#20039,#20001)
|
||||
#20041=*
|
||||
tokeninfo(#20041,0,#20001,11,"")
|
||||
#20042=@"loc,{#10000},1,33,1,32"
|
||||
locations_default(#20042,#10000,1,33,1,32)
|
||||
hasLocation(#20041,#20042)
|
||||
exprs(#20041,0,#20039,0,"y")
|
||||
hasLocation(#20041,#20013)
|
||||
enclosingStmt(#20041,#20035)
|
||||
exprContainers(#20041,#20001)
|
||||
literals("y","y",#20041)
|
||||
#20042=*
|
||||
exprs(#20042,78,#20039,1,"z")
|
||||
hasLocation(#20042,#20017)
|
||||
enclosingStmt(#20042,#20035)
|
||||
exprContainers(#20042,#20001)
|
||||
literals("z","z",#20042)
|
||||
decl(#20042,#20030)
|
||||
typedecl(#20042,#20032)
|
||||
namespacedecl(#20042,#20034)
|
||||
#20043=*
|
||||
entry_cfg_node(#20043,#20001)
|
||||
#20044=@"loc,{#10000},1,1,1,0"
|
||||
@@ -153,10 +153,10 @@ locations_default(#20044,#10000,1,1,1,0)
|
||||
hasLocation(#20043,#20044)
|
||||
#20045=*
|
||||
exit_cfg_node(#20045,#20001)
|
||||
hasLocation(#20045,#20042)
|
||||
successor(#20010,#20045)
|
||||
successor(#20016,#20010)
|
||||
successor(#20013,#20016)
|
||||
successor(#20043,#20013)
|
||||
hasLocation(#20045,#20027)
|
||||
successor(#20035,#20045)
|
||||
successor(#20039,#20035)
|
||||
successor(#20037,#20039)
|
||||
successor(#20043,#20037)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,90 +9,90 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,27"
|
||||
locations_default(#20002,#10000,1,1,1,27)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{foo};{#20003}"
|
||||
variables(#20004,"foo",#20003)
|
||||
#20005=@"local_namespace_name;{foo};{#20003}"
|
||||
local_namespace_names(#20005,"foo",#20003)
|
||||
variables(#20004,"foo",#20003)
|
||||
local_namespace_names(#20005,"foo",#20003)
|
||||
#20006=*
|
||||
stmts(#20006,27,#20001,0,"import ... 'foo';")
|
||||
hasLocation(#20006,#20002)
|
||||
stmtContainers(#20006,#20001)
|
||||
#20007=*
|
||||
exprs(#20007,4,#20006,-1,"'foo'")
|
||||
#20008=@"loc,{#10000},1,22,1,26"
|
||||
locations_default(#20008,#10000,1,22,1,26)
|
||||
hasLocation(#20007,#20008)
|
||||
enclosingStmt(#20007,#20006)
|
||||
exprContainers(#20007,#20001)
|
||||
literals("foo","'foo'",#20007)
|
||||
#20009=*
|
||||
exprs(#20009,85,#20006,0,"* as foo")
|
||||
#20010=@"loc,{#10000},1,8,1,15"
|
||||
locations_default(#20010,#10000,1,8,1,15)
|
||||
hasLocation(#20009,#20010)
|
||||
enclosingStmt(#20009,#20006)
|
||||
exprContainers(#20009,#20001)
|
||||
#20011=*
|
||||
exprs(#20011,78,#20009,1,"foo")
|
||||
#20012=@"loc,{#10000},1,13,1,15"
|
||||
locations_default(#20012,#10000,1,13,1,15)
|
||||
hasLocation(#20011,#20012)
|
||||
enclosingStmt(#20011,#20006)
|
||||
exprContainers(#20011,#20001)
|
||||
literals("foo","foo",#20011)
|
||||
decl(#20011,#20004)
|
||||
namespacedecl(#20011,#20005)
|
||||
#20013=*
|
||||
lines(#20013,#20001,"import * as foo from 'foo';","")
|
||||
hasLocation(#20013,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"import * as foo from 'foo';","")
|
||||
#20003=@"loc,{#10000},1,1,1,27"
|
||||
locations_default(#20003,#10000,1,1,1,27)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"import")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,8,#20001,1,"*")
|
||||
#20007=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20007,#10000,1,8,1,8)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,6,#20001,2,"as")
|
||||
#20009=@"loc,{#10000},1,10,1,11"
|
||||
locations_default(#20009,#10000,1,10,1,11)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,3,"foo")
|
||||
#20011=@"loc,{#10000},1,13,1,15"
|
||||
locations_default(#20011,#10000,1,13,1,15)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,4,"from")
|
||||
#20013=@"loc,{#10000},1,17,1,20"
|
||||
locations_default(#20013,#10000,1,17,1,20)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,7,#20001,0,"import")
|
||||
#20015=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20015,#10000,1,1,1,6)
|
||||
tokeninfo(#20014,4,#20001,5,"'foo'")
|
||||
#20015=@"loc,{#10000},1,22,1,26"
|
||||
locations_default(#20015,#10000,1,22,1,26)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,1,"*")
|
||||
#20017=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20017,#10000,1,8,1,8)
|
||||
tokeninfo(#20016,8,#20001,6,";")
|
||||
#20017=@"loc,{#10000},1,27,1,27"
|
||||
locations_default(#20017,#10000,1,27,1,27)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,6,#20001,2,"as")
|
||||
#20019=@"loc,{#10000},1,10,1,11"
|
||||
locations_default(#20019,#10000,1,10,1,11)
|
||||
tokeninfo(#20018,0,#20001,7,"")
|
||||
#20019=@"loc,{#10000},1,28,1,27"
|
||||
locations_default(#20019,#10000,1,28,1,27)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,6,#20001,3,"foo")
|
||||
hasLocation(#20020,#20012)
|
||||
#20021=*
|
||||
tokeninfo(#20021,6,#20001,4,"from")
|
||||
#20022=@"loc,{#10000},1,17,1,20"
|
||||
locations_default(#20022,#10000,1,17,1,20)
|
||||
hasLocation(#20021,#20022)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20020=@"module;{#10000},1,1"
|
||||
scopes(#20020,3)
|
||||
scopenodes(#20001,#20020)
|
||||
scopenesting(#20020,#20000)
|
||||
isModule(#20001)
|
||||
#20021=@"var;{foo};{#20020}"
|
||||
variables(#20021,"foo",#20020)
|
||||
#20022=@"local_namespace_name;{foo};{#20020}"
|
||||
local_namespace_names(#20022,"foo",#20020)
|
||||
variables(#20021,"foo",#20020)
|
||||
local_namespace_names(#20022,"foo",#20020)
|
||||
#20023=*
|
||||
tokeninfo(#20023,4,#20001,5,"'foo'")
|
||||
hasLocation(#20023,#20008)
|
||||
stmts(#20023,27,#20001,0,"import ... 'foo';")
|
||||
hasLocation(#20023,#20003)
|
||||
stmtContainers(#20023,#20001)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,6,";")
|
||||
#20025=@"loc,{#10000},1,27,1,27"
|
||||
locations_default(#20025,#10000,1,27,1,27)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,0,#20001,7,"")
|
||||
#20027=@"loc,{#10000},1,28,1,27"
|
||||
locations_default(#20027,#10000,1,28,1,27)
|
||||
hasLocation(#20026,#20027)
|
||||
exprs(#20024,4,#20023,-1,"'foo'")
|
||||
hasLocation(#20024,#20015)
|
||||
enclosingStmt(#20024,#20023)
|
||||
exprContainers(#20024,#20001)
|
||||
literals("foo","'foo'",#20024)
|
||||
#20025=*
|
||||
exprs(#20025,85,#20023,0,"* as foo")
|
||||
#20026=@"loc,{#10000},1,8,1,15"
|
||||
locations_default(#20026,#10000,1,8,1,15)
|
||||
hasLocation(#20025,#20026)
|
||||
enclosingStmt(#20025,#20023)
|
||||
exprContainers(#20025,#20001)
|
||||
#20027=*
|
||||
exprs(#20027,78,#20025,1,"foo")
|
||||
hasLocation(#20027,#20011)
|
||||
enclosingStmt(#20027,#20023)
|
||||
exprContainers(#20027,#20001)
|
||||
literals("foo","foo",#20027)
|
||||
decl(#20027,#20021)
|
||||
namespacedecl(#20027,#20022)
|
||||
#20028=*
|
||||
entry_cfg_node(#20028,#20001)
|
||||
#20029=@"loc,{#10000},1,1,1,0"
|
||||
@@ -100,9 +100,9 @@ locations_default(#20029,#10000,1,1,1,0)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
exit_cfg_node(#20030,#20001)
|
||||
hasLocation(#20030,#20027)
|
||||
successor(#20006,#20030)
|
||||
successor(#20009,#20006)
|
||||
successor(#20028,#20009)
|
||||
hasLocation(#20030,#20019)
|
||||
successor(#20023,#20030)
|
||||
successor(#20025,#20023)
|
||||
successor(#20028,#20025)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,49 +9,49 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,1,13"
|
||||
locations_default(#20002,#10000,1,1,1,13)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=*
|
||||
stmts(#20004,27,#20001,0,"import 'foo';")
|
||||
hasLocation(#20004,#20002)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,4,#20004,-1,"'foo'")
|
||||
#20006=@"loc,{#10000},1,8,1,12"
|
||||
locations_default(#20006,#10000,1,8,1,12)
|
||||
hasLocation(#20005,#20006)
|
||||
enclosingStmt(#20005,#20004)
|
||||
exprContainers(#20005,#20001)
|
||||
literals("foo","'foo'",#20005)
|
||||
#20007=*
|
||||
lines(#20007,#20001,"import 'foo';","")
|
||||
hasLocation(#20007,#20002)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"import 'foo';","")
|
||||
#20003=@"loc,{#10000},1,1,1,13"
|
||||
locations_default(#20003,#10000,1,1,1,13)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20004=*
|
||||
tokeninfo(#20004,7,#20001,0,"import")
|
||||
#20005=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20005,#10000,1,1,1,6)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,4,#20001,1,"'foo'")
|
||||
#20007=@"loc,{#10000},1,8,1,12"
|
||||
locations_default(#20007,#10000,1,8,1,12)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,0,"import")
|
||||
#20009=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20009,#10000,1,1,1,6)
|
||||
tokeninfo(#20008,8,#20001,2,";")
|
||||
#20009=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20009,#10000,1,13,1,13)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,4,#20001,1,"'foo'")
|
||||
hasLocation(#20010,#20006)
|
||||
#20011=*
|
||||
tokeninfo(#20011,8,#20001,2,";")
|
||||
#20012=@"loc,{#10000},1,13,1,13"
|
||||
locations_default(#20012,#10000,1,13,1,13)
|
||||
hasLocation(#20011,#20012)
|
||||
tokeninfo(#20010,0,#20001,3,"")
|
||||
#20011=@"loc,{#10000},1,14,1,13"
|
||||
locations_default(#20011,#10000,1,14,1,13)
|
||||
hasLocation(#20010,#20011)
|
||||
toplevels(#20001,0)
|
||||
hasLocation(#20001,#20003)
|
||||
#20012=@"module;{#10000},1,1"
|
||||
scopes(#20012,3)
|
||||
scopenodes(#20001,#20012)
|
||||
scopenesting(#20012,#20000)
|
||||
isModule(#20001)
|
||||
#20013=*
|
||||
tokeninfo(#20013,0,#20001,3,"")
|
||||
#20014=@"loc,{#10000},1,14,1,13"
|
||||
locations_default(#20014,#10000,1,14,1,13)
|
||||
hasLocation(#20013,#20014)
|
||||
stmts(#20013,27,#20001,0,"import 'foo';")
|
||||
hasLocation(#20013,#20003)
|
||||
stmtContainers(#20013,#20001)
|
||||
#20014=*
|
||||
exprs(#20014,4,#20013,-1,"'foo'")
|
||||
hasLocation(#20014,#20007)
|
||||
enclosingStmt(#20014,#20013)
|
||||
exprContainers(#20014,#20001)
|
||||
literals("foo","'foo'",#20014)
|
||||
#20015=*
|
||||
entry_cfg_node(#20015,#20001)
|
||||
#20016=@"loc,{#10000},1,1,1,0"
|
||||
@@ -59,8 +59,8 @@ locations_default(#20016,#10000,1,1,1,0)
|
||||
hasLocation(#20015,#20016)
|
||||
#20017=*
|
||||
exit_cfg_node(#20017,#20001)
|
||||
hasLocation(#20017,#20014)
|
||||
successor(#20004,#20017)
|
||||
successor(#20015,#20004)
|
||||
hasLocation(#20017,#20011)
|
||||
successor(#20013,#20017)
|
||||
successor(#20015,#20013)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,207 +9,207 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,3,29"
|
||||
locations_default(#20002,#10000,1,1,3,29)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{x};{#20003}"
|
||||
variables(#20004,"x",#20003)
|
||||
#20005=@"var;{z};{#20003}"
|
||||
variables(#20005,"z",#20003)
|
||||
#20006=@"local_type_name;{x};{#20003}"
|
||||
local_type_names(#20006,"x",#20003)
|
||||
#20007=@"local_type_name;{z};{#20003}"
|
||||
local_type_names(#20007,"z",#20003)
|
||||
#20008=@"local_namespace_name;{x};{#20003}"
|
||||
local_namespace_names(#20008,"x",#20003)
|
||||
#20009=@"local_namespace_name;{z};{#20003}"
|
||||
local_namespace_names(#20009,"z",#20003)
|
||||
variables(#20004,"x",#20003)
|
||||
variables(#20005,"z",#20003)
|
||||
local_type_names(#20006,"x",#20003)
|
||||
local_type_names(#20007,"z",#20003)
|
||||
local_namespace_names(#20008,"x",#20003)
|
||||
local_namespace_names(#20009,"z",#20003)
|
||||
#20010=*
|
||||
stmts(#20010,27,#20001,0,"import x from 'foo';")
|
||||
#20011=@"loc,{#10000},1,1,1,20"
|
||||
locations_default(#20011,#10000,1,1,1,20)
|
||||
hasLocation(#20010,#20011)
|
||||
stmtContainers(#20010,#20001)
|
||||
#20012=*
|
||||
exprs(#20012,4,#20010,-1,"'foo'")
|
||||
#20013=@"loc,{#10000},1,15,1,19"
|
||||
locations_default(#20013,#10000,1,15,1,19)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20010)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("foo","'foo'",#20012)
|
||||
#20014=*
|
||||
exprs(#20014,84,#20010,0,"x")
|
||||
#20015=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20015,#10000,1,8,1,8)
|
||||
hasLocation(#20014,#20015)
|
||||
enclosingStmt(#20014,#20010)
|
||||
exprContainers(#20014,#20001)
|
||||
#20016=*
|
||||
exprs(#20016,78,#20014,1,"x")
|
||||
hasLocation(#20016,#20015)
|
||||
enclosingStmt(#20016,#20010)
|
||||
exprContainers(#20016,#20001)
|
||||
literals("x","x",#20016)
|
||||
decl(#20016,#20004)
|
||||
typedecl(#20016,#20006)
|
||||
namespacedecl(#20016,#20008)
|
||||
#20017=*
|
||||
stmts(#20017,27,#20001,1,"import 'bar';")
|
||||
#20018=@"loc,{#10000},2,1,2,13"
|
||||
locations_default(#20018,#10000,2,1,2,13)
|
||||
hasLocation(#20017,#20018)
|
||||
stmtContainers(#20017,#20001)
|
||||
#20019=*
|
||||
exprs(#20019,4,#20017,-1,"'bar'")
|
||||
#20020=@"loc,{#10000},2,8,2,12"
|
||||
locations_default(#20020,#10000,2,8,2,12)
|
||||
hasLocation(#20019,#20020)
|
||||
enclosingStmt(#20019,#20017)
|
||||
exprContainers(#20019,#20001)
|
||||
literals("bar","'bar'",#20019)
|
||||
#20021=*
|
||||
stmts(#20021,27,#20001,2,"import ... 'baz';")
|
||||
#20022=@"loc,{#10000},3,1,3,29"
|
||||
locations_default(#20022,#10000,3,1,3,29)
|
||||
hasLocation(#20021,#20022)
|
||||
stmtContainers(#20021,#20001)
|
||||
#20023=*
|
||||
exprs(#20023,4,#20021,-1,"'baz'")
|
||||
#20024=@"loc,{#10000},3,24,3,28"
|
||||
locations_default(#20024,#10000,3,24,3,28)
|
||||
hasLocation(#20023,#20024)
|
||||
enclosingStmt(#20023,#20021)
|
||||
exprContainers(#20023,#20001)
|
||||
literals("baz","'baz'",#20023)
|
||||
#20025=*
|
||||
exprs(#20025,83,#20021,0,"y as z")
|
||||
#20026=@"loc,{#10000},3,10,3,15"
|
||||
locations_default(#20026,#10000,3,10,3,15)
|
||||
hasLocation(#20025,#20026)
|
||||
enclosingStmt(#20025,#20021)
|
||||
exprContainers(#20025,#20001)
|
||||
#20027=*
|
||||
exprs(#20027,0,#20025,0,"y")
|
||||
#20028=@"loc,{#10000},3,10,3,10"
|
||||
locations_default(#20028,#10000,3,10,3,10)
|
||||
hasLocation(#20027,#20028)
|
||||
enclosingStmt(#20027,#20021)
|
||||
exprContainers(#20027,#20001)
|
||||
literals("y","y",#20027)
|
||||
#20029=*
|
||||
exprs(#20029,78,#20025,1,"z")
|
||||
#20030=@"loc,{#10000},3,15,3,15"
|
||||
locations_default(#20030,#10000,3,15,3,15)
|
||||
hasLocation(#20029,#20030)
|
||||
enclosingStmt(#20029,#20021)
|
||||
exprContainers(#20029,#20001)
|
||||
literals("z","z",#20029)
|
||||
decl(#20029,#20005)
|
||||
typedecl(#20029,#20007)
|
||||
namespacedecl(#20029,#20009)
|
||||
#20031=*
|
||||
lines(#20031,#20001,"import x from 'foo';","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"import x from 'foo';","
|
||||
")
|
||||
hasLocation(#20031,#20011)
|
||||
#20032=*
|
||||
lines(#20032,#20001,"import 'bar';","
|
||||
#20003=@"loc,{#10000},1,1,1,20"
|
||||
locations_default(#20003,#10000,1,1,1,20)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001,"import 'bar';","
|
||||
")
|
||||
hasLocation(#20032,#20018)
|
||||
#20033=*
|
||||
lines(#20033,#20001,"import { y as z } from 'baz';","")
|
||||
hasLocation(#20033,#20022)
|
||||
#20005=@"loc,{#10000},2,1,2,13"
|
||||
locations_default(#20005,#10000,2,1,2,13)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
lines(#20006,#20001,"import { y as z } from 'baz';","")
|
||||
#20007=@"loc,{#10000},3,1,3,29"
|
||||
locations_default(#20007,#10000,3,1,3,29)
|
||||
hasLocation(#20006,#20007)
|
||||
numlines(#20001,3,3,0)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,0,"import")
|
||||
#20009=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20009,#10000,1,1,1,6)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,1,"x")
|
||||
#20011=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20011,#10000,1,8,1,8)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,2,"from")
|
||||
#20013=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20013,#10000,1,10,1,13)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,4,#20001,3,"'foo'")
|
||||
#20015=@"loc,{#10000},1,15,1,19"
|
||||
locations_default(#20015,#10000,1,15,1,19)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,4,";")
|
||||
#20017=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20017,#10000,1,20,1,20)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,7,#20001,5,"import")
|
||||
#20019=@"loc,{#10000},2,1,2,6"
|
||||
locations_default(#20019,#10000,2,1,2,6)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,4,#20001,6,"'bar'")
|
||||
#20021=@"loc,{#10000},2,8,2,12"
|
||||
locations_default(#20021,#10000,2,8,2,12)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,7,";")
|
||||
#20023=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20023,#10000,2,13,2,13)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,7,#20001,8,"import")
|
||||
#20025=@"loc,{#10000},3,1,3,6"
|
||||
locations_default(#20025,#10000,3,1,3,6)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,9,"{")
|
||||
#20027=@"loc,{#10000},3,8,3,8"
|
||||
locations_default(#20027,#10000,3,8,3,8)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,6,#20001,10,"y")
|
||||
#20029=@"loc,{#10000},3,10,3,10"
|
||||
locations_default(#20029,#10000,3,10,3,10)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,6,#20001,11,"as")
|
||||
#20031=@"loc,{#10000},3,12,3,13"
|
||||
locations_default(#20031,#10000,3,12,3,13)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,6,#20001,12,"z")
|
||||
#20033=@"loc,{#10000},3,15,3,15"
|
||||
locations_default(#20033,#10000,3,15,3,15)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,7,#20001,0,"import")
|
||||
#20035=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20035,#10000,1,1,1,6)
|
||||
tokeninfo(#20034,8,#20001,13,"}")
|
||||
#20035=@"loc,{#10000},3,17,3,17"
|
||||
locations_default(#20035,#10000,3,17,3,17)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,6,#20001,1,"x")
|
||||
hasLocation(#20036,#20015)
|
||||
#20037=*
|
||||
tokeninfo(#20037,6,#20001,2,"from")
|
||||
#20038=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20038,#10000,1,10,1,13)
|
||||
hasLocation(#20037,#20038)
|
||||
#20039=*
|
||||
tokeninfo(#20039,4,#20001,3,"'foo'")
|
||||
hasLocation(#20039,#20013)
|
||||
tokeninfo(#20036,6,#20001,14,"from")
|
||||
#20037=@"loc,{#10000},3,19,3,22"
|
||||
locations_default(#20037,#10000,3,19,3,22)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,4,#20001,15,"'baz'")
|
||||
#20039=@"loc,{#10000},3,24,3,28"
|
||||
locations_default(#20039,#10000,3,24,3,28)
|
||||
hasLocation(#20038,#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,8,#20001,4,";")
|
||||
#20041=@"loc,{#10000},1,20,1,20"
|
||||
locations_default(#20041,#10000,1,20,1,20)
|
||||
tokeninfo(#20040,8,#20001,16,";")
|
||||
#20041=@"loc,{#10000},3,29,3,29"
|
||||
locations_default(#20041,#10000,3,29,3,29)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,7,#20001,5,"import")
|
||||
#20043=@"loc,{#10000},2,1,2,6"
|
||||
locations_default(#20043,#10000,2,1,2,6)
|
||||
tokeninfo(#20042,0,#20001,17,"")
|
||||
#20043=@"loc,{#10000},3,30,3,29"
|
||||
locations_default(#20043,#10000,3,30,3,29)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,4,#20001,6,"'bar'")
|
||||
hasLocation(#20044,#20020)
|
||||
#20045=*
|
||||
tokeninfo(#20045,8,#20001,7,";")
|
||||
#20046=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20046,#10000,2,13,2,13)
|
||||
hasLocation(#20045,#20046)
|
||||
#20047=*
|
||||
tokeninfo(#20047,7,#20001,8,"import")
|
||||
#20048=@"loc,{#10000},3,1,3,6"
|
||||
locations_default(#20048,#10000,3,1,3,6)
|
||||
hasLocation(#20047,#20048)
|
||||
#20049=*
|
||||
tokeninfo(#20049,8,#20001,9,"{")
|
||||
#20050=@"loc,{#10000},3,8,3,8"
|
||||
locations_default(#20050,#10000,3,8,3,8)
|
||||
hasLocation(#20049,#20050)
|
||||
#20051=*
|
||||
tokeninfo(#20051,6,#20001,10,"y")
|
||||
hasLocation(#20051,#20028)
|
||||
toplevels(#20001,0)
|
||||
#20044=@"loc,{#10000},1,1,3,29"
|
||||
locations_default(#20044,#10000,1,1,3,29)
|
||||
hasLocation(#20001,#20044)
|
||||
#20045=@"module;{#10000},1,1"
|
||||
scopes(#20045,3)
|
||||
scopenodes(#20001,#20045)
|
||||
scopenesting(#20045,#20000)
|
||||
isModule(#20001)
|
||||
#20046=@"var;{x};{#20045}"
|
||||
variables(#20046,"x",#20045)
|
||||
#20047=@"var;{z};{#20045}"
|
||||
variables(#20047,"z",#20045)
|
||||
#20048=@"local_type_name;{x};{#20045}"
|
||||
local_type_names(#20048,"x",#20045)
|
||||
#20049=@"local_type_name;{z};{#20045}"
|
||||
local_type_names(#20049,"z",#20045)
|
||||
#20050=@"local_namespace_name;{x};{#20045}"
|
||||
local_namespace_names(#20050,"x",#20045)
|
||||
#20051=@"local_namespace_name;{z};{#20045}"
|
||||
local_namespace_names(#20051,"z",#20045)
|
||||
variables(#20046,"x",#20045)
|
||||
variables(#20047,"z",#20045)
|
||||
local_type_names(#20048,"x",#20045)
|
||||
local_type_names(#20049,"z",#20045)
|
||||
local_namespace_names(#20050,"x",#20045)
|
||||
local_namespace_names(#20051,"z",#20045)
|
||||
#20052=*
|
||||
tokeninfo(#20052,6,#20001,11,"as")
|
||||
#20053=@"loc,{#10000},3,12,3,13"
|
||||
locations_default(#20053,#10000,3,12,3,13)
|
||||
hasLocation(#20052,#20053)
|
||||
stmts(#20052,27,#20001,0,"import x from 'foo';")
|
||||
hasLocation(#20052,#20003)
|
||||
stmtContainers(#20052,#20001)
|
||||
#20053=*
|
||||
exprs(#20053,4,#20052,-1,"'foo'")
|
||||
hasLocation(#20053,#20015)
|
||||
enclosingStmt(#20053,#20052)
|
||||
exprContainers(#20053,#20001)
|
||||
literals("foo","'foo'",#20053)
|
||||
#20054=*
|
||||
tokeninfo(#20054,6,#20001,12,"z")
|
||||
hasLocation(#20054,#20030)
|
||||
exprs(#20054,84,#20052,0,"x")
|
||||
hasLocation(#20054,#20011)
|
||||
enclosingStmt(#20054,#20052)
|
||||
exprContainers(#20054,#20001)
|
||||
#20055=*
|
||||
tokeninfo(#20055,8,#20001,13,"}")
|
||||
#20056=@"loc,{#10000},3,17,3,17"
|
||||
locations_default(#20056,#10000,3,17,3,17)
|
||||
hasLocation(#20055,#20056)
|
||||
exprs(#20055,78,#20054,1,"x")
|
||||
hasLocation(#20055,#20011)
|
||||
enclosingStmt(#20055,#20052)
|
||||
exprContainers(#20055,#20001)
|
||||
literals("x","x",#20055)
|
||||
decl(#20055,#20046)
|
||||
typedecl(#20055,#20048)
|
||||
namespacedecl(#20055,#20050)
|
||||
#20056=*
|
||||
stmts(#20056,27,#20001,1,"import 'bar';")
|
||||
hasLocation(#20056,#20005)
|
||||
stmtContainers(#20056,#20001)
|
||||
#20057=*
|
||||
tokeninfo(#20057,6,#20001,14,"from")
|
||||
#20058=@"loc,{#10000},3,19,3,22"
|
||||
locations_default(#20058,#10000,3,19,3,22)
|
||||
hasLocation(#20057,#20058)
|
||||
exprs(#20057,4,#20056,-1,"'bar'")
|
||||
hasLocation(#20057,#20021)
|
||||
enclosingStmt(#20057,#20056)
|
||||
exprContainers(#20057,#20001)
|
||||
literals("bar","'bar'",#20057)
|
||||
#20058=*
|
||||
stmts(#20058,27,#20001,2,"import ... 'baz';")
|
||||
hasLocation(#20058,#20007)
|
||||
stmtContainers(#20058,#20001)
|
||||
#20059=*
|
||||
tokeninfo(#20059,4,#20001,15,"'baz'")
|
||||
hasLocation(#20059,#20024)
|
||||
exprs(#20059,4,#20058,-1,"'baz'")
|
||||
hasLocation(#20059,#20039)
|
||||
enclosingStmt(#20059,#20058)
|
||||
exprContainers(#20059,#20001)
|
||||
literals("baz","'baz'",#20059)
|
||||
#20060=*
|
||||
tokeninfo(#20060,8,#20001,16,";")
|
||||
#20061=@"loc,{#10000},3,29,3,29"
|
||||
locations_default(#20061,#10000,3,29,3,29)
|
||||
exprs(#20060,83,#20058,0,"y as z")
|
||||
#20061=@"loc,{#10000},3,10,3,15"
|
||||
locations_default(#20061,#10000,3,10,3,15)
|
||||
hasLocation(#20060,#20061)
|
||||
enclosingStmt(#20060,#20058)
|
||||
exprContainers(#20060,#20001)
|
||||
#20062=*
|
||||
tokeninfo(#20062,0,#20001,17,"")
|
||||
#20063=@"loc,{#10000},3,30,3,29"
|
||||
locations_default(#20063,#10000,3,30,3,29)
|
||||
hasLocation(#20062,#20063)
|
||||
exprs(#20062,0,#20060,0,"y")
|
||||
hasLocation(#20062,#20029)
|
||||
enclosingStmt(#20062,#20058)
|
||||
exprContainers(#20062,#20001)
|
||||
literals("y","y",#20062)
|
||||
#20063=*
|
||||
exprs(#20063,78,#20060,1,"z")
|
||||
hasLocation(#20063,#20033)
|
||||
enclosingStmt(#20063,#20058)
|
||||
exprContainers(#20063,#20001)
|
||||
literals("z","z",#20063)
|
||||
decl(#20063,#20047)
|
||||
typedecl(#20063,#20049)
|
||||
namespacedecl(#20063,#20051)
|
||||
#20064=*
|
||||
entry_cfg_node(#20064,#20001)
|
||||
#20065=@"loc,{#10000},1,1,1,0"
|
||||
@@ -217,12 +217,12 @@ locations_default(#20065,#10000,1,1,1,0)
|
||||
hasLocation(#20064,#20065)
|
||||
#20066=*
|
||||
exit_cfg_node(#20066,#20001)
|
||||
hasLocation(#20066,#20063)
|
||||
successor(#20021,#20066)
|
||||
successor(#20017,#20021)
|
||||
successor(#20010,#20017)
|
||||
successor(#20025,#20010)
|
||||
successor(#20014,#20025)
|
||||
successor(#20064,#20014)
|
||||
hasLocation(#20066,#20043)
|
||||
successor(#20058,#20066)
|
||||
successor(#20056,#20058)
|
||||
successor(#20052,#20056)
|
||||
successor(#20060,#20052)
|
||||
successor(#20054,#20060)
|
||||
successor(#20064,#20054)
|
||||
numlines(#10000,3,3,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,79 +9,79 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20002,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{x};{#20000}"
|
||||
variables(#20003,"x",#20000)
|
||||
#20002=*
|
||||
comments(#20002,1,#20001," *","/* **/")
|
||||
#20003=@"loc,{#10000},1,5,1,10"
|
||||
locations_default(#20003,#10000,1,5,1,10)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
stmts(#20004,23,#20001,0,"let /* **/ x = 42;")
|
||||
lines(#20004,#20001,"let /* **/ x = 42;","
|
||||
")
|
||||
#20005=@"loc,{#10000},1,1,1,18"
|
||||
locations_default(#20005,#10000,1,1,1,18)
|
||||
hasLocation(#20004,#20005)
|
||||
stmtContainers(#20004,#20001)
|
||||
numlines(#20001,1,1,1)
|
||||
#20006=*
|
||||
exprs(#20006,64,#20004,0,"x = 42")
|
||||
#20007=@"loc,{#10000},1,12,1,17"
|
||||
locations_default(#20007,#10000,1,12,1,17)
|
||||
tokeninfo(#20006,7,#20001,0,"let")
|
||||
#20007=@"loc,{#10000},1,1,1,3"
|
||||
locations_default(#20007,#10000,1,1,1,3)
|
||||
hasLocation(#20006,#20007)
|
||||
enclosingStmt(#20006,#20004)
|
||||
exprContainers(#20006,#20001)
|
||||
#20008=*
|
||||
exprs(#20008,78,#20006,0,"x")
|
||||
tokeninfo(#20008,6,#20001,1,"x")
|
||||
#20009=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20009,#10000,1,12,1,12)
|
||||
hasLocation(#20008,#20009)
|
||||
enclosingStmt(#20008,#20004)
|
||||
exprContainers(#20008,#20001)
|
||||
literals("x","x",#20008)
|
||||
decl(#20008,#20003)
|
||||
next_token(#20002,#20008)
|
||||
#20010=*
|
||||
exprs(#20010,3,#20006,1,"42")
|
||||
#20011=@"loc,{#10000},1,16,1,17"
|
||||
locations_default(#20011,#10000,1,16,1,17)
|
||||
tokeninfo(#20010,8,#20001,2,"=")
|
||||
#20011=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20011,#10000,1,14,1,14)
|
||||
hasLocation(#20010,#20011)
|
||||
enclosingStmt(#20010,#20004)
|
||||
exprContainers(#20010,#20001)
|
||||
literals("42","42",#20010)
|
||||
#20012=*
|
||||
comments(#20012,1,#20001," *","/* **/")
|
||||
#20013=@"loc,{#10000},1,5,1,10"
|
||||
locations_default(#20013,#10000,1,5,1,10)
|
||||
tokeninfo(#20012,3,#20001,3,"42")
|
||||
#20013=@"loc,{#10000},1,16,1,17"
|
||||
locations_default(#20013,#10000,1,16,1,17)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
lines(#20014,#20001,"let /* **/ x = 42;","
|
||||
")
|
||||
hasLocation(#20014,#20005)
|
||||
numlines(#20001,1,1,1)
|
||||
#20015=*
|
||||
tokeninfo(#20015,7,#20001,0,"let")
|
||||
#20016=@"loc,{#10000},1,1,1,3"
|
||||
locations_default(#20016,#10000,1,1,1,3)
|
||||
hasLocation(#20015,#20016)
|
||||
#20017=*
|
||||
tokeninfo(#20017,6,#20001,1,"x")
|
||||
hasLocation(#20017,#20009)
|
||||
next_token(#20012,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,2,"=")
|
||||
#20019=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20019,#10000,1,14,1,14)
|
||||
hasLocation(#20018,#20019)
|
||||
tokeninfo(#20014,8,#20001,4,";")
|
||||
#20015=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20015,#10000,1,18,1,18)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,0,#20001,5,"")
|
||||
#20017=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20017,#10000,2,1,2,0)
|
||||
hasLocation(#20016,#20017)
|
||||
toplevels(#20001,0)
|
||||
#20018=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20018,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20018)
|
||||
#20019=@"var;{x};{#20000}"
|
||||
variables(#20019,"x",#20000)
|
||||
#20020=*
|
||||
tokeninfo(#20020,3,#20001,3,"42")
|
||||
hasLocation(#20020,#20011)
|
||||
stmts(#20020,23,#20001,0,"let /* **/ x = 42;")
|
||||
hasLocation(#20020,#20005)
|
||||
stmtContainers(#20020,#20001)
|
||||
#20021=*
|
||||
tokeninfo(#20021,8,#20001,4,";")
|
||||
#20022=@"loc,{#10000},1,18,1,18"
|
||||
locations_default(#20022,#10000,1,18,1,18)
|
||||
exprs(#20021,64,#20020,0,"x = 42")
|
||||
#20022=@"loc,{#10000},1,12,1,17"
|
||||
locations_default(#20022,#10000,1,12,1,17)
|
||||
hasLocation(#20021,#20022)
|
||||
enclosingStmt(#20021,#20020)
|
||||
exprContainers(#20021,#20001)
|
||||
#20023=*
|
||||
tokeninfo(#20023,0,#20001,5,"")
|
||||
#20024=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20024,#10000,2,1,2,0)
|
||||
hasLocation(#20023,#20024)
|
||||
exprs(#20023,78,#20021,0,"x")
|
||||
hasLocation(#20023,#20009)
|
||||
enclosingStmt(#20023,#20020)
|
||||
exprContainers(#20023,#20001)
|
||||
literals("x","x",#20023)
|
||||
decl(#20023,#20019)
|
||||
#20024=*
|
||||
exprs(#20024,3,#20021,1,"42")
|
||||
hasLocation(#20024,#20013)
|
||||
enclosingStmt(#20024,#20020)
|
||||
exprContainers(#20024,#20001)
|
||||
literals("42","42",#20024)
|
||||
#20025=*
|
||||
entry_cfg_node(#20025,#20001)
|
||||
#20026=@"loc,{#10000},1,1,1,0"
|
||||
@@ -89,11 +89,11 @@ locations_default(#20026,#10000,1,1,1,0)
|
||||
hasLocation(#20025,#20026)
|
||||
#20027=*
|
||||
exit_cfg_node(#20027,#20001)
|
||||
hasLocation(#20027,#20024)
|
||||
successor(#20004,#20008)
|
||||
successor(#20010,#20006)
|
||||
successor(#20008,#20010)
|
||||
successor(#20006,#20027)
|
||||
successor(#20025,#20004)
|
||||
hasLocation(#20027,#20017)
|
||||
successor(#20020,#20023)
|
||||
successor(#20024,#20021)
|
||||
successor(#20023,#20024)
|
||||
successor(#20021,#20027)
|
||||
successor(#20025,#20020)
|
||||
numlines(#10000,1,1,1)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,316 +9,316 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,6,0"
|
||||
locations_default(#20002,#10000,1,1,6,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"module;{#10000},1,1"
|
||||
scopes(#20003,3)
|
||||
scopenodes(#20001,#20003)
|
||||
scopenesting(#20003,#20000)
|
||||
isModule(#20001)
|
||||
#20004=@"var;{x};{#20003}"
|
||||
variables(#20004,"x",#20003)
|
||||
#20005=@"var;{y};{#20003}"
|
||||
variables(#20005,"y",#20003)
|
||||
#20006=@"local_type_name;{x};{#20003}"
|
||||
local_type_names(#20006,"x",#20003)
|
||||
#20007=@"local_type_name;{y};{#20003}"
|
||||
local_type_names(#20007,"y",#20003)
|
||||
#20008=@"local_namespace_name;{x};{#20003}"
|
||||
local_namespace_names(#20008,"x",#20003)
|
||||
#20009=@"local_namespace_name;{y};{#20003}"
|
||||
local_namespace_names(#20009,"y",#20003)
|
||||
variables(#20004,"x",#20003)
|
||||
local_type_names(#20006,"x",#20003)
|
||||
local_namespace_names(#20008,"x",#20003)
|
||||
#20010=*
|
||||
stmts(#20010,27,#20001,0,"import ... om 'm';")
|
||||
#20011=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20011,#10000,1,1,1,22)
|
||||
hasLocation(#20010,#20011)
|
||||
stmtContainers(#20010,#20001)
|
||||
#20012=*
|
||||
exprs(#20012,4,#20010,-1,"'m'")
|
||||
#20013=@"loc,{#10000},1,19,1,21"
|
||||
locations_default(#20013,#10000,1,19,1,21)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20010)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("m","'m'",#20012)
|
||||
#20014=*
|
||||
exprs(#20014,83,#20010,0,"x")
|
||||
#20015=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20015,#10000,1,10,1,10)
|
||||
hasLocation(#20014,#20015)
|
||||
enclosingStmt(#20014,#20010)
|
||||
exprContainers(#20014,#20001)
|
||||
#20016=*
|
||||
exprs(#20016,0,#20014,0,"x")
|
||||
hasLocation(#20016,#20015)
|
||||
enclosingStmt(#20016,#20010)
|
||||
exprContainers(#20016,#20001)
|
||||
literals("x","x",#20016)
|
||||
#20017=*
|
||||
exprs(#20017,78,#20014,1,"x")
|
||||
hasLocation(#20017,#20015)
|
||||
enclosingStmt(#20017,#20010)
|
||||
exprContainers(#20017,#20001)
|
||||
literals("x","x",#20017)
|
||||
decl(#20017,#20004)
|
||||
typedecl(#20017,#20006)
|
||||
namespacedecl(#20017,#20008)
|
||||
#20018=*
|
||||
stmts(#20018,3,#20001,1,"if (!x) ... = y;\n}")
|
||||
#20019=@"loc,{#10000},2,1,5,1"
|
||||
locations_default(#20019,#10000,2,1,5,1)
|
||||
hasLocation(#20018,#20019)
|
||||
stmtContainers(#20018,#20001)
|
||||
#20020=*
|
||||
exprs(#20020,18,#20018,0,"!x")
|
||||
#20021=@"loc,{#10000},2,5,2,6"
|
||||
locations_default(#20021,#10000,2,5,2,6)
|
||||
hasLocation(#20020,#20021)
|
||||
enclosingStmt(#20020,#20018)
|
||||
exprContainers(#20020,#20001)
|
||||
#20022=*
|
||||
exprs(#20022,79,#20020,0,"x")
|
||||
#20023=@"loc,{#10000},2,6,2,6"
|
||||
locations_default(#20023,#10000,2,6,2,6)
|
||||
hasLocation(#20022,#20023)
|
||||
enclosingStmt(#20022,#20018)
|
||||
exprContainers(#20022,#20001)
|
||||
literals("x","x",#20022)
|
||||
bind(#20022,#20004)
|
||||
#20024=*
|
||||
stmts(#20024,1,#20018,1,"{\n imp ... = y;\n}")
|
||||
#20025=@"loc,{#10000},2,9,5,1"
|
||||
locations_default(#20025,#10000,2,9,5,1)
|
||||
hasLocation(#20024,#20025)
|
||||
stmtContainers(#20024,#20001)
|
||||
#20026=*
|
||||
scopes(#20026,4)
|
||||
scopenodes(#20024,#20026)
|
||||
scopenesting(#20026,#20003)
|
||||
#20027=@"var;{y};{#20026}"
|
||||
variables(#20027,"y",#20026)
|
||||
#20028=@"local_type_name;{y};{#20026}"
|
||||
local_type_names(#20028,"y",#20026)
|
||||
#20029=@"local_namespace_name;{y};{#20026}"
|
||||
local_namespace_names(#20029,"y",#20026)
|
||||
#20030=*
|
||||
stmts(#20030,27,#20024,0,"import ... om 'm';")
|
||||
#20031=@"loc,{#10000},3,3,3,24"
|
||||
locations_default(#20031,#10000,3,3,3,24)
|
||||
hasLocation(#20030,#20031)
|
||||
stmtContainers(#20030,#20001)
|
||||
#20032=*
|
||||
exprs(#20032,4,#20030,-1,"'m'")
|
||||
#20033=@"loc,{#10000},3,21,3,23"
|
||||
locations_default(#20033,#10000,3,21,3,23)
|
||||
hasLocation(#20032,#20033)
|
||||
enclosingStmt(#20032,#20030)
|
||||
exprContainers(#20032,#20001)
|
||||
literals("m","'m'",#20032)
|
||||
#20034=*
|
||||
exprs(#20034,83,#20030,0,"y")
|
||||
#20035=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20035,#10000,3,12,3,12)
|
||||
hasLocation(#20034,#20035)
|
||||
enclosingStmt(#20034,#20030)
|
||||
exprContainers(#20034,#20001)
|
||||
#20036=*
|
||||
exprs(#20036,0,#20034,0,"y")
|
||||
hasLocation(#20036,#20035)
|
||||
enclosingStmt(#20036,#20030)
|
||||
exprContainers(#20036,#20001)
|
||||
literals("y","y",#20036)
|
||||
#20037=*
|
||||
exprs(#20037,78,#20034,1,"y")
|
||||
hasLocation(#20037,#20035)
|
||||
enclosingStmt(#20037,#20030)
|
||||
exprContainers(#20037,#20001)
|
||||
literals("y","y",#20037)
|
||||
decl(#20037,#20027)
|
||||
typedecl(#20037,#20028)
|
||||
namespacedecl(#20037,#20029)
|
||||
#20038=*
|
||||
stmts(#20038,2,#20024,1,"x = y;")
|
||||
#20039=@"loc,{#10000},4,3,4,8"
|
||||
locations_default(#20039,#10000,4,3,4,8)
|
||||
hasLocation(#20038,#20039)
|
||||
stmtContainers(#20038,#20001)
|
||||
#20040=*
|
||||
exprs(#20040,47,#20038,0,"x = y")
|
||||
#20041=@"loc,{#10000},4,3,4,7"
|
||||
locations_default(#20041,#10000,4,3,4,7)
|
||||
hasLocation(#20040,#20041)
|
||||
enclosingStmt(#20040,#20038)
|
||||
exprContainers(#20040,#20001)
|
||||
#20042=*
|
||||
exprs(#20042,79,#20040,0,"x")
|
||||
#20043=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20043,#10000,4,3,4,3)
|
||||
hasLocation(#20042,#20043)
|
||||
enclosingStmt(#20042,#20038)
|
||||
exprContainers(#20042,#20001)
|
||||
literals("x","x",#20042)
|
||||
bind(#20042,#20004)
|
||||
#20044=*
|
||||
exprs(#20044,79,#20040,1,"y")
|
||||
#20045=@"loc,{#10000},4,7,4,7"
|
||||
locations_default(#20045,#10000,4,7,4,7)
|
||||
hasLocation(#20044,#20045)
|
||||
enclosingStmt(#20044,#20038)
|
||||
exprContainers(#20044,#20001)
|
||||
literals("y","y",#20044)
|
||||
bind(#20044,#20027)
|
||||
#20046=*
|
||||
lines(#20046,#20001,"import { x } from 'm';","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"import { x } from 'm';","
|
||||
")
|
||||
hasLocation(#20046,#20011)
|
||||
#20047=*
|
||||
lines(#20047,#20001,"if (!x) {","
|
||||
#20003=@"loc,{#10000},1,1,1,22"
|
||||
locations_default(#20003,#10000,1,1,1,22)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001,"if (!x) {","
|
||||
")
|
||||
#20048=@"loc,{#10000},2,1,2,9"
|
||||
locations_default(#20048,#10000,2,1,2,9)
|
||||
hasLocation(#20047,#20048)
|
||||
#20049=*
|
||||
lines(#20049,#20001," import { y } from 'm';","
|
||||
#20005=@"loc,{#10000},2,1,2,9"
|
||||
locations_default(#20005,#10000,2,1,2,9)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
lines(#20006,#20001," import { y } from 'm';","
|
||||
")
|
||||
#20050=@"loc,{#10000},3,1,3,24"
|
||||
locations_default(#20050,#10000,3,1,3,24)
|
||||
hasLocation(#20049,#20050)
|
||||
#20007=@"loc,{#10000},3,1,3,24"
|
||||
locations_default(#20007,#10000,3,1,3,24)
|
||||
hasLocation(#20006,#20007)
|
||||
indentation(#10000,3," ",2)
|
||||
#20051=*
|
||||
lines(#20051,#20001," x = y;","
|
||||
#20008=*
|
||||
lines(#20008,#20001," x = y;","
|
||||
")
|
||||
#20052=@"loc,{#10000},4,1,4,8"
|
||||
locations_default(#20052,#10000,4,1,4,8)
|
||||
hasLocation(#20051,#20052)
|
||||
#20009=@"loc,{#10000},4,1,4,8"
|
||||
locations_default(#20009,#10000,4,1,4,8)
|
||||
hasLocation(#20008,#20009)
|
||||
indentation(#10000,4," ",2)
|
||||
#20053=*
|
||||
lines(#20053,#20001,"}","
|
||||
#20010=*
|
||||
lines(#20010,#20001,"}","
|
||||
")
|
||||
#20054=@"loc,{#10000},5,1,5,1"
|
||||
locations_default(#20054,#10000,5,1,5,1)
|
||||
hasLocation(#20053,#20054)
|
||||
#20011=@"loc,{#10000},5,1,5,1"
|
||||
locations_default(#20011,#10000,5,1,5,1)
|
||||
hasLocation(#20010,#20011)
|
||||
numlines(#20001,5,5,0)
|
||||
#20055=*
|
||||
tokeninfo(#20055,7,#20001,0,"import")
|
||||
#20056=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20056,#10000,1,1,1,6)
|
||||
hasLocation(#20055,#20056)
|
||||
#20057=*
|
||||
tokeninfo(#20057,8,#20001,1,"{")
|
||||
#20058=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20058,#10000,1,8,1,8)
|
||||
hasLocation(#20057,#20058)
|
||||
#20059=*
|
||||
tokeninfo(#20059,6,#20001,2,"x")
|
||||
hasLocation(#20059,#20015)
|
||||
#20012=*
|
||||
tokeninfo(#20012,7,#20001,0,"import")
|
||||
#20013=@"loc,{#10000},1,1,1,6"
|
||||
locations_default(#20013,#10000,1,1,1,6)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,1,"{")
|
||||
#20015=@"loc,{#10000},1,8,1,8"
|
||||
locations_default(#20015,#10000,1,8,1,8)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,6,#20001,2,"x")
|
||||
#20017=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20017,#10000,1,10,1,10)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,3,"}")
|
||||
#20019=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20019,#10000,1,12,1,12)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,6,#20001,4,"from")
|
||||
#20021=@"loc,{#10000},1,14,1,17"
|
||||
locations_default(#20021,#10000,1,14,1,17)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,4,#20001,5,"'m'")
|
||||
#20023=@"loc,{#10000},1,19,1,21"
|
||||
locations_default(#20023,#10000,1,19,1,21)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,8,#20001,6,";")
|
||||
#20025=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20025,#10000,1,22,1,22)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,7,#20001,7,"if")
|
||||
#20027=@"loc,{#10000},2,1,2,2"
|
||||
locations_default(#20027,#10000,2,1,2,2)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,8,"(")
|
||||
#20029=@"loc,{#10000},2,4,2,4"
|
||||
locations_default(#20029,#10000,2,4,2,4)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,9,"!")
|
||||
#20031=@"loc,{#10000},2,5,2,5"
|
||||
locations_default(#20031,#10000,2,5,2,5)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,6,#20001,10,"x")
|
||||
#20033=@"loc,{#10000},2,6,2,6"
|
||||
locations_default(#20033,#10000,2,6,2,6)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,8,#20001,11,")")
|
||||
#20035=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20035,#10000,2,7,2,7)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,8,#20001,12,"{")
|
||||
#20037=@"loc,{#10000},2,9,2,9"
|
||||
locations_default(#20037,#10000,2,9,2,9)
|
||||
hasLocation(#20036,#20037)
|
||||
#20038=*
|
||||
tokeninfo(#20038,7,#20001,13,"import")
|
||||
#20039=@"loc,{#10000},3,3,3,8"
|
||||
locations_default(#20039,#10000,3,3,3,8)
|
||||
hasLocation(#20038,#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,8,#20001,14,"{")
|
||||
#20041=@"loc,{#10000},3,10,3,10"
|
||||
locations_default(#20041,#10000,3,10,3,10)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,6,#20001,15,"y")
|
||||
#20043=@"loc,{#10000},3,12,3,12"
|
||||
locations_default(#20043,#10000,3,12,3,12)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,8,#20001,16,"}")
|
||||
#20045=@"loc,{#10000},3,14,3,14"
|
||||
locations_default(#20045,#10000,3,14,3,14)
|
||||
hasLocation(#20044,#20045)
|
||||
#20046=*
|
||||
tokeninfo(#20046,6,#20001,17,"from")
|
||||
#20047=@"loc,{#10000},3,16,3,19"
|
||||
locations_default(#20047,#10000,3,16,3,19)
|
||||
hasLocation(#20046,#20047)
|
||||
#20048=*
|
||||
tokeninfo(#20048,4,#20001,18,"'m'")
|
||||
#20049=@"loc,{#10000},3,21,3,23"
|
||||
locations_default(#20049,#10000,3,21,3,23)
|
||||
hasLocation(#20048,#20049)
|
||||
#20050=*
|
||||
tokeninfo(#20050,8,#20001,19,";")
|
||||
#20051=@"loc,{#10000},3,24,3,24"
|
||||
locations_default(#20051,#10000,3,24,3,24)
|
||||
hasLocation(#20050,#20051)
|
||||
#20052=*
|
||||
tokeninfo(#20052,6,#20001,20,"x")
|
||||
#20053=@"loc,{#10000},4,3,4,3"
|
||||
locations_default(#20053,#10000,4,3,4,3)
|
||||
hasLocation(#20052,#20053)
|
||||
#20054=*
|
||||
tokeninfo(#20054,8,#20001,21,"=")
|
||||
#20055=@"loc,{#10000},4,5,4,5"
|
||||
locations_default(#20055,#10000,4,5,4,5)
|
||||
hasLocation(#20054,#20055)
|
||||
#20056=*
|
||||
tokeninfo(#20056,6,#20001,22,"y")
|
||||
#20057=@"loc,{#10000},4,7,4,7"
|
||||
locations_default(#20057,#10000,4,7,4,7)
|
||||
hasLocation(#20056,#20057)
|
||||
#20058=*
|
||||
tokeninfo(#20058,8,#20001,23,";")
|
||||
#20059=@"loc,{#10000},4,8,4,8"
|
||||
locations_default(#20059,#10000,4,8,4,8)
|
||||
hasLocation(#20058,#20059)
|
||||
#20060=*
|
||||
tokeninfo(#20060,8,#20001,3,"}")
|
||||
#20061=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20061,#10000,1,12,1,12)
|
||||
hasLocation(#20060,#20061)
|
||||
#20062=*
|
||||
tokeninfo(#20062,6,#20001,4,"from")
|
||||
#20063=@"loc,{#10000},1,14,1,17"
|
||||
locations_default(#20063,#10000,1,14,1,17)
|
||||
hasLocation(#20062,#20063)
|
||||
#20064=*
|
||||
tokeninfo(#20064,4,#20001,5,"'m'")
|
||||
hasLocation(#20064,#20013)
|
||||
#20065=*
|
||||
tokeninfo(#20065,8,#20001,6,";")
|
||||
#20066=@"loc,{#10000},1,22,1,22"
|
||||
locations_default(#20066,#10000,1,22,1,22)
|
||||
hasLocation(#20065,#20066)
|
||||
#20067=*
|
||||
tokeninfo(#20067,7,#20001,7,"if")
|
||||
#20068=@"loc,{#10000},2,1,2,2"
|
||||
locations_default(#20068,#10000,2,1,2,2)
|
||||
hasLocation(#20067,#20068)
|
||||
#20069=*
|
||||
tokeninfo(#20069,8,#20001,8,"(")
|
||||
#20070=@"loc,{#10000},2,4,2,4"
|
||||
locations_default(#20070,#10000,2,4,2,4)
|
||||
hasLocation(#20069,#20070)
|
||||
tokeninfo(#20060,8,#20001,24,"}")
|
||||
hasLocation(#20060,#20011)
|
||||
#20061=*
|
||||
tokeninfo(#20061,0,#20001,25,"")
|
||||
#20062=@"loc,{#10000},6,1,6,0"
|
||||
locations_default(#20062,#10000,6,1,6,0)
|
||||
hasLocation(#20061,#20062)
|
||||
toplevels(#20001,0)
|
||||
#20063=@"loc,{#10000},1,1,6,0"
|
||||
locations_default(#20063,#10000,1,1,6,0)
|
||||
hasLocation(#20001,#20063)
|
||||
#20064=@"module;{#10000},1,1"
|
||||
scopes(#20064,3)
|
||||
scopenodes(#20001,#20064)
|
||||
scopenesting(#20064,#20000)
|
||||
isModule(#20001)
|
||||
#20065=@"var;{x};{#20064}"
|
||||
variables(#20065,"x",#20064)
|
||||
#20066=@"var;{y};{#20064}"
|
||||
variables(#20066,"y",#20064)
|
||||
#20067=@"local_type_name;{x};{#20064}"
|
||||
local_type_names(#20067,"x",#20064)
|
||||
#20068=@"local_type_name;{y};{#20064}"
|
||||
local_type_names(#20068,"y",#20064)
|
||||
#20069=@"local_namespace_name;{x};{#20064}"
|
||||
local_namespace_names(#20069,"x",#20064)
|
||||
#20070=@"local_namespace_name;{y};{#20064}"
|
||||
local_namespace_names(#20070,"y",#20064)
|
||||
variables(#20065,"x",#20064)
|
||||
local_type_names(#20067,"x",#20064)
|
||||
local_namespace_names(#20069,"x",#20064)
|
||||
#20071=*
|
||||
tokeninfo(#20071,8,#20001,9,"!")
|
||||
#20072=@"loc,{#10000},2,5,2,5"
|
||||
locations_default(#20072,#10000,2,5,2,5)
|
||||
hasLocation(#20071,#20072)
|
||||
stmts(#20071,27,#20001,0,"import ... om 'm';")
|
||||
hasLocation(#20071,#20003)
|
||||
stmtContainers(#20071,#20001)
|
||||
#20072=*
|
||||
exprs(#20072,4,#20071,-1,"'m'")
|
||||
hasLocation(#20072,#20023)
|
||||
enclosingStmt(#20072,#20071)
|
||||
exprContainers(#20072,#20001)
|
||||
literals("m","'m'",#20072)
|
||||
#20073=*
|
||||
tokeninfo(#20073,6,#20001,10,"x")
|
||||
hasLocation(#20073,#20023)
|
||||
exprs(#20073,83,#20071,0,"x")
|
||||
hasLocation(#20073,#20017)
|
||||
enclosingStmt(#20073,#20071)
|
||||
exprContainers(#20073,#20001)
|
||||
#20074=*
|
||||
tokeninfo(#20074,8,#20001,11,")")
|
||||
#20075=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20075,#10000,2,7,2,7)
|
||||
hasLocation(#20074,#20075)
|
||||
exprs(#20074,0,#20073,0,"x")
|
||||
hasLocation(#20074,#20017)
|
||||
enclosingStmt(#20074,#20071)
|
||||
exprContainers(#20074,#20001)
|
||||
literals("x","x",#20074)
|
||||
#20075=*
|
||||
exprs(#20075,78,#20073,1,"x")
|
||||
hasLocation(#20075,#20017)
|
||||
enclosingStmt(#20075,#20071)
|
||||
exprContainers(#20075,#20001)
|
||||
literals("x","x",#20075)
|
||||
decl(#20075,#20065)
|
||||
typedecl(#20075,#20067)
|
||||
namespacedecl(#20075,#20069)
|
||||
#20076=*
|
||||
tokeninfo(#20076,8,#20001,12,"{")
|
||||
#20077=@"loc,{#10000},2,9,2,9"
|
||||
locations_default(#20077,#10000,2,9,2,9)
|
||||
stmts(#20076,3,#20001,1,"if (!x) ... = y;\n}")
|
||||
#20077=@"loc,{#10000},2,1,5,1"
|
||||
locations_default(#20077,#10000,2,1,5,1)
|
||||
hasLocation(#20076,#20077)
|
||||
stmtContainers(#20076,#20001)
|
||||
#20078=*
|
||||
tokeninfo(#20078,7,#20001,13,"import")
|
||||
#20079=@"loc,{#10000},3,3,3,8"
|
||||
locations_default(#20079,#10000,3,3,3,8)
|
||||
exprs(#20078,18,#20076,0,"!x")
|
||||
#20079=@"loc,{#10000},2,5,2,6"
|
||||
locations_default(#20079,#10000,2,5,2,6)
|
||||
hasLocation(#20078,#20079)
|
||||
enclosingStmt(#20078,#20076)
|
||||
exprContainers(#20078,#20001)
|
||||
#20080=*
|
||||
tokeninfo(#20080,8,#20001,14,"{")
|
||||
#20081=@"loc,{#10000},3,10,3,10"
|
||||
locations_default(#20081,#10000,3,10,3,10)
|
||||
hasLocation(#20080,#20081)
|
||||
#20082=*
|
||||
tokeninfo(#20082,6,#20001,15,"y")
|
||||
hasLocation(#20082,#20035)
|
||||
exprs(#20080,79,#20078,0,"x")
|
||||
hasLocation(#20080,#20033)
|
||||
enclosingStmt(#20080,#20076)
|
||||
exprContainers(#20080,#20001)
|
||||
literals("x","x",#20080)
|
||||
bind(#20080,#20065)
|
||||
#20081=*
|
||||
stmts(#20081,1,#20076,1,"{\n imp ... = y;\n}")
|
||||
#20082=@"loc,{#10000},2,9,5,1"
|
||||
locations_default(#20082,#10000,2,9,5,1)
|
||||
hasLocation(#20081,#20082)
|
||||
stmtContainers(#20081,#20001)
|
||||
#20083=*
|
||||
tokeninfo(#20083,8,#20001,16,"}")
|
||||
#20084=@"loc,{#10000},3,14,3,14"
|
||||
locations_default(#20084,#10000,3,14,3,14)
|
||||
hasLocation(#20083,#20084)
|
||||
#20085=*
|
||||
tokeninfo(#20085,6,#20001,17,"from")
|
||||
#20086=@"loc,{#10000},3,16,3,19"
|
||||
locations_default(#20086,#10000,3,16,3,19)
|
||||
hasLocation(#20085,#20086)
|
||||
scopes(#20083,4)
|
||||
scopenodes(#20081,#20083)
|
||||
scopenesting(#20083,#20064)
|
||||
#20084=@"var;{y};{#20083}"
|
||||
variables(#20084,"y",#20083)
|
||||
#20085=@"local_type_name;{y};{#20083}"
|
||||
local_type_names(#20085,"y",#20083)
|
||||
#20086=@"local_namespace_name;{y};{#20083}"
|
||||
local_namespace_names(#20086,"y",#20083)
|
||||
#20087=*
|
||||
tokeninfo(#20087,4,#20001,18,"'m'")
|
||||
hasLocation(#20087,#20033)
|
||||
#20088=*
|
||||
tokeninfo(#20088,8,#20001,19,";")
|
||||
#20089=@"loc,{#10000},3,24,3,24"
|
||||
locations_default(#20089,#10000,3,24,3,24)
|
||||
hasLocation(#20088,#20089)
|
||||
stmts(#20087,27,#20081,0,"import ... om 'm';")
|
||||
#20088=@"loc,{#10000},3,3,3,24"
|
||||
locations_default(#20088,#10000,3,3,3,24)
|
||||
hasLocation(#20087,#20088)
|
||||
stmtContainers(#20087,#20001)
|
||||
#20089=*
|
||||
exprs(#20089,4,#20087,-1,"'m'")
|
||||
hasLocation(#20089,#20049)
|
||||
enclosingStmt(#20089,#20087)
|
||||
exprContainers(#20089,#20001)
|
||||
literals("m","'m'",#20089)
|
||||
#20090=*
|
||||
tokeninfo(#20090,6,#20001,20,"x")
|
||||
exprs(#20090,83,#20087,0,"y")
|
||||
hasLocation(#20090,#20043)
|
||||
enclosingStmt(#20090,#20087)
|
||||
exprContainers(#20090,#20001)
|
||||
#20091=*
|
||||
tokeninfo(#20091,8,#20001,21,"=")
|
||||
#20092=@"loc,{#10000},4,5,4,5"
|
||||
locations_default(#20092,#10000,4,5,4,5)
|
||||
hasLocation(#20091,#20092)
|
||||
exprs(#20091,0,#20090,0,"y")
|
||||
hasLocation(#20091,#20043)
|
||||
enclosingStmt(#20091,#20087)
|
||||
exprContainers(#20091,#20001)
|
||||
literals("y","y",#20091)
|
||||
#20092=*
|
||||
exprs(#20092,78,#20090,1,"y")
|
||||
hasLocation(#20092,#20043)
|
||||
enclosingStmt(#20092,#20087)
|
||||
exprContainers(#20092,#20001)
|
||||
literals("y","y",#20092)
|
||||
decl(#20092,#20084)
|
||||
typedecl(#20092,#20085)
|
||||
namespacedecl(#20092,#20086)
|
||||
#20093=*
|
||||
tokeninfo(#20093,6,#20001,22,"y")
|
||||
hasLocation(#20093,#20045)
|
||||
#20094=*
|
||||
tokeninfo(#20094,8,#20001,23,";")
|
||||
#20095=@"loc,{#10000},4,8,4,8"
|
||||
locations_default(#20095,#10000,4,8,4,8)
|
||||
hasLocation(#20094,#20095)
|
||||
#20096=*
|
||||
tokeninfo(#20096,8,#20001,24,"}")
|
||||
hasLocation(#20096,#20054)
|
||||
stmts(#20093,2,#20081,1,"x = y;")
|
||||
#20094=@"loc,{#10000},4,3,4,8"
|
||||
locations_default(#20094,#10000,4,3,4,8)
|
||||
hasLocation(#20093,#20094)
|
||||
stmtContainers(#20093,#20001)
|
||||
#20095=*
|
||||
exprs(#20095,47,#20093,0,"x = y")
|
||||
#20096=@"loc,{#10000},4,3,4,7"
|
||||
locations_default(#20096,#10000,4,3,4,7)
|
||||
hasLocation(#20095,#20096)
|
||||
enclosingStmt(#20095,#20093)
|
||||
exprContainers(#20095,#20001)
|
||||
#20097=*
|
||||
tokeninfo(#20097,0,#20001,25,"")
|
||||
#20098=@"loc,{#10000},6,1,6,0"
|
||||
locations_default(#20098,#10000,6,1,6,0)
|
||||
hasLocation(#20097,#20098)
|
||||
exprs(#20097,79,#20095,0,"x")
|
||||
hasLocation(#20097,#20053)
|
||||
enclosingStmt(#20097,#20093)
|
||||
exprContainers(#20097,#20001)
|
||||
literals("x","x",#20097)
|
||||
bind(#20097,#20065)
|
||||
#20098=*
|
||||
exprs(#20098,79,#20095,1,"y")
|
||||
hasLocation(#20098,#20057)
|
||||
enclosingStmt(#20098,#20093)
|
||||
exprContainers(#20098,#20001)
|
||||
literals("y","y",#20098)
|
||||
bind(#20098,#20084)
|
||||
#20099=*
|
||||
entry_cfg_node(#20099,#20001)
|
||||
#20100=@"loc,{#10000},1,1,1,0"
|
||||
@@ -326,28 +326,28 @@ locations_default(#20100,#10000,1,1,1,0)
|
||||
hasLocation(#20099,#20100)
|
||||
#20101=*
|
||||
exit_cfg_node(#20101,#20001)
|
||||
hasLocation(#20101,#20098)
|
||||
successor(#20018,#20022)
|
||||
successor(#20022,#20020)
|
||||
hasLocation(#20101,#20062)
|
||||
successor(#20076,#20080)
|
||||
successor(#20080,#20078)
|
||||
#20102=*
|
||||
guard_node(#20102,0,#20022)
|
||||
hasLocation(#20102,#20023)
|
||||
successor(#20102,#20024)
|
||||
guard_node(#20102,0,#20080)
|
||||
hasLocation(#20102,#20033)
|
||||
successor(#20102,#20081)
|
||||
#20103=*
|
||||
guard_node(#20103,1,#20022)
|
||||
hasLocation(#20103,#20023)
|
||||
guard_node(#20103,1,#20080)
|
||||
hasLocation(#20103,#20033)
|
||||
successor(#20103,#20101)
|
||||
successor(#20020,#20102)
|
||||
successor(#20020,#20103)
|
||||
successor(#20024,#20030)
|
||||
successor(#20038,#20042)
|
||||
successor(#20044,#20040)
|
||||
successor(#20042,#20044)
|
||||
successor(#20040,#20101)
|
||||
successor(#20030,#20034)
|
||||
successor(#20034,#20038)
|
||||
successor(#20010,#20018)
|
||||
successor(#20014,#20010)
|
||||
successor(#20099,#20014)
|
||||
successor(#20078,#20102)
|
||||
successor(#20078,#20103)
|
||||
successor(#20081,#20087)
|
||||
successor(#20093,#20097)
|
||||
successor(#20098,#20095)
|
||||
successor(#20097,#20098)
|
||||
successor(#20095,#20101)
|
||||
successor(#20087,#20090)
|
||||
successor(#20090,#20093)
|
||||
successor(#20071,#20076)
|
||||
successor(#20073,#20071)
|
||||
successor(#20099,#20073)
|
||||
numlines(#10000,5,5,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,150 +9,149 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,3,1"
|
||||
locations_default(#20002,#10000,1,1,3,1)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{f};{#20000}"
|
||||
variables(#20003,"f",#20000)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"function f() {","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,14"
|
||||
locations_default(#20003,#10000,1,1,1,14)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
stmts(#20004,17,#20001,0,"functio ... rget;\n}")
|
||||
hasLocation(#20004,#20002)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,78,#20004,-1,"f")
|
||||
#20006=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20006,#10000,1,10,1,10)
|
||||
hasLocation(#20005,#20006)
|
||||
exprContainers(#20005,#20004)
|
||||
literals("f","f",#20005)
|
||||
decl(#20005,#20003)
|
||||
#20007=*
|
||||
scopes(#20007,1)
|
||||
scopenodes(#20004,#20007)
|
||||
scopenesting(#20007,#20000)
|
||||
#20008=@"var;{arguments};{#20007}"
|
||||
variables(#20008,"arguments",#20007)
|
||||
isArgumentsObject(#20008)
|
||||
#20009=*
|
||||
stmts(#20009,1,#20004,-2,"{\n ret ... rget;\n}")
|
||||
#20010=@"loc,{#10000},1,14,3,1"
|
||||
locations_default(#20010,#10000,1,14,3,1)
|
||||
hasLocation(#20009,#20010)
|
||||
stmtContainers(#20009,#20004)
|
||||
#20011=*
|
||||
stmts(#20011,9,#20009,0,"return !!new.target;")
|
||||
#20012=@"loc,{#10000},2,3,2,22"
|
||||
locations_default(#20012,#10000,2,3,2,22)
|
||||
hasLocation(#20011,#20012)
|
||||
stmtContainers(#20011,#20004)
|
||||
#20013=*
|
||||
exprs(#20013,18,#20011,0,"!!new.target")
|
||||
#20014=@"loc,{#10000},2,10,2,21"
|
||||
locations_default(#20014,#10000,2,10,2,21)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20011)
|
||||
exprContainers(#20013,#20004)
|
||||
#20015=*
|
||||
exprs(#20015,18,#20013,0,"!new.target")
|
||||
#20016=@"loc,{#10000},2,11,2,21"
|
||||
locations_default(#20016,#10000,2,11,2,21)
|
||||
hasLocation(#20015,#20016)
|
||||
enclosingStmt(#20015,#20011)
|
||||
exprContainers(#20015,#20004)
|
||||
#20017=*
|
||||
exprs(#20017,82,#20015,0,"new.target")
|
||||
#20018=@"loc,{#10000},2,12,2,21"
|
||||
locations_default(#20018,#10000,2,12,2,21)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20011)
|
||||
exprContainers(#20017,#20004)
|
||||
numlines(#20004,3,3,0)
|
||||
#20019=*
|
||||
lines(#20019,#20001,"function f() {","
|
||||
lines(#20004,#20001," return !!new.target;","
|
||||
")
|
||||
#20020=@"loc,{#10000},1,1,1,14"
|
||||
locations_default(#20020,#10000,1,1,1,14)
|
||||
hasLocation(#20019,#20020)
|
||||
#20021=*
|
||||
lines(#20021,#20001," return !!new.target;","
|
||||
")
|
||||
#20022=@"loc,{#10000},2,1,2,22"
|
||||
locations_default(#20022,#10000,2,1,2,22)
|
||||
hasLocation(#20021,#20022)
|
||||
#20005=@"loc,{#10000},2,1,2,22"
|
||||
locations_default(#20005,#10000,2,1,2,22)
|
||||
hasLocation(#20004,#20005)
|
||||
indentation(#10000,2," ",2)
|
||||
#20023=*
|
||||
lines(#20023,#20001,"}","")
|
||||
#20024=@"loc,{#10000},3,1,3,1"
|
||||
locations_default(#20024,#10000,3,1,3,1)
|
||||
hasLocation(#20023,#20024)
|
||||
#20006=*
|
||||
lines(#20006,#20001,"}","")
|
||||
#20007=@"loc,{#10000},3,1,3,1"
|
||||
locations_default(#20007,#10000,3,1,3,1)
|
||||
hasLocation(#20006,#20007)
|
||||
numlines(#20001,3,3,0)
|
||||
#20025=*
|
||||
tokeninfo(#20025,7,#20001,0,"function")
|
||||
#20026=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20026,#10000,1,1,1,8)
|
||||
hasLocation(#20025,#20026)
|
||||
#20027=*
|
||||
tokeninfo(#20027,6,#20001,1,"f")
|
||||
hasLocation(#20027,#20006)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,0,"function")
|
||||
#20009=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20009,#10000,1,1,1,8)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,6,#20001,1,"f")
|
||||
#20011=@"loc,{#10000},1,10,1,10"
|
||||
locations_default(#20011,#10000,1,10,1,10)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,8,#20001,2,"(")
|
||||
#20013=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20013,#10000,1,11,1,11)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,3,")")
|
||||
#20015=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20015,#10000,1,12,1,12)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,4,"{")
|
||||
#20017=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20017,#10000,1,14,1,14)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,7,#20001,5,"return")
|
||||
#20019=@"loc,{#10000},2,3,2,8"
|
||||
locations_default(#20019,#10000,2,3,2,8)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,6,"!")
|
||||
#20021=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20021,#10000,2,10,2,10)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,7,"!")
|
||||
#20023=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20023,#10000,2,11,2,11)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,7,#20001,8,"new")
|
||||
#20025=@"loc,{#10000},2,12,2,14"
|
||||
locations_default(#20025,#10000,2,12,2,14)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
tokeninfo(#20026,8,#20001,9,".")
|
||||
#20027=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20027,#10000,2,15,2,15)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,2,"(")
|
||||
#20029=@"loc,{#10000},1,11,1,11"
|
||||
locations_default(#20029,#10000,1,11,1,11)
|
||||
tokeninfo(#20028,6,#20001,10,"target")
|
||||
#20029=@"loc,{#10000},2,16,2,21"
|
||||
locations_default(#20029,#10000,2,16,2,21)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
tokeninfo(#20030,8,#20001,3,")")
|
||||
#20031=@"loc,{#10000},1,12,1,12"
|
||||
locations_default(#20031,#10000,1,12,1,12)
|
||||
tokeninfo(#20030,8,#20001,11,";")
|
||||
#20031=@"loc,{#10000},2,22,2,22"
|
||||
locations_default(#20031,#10000,2,22,2,22)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
tokeninfo(#20032,8,#20001,4,"{")
|
||||
#20033=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20033,#10000,1,14,1,14)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,7,#20001,5,"return")
|
||||
#20035=@"loc,{#10000},2,3,2,8"
|
||||
locations_default(#20035,#10000,2,3,2,8)
|
||||
hasLocation(#20034,#20035)
|
||||
#20036=*
|
||||
tokeninfo(#20036,8,#20001,6,"!")
|
||||
#20037=@"loc,{#10000},2,10,2,10"
|
||||
locations_default(#20037,#10000,2,10,2,10)
|
||||
hasLocation(#20036,#20037)
|
||||
tokeninfo(#20032,8,#20001,12,"}")
|
||||
hasLocation(#20032,#20007)
|
||||
#20033=*
|
||||
tokeninfo(#20033,0,#20001,13,"")
|
||||
#20034=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20034,#10000,3,2,3,1)
|
||||
hasLocation(#20033,#20034)
|
||||
toplevels(#20001,0)
|
||||
#20035=@"loc,{#10000},1,1,3,1"
|
||||
locations_default(#20035,#10000,1,1,3,1)
|
||||
hasLocation(#20001,#20035)
|
||||
#20036=@"var;{f};{#20000}"
|
||||
variables(#20036,"f",#20000)
|
||||
#20037=*
|
||||
stmts(#20037,17,#20001,0,"functio ... rget;\n}")
|
||||
hasLocation(#20037,#20035)
|
||||
stmtContainers(#20037,#20001)
|
||||
#20038=*
|
||||
tokeninfo(#20038,8,#20001,7,"!")
|
||||
#20039=@"loc,{#10000},2,11,2,11"
|
||||
locations_default(#20039,#10000,2,11,2,11)
|
||||
hasLocation(#20038,#20039)
|
||||
#20040=*
|
||||
tokeninfo(#20040,7,#20001,8,"new")
|
||||
#20041=@"loc,{#10000},2,12,2,14"
|
||||
locations_default(#20041,#10000,2,12,2,14)
|
||||
hasLocation(#20040,#20041)
|
||||
#20042=*
|
||||
tokeninfo(#20042,8,#20001,9,".")
|
||||
#20043=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20043,#10000,2,15,2,15)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,6,#20001,10,"target")
|
||||
#20045=@"loc,{#10000},2,16,2,21"
|
||||
locations_default(#20045,#10000,2,16,2,21)
|
||||
hasLocation(#20044,#20045)
|
||||
#20046=*
|
||||
tokeninfo(#20046,8,#20001,11,";")
|
||||
#20047=@"loc,{#10000},2,22,2,22"
|
||||
locations_default(#20047,#10000,2,22,2,22)
|
||||
hasLocation(#20046,#20047)
|
||||
#20048=*
|
||||
tokeninfo(#20048,8,#20001,12,"}")
|
||||
hasLocation(#20048,#20024)
|
||||
exprs(#20038,78,#20037,-1,"f")
|
||||
hasLocation(#20038,#20011)
|
||||
exprContainers(#20038,#20037)
|
||||
literals("f","f",#20038)
|
||||
decl(#20038,#20036)
|
||||
#20039=*
|
||||
scopes(#20039,1)
|
||||
scopenodes(#20037,#20039)
|
||||
scopenesting(#20039,#20000)
|
||||
#20040=@"var;{arguments};{#20039}"
|
||||
variables(#20040,"arguments",#20039)
|
||||
isArgumentsObject(#20040)
|
||||
#20041=*
|
||||
stmts(#20041,1,#20037,-2,"{\n ret ... rget;\n}")
|
||||
#20042=@"loc,{#10000},1,14,3,1"
|
||||
locations_default(#20042,#10000,1,14,3,1)
|
||||
hasLocation(#20041,#20042)
|
||||
stmtContainers(#20041,#20037)
|
||||
#20043=*
|
||||
stmts(#20043,9,#20041,0,"return !!new.target;")
|
||||
#20044=@"loc,{#10000},2,3,2,22"
|
||||
locations_default(#20044,#10000,2,3,2,22)
|
||||
hasLocation(#20043,#20044)
|
||||
stmtContainers(#20043,#20037)
|
||||
#20045=*
|
||||
exprs(#20045,18,#20043,0,"!!new.target")
|
||||
#20046=@"loc,{#10000},2,10,2,21"
|
||||
locations_default(#20046,#10000,2,10,2,21)
|
||||
hasLocation(#20045,#20046)
|
||||
enclosingStmt(#20045,#20043)
|
||||
exprContainers(#20045,#20037)
|
||||
#20047=*
|
||||
exprs(#20047,18,#20045,0,"!new.target")
|
||||
#20048=@"loc,{#10000},2,11,2,21"
|
||||
locations_default(#20048,#10000,2,11,2,21)
|
||||
hasLocation(#20047,#20048)
|
||||
enclosingStmt(#20047,#20043)
|
||||
exprContainers(#20047,#20037)
|
||||
#20049=*
|
||||
tokeninfo(#20049,0,#20001,13,"")
|
||||
#20050=@"loc,{#10000},3,2,3,1"
|
||||
locations_default(#20050,#10000,3,2,3,1)
|
||||
exprs(#20049,82,#20047,0,"new.target")
|
||||
#20050=@"loc,{#10000},2,12,2,21"
|
||||
locations_default(#20050,#10000,2,12,2,21)
|
||||
hasLocation(#20049,#20050)
|
||||
enclosingStmt(#20049,#20043)
|
||||
exprContainers(#20049,#20037)
|
||||
#20051=*
|
||||
entry_cfg_node(#20051,#20001)
|
||||
#20052=@"loc,{#10000},1,1,1,0"
|
||||
@@ -160,21 +159,21 @@ locations_default(#20052,#10000,1,1,1,0)
|
||||
hasLocation(#20051,#20052)
|
||||
#20053=*
|
||||
exit_cfg_node(#20053,#20001)
|
||||
hasLocation(#20053,#20050)
|
||||
successor(#20004,#20053)
|
||||
hasLocation(#20053,#20034)
|
||||
successor(#20037,#20053)
|
||||
#20054=*
|
||||
entry_cfg_node(#20054,#20004)
|
||||
entry_cfg_node(#20054,#20037)
|
||||
hasLocation(#20054,#20052)
|
||||
#20055=*
|
||||
exit_cfg_node(#20055,#20004)
|
||||
hasLocation(#20055,#20050)
|
||||
successor(#20009,#20017)
|
||||
successor(#20017,#20015)
|
||||
successor(#20015,#20013)
|
||||
successor(#20013,#20011)
|
||||
successor(#20011,#20055)
|
||||
successor(#20054,#20009)
|
||||
successor(#20005,#20004)
|
||||
successor(#20051,#20005)
|
||||
exit_cfg_node(#20055,#20037)
|
||||
hasLocation(#20055,#20034)
|
||||
successor(#20041,#20049)
|
||||
successor(#20049,#20047)
|
||||
successor(#20047,#20045)
|
||||
successor(#20045,#20043)
|
||||
successor(#20043,#20055)
|
||||
successor(#20054,#20041)
|
||||
successor(#20038,#20037)
|
||||
successor(#20051,#20038)
|
||||
numlines(#10000,3,3,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,46 +9,46 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20002,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=*
|
||||
stmts(#20003,2,#20001,0,"``")
|
||||
#20004=@"loc,{#10000},1,1,1,2"
|
||||
locations_default(#20004,#10000,1,1,1,2)
|
||||
hasLocation(#20003,#20004)
|
||||
stmtContainers(#20003,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,71,#20003,0,"``")
|
||||
hasLocation(#20005,#20004)
|
||||
enclosingStmt(#20005,#20003)
|
||||
exprContainers(#20005,#20001)
|
||||
#20006=*
|
||||
lines(#20006,#20001,"``","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"``","
|
||||
")
|
||||
hasLocation(#20006,#20004)
|
||||
#20003=@"loc,{#10000},1,1,1,2"
|
||||
locations_default(#20003,#10000,1,1,1,2)
|
||||
hasLocation(#20002,#20003)
|
||||
numlines(#20001,1,1,0)
|
||||
#20007=*
|
||||
tokeninfo(#20007,8,#20001,0,"`")
|
||||
#20008=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20008,#10000,1,1,1,1)
|
||||
hasLocation(#20007,#20008)
|
||||
#20009=*
|
||||
tokeninfo(#20009,4,#20001,1,"")
|
||||
#20010=@"loc,{#10000},1,2,1,1"
|
||||
locations_default(#20010,#10000,1,2,1,1)
|
||||
hasLocation(#20009,#20010)
|
||||
#20011=*
|
||||
tokeninfo(#20011,8,#20001,2,"`")
|
||||
#20012=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20012,#10000,1,2,1,2)
|
||||
hasLocation(#20011,#20012)
|
||||
#20004=*
|
||||
tokeninfo(#20004,8,#20001,0,"`")
|
||||
#20005=@"loc,{#10000},1,1,1,1"
|
||||
locations_default(#20005,#10000,1,1,1,1)
|
||||
hasLocation(#20004,#20005)
|
||||
#20006=*
|
||||
tokeninfo(#20006,4,#20001,1,"")
|
||||
#20007=@"loc,{#10000},1,2,1,1"
|
||||
locations_default(#20007,#10000,1,2,1,1)
|
||||
hasLocation(#20006,#20007)
|
||||
#20008=*
|
||||
tokeninfo(#20008,8,#20001,2,"`")
|
||||
#20009=@"loc,{#10000},1,2,1,2"
|
||||
locations_default(#20009,#10000,1,2,1,2)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
tokeninfo(#20010,0,#20001,3,"")
|
||||
#20011=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20011,#10000,2,1,2,0)
|
||||
hasLocation(#20010,#20011)
|
||||
toplevels(#20001,0)
|
||||
#20012=@"loc,{#10000},1,1,2,0"
|
||||
locations_default(#20012,#10000,1,1,2,0)
|
||||
hasLocation(#20001,#20012)
|
||||
#20013=*
|
||||
tokeninfo(#20013,0,#20001,3,"")
|
||||
#20014=@"loc,{#10000},2,1,2,0"
|
||||
locations_default(#20014,#10000,2,1,2,0)
|
||||
hasLocation(#20013,#20014)
|
||||
stmts(#20013,2,#20001,0,"``")
|
||||
hasLocation(#20013,#20003)
|
||||
stmtContainers(#20013,#20001)
|
||||
#20014=*
|
||||
exprs(#20014,71,#20013,0,"``")
|
||||
hasLocation(#20014,#20003)
|
||||
enclosingStmt(#20014,#20013)
|
||||
exprContainers(#20014,#20001)
|
||||
#20015=*
|
||||
entry_cfg_node(#20015,#20001)
|
||||
#20016=@"loc,{#10000},1,1,1,0"
|
||||
@@ -56,9 +56,9 @@ locations_default(#20016,#10000,1,1,1,0)
|
||||
hasLocation(#20015,#20016)
|
||||
#20017=*
|
||||
exit_cfg_node(#20017,#20001)
|
||||
hasLocation(#20017,#20014)
|
||||
successor(#20003,#20005)
|
||||
successor(#20005,#20017)
|
||||
successor(#20015,#20003)
|
||||
hasLocation(#20017,#20011)
|
||||
successor(#20013,#20014)
|
||||
successor(#20014,#20017)
|
||||
successor(#20015,#20013)
|
||||
numlines(#10000,1,1,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,191 +9,189 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,4,0"
|
||||
locations_default(#20002,#10000,1,1,4,0)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{C};{#20000}"
|
||||
variables(#20003,"C",#20000)
|
||||
#20004=@"local_type_name;{C};{#20000}"
|
||||
local_type_names(#20004,"C",#20000)
|
||||
#20005=*
|
||||
stmts(#20005,26,#20001,0,"class C ... ) { }\n}")
|
||||
#20006=@"loc,{#10000},1,1,3,1"
|
||||
locations_default(#20006,#10000,1,1,3,1)
|
||||
hasLocation(#20005,#20006)
|
||||
stmtContainers(#20005,#20001)
|
||||
#20007=*
|
||||
exprs(#20007,78,#20005,0,"C")
|
||||
#20008=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20008,#10000,1,7,1,7)
|
||||
hasLocation(#20007,#20008)
|
||||
enclosingStmt(#20007,#20005)
|
||||
exprContainers(#20007,#20001)
|
||||
literals("C","C",#20007)
|
||||
decl(#20007,#20003)
|
||||
typedecl(#20007,#20004)
|
||||
#20009=*
|
||||
scopes(#20009,10)
|
||||
scopenodes(#20005,#20009)
|
||||
scopenesting(#20009,#20000)
|
||||
#20002=*
|
||||
lines(#20002,#20001,"class C {","
|
||||
")
|
||||
#20003=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20003,#10000,1,1,1,9)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001," set [null](v) { }","
|
||||
")
|
||||
#20005=@"loc,{#10000},2,1,2,19"
|
||||
locations_default(#20005,#10000,2,1,2,19)
|
||||
hasLocation(#20004,#20005)
|
||||
indentation(#10000,2," ",2)
|
||||
#20006=*
|
||||
lines(#20006,#20001,"}","
|
||||
")
|
||||
#20007=@"loc,{#10000},3,1,3,1"
|
||||
locations_default(#20007,#10000,3,1,3,1)
|
||||
hasLocation(#20006,#20007)
|
||||
numlines(#20001,3,3,0)
|
||||
#20008=*
|
||||
tokeninfo(#20008,7,#20001,0,"class")
|
||||
#20009=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20009,#10000,1,1,1,5)
|
||||
hasLocation(#20008,#20009)
|
||||
#20010=*
|
||||
properties(#20010,#20005,2,2,"set [null](v) { }")
|
||||
#20011=@"loc,{#10000},2,3,2,19"
|
||||
locations_default(#20011,#10000,2,3,2,19)
|
||||
tokeninfo(#20010,6,#20001,1,"C")
|
||||
#20011=@"loc,{#10000},1,7,1,7"
|
||||
locations_default(#20011,#10000,1,7,1,7)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
exprs(#20012,1,#20010,0,"null")
|
||||
#20013=@"loc,{#10000},2,8,2,11"
|
||||
locations_default(#20013,#10000,2,8,2,11)
|
||||
tokeninfo(#20012,8,#20001,2,"{")
|
||||
#20013=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20013,#10000,1,9,1,9)
|
||||
hasLocation(#20012,#20013)
|
||||
enclosingStmt(#20012,#20005)
|
||||
exprContainers(#20012,#20001)
|
||||
literals("null","null",#20012)
|
||||
#20014=*
|
||||
exprs(#20014,9,#20010,1,"(v) { }")
|
||||
#20015=@"loc,{#10000},2,13,2,19"
|
||||
locations_default(#20015,#10000,2,13,2,19)
|
||||
tokeninfo(#20014,6,#20001,3,"set")
|
||||
#20015=@"loc,{#10000},2,3,2,5"
|
||||
locations_default(#20015,#10000,2,3,2,5)
|
||||
hasLocation(#20014,#20015)
|
||||
enclosingStmt(#20014,#20005)
|
||||
exprContainers(#20014,#20001)
|
||||
#20016=*
|
||||
scopes(#20016,1)
|
||||
scopenodes(#20014,#20016)
|
||||
scopenesting(#20016,#20009)
|
||||
#20017=@"var;{v};{#20016}"
|
||||
variables(#20017,"v",#20016)
|
||||
tokeninfo(#20016,8,#20001,4,"[")
|
||||
#20017=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20017,#10000,2,7,2,7)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
exprs(#20018,78,#20014,0,"v")
|
||||
#20019=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20019,#10000,2,14,2,14)
|
||||
tokeninfo(#20018,1,#20001,5,"null")
|
||||
#20019=@"loc,{#10000},2,8,2,11"
|
||||
locations_default(#20019,#10000,2,8,2,11)
|
||||
hasLocation(#20018,#20019)
|
||||
exprContainers(#20018,#20014)
|
||||
literals("v","v",#20018)
|
||||
decl(#20018,#20017)
|
||||
#20020=@"var;{arguments};{#20016}"
|
||||
variables(#20020,"arguments",#20016)
|
||||
isArgumentsObject(#20020)
|
||||
#20021=*
|
||||
stmts(#20021,1,#20014,-2,"{ }")
|
||||
#20022=@"loc,{#10000},2,17,2,19"
|
||||
locations_default(#20022,#10000,2,17,2,19)
|
||||
hasLocation(#20021,#20022)
|
||||
stmtContainers(#20021,#20014)
|
||||
numlines(#20014,1,1,0)
|
||||
isMethod(#20010)
|
||||
isComputed(#20010)
|
||||
#20023=*
|
||||
properties(#20023,#20005,3,0,"constructor() {}")
|
||||
#20024=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20024,#10000,1,9,1,8)
|
||||
hasLocation(#20023,#20024)
|
||||
#20025=*
|
||||
exprs(#20025,0,#20023,0,"constructor")
|
||||
hasLocation(#20025,#20024)
|
||||
enclosingStmt(#20025,#20005)
|
||||
exprContainers(#20025,#20001)
|
||||
literals("constructor","constructor",#20025)
|
||||
#20020=*
|
||||
tokeninfo(#20020,8,#20001,6,"]")
|
||||
#20021=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20021,#10000,2,12,2,12)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,7,"(")
|
||||
#20023=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20023,#10000,2,13,2,13)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,6,#20001,8,"v")
|
||||
#20025=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20025,#10000,2,14,2,14)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
exprs(#20026,9,#20023,1,"() {}")
|
||||
hasLocation(#20026,#20024)
|
||||
enclosingStmt(#20026,#20005)
|
||||
exprContainers(#20026,#20001)
|
||||
#20027=*
|
||||
scopes(#20027,1)
|
||||
scopenodes(#20026,#20027)
|
||||
scopenesting(#20027,#20009)
|
||||
#20028=@"var;{arguments};{#20027}"
|
||||
variables(#20028,"arguments",#20027)
|
||||
isArgumentsObject(#20028)
|
||||
#20029=*
|
||||
stmts(#20029,1,#20026,-2,"{}")
|
||||
hasLocation(#20029,#20024)
|
||||
stmtContainers(#20029,#20026)
|
||||
numlines(#20026,1,0,0)
|
||||
isMethod(#20023)
|
||||
tokeninfo(#20026,8,#20001,9,")")
|
||||
#20027=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20027,#10000,2,15,2,15)
|
||||
hasLocation(#20026,#20027)
|
||||
#20028=*
|
||||
tokeninfo(#20028,8,#20001,10,"{")
|
||||
#20029=@"loc,{#10000},2,17,2,17"
|
||||
locations_default(#20029,#10000,2,17,2,17)
|
||||
hasLocation(#20028,#20029)
|
||||
#20030=*
|
||||
lines(#20030,#20001,"class C {","
|
||||
")
|
||||
#20031=@"loc,{#10000},1,1,1,9"
|
||||
locations_default(#20031,#10000,1,1,1,9)
|
||||
tokeninfo(#20030,8,#20001,11,"}")
|
||||
#20031=@"loc,{#10000},2,19,2,19"
|
||||
locations_default(#20031,#10000,2,19,2,19)
|
||||
hasLocation(#20030,#20031)
|
||||
#20032=*
|
||||
lines(#20032,#20001," set [null](v) { }","
|
||||
")
|
||||
#20033=@"loc,{#10000},2,1,2,19"
|
||||
locations_default(#20033,#10000,2,1,2,19)
|
||||
hasLocation(#20032,#20033)
|
||||
indentation(#10000,2," ",2)
|
||||
#20034=*
|
||||
lines(#20034,#20001,"}","
|
||||
")
|
||||
#20035=@"loc,{#10000},3,1,3,1"
|
||||
locations_default(#20035,#10000,3,1,3,1)
|
||||
hasLocation(#20034,#20035)
|
||||
numlines(#20001,3,3,0)
|
||||
#20036=*
|
||||
tokeninfo(#20036,7,#20001,0,"class")
|
||||
#20037=@"loc,{#10000},1,1,1,5"
|
||||
locations_default(#20037,#10000,1,1,1,5)
|
||||
hasLocation(#20036,#20037)
|
||||
tokeninfo(#20032,8,#20001,12,"}")
|
||||
hasLocation(#20032,#20007)
|
||||
#20033=*
|
||||
tokeninfo(#20033,0,#20001,13,"")
|
||||
#20034=@"loc,{#10000},4,1,4,0"
|
||||
locations_default(#20034,#10000,4,1,4,0)
|
||||
hasLocation(#20033,#20034)
|
||||
toplevels(#20001,0)
|
||||
#20035=@"loc,{#10000},1,1,4,0"
|
||||
locations_default(#20035,#10000,1,1,4,0)
|
||||
hasLocation(#20001,#20035)
|
||||
#20036=@"var;{C};{#20000}"
|
||||
variables(#20036,"C",#20000)
|
||||
#20037=@"local_type_name;{C};{#20000}"
|
||||
local_type_names(#20037,"C",#20000)
|
||||
#20038=*
|
||||
tokeninfo(#20038,6,#20001,1,"C")
|
||||
hasLocation(#20038,#20008)
|
||||
#20039=*
|
||||
tokeninfo(#20039,8,#20001,2,"{")
|
||||
#20040=@"loc,{#10000},1,9,1,9"
|
||||
locations_default(#20040,#10000,1,9,1,9)
|
||||
hasLocation(#20039,#20040)
|
||||
stmts(#20038,26,#20001,0,"class C ... ) { }\n}")
|
||||
#20039=@"loc,{#10000},1,1,3,1"
|
||||
locations_default(#20039,#10000,1,1,3,1)
|
||||
hasLocation(#20038,#20039)
|
||||
stmtContainers(#20038,#20001)
|
||||
#20040=*
|
||||
exprs(#20040,78,#20038,0,"C")
|
||||
hasLocation(#20040,#20011)
|
||||
enclosingStmt(#20040,#20038)
|
||||
exprContainers(#20040,#20001)
|
||||
literals("C","C",#20040)
|
||||
decl(#20040,#20036)
|
||||
typedecl(#20040,#20037)
|
||||
#20041=*
|
||||
tokeninfo(#20041,6,#20001,3,"set")
|
||||
#20042=@"loc,{#10000},2,3,2,5"
|
||||
locations_default(#20042,#10000,2,3,2,5)
|
||||
hasLocation(#20041,#20042)
|
||||
#20043=*
|
||||
tokeninfo(#20043,8,#20001,4,"[")
|
||||
#20044=@"loc,{#10000},2,7,2,7"
|
||||
locations_default(#20044,#10000,2,7,2,7)
|
||||
hasLocation(#20043,#20044)
|
||||
scopes(#20041,10)
|
||||
scopenodes(#20038,#20041)
|
||||
scopenesting(#20041,#20000)
|
||||
#20042=*
|
||||
properties(#20042,#20038,2,2,"set [null](v) { }")
|
||||
#20043=@"loc,{#10000},2,3,2,19"
|
||||
locations_default(#20043,#10000,2,3,2,19)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
exprs(#20044,1,#20042,0,"null")
|
||||
hasLocation(#20044,#20019)
|
||||
enclosingStmt(#20044,#20038)
|
||||
exprContainers(#20044,#20001)
|
||||
literals("null","null",#20044)
|
||||
#20045=*
|
||||
tokeninfo(#20045,1,#20001,5,"null")
|
||||
hasLocation(#20045,#20013)
|
||||
#20046=*
|
||||
tokeninfo(#20046,8,#20001,6,"]")
|
||||
#20047=@"loc,{#10000},2,12,2,12"
|
||||
locations_default(#20047,#10000,2,12,2,12)
|
||||
hasLocation(#20046,#20047)
|
||||
#20048=*
|
||||
tokeninfo(#20048,8,#20001,7,"(")
|
||||
#20049=@"loc,{#10000},2,13,2,13"
|
||||
locations_default(#20049,#10000,2,13,2,13)
|
||||
hasLocation(#20048,#20049)
|
||||
#20050=*
|
||||
tokeninfo(#20050,6,#20001,8,"v")
|
||||
hasLocation(#20050,#20019)
|
||||
exprs(#20045,9,#20042,1,"(v) { }")
|
||||
#20046=@"loc,{#10000},2,13,2,19"
|
||||
locations_default(#20046,#10000,2,13,2,19)
|
||||
hasLocation(#20045,#20046)
|
||||
enclosingStmt(#20045,#20038)
|
||||
exprContainers(#20045,#20001)
|
||||
#20047=*
|
||||
scopes(#20047,1)
|
||||
scopenodes(#20045,#20047)
|
||||
scopenesting(#20047,#20041)
|
||||
#20048=@"var;{v};{#20047}"
|
||||
variables(#20048,"v",#20047)
|
||||
#20049=*
|
||||
exprs(#20049,78,#20045,0,"v")
|
||||
hasLocation(#20049,#20025)
|
||||
exprContainers(#20049,#20045)
|
||||
literals("v","v",#20049)
|
||||
decl(#20049,#20048)
|
||||
#20050=@"var;{arguments};{#20047}"
|
||||
variables(#20050,"arguments",#20047)
|
||||
isArgumentsObject(#20050)
|
||||
#20051=*
|
||||
tokeninfo(#20051,8,#20001,9,")")
|
||||
#20052=@"loc,{#10000},2,15,2,15"
|
||||
locations_default(#20052,#10000,2,15,2,15)
|
||||
stmts(#20051,1,#20045,-2,"{ }")
|
||||
#20052=@"loc,{#10000},2,17,2,19"
|
||||
locations_default(#20052,#10000,2,17,2,19)
|
||||
hasLocation(#20051,#20052)
|
||||
stmtContainers(#20051,#20045)
|
||||
isMethod(#20042)
|
||||
isComputed(#20042)
|
||||
#20053=*
|
||||
tokeninfo(#20053,8,#20001,10,"{")
|
||||
#20054=@"loc,{#10000},2,17,2,17"
|
||||
locations_default(#20054,#10000,2,17,2,17)
|
||||
properties(#20053,#20038,3,0,"constructor() {}")
|
||||
#20054=@"loc,{#10000},1,9,1,8"
|
||||
locations_default(#20054,#10000,1,9,1,8)
|
||||
hasLocation(#20053,#20054)
|
||||
#20055=*
|
||||
tokeninfo(#20055,8,#20001,11,"}")
|
||||
#20056=@"loc,{#10000},2,19,2,19"
|
||||
locations_default(#20056,#10000,2,19,2,19)
|
||||
hasLocation(#20055,#20056)
|
||||
exprs(#20055,0,#20053,0,"constructor")
|
||||
hasLocation(#20055,#20054)
|
||||
enclosingStmt(#20055,#20038)
|
||||
exprContainers(#20055,#20001)
|
||||
literals("constructor","constructor",#20055)
|
||||
#20056=*
|
||||
exprs(#20056,9,#20053,1,"() {}")
|
||||
hasLocation(#20056,#20054)
|
||||
enclosingStmt(#20056,#20038)
|
||||
exprContainers(#20056,#20001)
|
||||
#20057=*
|
||||
tokeninfo(#20057,8,#20001,12,"}")
|
||||
hasLocation(#20057,#20035)
|
||||
#20058=*
|
||||
tokeninfo(#20058,0,#20001,13,"")
|
||||
#20059=@"loc,{#10000},4,1,4,0"
|
||||
locations_default(#20059,#10000,4,1,4,0)
|
||||
hasLocation(#20058,#20059)
|
||||
scopes(#20057,1)
|
||||
scopenodes(#20056,#20057)
|
||||
scopenesting(#20057,#20041)
|
||||
#20058=@"var;{arguments};{#20057}"
|
||||
variables(#20058,"arguments",#20057)
|
||||
isArgumentsObject(#20058)
|
||||
#20059=*
|
||||
stmts(#20059,1,#20056,-2,"{}")
|
||||
hasLocation(#20059,#20054)
|
||||
stmtContainers(#20059,#20056)
|
||||
isMethod(#20053)
|
||||
#20060=*
|
||||
entry_cfg_node(#20060,#20001)
|
||||
#20061=@"loc,{#10000},1,1,1,0"
|
||||
@@ -201,36 +199,36 @@ locations_default(#20061,#10000,1,1,1,0)
|
||||
hasLocation(#20060,#20061)
|
||||
#20062=*
|
||||
exit_cfg_node(#20062,#20001)
|
||||
hasLocation(#20062,#20059)
|
||||
successor(#20026,#20023)
|
||||
hasLocation(#20062,#20034)
|
||||
successor(#20056,#20053)
|
||||
#20063=*
|
||||
entry_cfg_node(#20063,#20026)
|
||||
hasLocation(#20063,#20024)
|
||||
entry_cfg_node(#20063,#20056)
|
||||
hasLocation(#20063,#20054)
|
||||
#20064=*
|
||||
exit_cfg_node(#20064,#20026)
|
||||
hasLocation(#20064,#20024)
|
||||
successor(#20029,#20064)
|
||||
successor(#20063,#20029)
|
||||
successor(#20025,#20026)
|
||||
successor(#20023,#20005)
|
||||
successor(#20014,#20010)
|
||||
exit_cfg_node(#20064,#20056)
|
||||
hasLocation(#20064,#20054)
|
||||
successor(#20059,#20064)
|
||||
successor(#20063,#20059)
|
||||
successor(#20055,#20056)
|
||||
successor(#20053,#20038)
|
||||
successor(#20045,#20042)
|
||||
#20065=*
|
||||
entry_cfg_node(#20065,#20014)
|
||||
entry_cfg_node(#20065,#20045)
|
||||
#20066=@"loc,{#10000},2,13,2,12"
|
||||
locations_default(#20066,#10000,2,13,2,12)
|
||||
hasLocation(#20065,#20066)
|
||||
#20067=*
|
||||
exit_cfg_node(#20067,#20014)
|
||||
exit_cfg_node(#20067,#20045)
|
||||
#20068=@"loc,{#10000},2,20,2,19"
|
||||
locations_default(#20068,#10000,2,20,2,19)
|
||||
hasLocation(#20067,#20068)
|
||||
successor(#20021,#20067)
|
||||
successor(#20018,#20021)
|
||||
successor(#20065,#20018)
|
||||
successor(#20012,#20014)
|
||||
successor(#20010,#20025)
|
||||
successor(#20007,#20012)
|
||||
successor(#20005,#20062)
|
||||
successor(#20060,#20007)
|
||||
successor(#20051,#20067)
|
||||
successor(#20049,#20051)
|
||||
successor(#20065,#20049)
|
||||
successor(#20044,#20045)
|
||||
successor(#20042,#20055)
|
||||
successor(#20040,#20044)
|
||||
successor(#20038,#20062)
|
||||
successor(#20060,#20040)
|
||||
numlines(#10000,3,3,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
@@ -9,172 +9,171 @@ hasLocation(#10000,#10002)
|
||||
#20000=@"global_scope"
|
||||
scopes(#20000,0)
|
||||
#20001=@"script;{#10000},1,1"
|
||||
toplevels(#20001,0)
|
||||
#20002=@"loc,{#10000},1,1,4,1"
|
||||
locations_default(#20002,#10000,1,1,4,1)
|
||||
hasLocation(#20001,#20002)
|
||||
#20003=@"var;{test};{#20000}"
|
||||
variables(#20003,"test",#20000)
|
||||
#20004=*
|
||||
stmts(#20004,17,#20001,0,"functio ... nts);\n}")
|
||||
hasLocation(#20004,#20002)
|
||||
stmtContainers(#20004,#20001)
|
||||
#20005=*
|
||||
exprs(#20005,78,#20004,-1,"test")
|
||||
#20006=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20006,#10000,1,10,1,13)
|
||||
hasLocation(#20005,#20006)
|
||||
exprContainers(#20005,#20004)
|
||||
literals("test","test",#20005)
|
||||
decl(#20005,#20003)
|
||||
#20007=*
|
||||
scopes(#20007,1)
|
||||
scopenodes(#20004,#20007)
|
||||
scopenesting(#20007,#20000)
|
||||
#20008=@"var;{arguments};{#20007}"
|
||||
variables(#20008,"arguments",#20007)
|
||||
isArgumentsObject(#20008)
|
||||
#20009=*
|
||||
stmts(#20009,1,#20004,-2,"{\n a ... nts);\n}")
|
||||
#20010=@"loc,{#10000},1,17,4,1"
|
||||
locations_default(#20010,#10000,1,17,4,1)
|
||||
hasLocation(#20009,#20010)
|
||||
stmtContainers(#20009,#20004)
|
||||
#20011=*
|
||||
stmts(#20011,2,#20009,0,"arguments;")
|
||||
#20012=@"loc,{#10000},2,5,2,14"
|
||||
locations_default(#20012,#10000,2,5,2,14)
|
||||
hasLocation(#20011,#20012)
|
||||
stmtContainers(#20011,#20004)
|
||||
#20013=*
|
||||
exprs(#20013,79,#20011,0,"arguments")
|
||||
#20014=@"loc,{#10000},2,5,2,13"
|
||||
locations_default(#20014,#10000,2,5,2,13)
|
||||
hasLocation(#20013,#20014)
|
||||
enclosingStmt(#20013,#20011)
|
||||
exprContainers(#20013,#20004)
|
||||
literals("arguments","arguments",#20013)
|
||||
bind(#20013,#20008)
|
||||
#20015=*
|
||||
stmts(#20015,2,#20009,1,"let (arguments);")
|
||||
#20016=@"loc,{#10000},3,5,3,20"
|
||||
locations_default(#20016,#10000,3,5,3,20)
|
||||
hasLocation(#20015,#20016)
|
||||
stmtContainers(#20015,#20004)
|
||||
#20017=*
|
||||
exprs(#20017,13,#20015,0,"let (arguments)")
|
||||
#20018=@"loc,{#10000},3,5,3,19"
|
||||
locations_default(#20018,#10000,3,5,3,19)
|
||||
hasLocation(#20017,#20018)
|
||||
enclosingStmt(#20017,#20015)
|
||||
exprContainers(#20017,#20004)
|
||||
#20019=*
|
||||
exprs(#20019,79,#20017,-1,"let")
|
||||
#20020=@"loc,{#10000},3,5,3,7"
|
||||
locations_default(#20020,#10000,3,5,3,7)
|
||||
hasLocation(#20019,#20020)
|
||||
enclosingStmt(#20019,#20015)
|
||||
exprContainers(#20019,#20004)
|
||||
literals("let","let",#20019)
|
||||
#20021=@"var;{let};{#20000}"
|
||||
variables(#20021,"let",#20000)
|
||||
bind(#20019,#20021)
|
||||
#20022=*
|
||||
exprs(#20022,79,#20017,0,"arguments")
|
||||
#20023=@"loc,{#10000},3,10,3,18"
|
||||
locations_default(#20023,#10000,3,10,3,18)
|
||||
hasLocation(#20022,#20023)
|
||||
enclosingStmt(#20022,#20015)
|
||||
exprContainers(#20022,#20004)
|
||||
literals("arguments","arguments",#20022)
|
||||
bind(#20022,#20008)
|
||||
numlines(#20004,4,4,0)
|
||||
#20024=*
|
||||
lines(#20024,#20001,"function test() {","
|
||||
#20002=*
|
||||
lines(#20002,#20001,"function test() {","
|
||||
")
|
||||
#20025=@"loc,{#10000},1,1,1,17"
|
||||
locations_default(#20025,#10000,1,1,1,17)
|
||||
#20003=@"loc,{#10000},1,1,1,17"
|
||||
locations_default(#20003,#10000,1,1,1,17)
|
||||
hasLocation(#20002,#20003)
|
||||
#20004=*
|
||||
lines(#20004,#20001," arguments;","
|
||||
")
|
||||
#20005=@"loc,{#10000},2,1,2,14"
|
||||
locations_default(#20005,#10000,2,1,2,14)
|
||||
hasLocation(#20004,#20005)
|
||||
indentation(#10000,2," ",4)
|
||||
#20006=*
|
||||
lines(#20006,#20001," let (arguments);","
|
||||
")
|
||||
#20007=@"loc,{#10000},3,1,3,20"
|
||||
locations_default(#20007,#10000,3,1,3,20)
|
||||
hasLocation(#20006,#20007)
|
||||
indentation(#10000,3," ",4)
|
||||
#20008=*
|
||||
lines(#20008,#20001,"}","")
|
||||
#20009=@"loc,{#10000},4,1,4,1"
|
||||
locations_default(#20009,#10000,4,1,4,1)
|
||||
hasLocation(#20008,#20009)
|
||||
numlines(#20001,4,4,0)
|
||||
#20010=*
|
||||
tokeninfo(#20010,7,#20001,0,"function")
|
||||
#20011=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20011,#10000,1,1,1,8)
|
||||
hasLocation(#20010,#20011)
|
||||
#20012=*
|
||||
tokeninfo(#20012,6,#20001,1,"test")
|
||||
#20013=@"loc,{#10000},1,10,1,13"
|
||||
locations_default(#20013,#10000,1,10,1,13)
|
||||
hasLocation(#20012,#20013)
|
||||
#20014=*
|
||||
tokeninfo(#20014,8,#20001,2,"(")
|
||||
#20015=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20015,#10000,1,14,1,14)
|
||||
hasLocation(#20014,#20015)
|
||||
#20016=*
|
||||
tokeninfo(#20016,8,#20001,3,")")
|
||||
#20017=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20017,#10000,1,15,1,15)
|
||||
hasLocation(#20016,#20017)
|
||||
#20018=*
|
||||
tokeninfo(#20018,8,#20001,4,"{")
|
||||
#20019=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20019,#10000,1,17,1,17)
|
||||
hasLocation(#20018,#20019)
|
||||
#20020=*
|
||||
tokeninfo(#20020,6,#20001,5,"arguments")
|
||||
#20021=@"loc,{#10000},2,5,2,13"
|
||||
locations_default(#20021,#10000,2,5,2,13)
|
||||
hasLocation(#20020,#20021)
|
||||
#20022=*
|
||||
tokeninfo(#20022,8,#20001,6,";")
|
||||
#20023=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20023,#10000,2,14,2,14)
|
||||
hasLocation(#20022,#20023)
|
||||
#20024=*
|
||||
tokeninfo(#20024,7,#20001,7,"let")
|
||||
#20025=@"loc,{#10000},3,5,3,7"
|
||||
locations_default(#20025,#10000,3,5,3,7)
|
||||
hasLocation(#20024,#20025)
|
||||
#20026=*
|
||||
lines(#20026,#20001," arguments;","
|
||||
")
|
||||
#20027=@"loc,{#10000},2,1,2,14"
|
||||
locations_default(#20027,#10000,2,1,2,14)
|
||||
tokeninfo(#20026,8,#20001,8,"(")
|
||||
#20027=@"loc,{#10000},3,9,3,9"
|
||||
locations_default(#20027,#10000,3,9,3,9)
|
||||
hasLocation(#20026,#20027)
|
||||
indentation(#10000,2," ",4)
|
||||
#20028=*
|
||||
lines(#20028,#20001," let (arguments);","
|
||||
")
|
||||
#20029=@"loc,{#10000},3,1,3,20"
|
||||
locations_default(#20029,#10000,3,1,3,20)
|
||||
tokeninfo(#20028,6,#20001,9,"arguments")
|
||||
#20029=@"loc,{#10000},3,10,3,18"
|
||||
locations_default(#20029,#10000,3,10,3,18)
|
||||
hasLocation(#20028,#20029)
|
||||
indentation(#10000,3," ",4)
|
||||
#20030=*
|
||||
lines(#20030,#20001,"}","")
|
||||
#20031=@"loc,{#10000},4,1,4,1"
|
||||
locations_default(#20031,#10000,4,1,4,1)
|
||||
tokeninfo(#20030,8,#20001,10,")")
|
||||
#20031=@"loc,{#10000},3,19,3,19"
|
||||
locations_default(#20031,#10000,3,19,3,19)
|
||||
hasLocation(#20030,#20031)
|
||||
numlines(#20001,4,4,0)
|
||||
#20032=*
|
||||
tokeninfo(#20032,7,#20001,0,"function")
|
||||
#20033=@"loc,{#10000},1,1,1,8"
|
||||
locations_default(#20033,#10000,1,1,1,8)
|
||||
tokeninfo(#20032,8,#20001,11,";")
|
||||
#20033=@"loc,{#10000},3,20,3,20"
|
||||
locations_default(#20033,#10000,3,20,3,20)
|
||||
hasLocation(#20032,#20033)
|
||||
#20034=*
|
||||
tokeninfo(#20034,6,#20001,1,"test")
|
||||
hasLocation(#20034,#20006)
|
||||
tokeninfo(#20034,8,#20001,12,"}")
|
||||
hasLocation(#20034,#20009)
|
||||
#20035=*
|
||||
tokeninfo(#20035,8,#20001,2,"(")
|
||||
#20036=@"loc,{#10000},1,14,1,14"
|
||||
locations_default(#20036,#10000,1,14,1,14)
|
||||
tokeninfo(#20035,0,#20001,13,"")
|
||||
#20036=@"loc,{#10000},4,2,4,1"
|
||||
locations_default(#20036,#10000,4,2,4,1)
|
||||
hasLocation(#20035,#20036)
|
||||
#20037=*
|
||||
tokeninfo(#20037,8,#20001,3,")")
|
||||
#20038=@"loc,{#10000},1,15,1,15"
|
||||
locations_default(#20038,#10000,1,15,1,15)
|
||||
hasLocation(#20037,#20038)
|
||||
toplevels(#20001,0)
|
||||
#20037=@"loc,{#10000},1,1,4,1"
|
||||
locations_default(#20037,#10000,1,1,4,1)
|
||||
hasLocation(#20001,#20037)
|
||||
#20038=@"var;{test};{#20000}"
|
||||
variables(#20038,"test",#20000)
|
||||
#20039=*
|
||||
tokeninfo(#20039,8,#20001,4,"{")
|
||||
#20040=@"loc,{#10000},1,17,1,17"
|
||||
locations_default(#20040,#10000,1,17,1,17)
|
||||
hasLocation(#20039,#20040)
|
||||
stmts(#20039,17,#20001,0,"functio ... nts);\n}")
|
||||
hasLocation(#20039,#20037)
|
||||
stmtContainers(#20039,#20001)
|
||||
#20040=*
|
||||
exprs(#20040,78,#20039,-1,"test")
|
||||
hasLocation(#20040,#20013)
|
||||
exprContainers(#20040,#20039)
|
||||
literals("test","test",#20040)
|
||||
decl(#20040,#20038)
|
||||
#20041=*
|
||||
tokeninfo(#20041,6,#20001,5,"arguments")
|
||||
hasLocation(#20041,#20014)
|
||||
#20042=*
|
||||
tokeninfo(#20042,8,#20001,6,";")
|
||||
#20043=@"loc,{#10000},2,14,2,14"
|
||||
locations_default(#20043,#10000,2,14,2,14)
|
||||
hasLocation(#20042,#20043)
|
||||
#20044=*
|
||||
tokeninfo(#20044,7,#20001,7,"let")
|
||||
hasLocation(#20044,#20020)
|
||||
scopes(#20041,1)
|
||||
scopenodes(#20039,#20041)
|
||||
scopenesting(#20041,#20000)
|
||||
#20042=@"var;{arguments};{#20041}"
|
||||
variables(#20042,"arguments",#20041)
|
||||
isArgumentsObject(#20042)
|
||||
#20043=*
|
||||
stmts(#20043,1,#20039,-2,"{\n a ... nts);\n}")
|
||||
#20044=@"loc,{#10000},1,17,4,1"
|
||||
locations_default(#20044,#10000,1,17,4,1)
|
||||
hasLocation(#20043,#20044)
|
||||
stmtContainers(#20043,#20039)
|
||||
#20045=*
|
||||
tokeninfo(#20045,8,#20001,8,"(")
|
||||
#20046=@"loc,{#10000},3,9,3,9"
|
||||
locations_default(#20046,#10000,3,9,3,9)
|
||||
stmts(#20045,2,#20043,0,"arguments;")
|
||||
#20046=@"loc,{#10000},2,5,2,14"
|
||||
locations_default(#20046,#10000,2,5,2,14)
|
||||
hasLocation(#20045,#20046)
|
||||
stmtContainers(#20045,#20039)
|
||||
#20047=*
|
||||
tokeninfo(#20047,6,#20001,9,"arguments")
|
||||
hasLocation(#20047,#20023)
|
||||
exprs(#20047,79,#20045,0,"arguments")
|
||||
hasLocation(#20047,#20021)
|
||||
enclosingStmt(#20047,#20045)
|
||||
exprContainers(#20047,#20039)
|
||||
literals("arguments","arguments",#20047)
|
||||
bind(#20047,#20042)
|
||||
#20048=*
|
||||
tokeninfo(#20048,8,#20001,10,")")
|
||||
#20049=@"loc,{#10000},3,19,3,19"
|
||||
locations_default(#20049,#10000,3,19,3,19)
|
||||
stmts(#20048,2,#20043,1,"let (arguments);")
|
||||
#20049=@"loc,{#10000},3,5,3,20"
|
||||
locations_default(#20049,#10000,3,5,3,20)
|
||||
hasLocation(#20048,#20049)
|
||||
stmtContainers(#20048,#20039)
|
||||
#20050=*
|
||||
tokeninfo(#20050,8,#20001,11,";")
|
||||
#20051=@"loc,{#10000},3,20,3,20"
|
||||
locations_default(#20051,#10000,3,20,3,20)
|
||||
exprs(#20050,13,#20048,0,"let (arguments)")
|
||||
#20051=@"loc,{#10000},3,5,3,19"
|
||||
locations_default(#20051,#10000,3,5,3,19)
|
||||
hasLocation(#20050,#20051)
|
||||
enclosingStmt(#20050,#20048)
|
||||
exprContainers(#20050,#20039)
|
||||
#20052=*
|
||||
tokeninfo(#20052,8,#20001,12,"}")
|
||||
hasLocation(#20052,#20031)
|
||||
#20053=*
|
||||
tokeninfo(#20053,0,#20001,13,"")
|
||||
#20054=@"loc,{#10000},4,2,4,1"
|
||||
locations_default(#20054,#10000,4,2,4,1)
|
||||
hasLocation(#20053,#20054)
|
||||
exprs(#20052,79,#20050,-1,"let")
|
||||
hasLocation(#20052,#20025)
|
||||
enclosingStmt(#20052,#20048)
|
||||
exprContainers(#20052,#20039)
|
||||
literals("let","let",#20052)
|
||||
#20053=@"var;{let};{#20000}"
|
||||
variables(#20053,"let",#20000)
|
||||
bind(#20052,#20053)
|
||||
#20054=*
|
||||
exprs(#20054,79,#20050,0,"arguments")
|
||||
hasLocation(#20054,#20029)
|
||||
enclosingStmt(#20054,#20048)
|
||||
exprContainers(#20054,#20039)
|
||||
literals("arguments","arguments",#20054)
|
||||
bind(#20054,#20042)
|
||||
#20055=*
|
||||
entry_cfg_node(#20055,#20001)
|
||||
#20056=@"loc,{#10000},1,1,1,0"
|
||||
@@ -182,23 +181,23 @@ locations_default(#20056,#10000,1,1,1,0)
|
||||
hasLocation(#20055,#20056)
|
||||
#20057=*
|
||||
exit_cfg_node(#20057,#20001)
|
||||
hasLocation(#20057,#20054)
|
||||
successor(#20004,#20057)
|
||||
hasLocation(#20057,#20036)
|
||||
successor(#20039,#20057)
|
||||
#20058=*
|
||||
entry_cfg_node(#20058,#20004)
|
||||
entry_cfg_node(#20058,#20039)
|
||||
hasLocation(#20058,#20056)
|
||||
#20059=*
|
||||
exit_cfg_node(#20059,#20004)
|
||||
hasLocation(#20059,#20054)
|
||||
successor(#20009,#20011)
|
||||
successor(#20015,#20019)
|
||||
successor(#20022,#20017)
|
||||
successor(#20019,#20022)
|
||||
successor(#20017,#20059)
|
||||
successor(#20011,#20013)
|
||||
successor(#20013,#20015)
|
||||
successor(#20058,#20009)
|
||||
successor(#20005,#20004)
|
||||
successor(#20055,#20005)
|
||||
exit_cfg_node(#20059,#20039)
|
||||
hasLocation(#20059,#20036)
|
||||
successor(#20043,#20045)
|
||||
successor(#20048,#20052)
|
||||
successor(#20054,#20050)
|
||||
successor(#20052,#20054)
|
||||
successor(#20050,#20059)
|
||||
successor(#20045,#20047)
|
||||
successor(#20047,#20048)
|
||||
successor(#20058,#20043)
|
||||
successor(#20040,#20039)
|
||||
successor(#20055,#20040)
|
||||
numlines(#10000,4,4,0)
|
||||
filetype(#10000,"javascript")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user