Package com.google.javascript.jscomp
Class J2clEqualitySameRewriterPass
java.lang.Object
com.google.javascript.jscomp.J2clEqualitySameRewriterPass
An optimization pass to re-write J2CL Equality.$same.
-
Method Summary
Modifier and TypeMethodDescriptionprotected final void
addFeatureToEnclosingScript
(Node n, FeatureSet.Feature feature) protected boolean
areNodesEqualForInlining
(Node n1, Node n2) Are the nodes equal for the purpose of inlining? If type aware optimizations are on, type equality is checked.protected final void
deleteNode
(Node property) protected CodingConvention
Returns the current coding convention.protected BigInteger
Returns the bigint value of the node if it has one and it cannot have side effects.protected Tri
Calculate the known boolean value for a node if possible and if it has no side effects.protected Double
Returns the number value of the node if it has one and it cannot have side effects.protected Double
protected String
Gets the value of a node as a String, ornull
if it cannot be converted.protected boolean
Is the current AST normalized? (e.g.protected boolean
Returns whether the output language is ECMAScript 5 or later.protected final void
markFunctionsDeleted
(Node function) protected final void
CallsNodeUtil.markNewScopesChanged(Node, AbstractCompiler)
protected boolean
Returns whether the node may create new mutable state, or change existing state.protected boolean
Returns whether the node may have side effects when executed.protected boolean
Returns true if the current node's type implies side effects.protected void
report
(DiagnosticType diagnostic, Node n) Helper method for reporting an error to the compiler when applying a peephole optimization.protected final void
-
Method Details
-
report
Helper method for reporting an error to the compiler when applying a peephole optimization.- Parameters:
diagnostic
- The error typen
- The node for which the error should be reported
-
areNodesEqualForInlining
Are the nodes equal for the purpose of inlining? If type aware optimizations are on, type equality is checked. -
isASTNormalized
protected boolean isASTNormalized()Is the current AST normalized? (e.g. has the Normalize pass been run and has the Denormalize pass not yet been run?) -
mayEffectMutableState
Returns whether the node may create new mutable state, or change existing state. -
mayHaveSideEffects
Returns whether the node may have side effects when executed. -
getSideEffectFreeNumberValue
Returns the number value of the node if it has one and it cannot have side effects.Returns
null
otherwise. -
getSideEffectFreeNumberValueNoConversion
-
getSideEffectFreeBigIntValue
Returns the bigint value of the node if it has one and it cannot have side effects.Returns
null
otherwise. -
getSideEffectFreeStringValue
Gets the value of a node as a String, ornull
if it cannot be converted.This method effectively emulates the
String()
JavaScript cast function when possible and the node has no side effects. Otherwise, it returnsnull
. -
getSideEffectFreeBooleanValue
Calculate the known boolean value for a node if possible and if it has no side effects.Returns
Tri.UNKNOWN
if the node has side effects or its value cannot be statically determined. -
nodeTypeMayHaveSideEffects
Returns true if the current node's type implies side effects.This is a non-recursive version of the may have side effects check; used to check wherever the current node's type is one of the reason's why a subtree has side effects.
-
isEcmaScript5OrGreater
protected boolean isEcmaScript5OrGreater()Returns whether the output language is ECMAScript 5 or later. Workarounds for quirks in browsers that do not support ES5 can be ignored when this is true. -
getCodingConvention
Returns the current coding convention. -
reportChangeToEnclosingScope
-
deleteNode
-
markFunctionsDeleted
-
markNewScopesChanged
CallsNodeUtil.markNewScopesChanged(Node, AbstractCompiler)
-
addFeatureToEnclosingScript
-