summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/bytecode/StructureSet.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-06-20 13:01:08 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-06-20 13:01:08 +0200
commit49233e234e5c787396cadb2cea33b31ae0cd65c1 (patch)
tree5410cb9a8fd53168bb60d62c54b654d86f03c38d /Source/JavaScriptCore/bytecode/StructureSet.h
parentb211c645d8ab690f713515dfdc84d80b11c27d2c (diff)
downloadqtwebkit-49233e234e5c787396cadb2cea33b31ae0cd65c1.tar.gz
Imported WebKit commit 3a8c29f35d00659d2ce7a0ccdfa8304f14e82327 (http://svn.webkit.org/repository/webkit/trunk@120813)
New snapshot with Windows build fixes
Diffstat (limited to 'Source/JavaScriptCore/bytecode/StructureSet.h')
-rw-r--r--Source/JavaScriptCore/bytecode/StructureSet.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/Source/JavaScriptCore/bytecode/StructureSet.h b/Source/JavaScriptCore/bytecode/StructureSet.h
index bfc30fc3c..2bbc50cad 100644
--- a/Source/JavaScriptCore/bytecode/StructureSet.h
+++ b/Source/JavaScriptCore/bytecode/StructureSet.h
@@ -26,7 +26,7 @@
#ifndef StructureSet_h
#define StructureSet_h
-#include "PredictedType.h"
+#include "SpeculatedType.h"
#include "Structure.h"
#include <stdio.h>
#include <wtf/Vector.h>
@@ -90,6 +90,13 @@ public:
return false;
}
+ bool containsOnly(Structure* structure) const
+ {
+ if (size() != 1)
+ return false;
+ return singletonStructure() == structure;
+ }
+
bool isSubsetOf(const StructureSet& other) const
{
for (size_t i = 0; i < m_structures.size(); ++i) {
@@ -115,18 +122,26 @@ public:
return true;
}
+ // Call this if you know that the structure set must consist of exactly
+ // one structure.
+ Structure* singletonStructure() const
+ {
+ ASSERT(m_structures.size() == 1);
+ return m_structures[0];
+ }
+
Structure* at(size_t i) const { return m_structures.at(i); }
Structure* operator[](size_t i) const { return at(i); }
Structure* last() const { return m_structures.last(); }
- PredictedType predictionFromStructures() const
+ SpeculatedType speculationFromStructures() const
{
- PredictedType result = PredictNone;
+ SpeculatedType result = SpecNone;
for (size_t i = 0; i < m_structures.size(); ++i)
- mergePrediction(result, predictionFromStructure(m_structures[i]));
+ mergeSpeculation(result, speculationFromStructure(m_structures[i]));
return result;
}