summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/SparseArrayValueMap.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/runtime/SparseArrayValueMap.h')
-rw-r--r--Source/JavaScriptCore/runtime/SparseArrayValueMap.h14
1 files changed, 5 insertions, 9 deletions
diff --git a/Source/JavaScriptCore/runtime/SparseArrayValueMap.h b/Source/JavaScriptCore/runtime/SparseArrayValueMap.h
index 31b279fa7..0754b53d9 100644
--- a/Source/JavaScriptCore/runtime/SparseArrayValueMap.h
+++ b/Source/JavaScriptCore/runtime/SparseArrayValueMap.h
@@ -32,7 +32,6 @@
#include "PutDirectIndexMode.h"
#include "WriteBarrier.h"
#include <wtf/HashMap.h>
-#include <wtf/Platform.h>
namespace JSC {
@@ -43,8 +42,7 @@ struct SparseArrayEntry : public WriteBarrier<Unknown> {
SparseArrayEntry() : attributes(0) { }
- JSValue get(ExecState*, JSObject*) const;
- void get(PropertySlot&) const;
+ void get(JSObject*, PropertySlot&) const;
void get(PropertyDescriptor&) const;
void put(ExecState*, JSValue thisValue, SparseArrayValueMap*, JSValue, bool shouldThrow);
JSValue getNonSparseMode() const;
@@ -52,12 +50,13 @@ struct SparseArrayEntry : public WriteBarrier<Unknown> {
unsigned attributes;
};
-class SparseArrayValueMap : public JSCell {
+class SparseArrayValueMap final : public JSCell {
public:
typedef JSCell Base;
+ static const unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal;
private:
- typedef HashMap<uint64_t, SparseArrayEntry, WTF::IntHash<uint64_t>, WTF::UnsignedWithZeroKeyHashTraits<uint64_t> > Map;
+ typedef HashMap<uint64_t, SparseArrayEntry, WTF::IntHash<uint64_t>, WTF::UnsignedWithZeroKeyHashTraits<uint64_t>> Map;
enum Flags {
Normal = 0,
@@ -70,10 +69,8 @@ private:
void finishCreation(VM&);
- static const unsigned StructureFlags = OverridesVisitChildren | JSCell::StructureFlags;
-
public:
- static JS_EXPORTDATA const ClassInfo s_info;
+ DECLARE_EXPORT_INFO;
typedef Map::iterator iterator;
typedef Map::const_iterator const_iterator;
@@ -82,7 +79,6 @@ public:
static SparseArrayValueMap* create(VM&);
static const bool needsDestruction = true;
- static const bool hasImmortalStructure = true;
static void destroy(JSCell*);
static Structure* createStructure(VM&, JSGlobalObject*, JSValue prototype);