summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGGraph.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGGraph.h')
-rw-r--r--Source/JavaScriptCore/dfg/DFGGraph.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGGraph.h b/Source/JavaScriptCore/dfg/DFGGraph.h
index 8ca3e2047..acc9ff472 100644
--- a/Source/JavaScriptCore/dfg/DFGGraph.h
+++ b/Source/JavaScriptCore/dfg/DFGGraph.h
@@ -187,9 +187,9 @@ public:
BlockIndex blockIndexForBytecodeOffset(Vector<BlockIndex>& blocks, unsigned bytecodeBegin);
- PredictedType getJSConstantPrediction(Node& node)
+ SpeculatedType getJSConstantSpeculation(Node& node)
{
- return predictionFromValue(node.valueOfJSConstant(m_codeBlock));
+ return speculationFromValue(node.valueOfJSConstant(m_codeBlock));
}
bool addShouldSpeculateInteger(Node& add)
@@ -258,6 +258,13 @@ public:
{
return at(nodeIndex).isBooleanConstant(m_codeBlock);
}
+ bool isCellConstant(NodeIndex nodeIndex)
+ {
+ if (!isJSConstant(nodeIndex))
+ return false;
+ JSValue value = valueOfJSConstant(nodeIndex);
+ return value.isCell() && !!value;
+ }
bool isFunctionConstant(NodeIndex nodeIndex)
{
if (!isJSConstant(nodeIndex))
@@ -310,6 +317,11 @@ public:
return &m_structureTransitionData.last();
}
+ JSGlobalObject* globalObjectFor(CodeOrigin codeOrigin)
+ {
+ return m_codeBlock->globalObjectFor(codeOrigin);
+ }
+
ExecutableBase* executableFor(InlineCallFrame* inlineCallFrame)
{
if (!inlineCallFrame)
@@ -424,17 +436,17 @@ public:
bool isPredictedNumerical(Node& node)
{
- PredictedType left = at(node.child1()).prediction();
- PredictedType right = at(node.child2()).prediction();
- return isNumberPrediction(left) && isNumberPrediction(right);
+ SpeculatedType left = at(node.child1()).prediction();
+ SpeculatedType right = at(node.child2()).prediction();
+ return isNumberSpeculation(left) && isNumberSpeculation(right);
}
bool byValIsPure(Node& node)
{
return at(node.child2()).shouldSpeculateInteger()
&& ((node.op() == PutByVal || node.op() == PutByValAlias)
- ? isActionableMutableArrayPrediction(at(node.child1()).prediction())
- : isActionableArrayPrediction(at(node.child1()).prediction()));
+ ? isActionableMutableArraySpeculation(at(node.child1()).prediction())
+ : isActionableArraySpeculation(at(node.child1()).prediction()));
}
bool clobbersWorld(Node& node)