Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (127347 => 127348)
--- trunk/Source/_javascript_Core/ChangeLog 2012-09-01 01:09:02 UTC (rev 127347)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-09-01 01:39:51 UTC (rev 127348)
@@ -7,6 +7,26 @@
Reviewed by Sam Weinig.
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSGlobalData.h:
+ (JSGlobalData):
+ * runtime/JSNameScope.h:
+ (JSC::JSNameScope::JSNameScope):
+ * runtime/JSWithScope.h:
+ (JSC::JSWithScope::JSWithScope):
+ * runtime/StrictEvalActivation.cpp:
+ (JSC::StrictEvalActivation::StrictEvalActivation):
+
+2012-08-31 Geoffrey Garen <[email protected]>
+
+ Rolled back in a piece of <http://trac.webkit.org/changeset/127293>.
+
+ Shrink activation objects by half
+ https://bugs.webkit.org/show_bug.cgi?id=95591
+
+ Reviewed by Sam Weinig.
+
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* jit/JITOpcodes.cpp:
Modified: trunk/Source/_javascript_Core/runtime/JSActivation.h (127347 => 127348)
--- trunk/Source/_javascript_Core/runtime/JSActivation.h 2012-09-01 01:09:02 UTC (rev 127347)
+++ trunk/Source/_javascript_Core/runtime/JSActivation.h 2012-09-01 01:39:51 UTC (rev 127348)
@@ -96,11 +96,11 @@
size_t registerArraySizeInBytes();
StorageBarrier m_registerArray; // Independent copy of registers, used when a variable object copies its registers out of the register file.
- int m_numCapturedArgs;
- int m_numCapturedVars : 30;
- bool m_isTornOff : 1;
- bool m_requiresDynamicChecks : 1;
- int m_argumentsRegister;
+ unsigned m_numCapturedArgs;
+ unsigned m_numCapturedVars : 28;
+ unsigned m_isTornOff : 1;
+ unsigned m_requiresDynamicChecks : 1;
+ unsigned m_argumentsRegister : 2;
};
JSActivation* asActivation(JSValue);
Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp (127347 => 127348)
--- trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp 2012-09-01 01:09:02 UTC (rev 127347)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp 2012-09-01 01:39:51 UTC (rev 127348)
@@ -190,8 +190,6 @@
debuggerActivationStructure.set(*this, DebuggerActivation::createStructure(*this, 0, jsNull()));
interruptedExecutionErrorStructure.set(*this, InterruptedExecutionError::createStructure(*this, 0, jsNull()));
terminatedExecutionErrorStructure.set(*this, TerminatedExecutionError::createStructure(*this, 0, jsNull()));
- nameScopeStructure.set(*this, JSNameScope::createStructure(*this, 0, jsNull()));
- strictEvalActivationStructure.set(*this, StrictEvalActivation::createStructure(*this, 0, jsNull()));
stringStructure.set(*this, JSString::createStructure(*this, 0, jsNull()));
notAnObjectStructure.set(*this, JSNotAnObject::createStructure(*this, 0, jsNull()));
propertyNameIteratorStructure.set(*this, JSPropertyNameIterator::createStructure(*this, 0, jsNull()));
@@ -206,7 +204,6 @@
regExpStructure.set(*this, RegExp::createStructure(*this, 0, jsNull()));
sharedSymbolTableStructure.set(*this, SharedSymbolTable::createStructure(*this, 0, jsNull()));
structureChainStructure.set(*this, StructureChain::createStructure(*this, 0, jsNull()));
- withScopeStructure.set(*this, JSWithScope::createStructure(*this, 0, jsNull()));
wtfThreadData().setCurrentIdentifierTable(existingEntryIdentifierTable);
Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.h (127347 => 127348)
--- trunk/Source/_javascript_Core/runtime/JSGlobalData.h 2012-09-01 01:09:02 UTC (rev 127347)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.h 2012-09-01 01:39:51 UTC (rev 127348)
@@ -230,8 +230,6 @@
Strong<Structure> debuggerActivationStructure;
Strong<Structure> interruptedExecutionErrorStructure;
Strong<Structure> terminatedExecutionErrorStructure;
- Strong<Structure> nameScopeStructure;
- Strong<Structure> strictEvalActivationStructure;
Strong<Structure> stringStructure;
Strong<Structure> notAnObjectStructure;
Strong<Structure> propertyNameIteratorStructure;
@@ -246,7 +244,6 @@
Strong<Structure> regExpStructure;
Strong<Structure> sharedSymbolTableStructure;
Strong<Structure> structureChainStructure;
- Strong<Structure> withScopeStructure;
IdentifierTable* identifierTable;
CommonIdentifiers* propertyNames;
Modified: trunk/Source/_javascript_Core/runtime/JSNameScope.h (127347 => 127348)
--- trunk/Source/_javascript_Core/runtime/JSNameScope.h 2012-09-01 01:09:02 UTC (rev 127347)
+++ trunk/Source/_javascript_Core/runtime/JSNameScope.h 2012-09-01 01:39:51 UTC (rev 127348)
@@ -26,6 +26,7 @@
#ifndef JSNameScope_h
#define JSNameScope_h
+#include "JSGlobalObject.h"
#include "JSVariableObject.h"
namespace JSC {
@@ -66,7 +67,7 @@
JSNameScope(ExecState* exec)
: Base(
exec->globalData(),
- exec->globalData().nameScopeStructure.get(),
+ exec->lexicalGlobalObject()->nameScopeStructure(),
reinterpret_cast<Register*>(&m_registerStore + 1),
exec->lexicalGlobalObject(),
exec->globalThisValue(),
Modified: trunk/Source/_javascript_Core/runtime/JSWithScope.h (127347 => 127348)
--- trunk/Source/_javascript_Core/runtime/JSWithScope.h 2012-09-01 01:09:02 UTC (rev 127347)
+++ trunk/Source/_javascript_Core/runtime/JSWithScope.h 2012-09-01 01:39:51 UTC (rev 127348)
@@ -26,7 +26,7 @@
#ifndef JSWithScope_h
#define JSWithScope_h
-#include "JSScope.h"
+#include "JSGlobalObject.h"
namespace JSC {
@@ -66,7 +66,7 @@
JSWithScope(ExecState* exec, JSObject* object)
: Base(
exec->globalData(),
- exec->globalData().withScopeStructure.get(),
+ exec->lexicalGlobalObject()->withScopeStructure(),
exec->lexicalGlobalObject(),
exec->globalThisValue(),
exec->scope()
@@ -78,7 +78,7 @@
JSWithScope(ExecState* exec, JSObject* object, JSScope* next)
: Base(
exec->globalData(),
- exec->globalData().withScopeStructure.get(),
+ exec->lexicalGlobalObject()->withScopeStructure(),
exec->lexicalGlobalObject(),
exec->globalThisValue(),
next
Modified: trunk/Source/_javascript_Core/runtime/StrictEvalActivation.cpp (127347 => 127348)
--- trunk/Source/_javascript_Core/runtime/StrictEvalActivation.cpp 2012-09-01 01:09:02 UTC (rev 127347)
+++ trunk/Source/_javascript_Core/runtime/StrictEvalActivation.cpp 2012-09-01 01:39:51 UTC (rev 127348)
@@ -26,6 +26,8 @@
#include "config.h"
#include "StrictEvalActivation.h"
+#include "JSGlobalObject.h"
+
namespace JSC {
ASSERT_HAS_TRIVIAL_DESTRUCTOR(StrictEvalActivation);
@@ -35,7 +37,7 @@
StrictEvalActivation::StrictEvalActivation(ExecState* exec)
: Base(
exec->globalData(),
- exec->globalData().strictEvalActivationStructure.get(),
+ exec->lexicalGlobalObject()->strictEvalActivationStructure(),
exec->lexicalGlobalObject(),
exec->globalThisValue(),
exec->scope()