Diff
Modified: trunk/Source/_javascript_Core/CMakeLists.txt (173489 => 173490)
--- trunk/Source/_javascript_Core/CMakeLists.txt 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/CMakeLists.txt 2014-09-10 21:52:02 UTC (rev 173490)
@@ -471,7 +471,7 @@
runtime/JSTypedArrayConstructors.cpp
runtime/JSTypedArrayPrototypes.cpp
runtime/JSTypedArrays.cpp
- runtime/JSVariableObject.cpp
+ runtime/JSEnvironmentRecord.cpp
runtime/JSWeakMap.cpp
runtime/JSWithScope.cpp
runtime/JSWrapperObject.cpp
Modified: trunk/Source/_javascript_Core/ChangeLog (173489 => 173490)
--- trunk/Source/_javascript_Core/ChangeLog 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-09-10 21:52:02 UTC (rev 173490)
@@ -1,3 +1,50 @@
+2014-09-10 Oliver Hunt <oli...@apple.com>
+
+ Rename JSVariableObject to JSEnvironmentRecord to align naming with ES spec
+ https://bugs.webkit.org/show_bug.cgi?id=136710
+
+ Reviewed by Anders Carlsson.
+
+ This is a trivial rename.
+
+ * CMakeLists.txt:
+ * _javascript_Core.vcxproj/_javascript_Core.vcxproj:
+ * _javascript_Core.vcxproj/_javascript_Core.vcxproj.filters:
+ * _javascript_Core.xcodeproj/project.pbxproj:
+ * dfg/DFGAbstractHeap.h:
+ * dfg/DFGClobberize.h:
+ (JSC::DFG::clobberize):
+ * dfg/DFGSpeculativeJIT32_64.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT64.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * ftl/FTLAbstractHeapRepository.cpp:
+ * ftl/FTLAbstractHeapRepository.h:
+ * ftl/FTLLowerDFGToLLVM.cpp:
+ (JSC::FTL::LowerDFGToLLVM::compileGetClosureRegisters):
+ * jit/JITOpcodes32_64.cpp:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::emitGetClosureVar):
+ (JSC::JIT::emitPutClosureVar):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::emitGetClosureVar):
+ (JSC::JIT::emitPutClosureVar):
+ * llint/LLIntOffsetsExtractor.cpp:
+ * llint/LowLevelInterpreter32_64.asm:
+ * llint/LowLevelInterpreter64.asm:
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::getOwnNonIndexPropertyNames):
+ * runtime/JSActivation.h:
+ * runtime/JSEnvironmentRecord.cpp: Renamed from Source/_javascript_Core/runtime/JSVariableObject.cpp.
+ * runtime/JSEnvironmentRecord.h: Renamed from Source/_javascript_Core/runtime/JSVariableObject.h.
+ (JSC::JSEnvironmentRecord::registers):
+ (JSC::JSEnvironmentRecord::registerAt):
+ (JSC::JSEnvironmentRecord::addressOfRegisters):
+ (JSC::JSEnvironmentRecord::offsetOfRegisters):
+ (JSC::JSEnvironmentRecord::JSEnvironmentRecord):
+ * runtime/JSNameScope.h:
+ * runtime/JSSegmentedVariableObject.h:
+
2014-09-10 Julien Brianceau <jbria...@cisco.com>
[mips] Add missing parts and fix LLINT mips backend
Modified: trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj (173489 => 173490)
--- trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj 2014-09-10 21:52:02 UTC (rev 173490)
@@ -744,7 +744,7 @@
<ClCompile Include="..\runtime\JSTypedArrayConstructors.cpp" />
<ClCompile Include="..\runtime\JSTypedArrayPrototypes.cpp" />
<ClCompile Include="..\runtime\JSTypedArrays.cpp" />
- <ClCompile Include="..\runtime\JSVariableObject.cpp" />
+ <ClCompile Include="..\runtime\JSEnvironmentRecord.cpp" />
<ClCompile Include="..\runtime\JSWeakMap.cpp" />
<ClCompile Include="..\runtime\JSWithScope.cpp" />
<ClCompile Include="..\runtime\JSWrapperObject.cpp" />
@@ -1520,7 +1520,7 @@
<ClInclude Include="..\runtime\JSUint32Array.h" />
<ClInclude Include="..\runtime\JSUint8Array.h" />
<ClInclude Include="..\runtime\JSUint8ClampedArray.h" />
- <ClInclude Include="..\runtime\JSVariableObject.h" />
+ <ClInclude Include="..\runtime\JSEnvironmentRecord.h" />
<ClInclude Include="..\runtime\JSWeakMap.h" />
<ClInclude Include="..\runtime\JSWithScope.h" />
<ClInclude Include="..\runtime\JSWrapperObject.h" />
Modified: trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj.filters (173489 => 173490)
--- trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj.filters 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj.filters 2014-09-10 21:52:02 UTC (rev 173490)
@@ -696,7 +696,7 @@
<ClCompile Include="..\runtime\JSSymbolTableObject.cpp">
<Filter>runtime</Filter>
</ClCompile>
- <ClCompile Include="..\runtime\JSVariableObject.cpp">
+ <ClCompile Include="..\runtime\JSEnvironmentRecord.cpp">
<Filter>runtime</Filter>
</ClCompile>
<ClCompile Include="..\runtime\JSWithScope.cpp">
@@ -2657,7 +2657,7 @@
<ClInclude Include="..\runtime\JSTypeInfo.h">
<Filter>runtime</Filter>
</ClInclude>
- <ClInclude Include="..\runtime\JSVariableObject.h">
+ <ClInclude Include="..\runtime\JSEnvironmentRecord.h">
<Filter>runtime</Filter>
</ClInclude>
<ClInclude Include="..\runtime\JSWithScope.h">
Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (173489 => 173490)
--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2014-09-10 21:52:02 UTC (rev 173490)
@@ -791,7 +791,7 @@
147F39D4107EC37600427A48 /* JSObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC22A3980E16E14800AF21C8 /* JSObject.cpp */; };
147F39D5107EC37600427A48 /* JSString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC02E9B60E1842FA000F9297 /* JSString.cpp */; };
147F39D6107EC37600427A48 /* JSCJSValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F692A8870255597D01FF60F7 /* JSCJSValue.cpp */; };
- 147F39D7107EC37600427A48 /* JSVariableObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC22A39A0E16E14800AF21C8 /* JSVariableObject.cpp */; };
+ 147F39D7107EC37600427A48 /* JSEnvironmentRecord.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC22A39A0E16E14800AF21C8 /* JSEnvironmentRecord.cpp */; };
14816E1B154CC56C00B8054C /* BlockAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 14816E19154CC56C00B8054C /* BlockAllocator.cpp */; };
14816E1C154CC56C00B8054C /* BlockAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 14816E1A154CC56C00B8054C /* BlockAllocator.h */; settings = {ATTRIBUTES = (Private, ); }; };
1482B74E0A43032800517CFC /* JSStringRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1482B74C0A43032800517CFC /* JSStringRef.cpp */; };
@@ -1020,7 +1020,7 @@
5540777F18DA58AD00EFF7F2 /* JSUint32Array.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66D517B6B5AB00A7AE3F /* JSUint32Array.h */; };
5540778018DA58AD00EFF7F2 /* JSUint8Array.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66D217B6B5AB00A7AE3F /* JSUint8Array.h */; };
5540778118DA58AD00EFF7F2 /* JSUint8ClampedArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66D317B6B5AB00A7AE3F /* JSUint8ClampedArray.h */; };
- 5540778518DA58AD00EFF7F2 /* JSVariableObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 14F252560D08DD8D004ECFFF /* JSVariableObject.h */; };
+ 5540778518DA58AD00EFF7F2 /* JSEnvironmentRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 14F252560D08DD8D004ECFFF /* JSEnvironmentRecord.h */; };
5540778818DA58AD00EFF7F2 /* JSWeakMap.h in Headers */ = {isa = PBXBuildFile; fileRef = A7CA3AE217DA41AE006538AF /* JSWeakMap.h */; };
5540778B18DA58AD00EFF7F2 /* JSWithScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 1442566015EDE98D0066A49B /* JSWithScope.h */; };
5540778D18DA58AD00EFF7F2 /* JSWrapperObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 65C7A1720A8EAACB00FA37EA /* JSWrapperObject.h */; };
@@ -1689,7 +1689,7 @@
BC18C42A0E16F5CD00B34460 /* JSType.h in Headers */ = {isa = PBXBuildFile; fileRef = 14ABB454099C2A0F00E2A24F /* JSType.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC18C42B0E16F5CD00B34460 /* JSCJSValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 14ABB36E099C076400E2A24F /* JSCJSValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC18C42C0E16F5CD00B34460 /* JSValueRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 1482B6EA0A4300B300517CFC /* JSValueRef.h */; settings = {ATTRIBUTES = (Public, ); }; };
- BC18C42D0E16F5CD00B34460 /* JSVariableObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 14F252560D08DD8D004ECFFF /* JSVariableObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ BC18C42D0E16F5CD00B34460 /* JSEnvironmentRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 14F252560D08DD8D004ECFFF /* JSEnvironmentRecord.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC18C42E0E16F5CD00B34460 /* JSWrapperObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 65C7A1720A8EAACB00FA37EA /* JSWrapperObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC18C4310E16F5CD00B34460 /* Lexer.h in Headers */ = {isa = PBXBuildFile; fileRef = F692A8660255597D01FF60F7 /* Lexer.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC18C4370E16F5CD00B34460 /* Lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = F692A8690255597D01FF60F7 /* Lookup.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -2711,7 +2711,7 @@
14E84F9B14EE1ACC00D6D5D4 /* WeakSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WeakSet.cpp; sourceTree = "<group>"; };
14E84F9C14EE1ACC00D6D5D4 /* WeakSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakSet.h; sourceTree = "<group>"; };
14E84F9D14EE1ACC00D6D5D4 /* WeakImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakImpl.h; sourceTree = "<group>"; };
- 14F252560D08DD8D004ECFFF /* JSVariableObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVariableObject.h; sourceTree = "<group>"; };
+ 14F252560D08DD8D004ECFFF /* JSEnvironmentRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSEnvironmentRecord.h; sourceTree = "<group>"; };
14F7256314EE265E00B1652B /* WeakHandleOwner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WeakHandleOwner.cpp; sourceTree = "<group>"; };
14F7256414EE265E00B1652B /* WeakHandleOwner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakHandleOwner.h; sourceTree = "<group>"; };
14F97446138C853E00DA1C67 /* HeapRootVisitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeapRootVisitor.h; sourceTree = "<group>"; };
@@ -3353,7 +3353,7 @@
BC18C52D0E16FCE100B34460 /* Lexer.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Lexer.lut.h; sourceTree = "<group>"; };
BC22A3980E16E14800AF21C8 /* JSObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSObject.cpp; sourceTree = "<group>"; };
BC22A3990E16E14800AF21C8 /* JSObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObject.h; sourceTree = "<group>"; };
- BC22A39A0E16E14800AF21C8 /* JSVariableObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVariableObject.cpp; sourceTree = "<group>"; };
+ BC22A39A0E16E14800AF21C8 /* JSEnvironmentRecord.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSEnvironmentRecord.cpp; sourceTree = "<group>"; };
BC257DE50E1F51C50016B6C9 /* Arguments.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Arguments.cpp; sourceTree = "<group>"; };
BC257DE60E1F51C50016B6C9 /* Arguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Arguments.h; sourceTree = "<group>"; };
BC2680C00E16D4E900A06E92 /* FunctionConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FunctionConstructor.cpp; sourceTree = "<group>"; };
@@ -4592,8 +4592,8 @@
0F2B66D317B6B5AB00A7AE3F /* JSUint8ClampedArray.h */,
0F2B66D417B6B5AB00A7AE3F /* JSUint16Array.h */,
0F2B66D517B6B5AB00A7AE3F /* JSUint32Array.h */,
- BC22A39A0E16E14800AF21C8 /* JSVariableObject.cpp */,
- 14F252560D08DD8D004ECFFF /* JSVariableObject.h */,
+ BC22A39A0E16E14800AF21C8 /* JSEnvironmentRecord.cpp */,
+ 14F252560D08DD8D004ECFFF /* JSEnvironmentRecord.h */,
A7CA3AE117DA41AE006538AF /* JSWeakMap.cpp */,
A7CA3AE217DA41AE006538AF /* JSWeakMap.h */,
1442565F15EDE98D0066A49B /* JSWithScope.cpp */,
@@ -5657,7 +5657,7 @@
5540777F18DA58AD00EFF7F2 /* JSUint32Array.h in Headers */,
5540778018DA58AD00EFF7F2 /* JSUint8Array.h in Headers */,
5540778118DA58AD00EFF7F2 /* JSUint8ClampedArray.h in Headers */,
- 5540778518DA58AD00EFF7F2 /* JSVariableObject.h in Headers */,
+ 5540778518DA58AD00EFF7F2 /* JSEnvironmentRecord.h in Headers */,
5540778B18DA58AD00EFF7F2 /* JSWithScope.h in Headers */,
5540778D18DA58AD00EFF7F2 /* JSWrapperObject.h in Headers */,
554077A918DA58AD00EFF7F2 /* Lookup.h in Headers */,
@@ -6320,7 +6320,7 @@
86E3C612167BABD7006D760A /* JSValue.h in Headers */,
86E3C61B167BABEE006D760A /* JSValueInternal.h in Headers */,
BC18C42C0E16F5CD00B34460 /* JSValueRef.h in Headers */,
- BC18C42D0E16F5CD00B34460 /* JSVariableObject.h in Headers */,
+ BC18C42D0E16F5CD00B34460 /* JSEnvironmentRecord.h in Headers */,
86E3C615167BABD7006D760A /* JSVirtualMachine.h in Headers */,
86E3C61D167BABEE006D760A /* JSVirtualMachineInternal.h in Headers */,
A7CA3AE817DA41AE006538AF /* JSWeakMap.h in Headers */,
@@ -7553,7 +7553,7 @@
0F2B66FE17B6B5AB00A7AE3F /* JSTypedArrays.cpp in Sources */,
86E3C61A167BABEE006D760A /* JSValue.mm in Sources */,
14BD5A320A3E91F600BAF59C /* JSValueRef.cpp in Sources */,
- 147F39D7107EC37600427A48 /* JSVariableObject.cpp in Sources */,
+ 147F39D7107EC37600427A48 /* JSEnvironmentRecord.cpp in Sources */,
86E3C61C167BABEE006D760A /* JSVirtualMachine.mm in Sources */,
A7CA3AE717DA41AE006538AF /* JSWeakMap.cpp in Sources */,
A7482B9411671147003B0712 /* JSWeakObjectMapRefPrivate.cpp in Sources */,
Modified: trunk/Source/_javascript_Core/dfg/DFGAbstractHeap.h (173489 => 173490)
--- trunk/Source/_javascript_Core/dfg/DFGAbstractHeap.h 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/dfg/DFGAbstractHeap.h 2014-09-10 21:52:02 UTC (rev 173490)
@@ -52,7 +52,7 @@
macro(JSCell_typeInfoFlags) \
macro(JSCell_typeInfoType) \
macro(JSObject_butterfly) \
- macro(JSVariableObject_registers) \
+ macro(JSEnvironmentRecord_registers) \
macro(JSPropertyNameEnumerator_cachedPropertyNames) \
macro(NamedProperties) \
macro(IndexedInt32Properties) \
Modified: trunk/Source/_javascript_Core/dfg/DFGClobberize.h (173489 => 173490)
--- trunk/Source/_javascript_Core/dfg/DFGClobberize.h 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/dfg/DFGClobberize.h 2014-09-10 21:52:02 UTC (rev 173490)
@@ -750,8 +750,8 @@
return;
case GetClosureRegisters:
- read(JSVariableObject_registers);
- def(HeapLocation(ClosureRegistersLoc, JSVariableObject_registers, node->child1()), node);
+ read(JSEnvironmentRecord_registers);
+ def(HeapLocation(ClosureRegistersLoc, JSEnvironmentRecord_registers, node->child1()), node);
return;
case GetClosureVar:
@@ -849,7 +849,7 @@
case TearOffActivation:
read(Variables);
- write(JSVariableObject_registers);
+ write(JSEnvironmentRecord_registers);
return;
case TearOffArguments:
Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -3538,7 +3538,7 @@
GPRReg scopeGPR = scope.gpr();
GPRReg resultGPR = result.gpr();
- m_jit.loadPtr(JITCompiler::Address(scopeGPR, JSVariableObject::offsetOfRegisters()), resultGPR);
+ m_jit.loadPtr(JITCompiler::Address(scopeGPR, JSEnvironmentRecord::offsetOfRegisters()), resultGPR);
storageResult(resultGPR, node);
break;
}
Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -3649,7 +3649,7 @@
GPRReg scopeGPR = scope.gpr();
GPRReg resultGPR = result.gpr();
- m_jit.loadPtr(JITCompiler::Address(scopeGPR, JSVariableObject::offsetOfRegisters()), resultGPR);
+ m_jit.loadPtr(JITCompiler::Address(scopeGPR, JSEnvironmentRecord::offsetOfRegisters()), resultGPR);
storageResult(resultGPR, node);
break;
}
Modified: trunk/Source/_javascript_Core/ftl/FTLAbstractHeapRepository.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/ftl/FTLAbstractHeapRepository.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/ftl/FTLAbstractHeapRepository.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -29,9 +29,9 @@
#if ENABLE(FTL_JIT)
#include "GetterSetter.h"
+#include "JSEnvironmentRecord.h"
#include "JSPropertyNameEnumerator.h"
#include "JSScope.h"
-#include "JSVariableObject.h"
#include "JSCInlines.h"
namespace JSC { namespace FTL {
Modified: trunk/Source/_javascript_Core/ftl/FTLAbstractHeapRepository.h (173489 => 173490)
--- trunk/Source/_javascript_Core/ftl/FTLAbstractHeapRepository.h 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/ftl/FTLAbstractHeapRepository.h 2014-09-10 21:52:02 UTC (rev 173490)
@@ -67,7 +67,7 @@
macro(JSString_flags, JSString::offsetOfFlags()) \
macro(JSString_length, JSString::offsetOfLength()) \
macro(JSString_value, JSString::offsetOfValue()) \
- macro(JSVariableObject_registers, JSVariableObject::offsetOfRegisters()) \
+ macro(JSEnvironmentRecord_registers, JSEnvironmentRecord::offsetOfRegisters()) \
macro(JSWrapperObject_internalValue, JSWrapperObject::internalValueOffset()) \
macro(MarkedAllocator_freeListHead, MarkedAllocator::offsetOfFreeListHead()) \
macro(MarkedBlock_markBits, MarkedBlock::offsetOfMarks()) \
Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -3497,7 +3497,7 @@
}
setStorage(m_out.loadPtr(
- lowCell(m_node->child1()), m_heaps.JSVariableObject_registers));
+ lowCell(m_node->child1()), m_heaps.JSEnvironmentRecord_registers));
}
void compileGetClosureVar()
Modified: trunk/Source/_javascript_Core/jit/JITOpcodes32_64.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/jit/JITOpcodes32_64.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/jit/JITOpcodes32_64.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -35,9 +35,9 @@
#include "JITInlines.h"
#include "JSArray.h"
#include "JSCell.h"
+#include "JSEnvironmentRecord.h"
#include "JSFunction.h"
#include "JSPropertyNameEnumerator.h"
-#include "JSVariableObject.h"
#include "LinkBuffer.h"
#include "MaxFrameExtentForSlowPathCall.h"
#include "RepatchBuffer.h"
Modified: trunk/Source/_javascript_Core/jit/JITPropertyAccess.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/jit/JITPropertyAccess.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/jit/JITPropertyAccess.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -34,8 +34,8 @@
#include "Interpreter.h"
#include "JITInlines.h"
#include "JSArray.h"
+#include "JSEnvironmentRecord.h"
#include "JSFunction.h"
-#include "JSVariableObject.h"
#include "LinkBuffer.h"
#include "RepatchBuffer.h"
#include "ResultType.h"
@@ -660,7 +660,7 @@
void JIT::emitGetClosureVar(int scope, uintptr_t operand)
{
emitGetVirtualRegister(scope, regT0);
- loadPtr(Address(regT0, JSVariableObject::offsetOfRegisters()), regT0);
+ loadPtr(Address(regT0, JSEnvironmentRecord::offsetOfRegisters()), regT0);
loadPtr(Address(regT0, operand * sizeof(Register)), regT0);
}
@@ -742,7 +742,7 @@
{
emitGetVirtualRegister(value, regT1);
emitGetVirtualRegister(scope, regT0);
- loadPtr(Address(regT0, JSVariableObject::offsetOfRegisters()), regT0);
+ loadPtr(Address(regT0, JSEnvironmentRecord::offsetOfRegisters()), regT0);
storePtr(regT1, Address(regT0, operand * sizeof(Register)));
}
Modified: trunk/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -34,8 +34,8 @@
#include "Interpreter.h"
#include "JITInlines.h"
#include "JSArray.h"
+#include "JSEnvironmentRecord.h"
#include "JSFunction.h"
-#include "JSVariableObject.h"
#include "LinkBuffer.h"
#include "RepatchBuffer.h"
#include "ResultType.h"
@@ -684,7 +684,7 @@
void JIT::emitGetClosureVar(int scope, uintptr_t operand)
{
emitLoad(scope, regT1, regT0);
- loadPtr(Address(regT0, JSVariableObject::offsetOfRegisters()), regT0);
+ loadPtr(Address(regT0, JSEnvironmentRecord::offsetOfRegisters()), regT0);
load32(Address(regT0, operand * sizeof(Register) + OBJECT_OFFSETOF(EncodedValueDescriptor, asBits.tag)), regT1);
load32(Address(regT0, operand * sizeof(Register) + OBJECT_OFFSETOF(EncodedValueDescriptor, asBits.payload)), regT0);
}
@@ -773,7 +773,7 @@
{
emitLoad(value, regT3, regT2);
emitLoad(scope, regT1, regT0);
- loadPtr(Address(regT0, JSVariableObject::offsetOfRegisters()), regT0);
+ loadPtr(Address(regT0, JSEnvironmentRecord::offsetOfRegisters()), regT0);
store32(regT3, Address(regT0, operand * sizeof(Register) + OBJECT_OFFSETOF(EncodedValueDescriptor, asBits.tag)));
store32(regT2, Address(regT0, operand * sizeof(Register) + OBJECT_OFFSETOF(EncodedValueDescriptor, asBits.payload)));
}
Modified: trunk/Source/_javascript_Core/llint/LLIntOffsetsExtractor.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/llint/LLIntOffsetsExtractor.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/llint/LLIntOffsetsExtractor.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -37,12 +37,12 @@
#include "JSCell.h"
#include "JSFunction.h"
#include "VM.h"
+#include "JSEnvironmentRecord.h"
#include "JSGlobalObject.h"
#include "JSObject.h"
#include "JSStack.h"
#include "JSString.h"
#include "JSTypeInfo.h"
-#include "JSVariableObject.h"
#include "JumpTable.h"
#include "LLIntOfflineAsmConfig.h"
#include "MarkedSpace.h"
Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm (173489 => 173490)
--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm 2014-09-10 21:52:02 UTC (rev 173490)
@@ -2280,7 +2280,7 @@
end
macro getClosureVar()
- loadp JSVariableObject::m_registers[t0], t0
+ loadp JSEnvironmentRecord::m_registers[t0], t0
loadisFromInstruction(6, t3)
loadp TagOffset[t0, t3, 8], t1
loadp PayloadOffset[t0, t3, 8], t2
@@ -2357,7 +2357,7 @@
macro putClosureVar()
loadisFromInstruction(3, t1)
loadConstantOrVariable(t1, t2, t3)
- loadp JSVariableObject::m_registers[t0], t0
+ loadp JSEnvironmentRecord::m_registers[t0], t0
loadisFromInstruction(6, t1)
storei t2, TagOffset[t0, t1, 8]
storei t3, PayloadOffset[t0, t1, 8]
Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm (173489 => 173490)
--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm 2014-09-10 21:52:02 UTC (rev 173490)
@@ -2110,7 +2110,7 @@
end
macro getClosureVar()
- loadp JSVariableObject::m_registers[t0], t0
+ loadp JSEnvironmentRecord::m_registers[t0], t0
loadisFromInstruction(6, t1)
loadq [t0, t1, 8], t0
valueProfile(t0, 7, t1)
@@ -2184,7 +2184,7 @@
macro putClosureVar()
loadisFromInstruction(3, t1)
loadConstantOrVariable(t1, t2)
- loadp JSVariableObject::m_registers[t0], t0
+ loadp JSEnvironmentRecord::m_registers[t0], t0
loadisFromInstruction(6, t1)
storeq t2, [t0, t1, 8]
end
Modified: trunk/Source/_javascript_Core/runtime/JSActivation.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/runtime/JSActivation.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/runtime/JSActivation.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -129,7 +129,7 @@
propertyNames.add(Identifier(exec, it->key.get()));
}
}
- // Skip the JSVariableObject implementation of getOwnNonIndexPropertyNames
+ // Skip the JSEnvironmentRecord implementation of getOwnNonIndexPropertyNames
JSObject::getOwnNonIndexPropertyNames(thisObject, exec, propertyNames, mode);
}
Modified: trunk/Source/_javascript_Core/runtime/JSActivation.h (173489 => 173490)
--- trunk/Source/_javascript_Core/runtime/JSActivation.h 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/runtime/JSActivation.h 2014-09-10 21:52:02 UTC (rev 173490)
@@ -31,7 +31,7 @@
#include "CodeBlock.h"
#include "CopiedSpaceInlines.h"
-#include "JSVariableObject.h"
+#include "JSEnvironmentRecord.h"
#include "Nodes.h"
#include "SymbolTable.h"
@@ -39,12 +39,12 @@
class Register;
-class JSActivation : public JSVariableObject {
+class JSActivation : public JSEnvironmentRecord {
private:
JSActivation(VM&, CallFrame*, Register*, SymbolTable*);
public:
- typedef JSVariableObject Base;
+ typedef JSEnvironmentRecord Base;
static JSActivation* create(VM& vm, CallFrame* callFrame, Register* registers, CodeBlock* codeBlock)
{
Copied: trunk/Source/_javascript_Core/runtime/JSEnvironmentRecord.cpp (from rev 173488, trunk/Source/_javascript_Core/runtime/JSVariableObject.cpp) (0 => 173490)
--- trunk/Source/_javascript_Core/runtime/JSEnvironmentRecord.cpp (rev 0)
+++ trunk/Source/_javascript_Core/runtime/JSEnvironmentRecord.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2007, 2008, 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "JSEnvironmentRecord.h"
+
+#include "JSCInlines.h"
+
+namespace JSC {
+
+const ClassInfo JSEnvironmentRecord::s_info = { "EnvironmentRecord", &Base::s_info, 0, CREATE_METHOD_TABLE(JSEnvironmentRecord) };
+
+} // namespace JSC
Copied: trunk/Source/_javascript_Core/runtime/JSEnvironmentRecord.h (from rev 173488, trunk/Source/_javascript_Core/runtime/JSVariableObject.h) (0 => 173490)
--- trunk/Source/_javascript_Core/runtime/JSEnvironmentRecord.h (rev 0)
+++ trunk/Source/_javascript_Core/runtime/JSEnvironmentRecord.h 2014-09-10 21:52:02 UTC (rev 173490)
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2007, 2008, 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef JSEnvironmentRecord_h
+#define JSEnvironmentRecord_h
+
+#include "JSObject.h"
+#include "JSSymbolTableObject.h"
+#include "Register.h"
+#include "SymbolTable.h"
+
+namespace JSC {
+
+class LLIntOffsetsExtractor;
+class Register;
+
+class JSEnvironmentRecord : public JSSymbolTableObject {
+ friend class JIT;
+ friend class LLIntOffsetsExtractor;
+
+public:
+ typedef JSSymbolTableObject Base;
+
+ WriteBarrierBase<Unknown>* registers() { return m_registers; }
+ WriteBarrierBase<Unknown>& registerAt(int index) const { return m_registers[index]; }
+
+ WriteBarrierBase<Unknown>* const * addressOfRegisters() const { return &m_registers; }
+ static size_t offsetOfRegisters() { return OBJECT_OFFSETOF(JSEnvironmentRecord, m_registers); }
+
+ DECLARE_INFO;
+
+protected:
+ static const unsigned StructureFlags = Base::StructureFlags;
+
+ JSEnvironmentRecord(
+ VM& vm,
+ Structure* structure,
+ Register* registers,
+ JSScope* scope,
+ SymbolTable* symbolTable = 0)
+ : Base(vm, structure, scope, symbolTable)
+ , m_registers(reinterpret_cast<WriteBarrierBase<Unknown>*>(registers))
+ {
+ }
+
+ WriteBarrierBase<Unknown>* m_registers; // "r" in the stack.
+};
+
+} // namespace JSC
+
+#endif // JSEnvironmentRecord_h
Modified: trunk/Source/_javascript_Core/runtime/JSNameScope.h (173489 => 173490)
--- trunk/Source/_javascript_Core/runtime/JSNameScope.h 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/runtime/JSNameScope.h 2014-09-10 21:52:02 UTC (rev 173490)
@@ -26,15 +26,15 @@
#ifndef JSNameScope_h
#define JSNameScope_h
+#include "JSEnvironmentRecord.h"
#include "JSGlobalObject.h"
-#include "JSVariableObject.h"
namespace JSC {
// Used for scopes with a single named variable: catch and named function _expression_.
-class JSNameScope : public JSVariableObject {
+class JSNameScope : public JSEnvironmentRecord {
public:
- typedef JSVariableObject Base;
+ typedef JSEnvironmentRecord Base;
static JSNameScope* create(ExecState* exec, const Identifier& identifier, JSValue value, unsigned attributes)
{
Modified: trunk/Source/_javascript_Core/runtime/JSSegmentedVariableObject.h (173489 => 173490)
--- trunk/Source/_javascript_Core/runtime/JSSegmentedVariableObject.h 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/runtime/JSSegmentedVariableObject.h 2014-09-10 21:52:02 UTC (rev 173490)
@@ -41,11 +41,11 @@
class LLIntOffsetsExtractor;
class Register;
-// This is a mostly drop-in replacement for JSVariableObject, except that it preserves
+// This is a mostly drop-in replacement for JSEnvironmentRecord, except that it preserves
// the invariant that after a variable is created, its address in memory will not change
// so long as the JSSegmentedVariableObject is alive. This allows optimizations based
// on getting the address of the variable and remembering it. As well, unlike a
-// JSVariableObject, this will manage the memory for the registers itself and neither
+// JSEnvironmentRecord, this will manage the memory for the registers itself and neither
// requires nor allows for the subclasses to manage that memory. Finally,
// JSSegmentedVariableObject has its own GC tracing functionality, since it knows the
// exact dimensions of the variables array at all times.
Deleted: trunk/Source/_javascript_Core/runtime/JSVariableObject.cpp (173489 => 173490)
--- trunk/Source/_javascript_Core/runtime/JSVariableObject.cpp 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/runtime/JSVariableObject.cpp 2014-09-10 21:52:02 UTC (rev 173490)
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2012 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSVariableObject.h"
-
-#include "JSCInlines.h"
-
-namespace JSC {
-
-const ClassInfo JSVariableObject::s_info = { "VariableObject", &Base::s_info, 0, CREATE_METHOD_TABLE(JSVariableObject) };
-
-} // namespace JSC
Deleted: trunk/Source/_javascript_Core/runtime/JSVariableObject.h (173489 => 173490)
--- trunk/Source/_javascript_Core/runtime/JSVariableObject.h 2014-09-10 21:45:22 UTC (rev 173489)
+++ trunk/Source/_javascript_Core/runtime/JSVariableObject.h 2014-09-10 21:52:02 UTC (rev 173490)
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2012 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSVariableObject_h
-#define JSVariableObject_h
-
-#include "JSObject.h"
-#include "JSSymbolTableObject.h"
-#include "Register.h"
-#include "SymbolTable.h"
-
-namespace JSC {
-
-class LLIntOffsetsExtractor;
-class Register;
-
-class JSVariableObject : public JSSymbolTableObject {
- friend class JIT;
- friend class LLIntOffsetsExtractor;
-
-public:
- typedef JSSymbolTableObject Base;
-
- WriteBarrierBase<Unknown>* registers() { return m_registers; }
- WriteBarrierBase<Unknown>& registerAt(int index) const { return m_registers[index]; }
-
- WriteBarrierBase<Unknown>* const * addressOfRegisters() const { return &m_registers; }
- static size_t offsetOfRegisters() { return OBJECT_OFFSETOF(JSVariableObject, m_registers); }
-
- DECLARE_INFO;
-
-protected:
- static const unsigned StructureFlags = Base::StructureFlags;
-
- JSVariableObject(
- VM& vm,
- Structure* structure,
- Register* registers,
- JSScope* scope,
- SymbolTable* symbolTable = 0)
- : Base(vm, structure, scope, symbolTable)
- , m_registers(reinterpret_cast<WriteBarrierBase<Unknown>*>(registers))
- {
- }
-
- WriteBarrierBase<Unknown>* m_registers; // "r" in the stack.
-};
-
-} // namespace JSC
-
-#endif // JSVariableObject_h