Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (165072 => 165073)
--- trunk/Source/_javascript_Core/ChangeLog 2014-03-04 21:27:37 UTC (rev 165072)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-03-04 21:30:59 UTC (rev 165073)
@@ -1,3 +1,19 @@
+2014-03-04 Commit Queue <[email protected]>
+
+ Unreviewed, rolling out r164812.
+ http://trac.webkit.org/changeset/164812
+ https://bugs.webkit.org/show_bug.cgi?id=129699
+
+ it made things run slower (Requested by pizlo on #webkit).
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::execute):
+ * jsc.cpp:
+ (GlobalObject::finishCreation):
+ * runtime/BatchedTransitionOptimizer.h:
+ (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
+ (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
+
2014-03-02 Filip Pizlo <[email protected]>
GetMyArgumentByVal in FTL
Modified: trunk/Source/_javascript_Core/interpreter/Interpreter.cpp (165072 => 165073)
--- trunk/Source/_javascript_Core/interpreter/Interpreter.cpp 2014-03-04 21:27:37 UTC (rev 165072)
+++ trunk/Source/_javascript_Core/interpreter/Interpreter.cpp 2014-03-04 21:30:59 UTC (rev 165073)
@@ -1179,26 +1179,18 @@
if (variableObject->next())
variableObject->globalObject()->varInjectionWatchpoint()->fireAll();
- {
- SamplingRegion samplingRegion("variable puts");
-
- for (unsigned i = 0; i < numVariables; ++i) {
- const Identifier& ident = codeBlock->variable(i);
- if (!variableObject->hasProperty(callFrame, ident)) {
- PutPropertySlot slot(variableObject);
- variableObject->methodTable()->put(variableObject, callFrame, ident, jsUndefined(), slot);
- }
+ for (unsigned i = 0; i < numVariables; ++i) {
+ const Identifier& ident = codeBlock->variable(i);
+ if (!variableObject->hasProperty(callFrame, ident)) {
+ PutPropertySlot slot(variableObject);
+ variableObject->methodTable()->put(variableObject, callFrame, ident, jsUndefined(), slot);
}
}
- {
- SamplingRegion samplingRegion("function puts");
-
- for (int i = 0; i < numFunctions; ++i) {
- FunctionExecutable* function = codeBlock->functionDecl(i);
- PutPropertySlot slot(variableObject);
- variableObject->methodTable()->put(variableObject, callFrame, function->name(), JSFunction::create(vm, function, scope), slot);
- }
+ for (int i = 0; i < numFunctions; ++i) {
+ FunctionExecutable* function = codeBlock->functionDecl(i);
+ PutPropertySlot slot(variableObject);
+ variableObject->methodTable()->put(variableObject, callFrame, function->name(), JSFunction::create(vm, function, scope), slot);
}
}
Modified: trunk/Source/_javascript_Core/jsc.cpp (165072 => 165073)
--- trunk/Source/_javascript_Core/jsc.cpp 2014-03-04 21:27:37 UTC (rev 165072)
+++ trunk/Source/_javascript_Core/jsc.cpp 2014-03-04 21:30:59 UTC (rev 165073)
@@ -25,7 +25,6 @@
#include "APIShims.h"
#include "ButterflyInlines.h"
#include "BytecodeGenerator.h"
-#include "CodeCache.h"
#include "Completion.h"
#include "CopiedSpaceInlines.h"
#include "ExceptionHelpers.h"
@@ -241,7 +240,6 @@
static NO_RETURN_WITH_VALUE EncodedJSValue JSC_HOST_CALL functionQuit(ExecState*);
static EncodedJSValue JSC_HOST_CALL functionFalse(ExecState*);
static EncodedJSValue JSC_HOST_CALL functionEffectful42(ExecState*);
-static EncodedJSValue JSC_HOST_CALL functionClearCodeCache(ExecState*);
#if ENABLE(SAMPLING_FLAGS)
static EncodedJSValue JSC_HOST_CALL functionSetSamplingFlags(ExecState*);
@@ -379,7 +377,6 @@
putDirectNativeFunction(vm, this, Identifier(&vm, "DFGTrue"), 0, functionFalse, DFGTrue, DontEnum | JSC::Function);
addFunction(vm, "effectful42", functionEffectful42, 0);
- addFunction(vm, "clearCodeCache", functionClearCodeCache, 0);
JSArray* array = constructEmptyArray(globalExec(), 0);
for (size_t i = 0; i < arguments.size(); ++i)
@@ -751,13 +748,6 @@
return JSValue::encode(jsNumber(42));
}
-EncodedJSValue JSC_HOST_CALL functionClearCodeCache(ExecState* exec)
-{
- if (CodeCache* cache = exec->vm().codeCache())
- cache->clear();
- return JSValue::encode(jsUndefined());
-}
-
// Use SEH for Release builds only to get rid of the crash report dialog
// (luckily the same tests fail in Release and Debug builds so far). Need to
// be in a separate main function because the jscmain function requires object
Modified: trunk/Source/_javascript_Core/runtime/BatchedTransitionOptimizer.h (165072 => 165073)
--- trunk/Source/_javascript_Core/runtime/BatchedTransitionOptimizer.h 2014-03-04 21:27:37 UTC (rev 165072)
+++ trunk/Source/_javascript_Core/runtime/BatchedTransitionOptimizer.h 2014-03-04 21:30:59 UTC (rev 165073)
@@ -1,5 +1,6 @@
+// -*- mode: c++; c-basic-offset: 4 -*-
/*
- * Copyright (C) 2008, 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,13 +36,13 @@
public:
BatchedTransitionOptimizer(VM& vm, JSObject* object)
: m_vm(&vm)
- , m_object(object->structure()->isDictionary() ? nullptr : object)
+ , m_object(object)
{
}
~BatchedTransitionOptimizer()
{
- if (m_object && m_object->structure()->isDictionary())
+ if (m_object->structure()->isDictionary())
m_object->flattenDictionaryObject(*m_vm);
}