Class Expr
An expression.
Example:
Math.sqrt(x*x + y*y)
Import path
import semmle.javascript.ExprDirect supertypes
Indirect supertypes
Known direct subtypes
- ArrayExpr
- ArrowFunctionExpr
- Assignment
- AwaitExpr
- BinaryExpr
- BindingPattern
- BitwiseExpr
- ClassExpr
- ComprehensionBlock
- ComprehensionExpr
- ConditionalExpr
- ConstantExpr
- Decorator
- DynamicImportExpr
- ExportSpecifier
- ExpressionWithTypeArguments
- ExternalModuleReference
- FunctionBindExpr
- FunctionExpr
- FunctionSentExpr
- GeneratedCodeExpr
- ImportMetaExpr
- ImportSpecifier
- InvokeExpr
- JsxEmptyExpr
- JsxName
- JsxNode
- JsxQualifiedName
- Label
- LegacyLetExpr
- Literal
- LogicalExpr
- NewTargetExpr
- NonNullAssertion
- ObjectExpr
- OptionalUse
- ParExpr
- PathExprCandidate
- PipeRefExpr
- PropAccess
- RefExpr
- Refinement
- RefinementCandidate
- SatisfiesExpr
- SeqExpr
- SuperExpr
- TaggedTemplateExpr
- TemplateElement
- TemplateLiteral
- TemplateVarRefExpr
- ThisExpr
- TypeAssertion
- UnaryExpr
- UpdateExpr
- VariableDeclarator
- XUnitAnnotation
- XUnitAttribute
- XmlAnyName
- XmlAttributeSelector
- XmlDotDotExpression
- XmlFilterExpression
- XmlQualifiedIdentifier
- YieldExpr
Predicates
| accessesGlobal | Holds if this expression accesses the global variable |
| getExceptionTarget | Gets the data-flow node where exceptions thrown by this expression will propagate if this expression causes an exception to be thrown. |
| getIntValue | Gets the constant integer value this expression evaluates to, if any. |
| getKind | Gets the kind of this expression, which is an integer value representing the expression’s node type. |
| getParentExpr | Gets the expression that is the parent of this expression in the AST, if any. |
| getStringValue | Gets the constant string value this expression evaluates to, if any. |
| getType | Gets the static type of this expression, as determined by the TypeScript type system. |
| inNullSensitiveContext | Holds if the syntactic context that the expression appears in relies on the expression being non-null/non-undefined. |
| isImpure | Holds if this expression is impure, that is, its evaluation could have side effects. |
| isPure | Holds if this expression is pure, that is, its evaluation is guaranteed to be side-effect free. |
| mayHaveBooleanValue | Holds if this expression may evaluate to |
| mayHaveStringValue | Holds if this expression may evaluate to |
| mayReferToParameter | Holds if this expression may refer to the initial value of parameter |
| stripParens | Gets this expression, with any surrounding parentheses removed. |
| toString | Gets a textual representation of this element. |
Inherited predicates
| analyze | Gets type inference results for this element. | from ValueNode |
| describeControlFlowNode | For internal use. | from ControlFlowNode |
| flow | Gets the data flow node associated with this program element. | from ValueNode |
| getAChild | Gets a child node of this node. | from AstNode |
| getAChildExpr | Gets a child expression of this node. | from AstNode |
| getAChildStmt | Gets a child statement of this node. | from AstNode |
| getAPredecessor | Gets a node preceding this node in the CFG. | from ControlFlowNode |
| getAPrimaryQlClass | Gets the primary QL class for the Locatable. | from Locatable |
| getASuccessor | Gets a node succeeding this node in the CFG. | from ControlFlowNode |
| getAToken | Gets a token belonging to this element. | from AstNode |
| getBasicBlock | Gets the basic block this node belongs to. | from ControlFlowNode |
| getChild | Gets the | from AstNode |
| getChildExpr | Gets the | from AstNode |
| getChildStmt | Gets the | from AstNode |
| getChildTypeExpr | Gets the | from AstNode |
| getContainer | Gets the function or toplevel to which this node belongs. | from NodeInStmtContainer |
| getDocumentation | Gets the JSDoc comment associated with this expression or type or its parent statement, if any. | from ExprOrType |
| getEnclosingFunction | Gets the function in which this expression or type appears, if any. | from ExprOrType |
| getEnclosingStmt | Gets the statement in which this expression or type appears. | from ExprOrType |
| getEndLine | Gets the line on which this element ends. | from Locatable |
| getFile | Gets the file this program element comes from. | from AstNode |
| getFirstControlFlowNode | Gets the first control flow node belonging to this syntactic entity. | from AstNode |
| getFirstToken | Gets the first token belonging to this element. | from AstNode |
| getLastToken | Gets the last token belonging to this element. | from AstNode |
| getLocation | Gets this element’s location. | from Locatable |
| getNumChild | Gets the number of child nodes of this node. | from AstNode |
| getNumChildExpr | Gets the number of child expressions of this node. | from AstNode |
| getNumChildStmt | Gets the number of child statements of this node. | from AstNode |
| getNumLines | Gets the number of lines covered by this element. | from Locatable |
| getParent | Gets the parent node of this node, if any. | from AstNode |
| getPrimaryQlClasses | Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs. | from Locatable |
| getStartLine | Gets the line on which this element starts. | from Locatable |
| getTopLevel | Gets the toplevel syntactic unit to which this element belongs. | from AstNode |
| getUnderlyingReference | Gets the innermost reference that this expression evaluates to, if any. | from ExprOrType |
| getUnderlyingValue | Gets the innermost expression that this expression evaluates to. | from ExprOrType |
| inExternsFile | Holds if this syntactic entity belongs to an externs file. | from AstNode |
| isAFinalNode | Holds if this is a final node, that is, a CFG node where execution of a toplevel or function terminates. | from ControlFlowNode |
| isAFinalNodeOfContainer | Holds if this is a final node of | from ControlFlowNode |
| isAmbient | Holds if this is part of an ambient declaration or type annotation in a TypeScript file. | from AstNode |
| isBranch | Holds if this is a node with more than one successor. | from ControlFlowNode |
| isJoin | Holds if this is a node with more than one predecessor. | from ControlFlowNode |
| isStart | Holds if this is a start node, that is, the CFG node where execution of a toplevel or function begins. | from ControlFlowNode |
| isUnreachable | Holds if this node is unreachable, that is, it has no predecessors in the CFG. Entry nodes are always considered reachable. | from ControlFlowNode |