summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/JSVariableObject.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-09-10 19:10:20 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-09-10 19:10:20 +0200
commit284837daa07b29d6a63a748544a90b1f5842ac5c (patch)
treeecd258180bde91fe741e0cfd2638beb3c6da7e8e /Source/JavaScriptCore/runtime/JSVariableObject.h
parent2e2ba8ff45915f40ed3e014101269c175f2a89a0 (diff)
downloadqtwebkit-284837daa07b29d6a63a748544a90b1f5842ac5c.tar.gz
Imported WebKit commit 68645295d2e3e09af2c942f092556f06aa5f8b0d (http://svn.webkit.org/repository/webkit/trunk@128073)
New snapshot
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSVariableObject.h')
-rw-r--r--Source/JavaScriptCore/runtime/JSVariableObject.h51
1 files changed, 16 insertions, 35 deletions
diff --git a/Source/JavaScriptCore/runtime/JSVariableObject.h b/Source/JavaScriptCore/runtime/JSVariableObject.h
index 2f0dd42e5..c9f989e68 100644
--- a/Source/JavaScriptCore/runtime/JSVariableObject.h
+++ b/Source/JavaScriptCore/runtime/JSVariableObject.h
@@ -48,53 +48,34 @@ namespace JSC {
public:
typedef JSSymbolTableObject Base;
- WriteBarrier<Unknown>& registerAt(int index) const { return m_registers[index]; }
+ WriteBarrierBase<Unknown>& registerAt(int index) const { return m_registers[index]; }
- WriteBarrier<Unknown>* const * addressOfRegisters() const { return &m_registers; }
+ WriteBarrierBase<Unknown>* const * addressOfRegisters() const { return &m_registers; }
static size_t offsetOfRegisters() { return OBJECT_OFFSETOF(JSVariableObject, m_registers); }
- JS_EXPORT_PRIVATE static void destroy(JSCell*);
-
protected:
- static const unsigned StructureFlags = JSSymbolTableObject::StructureFlags;
-
- JSVariableObject(JSGlobalData& globalData, Structure* structure, SymbolTable* symbolTable, Register* registers)
- : JSSymbolTableObject(globalData, structure, symbolTable)
- , m_registers(reinterpret_cast<WriteBarrier<Unknown>*>(registers))
+ static const unsigned StructureFlags = Base::StructureFlags;
+
+ JSVariableObject(
+ JSGlobalData& globalData,
+ Structure* structure,
+ Register* registers,
+ JSScope* scope
+ )
+ : Base(globalData, structure, scope)
+ , m_registers(reinterpret_cast<WriteBarrierBase<Unknown>*>(registers))
{
}
- void finishCreation(JSGlobalData& globalData)
+ void finishCreation(JSGlobalData& globalData, SharedSymbolTable* symbolTable = 0)
{
- Base::finishCreation(globalData);
- COMPILE_ASSERT(sizeof(WriteBarrier<Unknown>) == sizeof(Register), Register_should_be_same_size_as_WriteBarrier);
+ Base::finishCreation(globalData, symbolTable);
+ COMPILE_ASSERT(sizeof(WriteBarrierBase<Unknown>) == sizeof(Register), Register_should_be_same_size_as_WriteBarrierBase);
}
- PassOwnArrayPtr<WriteBarrier<Unknown> > copyRegisterArray(JSGlobalData&, WriteBarrier<Unknown>* src, size_t count, size_t callframeStarts);
- void setRegisters(WriteBarrier<Unknown>* registers, PassOwnArrayPtr<WriteBarrier<Unknown> > registerArray);
-
- WriteBarrier<Unknown>* m_registers; // "r" in the register file.
- OwnArrayPtr<WriteBarrier<Unknown> > m_registerArray; // Independent copy of registers, used when a variable object copies its registers out of the register file.
+ WriteBarrierBase<Unknown>* m_registers; // "r" in the register file.
};
- inline PassOwnArrayPtr<WriteBarrier<Unknown> > JSVariableObject::copyRegisterArray(JSGlobalData& globalData, WriteBarrier<Unknown>* src, size_t count, size_t callframeStarts)
- {
- OwnArrayPtr<WriteBarrier<Unknown> > registerArray = adoptArrayPtr(new WriteBarrier<Unknown>[count]);
- for (size_t i = 0; i < callframeStarts; i++)
- registerArray[i].set(globalData, this, src[i].get());
- for (size_t i = callframeStarts + RegisterFile::CallFrameHeaderSize; i < count; i++)
- registerArray[i].set(globalData, this, src[i].get());
-
- return registerArray.release();
- }
-
- inline void JSVariableObject::setRegisters(WriteBarrier<Unknown>* registers, PassOwnArrayPtr<WriteBarrier<Unknown> > registerArray)
- {
- ASSERT(registerArray != m_registerArray);
- m_registerArray = registerArray;
- m_registers = registers;
- }
-
} // namespace JSC
#endif // JSVariableObject_h