diff options
| author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-05-20 09:56:07 +0000 |
|---|---|---|
| committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-05-20 09:56:07 +0000 |
| commit | 41386e9cb918eed93b3f13648cbef387e371e451 (patch) | |
| tree | a97f9d7bd1d9d091833286085f72da9d83fd0606 /Source/JavaScriptCore/runtime/JSSet.h | |
| parent | e15dd966d523731101f70ccf768bba12435a0208 (diff) | |
| download | WebKitGtk-tarball-41386e9cb918eed93b3f13648cbef387e371e451.tar.gz | |
webkitgtk-2.4.9webkitgtk-2.4.9
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSSet.h')
| -rw-r--r-- | Source/JavaScriptCore/runtime/JSSet.h | 72 |
1 files changed, 11 insertions, 61 deletions
diff --git a/Source/JavaScriptCore/runtime/JSSet.h b/Source/JavaScriptCore/runtime/JSSet.h index e55362ebb..22c5d860b 100644 --- a/Source/JavaScriptCore/runtime/JSSet.h +++ b/Source/JavaScriptCore/runtime/JSSet.h @@ -26,63 +26,15 @@ #ifndef JSSet_h #define JSSet_h -#include "JSDestructibleObject.h" #include "JSObject.h" -#include "MapData.h" namespace JSC { -class JSSetIterator; +class MapData; -class JSSet : public JSDestructibleObject { +class JSSet : public JSNonFinalObject { public: - typedef JSDestructibleObject Base; - - friend class JSSetIterator; - - // Our marking functions expect Entry to maintain this layout, and have all - // fields be WriteBarrier<Unknown> - class Entry { - private: - WriteBarrier<Unknown> m_key; - - public: - const WriteBarrier<Unknown>& key() const - { - return m_key; - } - - const WriteBarrier<Unknown>& value() const - { - return m_key; - } - - void visitChildren(SlotVisitor& visitor) - { - visitor.append(&m_key); - } - - void setKey(VM& vm, const JSCell* owner, JSValue key) - { - m_key.set(vm, owner, key); - } - - void setKeyWithoutWriteBarrier(JSValue key) - { - m_key.setWithoutWriteBarrier(key); - } - - void setValue(VM&, const JSCell*, JSValue) - { - } - - void clear() - { - m_key.clear(); - } - }; - - typedef MapDataImpl<Entry, JSSetIterator> SetData; + typedef JSNonFinalObject Base; DECLARE_EXPORT_INFO; @@ -103,24 +55,22 @@ public: return create(exec->vm(), structure); } - bool has(ExecState*, JSValue); - size_t size(ExecState*); - JS_EXPORT_PRIVATE void add(ExecState*, JSValue); - void clear(ExecState*); - bool remove(ExecState*, JSValue); + MapData* mapData() { return m_mapData.get(); } private: + + static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags; + JSSet(VM& vm, Structure* structure) : Base(vm, structure) - , m_setData(vm) { } - static void destroy(JSCell*); + JS_EXPORT_PRIVATE void finishCreation(VM&); + static void visitChildren(JSCell*, SlotVisitor&); - static void copyBackingStore(JSCell*, CopyVisitor&, CopyToken); - - SetData m_setData; + + WriteBarrier<MapData> m_mapData; }; } |
