summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/bytecode/ArrayProfile.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-09-14 16:29:47 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-09-14 16:29:47 +0200
commitd0424a769059c84ae20beb3c217812792ea6726b (patch)
tree6f94a5c3db8c52c6694ee56498542a6c35417350 /Source/JavaScriptCore/bytecode/ArrayProfile.h
parent88a04ac016f57c2d78e714682445dff2e7db4ade (diff)
Imported WebKit commit 37c5e5041d39a14ea0d429a77ebd352e4bd26516 (http://svn.webkit.org/repository/webkit/trunk@128608)
New snapshot that enables WebKit2 build on Windows (still some bugs) and allows for WebKit to be built with qmake && make
Diffstat (limited to 'Source/JavaScriptCore/bytecode/ArrayProfile.h')
-rw-r--r--Source/JavaScriptCore/bytecode/ArrayProfile.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/Source/JavaScriptCore/bytecode/ArrayProfile.h b/Source/JavaScriptCore/bytecode/ArrayProfile.h
index 5a656e2dd..312473f3c 100644
--- a/Source/JavaScriptCore/bytecode/ArrayProfile.h
+++ b/Source/JavaScriptCore/bytecode/ArrayProfile.h
@@ -35,16 +35,16 @@ namespace JSC {
class LLIntOffsetsExtractor;
+// This is a bitfield where each bit represents an IndexingType that we have seen.
+// There are 17 indexing types (0 to 16, inclusive), so 32 bits is more than enough.
typedef unsigned ArrayModes;
-static const unsigned IsNotArray = 1;
-static const unsigned IsJSArray = 2;
+#define asArrayModes(type) \
+ (1 << static_cast<unsigned>(type))
inline ArrayModes arrayModeFromStructure(Structure* structure)
{
- if (structure->classInfo() == &JSArray::s_info)
- return IsJSArray;
- return IsNotArray;
+ return asArrayModes(structure->indexingTypeIncludingHistory());
}
class ArrayProfile {