<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[208761] trunk/Source</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/208761">208761</a></dd>
<dt>Author</dt> <dd>fpizlo@apple.com</dd>
<dt>Date</dt> <dd>2016-11-15 15:21:50 -0800 (Tue, 15 Nov 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Rename CONCURRENT_JIT/ConcurrentJIT to CONCURRENT_JS/ConcurrentJS
https://bugs.webkit.org/show_bug.cgi?id=164791
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
Just renaming.
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/ArrayProfile.cpp:
(JSC::ArrayProfile::computeUpdatedPrediction):
(JSC::ArrayProfile::briefDescription):
(JSC::ArrayProfile::briefDescriptionWithoutUpdating):
* bytecode/ArrayProfile.h:
(JSC::ArrayProfile::observedArrayModes):
(JSC::ArrayProfile::mayInterceptIndexedAccesses):
(JSC::ArrayProfile::mayStoreToHole):
(JSC::ArrayProfile::outOfBounds):
(JSC::ArrayProfile::usesOriginalArrayStructures):
* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFromLLInt):
(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeExitSiteData):
(JSC::CallLinkStatus::computeFromCallLinkInfo):
(JSC::CallLinkStatus::computeDFGStatuses):
* bytecode/CallLinkStatus.h:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpValueProfiling):
(JSC::CodeBlock::dumpArrayProfiling):
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::getStubInfoMap):
(JSC::CodeBlock::getCallLinkInfoMap):
(JSC::CodeBlock::getByValInfoMap):
(JSC::CodeBlock::addStubInfo):
(JSC::CodeBlock::addByValInfo):
(JSC::CodeBlock::addCallLinkInfo):
(JSC::CodeBlock::resetJITData):
(JSC::CodeBlock::shrinkToFit):
(JSC::CodeBlock::getArrayProfile):
(JSC::CodeBlock::addArrayProfile):
(JSC::CodeBlock::getOrAddArrayProfile):
(JSC::CodeBlock::updateAllPredictionsAndCountLiveness):
(JSC::CodeBlock::updateAllArrayPredictions):
(JSC::CodeBlock::nameForRegister):
(JSC::CodeBlock::livenessAnalysisSlow):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::setJITCode):
(JSC::CodeBlock::valueProfilePredictionForBytecodeOffset):
(JSC::CodeBlock::addFrequentExitSite):
(JSC::CodeBlock::hasExitSite):
(JSC::CodeBlock::livenessAnalysis):
* bytecode/DFGExitProfile.cpp:
(JSC::DFG::ExitProfile::add):
(JSC::DFG::ExitProfile::hasExitSite):
(JSC::DFG::QueryableExitProfile::initialize):
* bytecode/DFGExitProfile.h:
(JSC::DFG::ExitProfile::hasExitSite):
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::hasExitSite):
(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
* bytecode/GetByIdStatus.h:
* bytecode/LazyOperandValueProfile.cpp:
(JSC::CompressedLazyOperandValueProfileHolder::computeUpdatedPredictions):
(JSC::CompressedLazyOperandValueProfileHolder::add):
(JSC::LazyOperandValueProfileParser::initialize):
(JSC::LazyOperandValueProfileParser::prediction):
* bytecode/LazyOperandValueProfile.h:
* bytecode/MethodOfGettingAValueProfile.cpp:
(JSC::MethodOfGettingAValueProfile::emitReportValue):
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::hasExitSite):
(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::computeForStubInfo):
* bytecode/PutByIdStatus.h:
* bytecode/StructureStubClearingWatchpoint.cpp:
(JSC::StructureStubClearingWatchpoint::fireInternal):
* bytecode/ValueProfile.h:
(JSC::ValueProfileBase::briefDescription):
(JSC::ValueProfileBase::computeUpdatedPrediction):
* dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::fromObserved):
* dfg/DFGArrayMode.h:
(JSC::DFG::ArrayMode::withSpeculationFromProfile):
(JSC::DFG::ArrayMode::withProfile):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::injectLazyOperandSpeculation):
(JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
(JSC::DFG::ByteCodeParser::getArrayMode):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::attemptToMakeGetArrayLength):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::tryGetConstantClosureVar):
* dfg/DFGObjectAllocationSinkingPhase.cpp:
* dfg/DFGPredictionInjectionPhase.cpp:
(JSC::DFG::PredictionInjectionPhase::run):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
* heap/Heap.cpp:
(JSC::Heap::addToRememberedSet):
* jit/JIT.cpp:
(JSC::JIT::compileWithoutLinking):
* jit/JITInlines.h:
(JSC::JIT::chooseArrayMode):
* jit/JITOperations.cpp:
(JSC::tryGetByValOptimize):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
* jit/JITWorklist.cpp:
(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::compileNow):
* jit/Repatch.cpp:
(JSC::repatchGetByID):
(JSC::repatchPutByID):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setupGetByIdPrototypeCache):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setUpCall):
* profiler/ProfilerBytecodeSequence.cpp:
(JSC::Profiler::BytecodeSequence::BytecodeSequence):
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
(JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):
* runtime/ConcurrentJITLock.h: Removed.
* runtime/ConcurrentJSLock.h: Copied from Source/JavaScriptCore/runtime/ConcurrentJITLock.h.
(JSC::ConcurrentJSLockerBase::ConcurrentJSLockerBase):
(JSC::ConcurrentJSLockerBase::~ConcurrentJSLockerBase):
(JSC::GCSafeConcurrentJSLocker::GCSafeConcurrentJSLocker):
(JSC::GCSafeConcurrentJSLocker::~GCSafeConcurrentJSLocker):
(JSC::ConcurrentJSLocker::ConcurrentJSLocker):
(JSC::ConcurrentJITLockerBase::ConcurrentJITLockerBase): Deleted.
(JSC::ConcurrentJITLockerBase::~ConcurrentJITLockerBase): Deleted.
(JSC::ConcurrentJITLockerBase::unlockEarly): Deleted.
(JSC::GCSafeConcurrentJITLocker::GCSafeConcurrentJITLocker): Deleted.
(JSC::GCSafeConcurrentJITLocker::~GCSafeConcurrentJITLocker): Deleted.
(JSC::ConcurrentJITLocker::ConcurrentJITLocker): Deleted.
* runtime/InferredType.cpp:
(JSC::InferredType::canWatch):
(JSC::InferredType::addWatchpoint):
(JSC::InferredType::willStoreValueSlow):
(JSC::InferredType::makeTopSlow):
(JSC::InferredType::set):
(JSC::InferredType::removeStructure):
* runtime/InferredType.h:
* runtime/InferredTypeTable.cpp:
(JSC::InferredTypeTable::visitChildren):
(JSC::InferredTypeTable::get):
(JSC::InferredTypeTable::willStoreValue):
(JSC::InferredTypeTable::makeTop):
* runtime/InferredTypeTable.h:
* runtime/JSEnvironmentRecord.cpp:
(JSC::JSEnvironmentRecord::heapSnapshot):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addStaticGlobals):
* runtime/JSLexicalEnvironment.cpp:
(JSC::JSLexicalEnvironment::getOwnNonIndexPropertyNames):
* runtime/JSObject.cpp:
(JSC::JSObject::deleteProperty):
(JSC::JSObject::shiftButterflyAfterFlattening):
* runtime/JSObject.h:
* runtime/JSObjectInlines.h:
(JSC::JSObject::putDirectWithoutTransition):
(JSC::JSObject::putDirectInternal):
* runtime/JSScope.cpp:
(JSC::abstractAccess):
(JSC::JSScope::collectClosureVariablesUnderTDZ):
* runtime/JSSegmentedVariableObject.cpp:
(JSC::JSSegmentedVariableObject::findVariableIndex):
(JSC::JSSegmentedVariableObject::addVariables):
(JSC::JSSegmentedVariableObject::heapSnapshot):
* runtime/JSSegmentedVariableObject.h:
* runtime/JSSymbolTableObject.cpp:
(JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
* runtime/JSSymbolTableObject.h:
(JSC::symbolTableGet):
(JSC::symbolTablePut):
* runtime/Options.cpp:
(JSC::recomputeDependentOptions):
* runtime/Options.h:
* runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):
* runtime/RegExp.cpp:
(JSC::RegExp::compile):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::compileMatchOnly):
(JSC::RegExp::deleteCode):
* runtime/RegExp.h:
* runtime/Structure.cpp:
(JSC::Structure::materializePropertyTable):
(JSC::Structure::addPropertyTransitionToExistingStructureConcurrently):
(JSC::Structure::addNewPropertyTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::ensurePropertyReplacementWatchpointSet):
(JSC::Structure::add):
(JSC::Structure::remove):
(JSC::Structure::visitChildren):
* runtime/Structure.h:
* runtime/StructureInlines.h:
(JSC::Structure::propertyReplacementWatchpointSet):
(JSC::Structure::add):
(JSC::Structure::remove):
* runtime/SymbolTable.cpp:
(JSC::SymbolTable::visitChildren):
(JSC::SymbolTable::localToEntry):
(JSC::SymbolTable::entryFor):
(JSC::SymbolTable::prepareForTypeProfiling):
(JSC::SymbolTable::uniqueIDForVariable):
(JSC::SymbolTable::uniqueIDForOffset):
(JSC::SymbolTable::globalTypeSetForOffset):
(JSC::SymbolTable::globalTypeSetForVariable):
* runtime/SymbolTable.h:
* runtime/TypeSet.cpp:
(JSC::TypeSet::addTypeInformation):
(JSC::TypeSet::invalidateCache):
* runtime/TypeSet.h:
(JSC::TypeSet::structureSet):
* runtime/VM.h:
* runtime/WriteBarrierInlines.h:
(JSC::WriteBarrierBase<T>::set):
(JSC::WriteBarrierBase<Unknown>::set):
* yarr/YarrInterpreter.cpp:
(JSC::Yarr::ByteCompiler::compile):
(JSC::Yarr::byteCompile):
* yarr/YarrInterpreter.h:
(JSC::Yarr::BytecodePattern::BytecodePattern):
Source/WTF:
Both the concurrent GC and the concurrent JIT rely on concurrency support in fundamental
JSC runtime components like JSValue. So, the thing that guards it should be a "feature"
called CONCURRENT_JS not CONCURRENT_JIT.
* wtf/Platform.h:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeArrayProfilecpp">trunk/Source/JavaScriptCore/bytecode/ArrayProfile.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeArrayProfileh">trunk/Source/JavaScriptCore/bytecode/ArrayProfile.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCallLinkStatuscpp">trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCallLinkStatush">trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCodeBlockcpp">trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCodeBlockh">trunk/Source/JavaScriptCore/bytecode/CodeBlock.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeDFGExitProfilecpp">trunk/Source/JavaScriptCore/bytecode/DFGExitProfile.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeDFGExitProfileh">trunk/Source/JavaScriptCore/bytecode/DFGExitProfile.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeGetByIdStatuscpp">trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeGetByIdStatush">trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeLazyOperandValueProfilecpp">trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeLazyOperandValueProfileh">trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeMethodOfGettingAValueProfilecpp">trunk/Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodePutByIdStatuscpp">trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodePutByIdStatush">trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeStructureStubClearingWatchpointcpp">trunk/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeValueProfileh">trunk/Source/JavaScriptCore/bytecode/ValueProfile.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGArrayModecpp">trunk/Source/JavaScriptCore/dfg/DFGArrayMode.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGArrayModeh">trunk/Source/JavaScriptCore/dfg/DFGArrayMode.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGByteCodeParsercpp">trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGDrivercpp">trunk/Source/JavaScriptCore/dfg/DFGDriver.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGFixupPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGGraphcpp">trunk/Source/JavaScriptCore/dfg/DFGGraph.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGObjectAllocationSinkingPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGPredictionInjectionPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreftlFTLLowerDFGToB3cpp">trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreftlFTLOperationscpp">trunk/Source/JavaScriptCore/ftl/FTLOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeapcpp">trunk/Source/JavaScriptCore/heap/Heap.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITcpp">trunk/Source/JavaScriptCore/jit/JIT.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITInlinesh">trunk/Source/JavaScriptCore/jit/JITInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITOperationscpp">trunk/Source/JavaScriptCore/jit/JITOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITPropertyAccesscpp">trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITWorklistcpp">trunk/Source/JavaScriptCore/jit/JITWorklist.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitRepatchcpp">trunk/Source/JavaScriptCore/jit/Repatch.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntSlowPathscpp">trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreprofilerProfilerBytecodeSequencecpp">trunk/Source/JavaScriptCore/profiler/ProfilerBytecodeSequence.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCommonSlowPathscpp">trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCommonSlowPathsh">trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeInferredTypecpp">trunk/Source/JavaScriptCore/runtime/InferredType.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeInferredTypeh">trunk/Source/JavaScriptCore/runtime/InferredType.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeInferredTypeTablecpp">trunk/Source/JavaScriptCore/runtime/InferredTypeTable.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeInferredTypeTableh">trunk/Source/JavaScriptCore/runtime/InferredTypeTable.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSEnvironmentRecordcpp">trunk/Source/JavaScriptCore/runtime/JSEnvironmentRecord.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp">trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSLexicalEnvironmentcpp">trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSObjectcpp">trunk/Source/JavaScriptCore/runtime/JSObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSObjecth">trunk/Source/JavaScriptCore/runtime/JSObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSObjectInlinesh">trunk/Source/JavaScriptCore/runtime/JSObjectInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSScopecpp">trunk/Source/JavaScriptCore/runtime/JSScope.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSegmentedVariableObjectcpp">trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSegmentedVariableObjecth">trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSymbolTableObjectcpp">trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSymbolTableObjecth">trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeOptionscpp">trunk/Source/JavaScriptCore/runtime/Options.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeOptionsh">trunk/Source/JavaScriptCore/runtime/Options.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeProgramExecutablecpp">trunk/Source/JavaScriptCore/runtime/ProgramExecutable.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpcpp">trunk/Source/JavaScriptCore/runtime/RegExp.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExph">trunk/Source/JavaScriptCore/runtime/RegExp.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStructurecpp">trunk/Source/JavaScriptCore/runtime/Structure.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStructureh">trunk/Source/JavaScriptCore/runtime/Structure.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStructureInlinesh">trunk/Source/JavaScriptCore/runtime/StructureInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeSymbolTablecpp">trunk/Source/JavaScriptCore/runtime/SymbolTable.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeSymbolTableh">trunk/Source/JavaScriptCore/runtime/SymbolTable.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypeSetcpp">trunk/Source/JavaScriptCore/runtime/TypeSet.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypeSeth">trunk/Source/JavaScriptCore/runtime/TypeSet.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeVMh">trunk/Source/JavaScriptCore/runtime/VM.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeWriteBarrierInlinesh">trunk/Source/JavaScriptCore/runtime/WriteBarrierInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreyarrYarrInterpretercpp">trunk/Source/JavaScriptCore/yarr/YarrInterpreter.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreyarrYarrInterpreterh">trunk/Source/JavaScriptCore/yarr/YarrInterpreter.h</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfPlatformh">trunk/Source/WTF/wtf/Platform.h</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreruntimeConcurrentJSLockh">trunk/Source/JavaScriptCore/runtime/ConcurrentJSLock.h</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreruntimeConcurrentJITLockh">trunk/Source/JavaScriptCore/runtime/ConcurrentJITLock.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -1,3 +1,246 @@
</span><ins>+2016-11-15 Filip Pizlo <fpizlo@apple.com>
+
+ Rename CONCURRENT_JIT/ConcurrentJIT to CONCURRENT_JS/ConcurrentJS
+ https://bugs.webkit.org/show_bug.cgi?id=164791
+
+ Reviewed by Geoffrey Garen.
+
+ Just renaming.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * bytecode/ArrayProfile.cpp:
+ (JSC::ArrayProfile::computeUpdatedPrediction):
+ (JSC::ArrayProfile::briefDescription):
+ (JSC::ArrayProfile::briefDescriptionWithoutUpdating):
+ * bytecode/ArrayProfile.h:
+ (JSC::ArrayProfile::observedArrayModes):
+ (JSC::ArrayProfile::mayInterceptIndexedAccesses):
+ (JSC::ArrayProfile::mayStoreToHole):
+ (JSC::ArrayProfile::outOfBounds):
+ (JSC::ArrayProfile::usesOriginalArrayStructures):
+ * bytecode/CallLinkStatus.cpp:
+ (JSC::CallLinkStatus::computeFromLLInt):
+ (JSC::CallLinkStatus::computeFor):
+ (JSC::CallLinkStatus::computeExitSiteData):
+ (JSC::CallLinkStatus::computeFromCallLinkInfo):
+ (JSC::CallLinkStatus::computeDFGStatuses):
+ * bytecode/CallLinkStatus.h:
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dumpValueProfiling):
+ (JSC::CodeBlock::dumpArrayProfiling):
+ (JSC::CodeBlock::finishCreation):
+ (JSC::CodeBlock::setConstantRegisters):
+ (JSC::CodeBlock::getStubInfoMap):
+ (JSC::CodeBlock::getCallLinkInfoMap):
+ (JSC::CodeBlock::getByValInfoMap):
+ (JSC::CodeBlock::addStubInfo):
+ (JSC::CodeBlock::addByValInfo):
+ (JSC::CodeBlock::addCallLinkInfo):
+ (JSC::CodeBlock::resetJITData):
+ (JSC::CodeBlock::shrinkToFit):
+ (JSC::CodeBlock::getArrayProfile):
+ (JSC::CodeBlock::addArrayProfile):
+ (JSC::CodeBlock::getOrAddArrayProfile):
+ (JSC::CodeBlock::updateAllPredictionsAndCountLiveness):
+ (JSC::CodeBlock::updateAllArrayPredictions):
+ (JSC::CodeBlock::nameForRegister):
+ (JSC::CodeBlock::livenessAnalysisSlow):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::setJITCode):
+ (JSC::CodeBlock::valueProfilePredictionForBytecodeOffset):
+ (JSC::CodeBlock::addFrequentExitSite):
+ (JSC::CodeBlock::hasExitSite):
+ (JSC::CodeBlock::livenessAnalysis):
+ * bytecode/DFGExitProfile.cpp:
+ (JSC::DFG::ExitProfile::add):
+ (JSC::DFG::ExitProfile::hasExitSite):
+ (JSC::DFG::QueryableExitProfile::initialize):
+ * bytecode/DFGExitProfile.h:
+ (JSC::DFG::ExitProfile::hasExitSite):
+ * bytecode/GetByIdStatus.cpp:
+ (JSC::GetByIdStatus::hasExitSite):
+ (JSC::GetByIdStatus::computeFor):
+ (JSC::GetByIdStatus::computeForStubInfo):
+ (JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
+ * bytecode/GetByIdStatus.h:
+ * bytecode/LazyOperandValueProfile.cpp:
+ (JSC::CompressedLazyOperandValueProfileHolder::computeUpdatedPredictions):
+ (JSC::CompressedLazyOperandValueProfileHolder::add):
+ (JSC::LazyOperandValueProfileParser::initialize):
+ (JSC::LazyOperandValueProfileParser::prediction):
+ * bytecode/LazyOperandValueProfile.h:
+ * bytecode/MethodOfGettingAValueProfile.cpp:
+ (JSC::MethodOfGettingAValueProfile::emitReportValue):
+ * bytecode/PutByIdStatus.cpp:
+ (JSC::PutByIdStatus::hasExitSite):
+ (JSC::PutByIdStatus::computeFor):
+ (JSC::PutByIdStatus::computeForStubInfo):
+ * bytecode/PutByIdStatus.h:
+ * bytecode/StructureStubClearingWatchpoint.cpp:
+ (JSC::StructureStubClearingWatchpoint::fireInternal):
+ * bytecode/ValueProfile.h:
+ (JSC::ValueProfileBase::briefDescription):
+ (JSC::ValueProfileBase::computeUpdatedPrediction):
+ * dfg/DFGArrayMode.cpp:
+ (JSC::DFG::ArrayMode::fromObserved):
+ * dfg/DFGArrayMode.h:
+ (JSC::DFG::ArrayMode::withSpeculationFromProfile):
+ (JSC::DFG::ArrayMode::withProfile):
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::injectLazyOperandSpeculation):
+ (JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
+ (JSC::DFG::ByteCodeParser::getArrayMode):
+ (JSC::DFG::ByteCodeParser::handleInlining):
+ (JSC::DFG::ByteCodeParser::parseBlock):
+ (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
+ * dfg/DFGDriver.cpp:
+ (JSC::DFG::compileImpl):
+ * dfg/DFGFixupPhase.cpp:
+ (JSC::DFG::FixupPhase::fixupNode):
+ (JSC::DFG::FixupPhase::attemptToMakeGetArrayLength):
+ * dfg/DFGGraph.cpp:
+ (JSC::DFG::Graph::tryGetConstantClosureVar):
+ * dfg/DFGObjectAllocationSinkingPhase.cpp:
+ * dfg/DFGPredictionInjectionPhase.cpp:
+ (JSC::DFG::PredictionInjectionPhase::run):
+ * ftl/FTLLowerDFGToB3.cpp:
+ (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
+ * ftl/FTLOperations.cpp:
+ (JSC::FTL::operationMaterializeObjectInOSR):
+ * heap/Heap.cpp:
+ (JSC::Heap::addToRememberedSet):
+ * jit/JIT.cpp:
+ (JSC::JIT::compileWithoutLinking):
+ * jit/JITInlines.h:
+ (JSC::JIT::chooseArrayMode):
+ * jit/JITOperations.cpp:
+ (JSC::tryGetByValOptimize):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompileGetByValWithCachedId):
+ (JSC::JIT::privateCompilePutByValWithCachedId):
+ * jit/JITWorklist.cpp:
+ (JSC::JITWorklist::compileLater):
+ (JSC::JITWorklist::compileNow):
+ * jit/Repatch.cpp:
+ (JSC::repatchGetByID):
+ (JSC::repatchPutByID):
+ * llint/LLIntSlowPaths.cpp:
+ (JSC::LLInt::setupGetByIdPrototypeCache):
+ (JSC::LLInt::LLINT_SLOW_PATH_DECL):
+ (JSC::LLInt::setUpCall):
+ * profiler/ProfilerBytecodeSequence.cpp:
+ (JSC::Profiler::BytecodeSequence::BytecodeSequence):
+ * runtime/CommonSlowPaths.cpp:
+ (JSC::SLOW_PATH_DECL):
+ * runtime/CommonSlowPaths.h:
+ (JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
+ (JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):
+ * runtime/ConcurrentJITLock.h: Removed.
+ * runtime/ConcurrentJSLock.h: Copied from Source/JavaScriptCore/runtime/ConcurrentJITLock.h.
+ (JSC::ConcurrentJSLockerBase::ConcurrentJSLockerBase):
+ (JSC::ConcurrentJSLockerBase::~ConcurrentJSLockerBase):
+ (JSC::GCSafeConcurrentJSLocker::GCSafeConcurrentJSLocker):
+ (JSC::GCSafeConcurrentJSLocker::~GCSafeConcurrentJSLocker):
+ (JSC::ConcurrentJSLocker::ConcurrentJSLocker):
+ (JSC::ConcurrentJITLockerBase::ConcurrentJITLockerBase): Deleted.
+ (JSC::ConcurrentJITLockerBase::~ConcurrentJITLockerBase): Deleted.
+ (JSC::ConcurrentJITLockerBase::unlockEarly): Deleted.
+ (JSC::GCSafeConcurrentJITLocker::GCSafeConcurrentJITLocker): Deleted.
+ (JSC::GCSafeConcurrentJITLocker::~GCSafeConcurrentJITLocker): Deleted.
+ (JSC::ConcurrentJITLocker::ConcurrentJITLocker): Deleted.
+ * runtime/InferredType.cpp:
+ (JSC::InferredType::canWatch):
+ (JSC::InferredType::addWatchpoint):
+ (JSC::InferredType::willStoreValueSlow):
+ (JSC::InferredType::makeTopSlow):
+ (JSC::InferredType::set):
+ (JSC::InferredType::removeStructure):
+ * runtime/InferredType.h:
+ * runtime/InferredTypeTable.cpp:
+ (JSC::InferredTypeTable::visitChildren):
+ (JSC::InferredTypeTable::get):
+ (JSC::InferredTypeTable::willStoreValue):
+ (JSC::InferredTypeTable::makeTop):
+ * runtime/InferredTypeTable.h:
+ * runtime/JSEnvironmentRecord.cpp:
+ (JSC::JSEnvironmentRecord::heapSnapshot):
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::addGlobalVar):
+ (JSC::JSGlobalObject::addStaticGlobals):
+ * runtime/JSLexicalEnvironment.cpp:
+ (JSC::JSLexicalEnvironment::getOwnNonIndexPropertyNames):
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::deleteProperty):
+ (JSC::JSObject::shiftButterflyAfterFlattening):
+ * runtime/JSObject.h:
+ * runtime/JSObjectInlines.h:
+ (JSC::JSObject::putDirectWithoutTransition):
+ (JSC::JSObject::putDirectInternal):
+ * runtime/JSScope.cpp:
+ (JSC::abstractAccess):
+ (JSC::JSScope::collectClosureVariablesUnderTDZ):
+ * runtime/JSSegmentedVariableObject.cpp:
+ (JSC::JSSegmentedVariableObject::findVariableIndex):
+ (JSC::JSSegmentedVariableObject::addVariables):
+ (JSC::JSSegmentedVariableObject::heapSnapshot):
+ * runtime/JSSegmentedVariableObject.h:
+ * runtime/JSSymbolTableObject.cpp:
+ (JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
+ * runtime/JSSymbolTableObject.h:
+ (JSC::symbolTableGet):
+ (JSC::symbolTablePut):
+ * runtime/Options.cpp:
+ (JSC::recomputeDependentOptions):
+ * runtime/Options.h:
+ * runtime/ProgramExecutable.cpp:
+ (JSC::ProgramExecutable::initializeGlobalProperties):
+ * runtime/RegExp.cpp:
+ (JSC::RegExp::compile):
+ (JSC::RegExp::matchConcurrently):
+ (JSC::RegExp::compileMatchOnly):
+ (JSC::RegExp::deleteCode):
+ * runtime/RegExp.h:
+ * runtime/Structure.cpp:
+ (JSC::Structure::materializePropertyTable):
+ (JSC::Structure::addPropertyTransitionToExistingStructureConcurrently):
+ (JSC::Structure::addNewPropertyTransition):
+ (JSC::Structure::takePropertyTableOrCloneIfPinned):
+ (JSC::Structure::nonPropertyTransition):
+ (JSC::Structure::flattenDictionaryStructure):
+ (JSC::Structure::ensurePropertyReplacementWatchpointSet):
+ (JSC::Structure::add):
+ (JSC::Structure::remove):
+ (JSC::Structure::visitChildren):
+ * runtime/Structure.h:
+ * runtime/StructureInlines.h:
+ (JSC::Structure::propertyReplacementWatchpointSet):
+ (JSC::Structure::add):
+ (JSC::Structure::remove):
+ * runtime/SymbolTable.cpp:
+ (JSC::SymbolTable::visitChildren):
+ (JSC::SymbolTable::localToEntry):
+ (JSC::SymbolTable::entryFor):
+ (JSC::SymbolTable::prepareForTypeProfiling):
+ (JSC::SymbolTable::uniqueIDForVariable):
+ (JSC::SymbolTable::uniqueIDForOffset):
+ (JSC::SymbolTable::globalTypeSetForOffset):
+ (JSC::SymbolTable::globalTypeSetForVariable):
+ * runtime/SymbolTable.h:
+ * runtime/TypeSet.cpp:
+ (JSC::TypeSet::addTypeInformation):
+ (JSC::TypeSet::invalidateCache):
+ * runtime/TypeSet.h:
+ (JSC::TypeSet::structureSet):
+ * runtime/VM.h:
+ * runtime/WriteBarrierInlines.h:
+ (JSC::WriteBarrierBase<T>::set):
+ (JSC::WriteBarrierBase<Unknown>::set):
+ * yarr/YarrInterpreter.cpp:
+ (JSC::Yarr::ByteCompiler::compile):
+ (JSC::Yarr::byteCompile):
+ * yarr/YarrInterpreter.h:
+ (JSC::Yarr::BytecodePattern::BytecodePattern):
+
</ins><span class="cx"> 2016-11-15 Joseph Pecoraro <pecoraro@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: Remove unused and untested Page.setTouchEmulationEnabled command
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -743,7 +743,7 @@
</span><span class="cx">                 0FDB2CCA173DA523007B3C1B /* FTLValueFromBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FDB2CC8173DA51E007B3C1B /* FTLValueFromBlock.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0FDB2CE7174830A2007B3C1B /* DFGWorklist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FDB2CE5174830A2007B3C1B /* DFGWorklist.cpp */; };
</span><span class="cx">                 0FDB2CE8174830A2007B3C1B /* DFGWorklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FDB2CE6174830A2007B3C1B /* DFGWorklist.h */; };
</span><del>-                0FDB2CEA174896C7007B3C1B /* ConcurrentJITLock.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FDB2CE9174896C7007B3C1B /* ConcurrentJITLock.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><ins>+                0FDB2CEA174896C7007B3C1B /* ConcurrentJSLock.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FDB2CE9174896C7007B3C1B /* ConcurrentJSLock.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 0FDDBFB51666EED800C55FEF /* DFGVariableAccessDataDump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FDDBFB21666EED500C55FEF /* DFGVariableAccessDataDump.cpp */; };
</span><span class="cx">                 0FDDBFB61666EEDA00C55FEF /* DFGVariableAccessDataDump.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FDDBFB31666EED500C55FEF /* DFGVariableAccessDataDump.h */; };
</span><span class="cx">                 0FDF67D21D9C6D27001B9825 /* B3Kind.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FDF67D11D9C6086001B9825 /* B3Kind.h */; };
</span><span class="lines">@@ -3157,7 +3157,7 @@
</span><span class="cx">                 0FDB2CC8173DA51E007B3C1B /* FTLValueFromBlock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FTLValueFromBlock.h; path = ftl/FTLValueFromBlock.h; sourceTree = "<group>"; };
</span><span class="cx">                 0FDB2CE5174830A2007B3C1B /* DFGWorklist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DFGWorklist.cpp; path = dfg/DFGWorklist.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 0FDB2CE6174830A2007B3C1B /* DFGWorklist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGWorklist.h; path = dfg/DFGWorklist.h; sourceTree = "<group>"; };
</span><del>-                0FDB2CE9174896C7007B3C1B /* ConcurrentJITLock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConcurrentJITLock.h; sourceTree = "<group>"; };
</del><ins>+                0FDB2CE9174896C7007B3C1B /* ConcurrentJSLock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConcurrentJSLock.h; sourceTree = "<group>"; };
</ins><span class="cx">                 0FDDBFB21666EED500C55FEF /* DFGVariableAccessDataDump.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DFGVariableAccessDataDump.cpp; path = dfg/DFGVariableAccessDataDump.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 0FDDBFB31666EED500C55FEF /* DFGVariableAccessDataDump.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGVariableAccessDataDump.h; path = dfg/DFGVariableAccessDataDump.h; sourceTree = "<group>"; };
</span><span class="cx">                 0FDF67D01D9C6086001B9825 /* B3Kind.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = B3Kind.cpp; path = b3/B3Kind.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -6113,7 +6113,7 @@
</span><span class="cx">                                 A7E5A3A61797432D00E893C0 /* CompilationResult.h */,
</span><span class="cx">                                 969A09220ED1E09C00F1F681 /* Completion.cpp */,
</span><span class="cx">                                 F5BB2BC5030F772101FCFE1D /* Completion.h */,
</span><del>-                                0FDB2CE9174896C7007B3C1B /* ConcurrentJITLock.h */,
</del><ins>+                                0FDB2CE9174896C7007B3C1B /* ConcurrentJSLock.h */,
</ins><span class="cx">                                 A5B6A74C18C6DBA600F11E91 /* ConsoleClient.cpp */,
</span><span class="cx">                                 A53CE08918BC21C300BEDF76 /* ConsoleClient.h */,
</span><span class="cx">                                 A55714BC1CD8048E0004D2C6 /* ConsoleObject.cpp */,
</span><span class="lines">@@ -7875,7 +7875,7 @@
</span><span class="cx">                                 A7E5A3A81797432D00E893C0 /* CompilationResult.h in Headers */,
</span><span class="cx">                                 BC18C3F40E16F5CD00B34460 /* Completion.h in Headers */,
</span><span class="cx">                                 0F6FC751196110A800E1D02D /* ComplexGetStatus.h in Headers */,
</span><del>-                                0FDB2CEA174896C7007B3C1B /* ConcurrentJITLock.h in Headers */,
</del><ins>+                                0FDB2CEA174896C7007B3C1B /* ConcurrentJSLock.h in Headers */,
</ins><span class="cx">                                 BC18C3F50E16F5CD00B34460 /* config.h in Headers */,
</span><span class="cx">                                 144836E7132DA7BE005BE785 /* ConservativeRoots.h in Headers */,
</span><span class="cx">                                 A53CE08A18BC21C300BEDF76 /* ConsoleClient.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeArrayProfilecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/ArrayProfile.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/ArrayProfile.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/ArrayProfile.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> out.print(comma, "Float64ArrayMode");
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void ArrayProfile::computeUpdatedPrediction(const ConcurrentJITLocker& locker, CodeBlock* codeBlock)
</del><ins>+void ArrayProfile::computeUpdatedPrediction(const ConcurrentJSLocker& locker, CodeBlock* codeBlock)
</ins><span class="cx"> {
</span><span class="cx"> if (!m_lastSeenStructureID)
</span><span class="cx"> return;
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> m_lastSeenStructureID = 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void ArrayProfile::computeUpdatedPrediction(const ConcurrentJITLocker&, CodeBlock* codeBlock, Structure* lastSeenStructure)
</del><ins>+void ArrayProfile::computeUpdatedPrediction(const ConcurrentJSLocker&, CodeBlock* codeBlock, Structure* lastSeenStructure)
</ins><span class="cx"> {
</span><span class="cx"> m_observedArrayModes |= arrayModeFromStructure(lastSeenStructure);
</span><span class="cx">
</span><span class="lines">@@ -122,13 +122,13 @@
</span><span class="cx"> m_usesOriginalArrayStructures = false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-CString ArrayProfile::briefDescription(const ConcurrentJITLocker& locker, CodeBlock* codeBlock)
</del><ins>+CString ArrayProfile::briefDescription(const ConcurrentJSLocker& locker, CodeBlock* codeBlock)
</ins><span class="cx"> {
</span><span class="cx"> computeUpdatedPrediction(locker, codeBlock);
</span><span class="cx"> return briefDescriptionWithoutUpdating(locker);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-CString ArrayProfile::briefDescriptionWithoutUpdating(const ConcurrentJITLocker&)
</del><ins>+CString ArrayProfile::briefDescriptionWithoutUpdating(const ConcurrentJSLocker&)
</ins><span class="cx"> {
</span><span class="cx"> StringPrintStream out;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeArrayProfileh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/ArrayProfile.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/ArrayProfile.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/ArrayProfile.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "JSArray.h"
</span><span class="cx"> #include "Structure.h"
</span><span class="cx"> #include <wtf/SegmentedVector.h>
</span><span class="lines">@@ -216,19 +216,19 @@
</span><span class="cx"> m_lastSeenStructureID = structure->id();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- void computeUpdatedPrediction(const ConcurrentJITLocker&, CodeBlock*);
- void computeUpdatedPrediction(const ConcurrentJITLocker&, CodeBlock*, Structure* lastSeenStructure);
</del><ins>+ void computeUpdatedPrediction(const ConcurrentJSLocker&, CodeBlock*);
+ void computeUpdatedPrediction(const ConcurrentJSLocker&, CodeBlock*, Structure* lastSeenStructure);
</ins><span class="cx">
</span><del>- ArrayModes observedArrayModes(const ConcurrentJITLocker&) const { return m_observedArrayModes; }
- bool mayInterceptIndexedAccesses(const ConcurrentJITLocker&) const { return m_mayInterceptIndexedAccesses; }
</del><ins>+ ArrayModes observedArrayModes(const ConcurrentJSLocker&) const { return m_observedArrayModes; }
+ bool mayInterceptIndexedAccesses(const ConcurrentJSLocker&) const { return m_mayInterceptIndexedAccesses; }
</ins><span class="cx">
</span><del>- bool mayStoreToHole(const ConcurrentJITLocker&) const { return m_mayStoreToHole; }
- bool outOfBounds(const ConcurrentJITLocker&) const { return m_outOfBounds; }
</del><ins>+ bool mayStoreToHole(const ConcurrentJSLocker&) const { return m_mayStoreToHole; }
+ bool outOfBounds(const ConcurrentJSLocker&) const { return m_outOfBounds; }
</ins><span class="cx">
</span><del>- bool usesOriginalArrayStructures(const ConcurrentJITLocker&) const { return m_usesOriginalArrayStructures; }
</del><ins>+ bool usesOriginalArrayStructures(const ConcurrentJSLocker&) const { return m_usesOriginalArrayStructures; }
</ins><span class="cx">
</span><del>- CString briefDescription(const ConcurrentJITLocker&, CodeBlock*);
- CString briefDescriptionWithoutUpdating(const ConcurrentJITLocker&);
</del><ins>+ CString briefDescription(const ConcurrentJSLocker&, CodeBlock*);
+ CString briefDescriptionWithoutUpdating(const ConcurrentJSLocker&);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> friend class LLIntOffsetsExtractor;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCallLinkStatuscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> m_variants.append(CallVariant(value.asCell()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-CallLinkStatus CallLinkStatus::computeFromLLInt(const ConcurrentJITLocker& locker, CodeBlock* profiledBlock, unsigned bytecodeIndex)
</del><ins>+CallLinkStatus CallLinkStatus::computeFromLLInt(const ConcurrentJSLocker& locker, CodeBlock* profiledBlock, unsigned bytecodeIndex)
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(profiledBlock);
</span><span class="cx"> UNUSED_PARAM(bytecodeIndex);
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> CallLinkStatus CallLinkStatus::computeFor(
</span><span class="cx"> CodeBlock* profiledBlock, unsigned bytecodeIndex, const CallLinkInfoMap& map)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(profiledBlock->m_lock);
</ins><span class="cx">
</span><span class="cx"> UNUSED_PARAM(profiledBlock);
</span><span class="cx"> UNUSED_PARAM(bytecodeIndex);
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> CallLinkStatus::ExitSiteData CallLinkStatus::computeExitSiteData(
</span><del>- const ConcurrentJITLocker& locker, CodeBlock* profiledBlock, unsigned bytecodeIndex)
</del><ins>+ const ConcurrentJSLocker& locker, CodeBlock* profiledBlock, unsigned bytecodeIndex)
</ins><span class="cx"> {
</span><span class="cx"> ExitSiteData exitSiteData;
</span><span class="cx">
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> CallLinkStatus CallLinkStatus::computeFor(
</span><del>- const ConcurrentJITLocker& locker, CodeBlock* profiledBlock, CallLinkInfo& callLinkInfo)
</del><ins>+ const ConcurrentJSLocker& locker, CodeBlock* profiledBlock, CallLinkInfo& callLinkInfo)
</ins><span class="cx"> {
</span><span class="cx"> // We don't really need this, but anytime we have to debug this code, it becomes indispensable.
</span><span class="cx"> UNUSED_PARAM(profiledBlock);
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> CallLinkStatus CallLinkStatus::computeFromCallLinkInfo(
</span><del>- const ConcurrentJITLocker&, CallLinkInfo& callLinkInfo)
</del><ins>+ const ConcurrentJSLocker&, CallLinkInfo& callLinkInfo)
</ins><span class="cx"> {
</span><span class="cx"> if (callLinkInfo.clearedByGC())
</span><span class="cx"> return takesSlowPath();
</span><span class="lines">@@ -228,7 +228,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> CallLinkStatus CallLinkStatus::computeFor(
</span><del>- const ConcurrentJITLocker& locker, CodeBlock* profiledBlock, CallLinkInfo& callLinkInfo,
</del><ins>+ const ConcurrentJSLocker& locker, CodeBlock* profiledBlock, CallLinkInfo& callLinkInfo,
</ins><span class="cx"> ExitSiteData exitSiteData)
</span><span class="cx"> {
</span><span class="cx"> CallLinkStatus result = computeFor(locker, profiledBlock, callLinkInfo);
</span><span class="lines">@@ -277,13 +277,13 @@
</span><span class="cx"> baselineCodeBlockForOriginAndBaselineCodeBlock(codeOrigin, baselineCodeBlock);
</span><span class="cx"> ExitSiteData exitSiteData;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(currentBaseline->m_lock);
</del><ins>+ ConcurrentJSLocker locker(currentBaseline->m_lock);
</ins><span class="cx"> exitSiteData = computeExitSiteData(
</span><span class="cx"> locker, currentBaseline, codeOrigin.bytecodeIndex);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(dfgCodeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(dfgCodeBlock->m_lock);
</ins><span class="cx"> map.add(info.codeOrigin(), computeFor(locker, dfgCodeBlock, info, exitSiteData));
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCallLinkStatush"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> #include "CallVariant.h"
</span><span class="cx"> #include "CodeOrigin.h"
</span><span class="cx"> #include "CodeSpecializationKind.h"
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "ExitingJITType.h"
</span><span class="cx"> #include "Intrinsic.h"
</span><span class="cx"> #include "JSCJSValue.h"
</span><span class="lines">@@ -70,14 +70,14 @@
</span><span class="cx"> bool takesSlowPath { false };
</span><span class="cx"> bool badFunction { false };
</span><span class="cx"> };
</span><del>- static ExitSiteData computeExitSiteData(const ConcurrentJITLocker&, CodeBlock*, unsigned bytecodeIndex);
</del><ins>+ static ExitSiteData computeExitSiteData(const ConcurrentJSLocker&, CodeBlock*, unsigned bytecodeIndex);
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> // Computes the status assuming that we never took slow path and never previously
</span><span class="cx"> // exited.
</span><del>- static CallLinkStatus computeFor(const ConcurrentJITLocker&, CodeBlock*, CallLinkInfo&);
</del><ins>+ static CallLinkStatus computeFor(const ConcurrentJSLocker&, CodeBlock*, CallLinkInfo&);
</ins><span class="cx"> static CallLinkStatus computeFor(
</span><del>- const ConcurrentJITLocker&, CodeBlock*, CallLinkInfo&, ExitSiteData);
</del><ins>+ const ConcurrentJSLocker&, CodeBlock*, CallLinkInfo&, ExitSiteData);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> typedef HashMap<CodeOrigin, CallLinkStatus, CodeOriginApproximateHash> ContextMap;
</span><span class="lines">@@ -118,10 +118,10 @@
</span><span class="cx"> private:
</span><span class="cx"> void makeClosureCall();
</span><span class="cx">
</span><del>- static CallLinkStatus computeFromLLInt(const ConcurrentJITLocker&, CodeBlock*, unsigned bytecodeIndex);
</del><ins>+ static CallLinkStatus computeFromLLInt(const ConcurrentJSLocker&, CodeBlock*, unsigned bytecodeIndex);
</ins><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> static CallLinkStatus computeFromCallLinkInfo(
</span><del>- const ConcurrentJITLocker&, CallLinkInfo&);
</del><ins>+ const ConcurrentJSLocker&, CallLinkInfo&);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> CallVariantList m_variants;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -679,7 +679,7 @@
</span><span class="cx">
</span><span class="cx"> void CodeBlock::dumpValueProfiling(PrintStream& out, const Instruction*& it, bool& hasPrintedProfiling)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> ++it;
</span><span class="cx"> CString description = it->u.profile->briefDescription(locker);
</span><span class="lines">@@ -691,7 +691,7 @@
</span><span class="cx">
</span><span class="cx"> void CodeBlock::dumpArrayProfiling(PrintStream& out, const Instruction*& it, bool& hasPrintedProfiling)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> ++it;
</span><span class="cx"> if (!it->u.arrayProfile)
</span><span class="lines">@@ -1964,7 +1964,7 @@
</span><span class="cx"> if (UnlinkedModuleProgramCodeBlock* unlinkedModuleProgramCodeBlock = jsDynamicCast<UnlinkedModuleProgramCodeBlock*>(unlinkedCodeBlock)) {
</span><span class="cx"> SymbolTable* clonedSymbolTable = jsCast<ModuleProgramExecutable*>(ownerExecutable)->moduleEnvironmentSymbolTable();
</span><span class="cx"> if (m_vm->typeProfiler()) {
</span><del>- ConcurrentJITLocker locker(clonedSymbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(clonedSymbolTable->m_lock);
</ins><span class="cx"> clonedSymbolTable->prepareForTypeProfiling(locker);
</span><span class="cx"> }
</span><span class="cx"> replaceConstant(unlinkedModuleProgramCodeBlock->moduleEnvironmentSymbolTableConstantRegisterOffset(), clonedSymbolTable);
</span><span class="lines">@@ -2219,7 +2219,7 @@
</span><span class="cx"> int symbolTableIndex = pc[5].u.operand;
</span><span class="cx"> SymbolTable* symbolTable = jsCast<SymbolTable*>(getConstant(symbolTableIndex));
</span><span class="cx"> const Identifier& ident = identifier(pc[2].u.operand);
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> auto iter = symbolTable->find(locker, ident.impl());
</span><span class="cx"> ASSERT(iter != symbolTable->end(locker));
</span><span class="cx"> iter->value.prepareToWatch();
</span><span class="lines">@@ -2275,7 +2275,7 @@
</span><span class="cx">
</span><span class="cx"> UniquedStringImpl* impl = (op.type == ModuleVar) ? op.importedName.get() : ident.impl();
</span><span class="cx"> if (symbolTable) {
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> // If our parent scope was created while profiling was disabled, it will not have prepared for profiling yet.
</span><span class="cx"> symbolTable->prepareForTypeProfiling(locker);
</span><span class="cx"> globalVariableID = symbolTable->uniqueIDForVariable(locker, impl, vm);
</span><span class="lines">@@ -2289,7 +2289,7 @@
</span><span class="cx"> int symbolTableIndex = pc[2].u.operand;
</span><span class="cx"> SymbolTable* symbolTable = jsCast<SymbolTable*>(getConstant(symbolTableIndex));
</span><span class="cx"> const Identifier& ident = identifier(pc[4].u.operand);
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> // If our parent scope was created while profiling was disabled, it will not have prepared for profiling yet.
</span><span class="cx"> globalVariableID = symbolTable->uniqueIDForVariable(locker, ident.impl(), vm);
</span><span class="cx"> globalTypeSet = symbolTable->globalTypeSetForVariable(locker, ident.impl(), vm);
</span><span class="lines">@@ -2457,7 +2457,7 @@
</span><span class="cx"> if (!constant.isEmpty()) {
</span><span class="cx"> if (SymbolTable* symbolTable = jsDynamicCast<SymbolTable*>(constant)) {
</span><span class="cx"> if (hasTypeProfiler) {
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> symbolTable->prepareForTypeProfiling(locker);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -2973,7 +2973,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void CodeBlock::getStubInfoMap(const ConcurrentJITLocker&, StubInfoMap& result)
</del><ins>+void CodeBlock::getStubInfoMap(const ConcurrentJSLocker&, StubInfoMap& result)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> if (JITCode::isJIT(jitType()))
</span><span class="lines">@@ -2985,11 +2985,11 @@
</span><span class="cx">
</span><span class="cx"> void CodeBlock::getStubInfoMap(StubInfoMap& result)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> getStubInfoMap(locker, result);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void CodeBlock::getCallLinkInfoMap(const ConcurrentJITLocker&, CallLinkInfoMap& result)
</del><ins>+void CodeBlock::getCallLinkInfoMap(const ConcurrentJSLocker&, CallLinkInfoMap& result)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> if (JITCode::isJIT(jitType()))
</span><span class="lines">@@ -3001,11 +3001,11 @@
</span><span class="cx">
</span><span class="cx"> void CodeBlock::getCallLinkInfoMap(CallLinkInfoMap& result)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> getCallLinkInfoMap(locker, result);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void CodeBlock::getByValInfoMap(const ConcurrentJITLocker&, ByValInfoMap& result)
</del><ins>+void CodeBlock::getByValInfoMap(const ConcurrentJSLocker&, ByValInfoMap& result)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> if (JITCode::isJIT(jitType())) {
</span><span class="lines">@@ -3019,7 +3019,7 @@
</span><span class="cx">
</span><span class="cx"> void CodeBlock::getByValInfoMap(ByValInfoMap& result)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> getByValInfoMap(locker, result);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -3026,7 +3026,7 @@
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> StructureStubInfo* CodeBlock::addStubInfo(AccessType accessType)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return m_stubInfos.add(accessType);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -3061,13 +3061,13 @@
</span><span class="cx">
</span><span class="cx"> ByValInfo* CodeBlock::addByValInfo()
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return m_byValInfos.add();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> CallLinkInfo* CodeBlock::addCallLinkInfo()
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return m_callLinkInfos.add();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -3083,7 +3083,7 @@
</span><span class="cx"> void CodeBlock::resetJITData()
</span><span class="cx"> {
</span><span class="cx"> RELEASE_ASSERT(!JITCode::isJIT(jitType()));
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> // We can clear these because no other thread will have references to any stub infos, call
</span><span class="cx"> // link infos, or by val infos if we don't have JIT code. Attempts to query these data
</span><span class="lines">@@ -3313,7 +3313,7 @@
</span><span class="cx">
</span><span class="cx"> void CodeBlock::shrinkToFit(ShrinkMode shrinkMode)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> m_rareCaseProfiles.shrinkToFit();
</span><span class="cx">
</span><span class="lines">@@ -3975,7 +3975,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-ArrayProfile* CodeBlock::getArrayProfile(const ConcurrentJITLocker&, unsigned bytecodeOffset)
</del><ins>+ArrayProfile* CodeBlock::getArrayProfile(const ConcurrentJSLocker&, unsigned bytecodeOffset)
</ins><span class="cx"> {
</span><span class="cx"> for (unsigned i = 0; i < m_arrayProfiles.size(); ++i) {
</span><span class="cx"> if (m_arrayProfiles[i].bytecodeOffset() == bytecodeOffset)
</span><span class="lines">@@ -3986,11 +3986,11 @@
</span><span class="cx">
</span><span class="cx"> ArrayProfile* CodeBlock::getArrayProfile(unsigned bytecodeOffset)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return getArrayProfile(locker, bytecodeOffset);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ArrayProfile* CodeBlock::addArrayProfile(const ConcurrentJITLocker&, unsigned bytecodeOffset)
</del><ins>+ArrayProfile* CodeBlock::addArrayProfile(const ConcurrentJSLocker&, unsigned bytecodeOffset)
</ins><span class="cx"> {
</span><span class="cx"> m_arrayProfiles.append(ArrayProfile(bytecodeOffset));
</span><span class="cx"> return &m_arrayProfiles.last();
</span><span class="lines">@@ -3998,11 +3998,11 @@
</span><span class="cx">
</span><span class="cx"> ArrayProfile* CodeBlock::addArrayProfile(unsigned bytecodeOffset)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return addArrayProfile(locker, bytecodeOffset);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ArrayProfile* CodeBlock::getOrAddArrayProfile(const ConcurrentJITLocker& locker, unsigned bytecodeOffset)
</del><ins>+ArrayProfile* CodeBlock::getOrAddArrayProfile(const ConcurrentJSLocker& locker, unsigned bytecodeOffset)
</ins><span class="cx"> {
</span><span class="cx"> ArrayProfile* result = getArrayProfile(locker, bytecodeOffset);
</span><span class="cx"> if (result)
</span><span class="lines">@@ -4012,7 +4012,7 @@
</span><span class="cx">
</span><span class="cx"> ArrayProfile* CodeBlock::getOrAddArrayProfile(unsigned bytecodeOffset)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return getOrAddArrayProfile(locker, bytecodeOffset);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -4042,7 +4042,7 @@
</span><span class="cx">
</span><span class="cx"> void CodeBlock::updateAllPredictionsAndCountLiveness(unsigned& numberOfLiveNonArgumentValueProfiles, unsigned& numberOfSamplesInProfiles)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> numberOfLiveNonArgumentValueProfiles = 0;
</span><span class="cx"> numberOfSamplesInProfiles = 0; // If this divided by ValueProfile::numberOfBuckets equals numberOfValueProfiles() then value profiles are full.
</span><span class="lines">@@ -4074,7 +4074,7 @@
</span><span class="cx">
</span><span class="cx"> void CodeBlock::updateAllArrayPredictions()
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> for (unsigned i = m_arrayProfiles.size(); i--;)
</span><span class="cx"> m_arrayProfiles[i].computeUpdatedPrediction(locker, this);
</span><span class="lines">@@ -4284,7 +4284,7 @@
</span><span class="cx"> if (m_constantRegisters[i].get().isEmpty())
</span><span class="cx"> continue;
</span><span class="cx"> if (SymbolTable* symbolTable = jsDynamicCast<SymbolTable*>(m_constantRegisters[i].get())) {
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> auto end = symbolTable->end(locker);
</span><span class="cx"> for (auto ptr = symbolTable->begin(locker); ptr != end; ++ptr) {
</span><span class="cx"> if (ptr->value.varOffset() == VarOffset(virtualRegister)) {
</span><span class="lines">@@ -4636,7 +4636,7 @@
</span><span class="cx"> {
</span><span class="cx"> std::unique_ptr<BytecodeLivenessAnalysis> analysis = std::make_unique<BytecodeLivenessAnalysis>(this);
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> if (!m_livenessAnalysis)
</span><span class="cx"> m_livenessAnalysis = WTFMove(analysis);
</span><span class="cx"> return *m_livenessAnalysis;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> #include "CodeOrigin.h"
</span><span class="cx"> #include "CodeType.h"
</span><span class="cx"> #include "CompactJITCodeMap.h"
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "DFGCommon.h"
</span><span class="cx"> #include "DFGExitProfile.h"
</span><span class="cx"> #include "DeferredCompilationCallback.h"
</span><span class="lines">@@ -235,13 +235,13 @@
</span><span class="cx">
</span><span class="cx"> Optional<unsigned> bytecodeOffsetFromCallSiteIndex(CallSiteIndex);
</span><span class="cx">
</span><del>- void getStubInfoMap(const ConcurrentJITLocker&, StubInfoMap& result);
</del><ins>+ void getStubInfoMap(const ConcurrentJSLocker&, StubInfoMap& result);
</ins><span class="cx"> void getStubInfoMap(StubInfoMap& result);
</span><span class="cx">
</span><del>- void getCallLinkInfoMap(const ConcurrentJITLocker&, CallLinkInfoMap& result);
</del><ins>+ void getCallLinkInfoMap(const ConcurrentJSLocker&, CallLinkInfoMap& result);
</ins><span class="cx"> void getCallLinkInfoMap(CallLinkInfoMap& result);
</span><span class="cx">
</span><del>- void getByValInfoMap(const ConcurrentJITLocker&, ByValInfoMap& result);
</del><ins>+ void getByValInfoMap(const ConcurrentJSLocker&, ByValInfoMap& result);
</ins><span class="cx"> void getByValInfoMap(ByValInfoMap& result);
</span><span class="cx">
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="lines">@@ -322,7 +322,7 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(heap()->isDeferred());
</span><span class="cx"> heap()->reportExtraMemoryAllocated(code->size());
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> WTF::storeStoreFence(); // This is probably not needed because the lock will also do something similar, but it's good to be paranoid.
</span><span class="cx"> m_jitCode = code;
</span><span class="cx"> }
</span><span class="lines">@@ -413,7 +413,7 @@
</span><span class="cx"> unsigned numberOfValueProfiles() { return m_valueProfiles.size(); }
</span><span class="cx"> ValueProfile* valueProfile(int index) { return &m_valueProfiles[index]; }
</span><span class="cx"> ValueProfile* valueProfileForBytecodeOffset(int bytecodeOffset);
</span><del>- SpeculatedType valueProfilePredictionForBytecodeOffset(const ConcurrentJITLocker& locker, int bytecodeOffset)
</del><ins>+ SpeculatedType valueProfilePredictionForBytecodeOffset(const ConcurrentJSLocker& locker, int bytecodeOffset)
</ins><span class="cx"> {
</span><span class="cx"> if (ValueProfile* valueProfile = valueProfileForBytecodeOffset(bytecodeOffset))
</span><span class="cx"> return valueProfile->computeUpdatedPrediction(locker);
</span><span class="lines">@@ -459,11 +459,11 @@
</span><span class="cx">
</span><span class="cx"> unsigned numberOfArrayProfiles() const { return m_arrayProfiles.size(); }
</span><span class="cx"> const ArrayProfileVector& arrayProfiles() { return m_arrayProfiles; }
</span><del>- ArrayProfile* addArrayProfile(const ConcurrentJITLocker&, unsigned bytecodeOffset);
</del><ins>+ ArrayProfile* addArrayProfile(const ConcurrentJSLocker&, unsigned bytecodeOffset);
</ins><span class="cx"> ArrayProfile* addArrayProfile(unsigned bytecodeOffset);
</span><del>- ArrayProfile* getArrayProfile(const ConcurrentJITLocker&, unsigned bytecodeOffset);
</del><ins>+ ArrayProfile* getArrayProfile(const ConcurrentJSLocker&, unsigned bytecodeOffset);
</ins><span class="cx"> ArrayProfile* getArrayProfile(unsigned bytecodeOffset);
</span><del>- ArrayProfile* getOrAddArrayProfile(const ConcurrentJITLocker&, unsigned bytecodeOffset);
</del><ins>+ ArrayProfile* getOrAddArrayProfile(const ConcurrentJSLocker&, unsigned bytecodeOffset);
</ins><span class="cx"> ArrayProfile* getOrAddArrayProfile(unsigned bytecodeOffset);
</span><span class="cx">
</span><span class="cx"> // Exception handling support
</span><span class="lines">@@ -497,17 +497,17 @@
</span><span class="cx"> bool addFrequentExitSite(const DFG::FrequentExitSite& site)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(JITCode::isBaselineCode(jitType()));
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return m_exitProfile.add(locker, this, site);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool hasExitSite(const ConcurrentJITLocker& locker, const DFG::FrequentExitSite& site) const
</del><ins>+ bool hasExitSite(const ConcurrentJSLocker& locker, const DFG::FrequentExitSite& site) const
</ins><span class="cx"> {
</span><span class="cx"> return m_exitProfile.hasExitSite(locker, site);
</span><span class="cx"> }
</span><span class="cx"> bool hasExitSite(const DFG::FrequentExitSite& site) const
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return hasExitSite(locker, site);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -591,7 +591,7 @@
</span><span class="cx"> BytecodeLivenessAnalysis& livenessAnalysis()
</span><span class="cx"> {
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> if (!!m_livenessAnalysis)
</span><span class="cx"> return *m_livenessAnalysis;
</span><span class="cx"> }
</span><span class="lines">@@ -834,7 +834,7 @@
</span><span class="cx"> // Another exception to the rules is that the GC can do whatever it wants
</span><span class="cx"> // without holding any locks, because the GC is guaranteed to wait until any
</span><span class="cx"> // concurrent compilation threads finish what they're doing.
</span><del>- mutable ConcurrentJITLock m_lock;
</del><ins>+ mutable ConcurrentJSLock m_lock;
</ins><span class="cx">
</span><span class="cx"> Atomic<bool> m_visitWeaklyHasBeenCalled;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeDFGExitProfilecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/DFGExitProfile.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/DFGExitProfile.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/DFGExitProfile.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> ExitProfile::ExitProfile() { }
</span><span class="cx"> ExitProfile::~ExitProfile() { }
</span><span class="cx">
</span><del>-bool ExitProfile::add(const ConcurrentJITLocker&, CodeBlock* owner, const FrequentExitSite& site)
</del><ins>+bool ExitProfile::add(const ConcurrentJSLocker&, CodeBlock* owner, const FrequentExitSite& site)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(site.jitType() != ExitFromAnything);
</span><span class="cx">
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool ExitProfile::hasExitSite(const ConcurrentJITLocker&, const FrequentExitSite& site) const
</del><ins>+bool ExitProfile::hasExitSite(const ConcurrentJSLocker&, const FrequentExitSite& site) const
</ins><span class="cx"> {
</span><span class="cx"> if (!m_frequentExitSites)
</span><span class="cx"> return false;
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> QueryableExitProfile::QueryableExitProfile() { }
</span><span class="cx"> QueryableExitProfile::~QueryableExitProfile() { }
</span><span class="cx">
</span><del>-void QueryableExitProfile::initialize(const ConcurrentJITLocker&, const ExitProfile& profile)
</del><ins>+void QueryableExitProfile::initialize(const ConcurrentJSLocker&, const ExitProfile& profile)
</ins><span class="cx"> {
</span><span class="cx"> if (!profile.m_frequentExitSites)
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeDFGExitProfileh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/DFGExitProfile.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/DFGExitProfile.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/DFGExitProfile.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "ExitKind.h"
</span><span class="cx"> #include "ExitingJITType.h"
</span><span class="cx"> #include <wtf/HashSet.h>
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx"> // be called a fixed number of times per recompilation. Recompilation is
</span><span class="cx"> // rare to begin with, and implies doing O(n) operations on the CodeBlock
</span><span class="cx"> // anyway.
</span><del>- bool add(const ConcurrentJITLocker&, CodeBlock* owner, const FrequentExitSite&);
</del><ins>+ bool add(const ConcurrentJSLocker&, CodeBlock* owner, const FrequentExitSite&);
</ins><span class="cx">
</span><span class="cx"> // Get the frequent exit sites for a bytecode index. This is O(n), and is
</span><span class="cx"> // meant to only be used from debugging/profiling code.
</span><span class="lines">@@ -170,12 +170,12 @@
</span><span class="cx"> // in the compiler. It should be strictly cheaper than building a
</span><span class="cx"> // QueryableExitProfile, if you really expect this to be called infrequently
</span><span class="cx"> // and you believe that there are few exit sites.
</span><del>- bool hasExitSite(const ConcurrentJITLocker&, const FrequentExitSite&) const;
- bool hasExitSite(const ConcurrentJITLocker& locker, ExitKind kind) const
</del><ins>+ bool hasExitSite(const ConcurrentJSLocker&, const FrequentExitSite&) const;
+ bool hasExitSite(const ConcurrentJSLocker& locker, ExitKind kind) const
</ins><span class="cx"> {
</span><span class="cx"> return hasExitSite(locker, FrequentExitSite(kind));
</span><span class="cx"> }
</span><del>- bool hasExitSite(const ConcurrentJITLocker& locker, unsigned bytecodeIndex, ExitKind kind) const
</del><ins>+ bool hasExitSite(const ConcurrentJSLocker& locker, unsigned bytecodeIndex, ExitKind kind) const
</ins><span class="cx"> {
</span><span class="cx"> return hasExitSite(locker, FrequentExitSite(bytecodeIndex, kind));
</span><span class="cx"> }
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx"> QueryableExitProfile();
</span><span class="cx"> ~QueryableExitProfile();
</span><span class="cx">
</span><del>- void initialize(const ConcurrentJITLocker&, const ExitProfile&);
</del><ins>+ void initialize(const ConcurrentJSLocker&, const ExitProfile&);
</ins><span class="cx">
</span><span class="cx"> bool hasExitSite(const FrequentExitSite& site) const
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeGetByIdStatuscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><del>-bool GetByIdStatus::hasExitSite(const ConcurrentJITLocker& locker, CodeBlock* profiledBlock, unsigned bytecodeIndex)
</del><ins>+bool GetByIdStatus::hasExitSite(const ConcurrentJSLocker& locker, CodeBlock* profiledBlock, unsigned bytecodeIndex)
</ins><span class="cx"> {
</span><span class="cx"> return profiledBlock->hasExitSite(locker, DFG::FrequentExitSite(bytecodeIndex, BadCache))
</span><span class="cx"> || profiledBlock->hasExitSite(locker, DFG::FrequentExitSite(bytecodeIndex, BadConstantCache));
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">
</span><span class="cx"> GetByIdStatus GetByIdStatus::computeFor(CodeBlock* profiledBlock, StubInfoMap& map, unsigned bytecodeIndex, UniquedStringImpl* uid)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(profiledBlock->m_lock);
</ins><span class="cx">
</span><span class="cx"> GetByIdStatus result;
</span><span class="cx">
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><del>-GetByIdStatus GetByIdStatus::computeForStubInfo(const ConcurrentJITLocker& locker, CodeBlock* profiledBlock, StructureStubInfo* stubInfo, CodeOrigin codeOrigin, UniquedStringImpl* uid)
</del><ins>+GetByIdStatus GetByIdStatus::computeForStubInfo(const ConcurrentJSLocker& locker, CodeBlock* profiledBlock, StructureStubInfo* stubInfo, CodeOrigin codeOrigin, UniquedStringImpl* uid)
</ins><span class="cx"> {
</span><span class="cx"> GetByIdStatus result = GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback(
</span><span class="cx"> locker, profiledBlock, stubInfo, uid,
</span><span class="lines">@@ -146,7 +146,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> GetByIdStatus GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback(
</span><del>- const ConcurrentJITLocker& locker, CodeBlock* profiledBlock, StructureStubInfo* stubInfo, UniquedStringImpl* uid,
</del><ins>+ const ConcurrentJSLocker& locker, CodeBlock* profiledBlock, StructureStubInfo* stubInfo, UniquedStringImpl* uid,
</ins><span class="cx"> CallLinkStatus::ExitSiteData callExitSiteData)
</span><span class="cx"> {
</span><span class="cx"> if (!stubInfo || !stubInfo->everConsidered)
</span><span class="lines">@@ -298,7 +298,7 @@
</span><span class="cx"> if (dfgBlock) {
</span><span class="cx"> CallLinkStatus::ExitSiteData exitSiteData;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(profiledBlock->m_lock);
</ins><span class="cx"> exitSiteData = CallLinkStatus::computeExitSiteData(
</span><span class="cx"> locker, profiledBlock, codeOrigin.bytecodeIndex);
</span><span class="cx"> }
</span><span class="lines">@@ -305,7 +305,7 @@
</span><span class="cx">
</span><span class="cx"> GetByIdStatus result;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(dfgBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(dfgBlock->m_lock);
</ins><span class="cx"> result = computeForStubInfoWithoutExitSiteFeedback(
</span><span class="cx"> locker, dfgBlock, dfgMap.get(codeOrigin), uid, exitSiteData);
</span><span class="cx"> }
</span><span class="lines">@@ -314,7 +314,7 @@
</span><span class="cx"> return result;
</span><span class="cx">
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(profiledBlock->m_lock);
</ins><span class="cx"> if (hasExitSite(locker, profiledBlock, codeOrigin.bytecodeIndex))
</span><span class="cx"> return GetByIdStatus(TakesSlowPath, true);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeGetByIdStatush"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx">
</span><span class="cx"> #include "CallLinkStatus.h"
</span><span class="cx"> #include "CodeOrigin.h"
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "ExitingJITType.h"
</span><span class="cx"> #include "GetByIdVariant.h"
</span><span class="cx">
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> static GetByIdStatus computeFor(CodeBlock* baselineBlock, CodeBlock* dfgBlock, StubInfoMap& baselineMap, StubInfoMap& dfgMap, CodeOrigin, UniquedStringImpl* uid);
</span><span class="cx">
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><del>- static GetByIdStatus computeForStubInfo(const ConcurrentJITLocker&, CodeBlock* baselineBlock, StructureStubInfo*, CodeOrigin, UniquedStringImpl* uid);
</del><ins>+ static GetByIdStatus computeForStubInfo(const ConcurrentJSLocker&, CodeBlock* baselineBlock, StructureStubInfo*, CodeOrigin, UniquedStringImpl* uid);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> State state() const { return m_state; }
</span><span class="lines">@@ -102,11 +102,11 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><del>- static bool hasExitSite(const ConcurrentJITLocker&, CodeBlock*, unsigned bytecodeIndex);
</del><ins>+ static bool hasExitSite(const ConcurrentJSLocker&, CodeBlock*, unsigned bytecodeIndex);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> static GetByIdStatus computeForStubInfoWithoutExitSiteFeedback(
</span><del>- const ConcurrentJITLocker&, CodeBlock* profiledBlock, StructureStubInfo*,
</del><ins>+ const ConcurrentJSLocker&, CodeBlock* profiledBlock, StructureStubInfo*,
</ins><span class="cx"> UniquedStringImpl* uid, CallLinkStatus::ExitSiteData);
</span><span class="cx"> #endif
</span><span class="cx"> static GetByIdStatus computeFromLLInt(CodeBlock*, unsigned bytecodeIndex, UniquedStringImpl* uid);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeLazyOperandValueProfilecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx"> CompressedLazyOperandValueProfileHolder::CompressedLazyOperandValueProfileHolder() { }
</span><span class="cx"> CompressedLazyOperandValueProfileHolder::~CompressedLazyOperandValueProfileHolder() { }
</span><span class="cx">
</span><del>-void CompressedLazyOperandValueProfileHolder::computeUpdatedPredictions(const ConcurrentJITLocker& locker)
</del><ins>+void CompressedLazyOperandValueProfileHolder::computeUpdatedPredictions(const ConcurrentJSLocker& locker)
</ins><span class="cx"> {
</span><span class="cx"> if (!m_data)
</span><span class="cx"> return;
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> LazyOperandValueProfile* CompressedLazyOperandValueProfileHolder::add(
</span><del>- const ConcurrentJITLocker&, const LazyOperandValueProfileKey& key)
</del><ins>+ const ConcurrentJSLocker&, const LazyOperandValueProfileKey& key)
</ins><span class="cx"> {
</span><span class="cx"> if (!m_data)
</span><span class="cx"> m_data = std::make_unique<LazyOperandValueProfile::List>();
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> LazyOperandValueProfileParser::~LazyOperandValueProfileParser() { }
</span><span class="cx">
</span><span class="cx"> void LazyOperandValueProfileParser::initialize(
</span><del>- const ConcurrentJITLocker&, CompressedLazyOperandValueProfileHolder& holder)
</del><ins>+ const ConcurrentJSLocker&, CompressedLazyOperandValueProfileHolder& holder)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_map.isEmpty());
</span><span class="cx">
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> SpeculatedType LazyOperandValueProfileParser::prediction(
</span><del>- const ConcurrentJITLocker& locker, const LazyOperandValueProfileKey& key) const
</del><ins>+ const ConcurrentJSLocker& locker, const LazyOperandValueProfileKey& key) const
</ins><span class="cx"> {
</span><span class="cx"> LazyOperandValueProfile* profile = getIfPresent(key);
</span><span class="cx"> if (!profile)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeLazyOperandValueProfileh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "ValueProfile.h"
</span><span class="cx"> #include "VirtualRegister.h"
</span><span class="cx"> #include <wtf/HashMap.h>
</span><span class="lines">@@ -152,10 +152,10 @@
</span><span class="cx"> CompressedLazyOperandValueProfileHolder();
</span><span class="cx"> ~CompressedLazyOperandValueProfileHolder();
</span><span class="cx">
</span><del>- void computeUpdatedPredictions(const ConcurrentJITLocker&);
</del><ins>+ void computeUpdatedPredictions(const ConcurrentJSLocker&);
</ins><span class="cx">
</span><span class="cx"> LazyOperandValueProfile* add(
</span><del>- const ConcurrentJITLocker&, const LazyOperandValueProfileKey& key);
</del><ins>+ const ConcurrentJSLocker&, const LazyOperandValueProfileKey& key);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> friend class LazyOperandValueProfileParser;
</span><span class="lines">@@ -169,13 +169,13 @@
</span><span class="cx"> ~LazyOperandValueProfileParser();
</span><span class="cx">
</span><span class="cx"> void initialize(
</span><del>- const ConcurrentJITLocker&, CompressedLazyOperandValueProfileHolder& holder);
</del><ins>+ const ConcurrentJSLocker&, CompressedLazyOperandValueProfileHolder& holder);
</ins><span class="cx">
</span><span class="cx"> LazyOperandValueProfile* getIfPresent(
</span><span class="cx"> const LazyOperandValueProfileKey& key) const;
</span><span class="cx">
</span><span class="cx"> SpeculatedType prediction(
</span><del>- const ConcurrentJITLocker&, const LazyOperandValueProfileKey& key) const;
</del><ins>+ const ConcurrentJSLocker&, const LazyOperandValueProfileKey& key) const;
</ins><span class="cx"> private:
</span><span class="cx"> HashMap<LazyOperandValueProfileKey, LazyOperandValueProfile*> m_map;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeMethodOfGettingAValueProfilecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> case LazyOperand: {
</span><span class="cx"> LazyOperandValueProfileKey key(u.lazyOperand.bytecodeOffset, VirtualRegister(u.lazyOperand.operand));
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(u.lazyOperand.codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(u.lazyOperand.codeBlock->m_lock);
</ins><span class="cx"> LazyOperandValueProfile* profile =
</span><span class="cx"> u.lazyOperand.codeBlock->lazyOperandValueProfiles().add(locker, key);
</span><span class="cx"> jit.storeValue(regs, profile->specFailBucket(0));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodePutByIdStatuscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><del>-bool PutByIdStatus::hasExitSite(const ConcurrentJITLocker& locker, CodeBlock* profiledBlock, unsigned bytecodeIndex)
</del><ins>+bool PutByIdStatus::hasExitSite(const ConcurrentJSLocker& locker, CodeBlock* profiledBlock, unsigned bytecodeIndex)
</ins><span class="cx"> {
</span><span class="cx"> return profiledBlock->hasExitSite(locker, DFG::FrequentExitSite(bytecodeIndex, BadCache))
</span><span class="cx"> || profiledBlock->hasExitSite(locker, DFG::FrequentExitSite(bytecodeIndex, BadConstantCache));
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx">
</span><span class="cx"> PutByIdStatus PutByIdStatus::computeFor(CodeBlock* profiledBlock, StubInfoMap& map, unsigned bytecodeIndex, UniquedStringImpl* uid)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(profiledBlock->m_lock);
</ins><span class="cx">
</span><span class="cx"> UNUSED_PARAM(profiledBlock);
</span><span class="cx"> UNUSED_PARAM(bytecodeIndex);
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(JIT)
</span><del>-PutByIdStatus PutByIdStatus::computeForStubInfo(const ConcurrentJITLocker& locker, CodeBlock* baselineBlock, StructureStubInfo* stubInfo, CodeOrigin codeOrigin, UniquedStringImpl* uid)
</del><ins>+PutByIdStatus PutByIdStatus::computeForStubInfo(const ConcurrentJSLocker& locker, CodeBlock* baselineBlock, StructureStubInfo* stubInfo, CodeOrigin codeOrigin, UniquedStringImpl* uid)
</ins><span class="cx"> {
</span><span class="cx"> return computeForStubInfo(
</span><span class="cx"> locker, baselineBlock, stubInfo, uid,
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PutByIdStatus PutByIdStatus::computeForStubInfo(
</span><del>- const ConcurrentJITLocker& locker, CodeBlock* profiledBlock, StructureStubInfo* stubInfo,
</del><ins>+ const ConcurrentJSLocker& locker, CodeBlock* profiledBlock, StructureStubInfo* stubInfo,
</ins><span class="cx"> UniquedStringImpl* uid, CallLinkStatus::ExitSiteData callExitSiteData)
</span><span class="cx"> {
</span><span class="cx"> if (!stubInfo || !stubInfo->everConsidered)
</span><span class="lines">@@ -266,7 +266,7 @@
</span><span class="cx"> if (dfgBlock) {
</span><span class="cx"> CallLinkStatus::ExitSiteData exitSiteData;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(baselineBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(baselineBlock->m_lock);
</ins><span class="cx"> if (hasExitSite(locker, baselineBlock, codeOrigin.bytecodeIndex))
</span><span class="cx"> return PutByIdStatus(TakesSlowPath);
</span><span class="cx"> exitSiteData = CallLinkStatus::computeExitSiteData(
</span><span class="lines">@@ -275,7 +275,7 @@
</span><span class="cx">
</span><span class="cx"> PutByIdStatus result;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(dfgBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(dfgBlock->m_lock);
</ins><span class="cx"> result = computeForStubInfo(
</span><span class="cx"> locker, dfgBlock, dfgMap.get(codeOrigin), uid, exitSiteData);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodePutByIdStatush"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> static PutByIdStatus computeFor(CodeBlock* baselineBlock, CodeBlock* dfgBlock, StubInfoMap& baselineMap, StubInfoMap& dfgMap, CodeOrigin, UniquedStringImpl* uid);
</span><span class="cx">
</span><span class="cx"> #if ENABLE(JIT)
</span><del>- static PutByIdStatus computeForStubInfo(const ConcurrentJITLocker&, CodeBlock* baselineBlock, StructureStubInfo*, CodeOrigin, UniquedStringImpl* uid);
</del><ins>+ static PutByIdStatus computeForStubInfo(const ConcurrentJSLocker&, CodeBlock* baselineBlock, StructureStubInfo*, CodeOrigin, UniquedStringImpl* uid);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> State state() const { return m_state; }
</span><span class="lines">@@ -97,11 +97,11 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><del>- static bool hasExitSite(const ConcurrentJITLocker&, CodeBlock*, unsigned bytecodeIndex);
</del><ins>+ static bool hasExitSite(const ConcurrentJSLocker&, CodeBlock*, unsigned bytecodeIndex);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> static PutByIdStatus computeForStubInfo(
</span><del>- const ConcurrentJITLocker&, CodeBlock*, StructureStubInfo*, UniquedStringImpl* uid,
</del><ins>+ const ConcurrentJSLocker&, CodeBlock*, StructureStubInfo*, UniquedStringImpl* uid,
</ins><span class="cx"> CallLinkStatus::ExitSiteData);
</span><span class="cx"> #endif
</span><span class="cx"> static PutByIdStatus computeFromLLInt(CodeBlock*, unsigned bytecodeIndex, UniquedStringImpl* uid);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeStructureStubClearingWatchpointcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> // This will implicitly cause my own demise: stub reset removes all watchpoints.
</span><span class="cx"> // That works, because deleting a watchpoint removes it from the set's list, and
</span><span class="cx"> // the set's list traversal for firing is robust against the set changing.
</span><del>- ConcurrentJITLocker locker(m_holder.codeBlock()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_holder.codeBlock()->m_lock);
</ins><span class="cx"> m_holder.stubInfo()->reset(m_holder.codeBlock());
</span><span class="cx"> return;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeValueProfileh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/ValueProfile.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/ValueProfile.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/bytecode/ValueProfile.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "Heap.h"
</span><span class="cx"> #include "JSArray.h"
</span><span class="cx"> #include "SpeculatedType.h"
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- CString briefDescription(const ConcurrentJITLocker& locker)
</del><ins>+ CString briefDescription(const ConcurrentJSLocker& locker)
</ins><span class="cx"> {
</span><span class="cx"> computeUpdatedPrediction(locker);
</span><span class="cx">
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">
</span><span class="cx"> // Updates the prediction and returns the new one. Never call this from any thread
</span><span class="cx"> // that isn't executing the code.
</span><del>- SpeculatedType computeUpdatedPrediction(const ConcurrentJITLocker&)
</del><ins>+ SpeculatedType computeUpdatedPrediction(const ConcurrentJSLocker&)
</ins><span class="cx"> {
</span><span class="cx"> for (unsigned i = 0; i < totalNumberOfBuckets; ++i) {
</span><span class="cx"> JSValue value = JSValue::decode(m_buckets[i]);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGArrayModecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGArrayMode.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGArrayMode.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/dfg/DFGArrayMode.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx">
</span><span class="cx"> namespace JSC { namespace DFG {
</span><span class="cx">
</span><del>-ArrayMode ArrayMode::fromObserved(const ConcurrentJITLocker& locker, ArrayProfile* profile, Array::Action action, bool makeSafe)
</del><ins>+ArrayMode ArrayMode::fromObserved(const ConcurrentJSLocker& locker, ArrayProfile* profile, Array::Action action, bool makeSafe)
</ins><span class="cx"> {
</span><span class="cx"> Array::Class nonArray;
</span><span class="cx"> if (profile->usesOriginalArrayStructures(locker))
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGArrayModeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGArrayMode.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGArrayMode.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/dfg/DFGArrayMode.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx"> return ArrayMode(word);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static ArrayMode fromObserved(const ConcurrentJITLocker&, ArrayProfile*, Array::Action, bool makeSafe);
</del><ins>+ static ArrayMode fromObserved(const ConcurrentJSLocker&, ArrayProfile*, Array::Action, bool makeSafe);
</ins><span class="cx">
</span><span class="cx"> ArrayMode withSpeculation(Array::Speculation speculation) const
</span><span class="cx"> {
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx"> return ArrayMode(type(), arrayClass, speculation(), conversion());
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ArrayMode withSpeculationFromProfile(const ConcurrentJITLocker& locker, ArrayProfile* profile, bool makeSafe) const
</del><ins>+ ArrayMode withSpeculationFromProfile(const ConcurrentJSLocker& locker, ArrayProfile* profile, bool makeSafe) const
</ins><span class="cx"> {
</span><span class="cx"> Array::Speculation mySpeculation;
</span><span class="cx">
</span><span class="lines">@@ -194,7 +194,7 @@
</span><span class="cx"> return withSpeculation(mySpeculation);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ArrayMode withProfile(const ConcurrentJITLocker& locker, ArrayProfile* profile, bool makeSafe) const
</del><ins>+ ArrayMode withProfile(const ConcurrentJSLocker& locker, ArrayProfile* profile, bool makeSafe) const
</ins><span class="cx"> {
</span><span class="cx"> Array::Class myArrayClass;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGByteCodeParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -407,7 +407,7 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(node->op() == GetLocal);
</span><span class="cx"> ASSERT(node->origin.semantic.bytecodeIndex == m_currentIndex);
</span><del>- ConcurrentJITLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</ins><span class="cx"> LazyOperandValueProfileKey key(m_currentIndex, node->local());
</span><span class="cx"> SpeculatedType prediction = m_inlineStackTop->m_lazyOperands.prediction(locker, key);
</span><span class="cx"> node->variableAccessData()->predict(prediction);
</span><span class="lines">@@ -852,7 +852,7 @@
</span><span class="cx"> {
</span><span class="cx"> SpeculatedType prediction;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</ins><span class="cx"> prediction = m_inlineStackTop->m_profiledBlock->valueProfilePredictionForBytecodeOffset(locker, bytecodeIndex);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -891,7 +891,7 @@
</span><span class="cx">
</span><span class="cx"> bytecodeIndex = codeOrigin->bytecodeIndex;
</span><span class="cx"> CodeBlock* profiledBlock = stack->m_profiledBlock;
</span><del>- ConcurrentJITLocker locker(profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(profiledBlock->m_lock);
</ins><span class="cx"> return profiledBlock->valueProfilePredictionForBytecodeOffset(locker, bytecodeIndex);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -928,7 +928,7 @@
</span><span class="cx">
</span><span class="cx"> ArrayMode getArrayMode(ArrayProfile* profile, Array::Action action)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</ins><span class="cx"> profile->computeUpdatedPrediction(locker, m_inlineStackTop->m_profiledBlock);
</span><span class="cx"> bool makeSafe = profile->outOfBounds(locker);
</span><span class="cx"> return ArrayMode::fromObserved(locker, profile, action, makeSafe);
</span><span class="lines">@@ -1883,7 +1883,7 @@
</span><span class="cx"> // arguments received inside the callee. But that probably won't matter for most
</span><span class="cx"> // calls.
</span><span class="cx"> if (codeBlock && argument < static_cast<unsigned>(codeBlock->numParameters())) {
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> if (ValueProfile* profile = codeBlock->valueProfileForArgument(argument))
</span><span class="cx"> variable->predict(profile->computeUpdatedPrediction(locker));
</span><span class="cx"> }
</span><span class="lines">@@ -4261,7 +4261,7 @@
</span><span class="cx"> GetByIdStatus getByIdStatus;
</span><span class="cx"> unsigned identifierNumber = 0;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</ins><span class="cx"> ByValInfo* byValInfo = m_inlineStackTop->m_byValInfos.get(CodeOrigin(currentCodeOrigin().bytecodeIndex));
</span><span class="cx"> // FIXME: When the bytecode is not compiled in the baseline JIT, byValInfo becomes null.
</span><span class="cx"> // At that time, there is no information.
</span><span class="lines">@@ -4319,7 +4319,7 @@
</span><span class="cx"> unsigned identifierNumber = std::numeric_limits<unsigned>::max();
</span><span class="cx"> PutByIdStatus putByIdStatus;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</ins><span class="cx"> ByValInfo* byValInfo = m_inlineStackTop->m_byValInfos.get(CodeOrigin(currentCodeOrigin().bytecodeIndex));
</span><span class="cx"> // FIXME: When the bytecode is not compiled in the baseline JIT, byValInfo becomes null.
</span><span class="cx"> // At that time, there is no information.
</span><span class="lines">@@ -4945,7 +4945,7 @@
</span><span class="cx"> WatchpointSet* watchpoints = 0;
</span><span class="cx"> uintptr_t operand;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</ins><span class="cx"> if (resolveType == GlobalVar || resolveType == GlobalVarWithVarInjectionChecks || resolveType == GlobalLexicalVar || resolveType == GlobalLexicalVarWithVarInjectionChecks)
</span><span class="cx"> watchpoints = currentInstruction[5].u.watchpointSet;
</span><span class="cx"> else if (resolveType != UnresolvedProperty && resolveType != UnresolvedPropertyWithVarInjectionChecks)
</span><span class="lines">@@ -4991,7 +4991,7 @@
</span><span class="cx"> ScopeOffset offset;
</span><span class="cx"> JSSegmentedVariableObject* scopeObject = jsCast<JSSegmentedVariableObject*>(JSScope::constantScopeForCodeBlock(resolveType, m_inlineStackTop->m_codeBlock));
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(scopeObject->symbolTable()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(scopeObject->symbolTable()->m_lock);
</ins><span class="cx"> SymbolTableEntry entry = scopeObject->symbolTable()->get(locker, uid);
</span><span class="cx"> watchpointSet = entry.watchpointSet();
</span><span class="cx"> offset = entry.scopeOffset();
</span><span class="lines">@@ -5114,7 +5114,7 @@
</span><span class="cx"> WatchpointSet* watchpoints = nullptr;
</span><span class="cx"> uintptr_t operand;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</ins><span class="cx"> if (resolveType == GlobalVar || resolveType == GlobalVarWithVarInjectionChecks || resolveType == LocalClosureVar || resolveType == GlobalLexicalVar || resolveType == GlobalLexicalVarWithVarInjectionChecks)
</span><span class="cx"> watchpoints = currentInstruction[5].u.watchpointSet;
</span><span class="cx"> else if (resolveType != UnresolvedProperty && resolveType != UnresolvedPropertyWithVarInjectionChecks)
</span><span class="lines">@@ -5552,7 +5552,7 @@
</span><span class="cx"> , m_caller(byteCodeParser->m_inlineStackTop)
</span><span class="cx"> {
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_profiledBlock->m_lock);
</ins><span class="cx"> m_lazyOperands.initialize(locker, m_profiledBlock->lazyOperandValueProfiles());
</span><span class="cx"> m_exitProfile.initialize(locker, profiledBlock->exitProfile());
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGDrivercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGDriver.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGDriver.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/dfg/DFGDriver.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> new Plan(codeBlock, profiledDFGCodeBlock, mode, osrEntryBytecodeIndex, mustHandleValues));
</span><span class="cx">
</span><span class="cx"> plan->callback = callback;
</span><del>- if (Options::useConcurrentJIT()) {
</del><ins>+ if (Options::useConcurrentJS()) {
</ins><span class="cx"> Worklist& worklist = ensureGlobalWorklistFor(mode);
</span><span class="cx"> if (logCompilationChanges(mode))
</span><span class="cx"> dataLog("Deferring DFG compilation of ", *codeBlock, " with queue length ", worklist.queueLength(), ".\n");
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGFixupPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -1577,7 +1577,7 @@
</span><span class="cx"> } else if (typeSet->doesTypeConformTo(TypeObject)) {
</span><span class="cx"> StructureSet set;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(typeSet->m_lock);
</del><ins>+ ConcurrentJSLocker locker(typeSet->m_lock);
</ins><span class="cx"> set = typeSet->structureSet(locker);
</span><span class="cx"> }
</span><span class="cx"> if (!set.isEmpty()) {
</span><span class="lines">@@ -2659,7 +2659,7 @@
</span><span class="cx"> profiledBlock->getArrayProfile(node->origin.semantic.bytecodeIndex);
</span><span class="cx"> ArrayMode arrayMode = ArrayMode(Array::SelectUsingPredictions);
</span><span class="cx"> if (arrayProfile) {
</span><del>- ConcurrentJITLocker locker(profiledBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(profiledBlock->m_lock);
</ins><span class="cx"> arrayProfile->computeUpdatedPrediction(locker, profiledBlock);
</span><span class="cx"> arrayMode = ArrayMode::fromObserved(locker, arrayProfile, Array::Read, false);
</span><span class="cx"> if (arrayMode.type() == Array::Unprofiled) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGGraphcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGGraph.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGGraph.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/dfg/DFGGraph.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -1323,7 +1323,7 @@
</span><span class="cx"> JSValue value;
</span><span class="cx"> WatchpointSet* set;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx">
</span><span class="cx"> SymbolTableEntry* entry = symbolTable->entryFor(locker, offset);
</span><span class="cx"> if (!entry)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGObjectAllocationSinkingPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -865,7 +865,7 @@
</span><span class="cx"> writes.add(ActivationScopePLoc, LazyNode(node->child1().node()));
</span><span class="cx"> {
</span><span class="cx"> SymbolTable* symbolTable = node->castOperand<SymbolTable*>();
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> LazyNode initialValue(m_graph.freeze(node->initializationValueForActivation()));
</span><span class="cx"> for (auto iter = symbolTable->begin(locker), end = symbolTable->end(locker); iter != end; ++iter) {
</span><span class="cx"> writes.add(
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGPredictionInjectionPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">
</span><span class="cx"> ASSERT(codeBlock()->numParameters() >= 1);
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(profiledBlock()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(profiledBlock()->m_lock);
</ins><span class="cx">
</span><span class="cx"> for (size_t arg = 0; arg < static_cast<size_t>(codeBlock()->numParameters()); ++arg) {
</span><span class="cx"> ValueProfile* profile = profiledBlock()->valueProfileForArgument(arg);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreftlFTLLowerDFGToB3cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -8388,7 +8388,7 @@
</span><span class="cx">
</span><span class="cx"> if (validationEnabled()) {
</span><span class="cx"> // Validate to make sure every slot in the scope has one value.
</span><del>- ConcurrentJITLocker locker(table->m_lock);
</del><ins>+ ConcurrentJSLocker locker(table->m_lock);
</ins><span class="cx"> for (auto iter = table->begin(locker), end = table->end(locker); iter != end; ++iter) {
</span><span class="cx"> bool found = false;
</span><span class="cx"> for (unsigned i = 0; i < data.m_properties.size(); ++i) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreftlFTLOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ftl/FTLOperations.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ftl/FTLOperations.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/ftl/FTLOperations.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -214,7 +214,7 @@
</span><span class="cx">
</span><span class="cx"> if (validationEnabled()) {
</span><span class="cx"> // Validate to make sure every slot in the scope has one value.
</span><del>- ConcurrentJITLocker locker(table->m_lock);
</del><ins>+ ConcurrentJSLocker locker(table->m_lock);
</ins><span class="cx"> for (auto iter = table->begin(locker), end = table->end(locker); iter != end; ++iter) {
</span><span class="cx"> bool found = false;
</span><span class="cx"> for (unsigned i = materialization->properties().size(); i--;) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/Heap.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/Heap.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/heap/Heap.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -987,7 +987,7 @@
</span><span class="cx"> void Heap::addToRememberedSet(const JSCell* cell)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(cell);
</span><del>- ASSERT(!Options::useConcurrentJIT() || !isCompilationThread());
</del><ins>+ ASSERT(!Options::useConcurrentJS() || !isCompilationThread());
</ins><span class="cx"> if (!Heap::isMarkedConcurrently(cell)) {
</span><span class="cx"> // During a full collection a store into an unmarked object that had surivived past
</span><span class="cx"> // collections will manifest as a store to an unmarked black object. If the object gets
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JIT.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JIT.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/jit/JIT.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -525,7 +525,7 @@
</span><span class="cx"> before = monotonicallyIncreasingTimeMS();
</span><span class="cx">
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_codeBlock->m_lock);
</ins><span class="cx"> m_instructions = m_codeBlock->instructions().clone();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITInlines.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITInlines.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/jit/JITInlines.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -1021,7 +1021,7 @@
</span><span class="cx">
</span><span class="cx"> inline JITArrayMode JIT::chooseArrayMode(ArrayProfile* profile)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_codeBlock->m_lock);
</ins><span class="cx"> profile->computeUpdatedPrediction(locker, m_codeBlock);
</span><span class="cx"> ArrayModes arrayModes = profile->observedArrayModes(locker);
</span><span class="cx"> if (arrayProfileSaw(arrayModes, DoubleShape))
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITOperations.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITOperations.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/jit/JITOperations.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -610,7 +610,7 @@
</span><span class="cx"> JITArrayMode arrayMode = jitArrayModeForStructure(structure);
</span><span class="cx"> if (jitArrayModePermitsPut(arrayMode) && arrayMode != byValInfo->arrayMode) {
</span><span class="cx"> CodeBlock* codeBlock = exec->codeBlock();
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> byValInfo->arrayProfile->computeUpdatedPrediction(locker, codeBlock, structure);
</span><span class="cx">
</span><span class="cx"> JIT::compilePutByVal(&vm, exec->codeBlock(), byValInfo, returnAddress, arrayMode);
</span><span class="lines">@@ -638,7 +638,7 @@
</span><span class="cx"> }
</span><span class="cx"> } else {
</span><span class="cx"> CodeBlock* codeBlock = exec->codeBlock();
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> byValInfo->seen = true;
</span><span class="cx"> byValInfo->cachedId = propertyName;
</span><span class="cx"> if (subscript.isSymbol())
</span><span class="lines">@@ -694,7 +694,7 @@
</span><span class="cx"> JITArrayMode arrayMode = jitArrayModeForStructure(structure);
</span><span class="cx"> if (jitArrayModePermitsPut(arrayMode) && arrayMode != byValInfo->arrayMode) {
</span><span class="cx"> CodeBlock* codeBlock = exec->codeBlock();
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> byValInfo->arrayProfile->computeUpdatedPrediction(locker, codeBlock, structure);
</span><span class="cx">
</span><span class="cx"> JIT::compileDirectPutByVal(&vm, exec->codeBlock(), byValInfo, returnAddress, arrayMode);
</span><span class="lines">@@ -720,7 +720,7 @@
</span><span class="cx"> }
</span><span class="cx"> } else {
</span><span class="cx"> CodeBlock* codeBlock = exec->codeBlock();
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> byValInfo->seen = true;
</span><span class="cx"> byValInfo->cachedId = propertyName;
</span><span class="cx"> if (subscript.isSymbol())
</span><span class="lines">@@ -1743,7 +1743,7 @@
</span><span class="cx"> // If we reached this case, we got an interesting array mode we did not expect when we compiled.
</span><span class="cx"> // Let's update the profile to do better next time.
</span><span class="cx"> CodeBlock* codeBlock = exec->codeBlock();
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> byValInfo->arrayProfile->computeUpdatedPrediction(locker, codeBlock, structure);
</span><span class="cx">
</span><span class="cx"> JIT::compileGetByVal(&vm, exec->codeBlock(), byValInfo, returnAddress, arrayMode);
</span><span class="lines">@@ -1771,7 +1771,7 @@
</span><span class="cx"> }
</span><span class="cx"> } else {
</span><span class="cx"> CodeBlock* codeBlock = exec->codeBlock();
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> byValInfo->seen = true;
</span><span class="cx"> byValInfo->cachedId = propertyName;
</span><span class="cx"> if (subscript.isSymbol())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITPropertyAccesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -1324,7 +1324,7 @@
</span><span class="cx">
</span><span class="cx"> JITGetByIdGenerator gen = emitGetByValWithCachedId(byValInfo, currentInstruction, propertyName, fastDoneCase, slowDoneCase, slowCases);
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(m_codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_codeBlock->m_lock);
</ins><span class="cx"> LinkBuffer patchBuffer(*m_vm, *this, m_codeBlock);
</span><span class="cx"> patchBuffer.link(slowCases, CodeLocationLabel(MacroAssemblerCodePtr::createFromExecutableAddress(returnAddress.value())).labelAtOffset(byValInfo->returnAddressToSlowPath));
</span><span class="cx"> patchBuffer.link(fastDoneCase, byValInfo->badTypeJump.labelAtOffset(byValInfo->badTypeJumpToDone));
</span><span class="lines">@@ -1415,7 +1415,7 @@
</span><span class="cx">
</span><span class="cx"> JITPutByIdGenerator gen = emitPutByValWithCachedId(byValInfo, currentInstruction, putKind, propertyName, doneCases, slowCases);
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(m_codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_codeBlock->m_lock);
</ins><span class="cx"> LinkBuffer patchBuffer(*m_vm, *this, m_codeBlock);
</span><span class="cx"> patchBuffer.link(slowCases, CodeLocationLabel(MacroAssemblerCodePtr::createFromExecutableAddress(returnAddress.value())).labelAtOffset(byValInfo->returnAddressToSlowPath));
</span><span class="cx"> patchBuffer.link(doneCases, byValInfo->badTypeJump.labelAtOffset(byValInfo->badTypeJumpToDone));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITWorklistcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITWorklist.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITWorklist.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/jit/JITWorklist.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -229,7 +229,7 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (!Options::useConcurrentJIT()) {
</del><ins>+ if (!Options::useConcurrentJS()) {
</ins><span class="cx"> Plan::compileNow(codeBlock);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -284,7 +284,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (isPlanned) {
</span><del>- RELEASE_ASSERT(Options::useConcurrentJIT());
</del><ins>+ RELEASE_ASSERT(Options::useConcurrentJS());
</ins><span class="cx"> // This is expensive, but probably good enough.
</span><span class="cx"> completeAllForVM(*codeBlock->vm());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitRepatchcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/Repatch.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/Repatch.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/jit/Repatch.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -319,7 +319,7 @@
</span><span class="cx"> void repatchGetByID(ExecState* exec, JSValue baseValue, const Identifier& propertyName, const PropertySlot& slot, StructureStubInfo& stubInfo, GetByIDKind kind)
</span><span class="cx"> {
</span><span class="cx"> SuperSamplerScope superSamplerScope(false);
</span><del>- GCSafeConcurrentJITLocker locker(exec->codeBlock()->m_lock, exec->vm().heap);
</del><ins>+ GCSafeConcurrentJSLocker locker(exec->codeBlock()->m_lock, exec->vm().heap);
</ins><span class="cx">
</span><span class="cx"> if (tryCacheGetByID(exec, baseValue, propertyName, slot, stubInfo, kind) == GiveUpOnCache)
</span><span class="cx"> ftlThunkAwareRepatchCall(exec->codeBlock(), stubInfo.slowPathCallLocation(), appropriateGenericGetByIdFunction(kind));
</span><span class="lines">@@ -473,7 +473,7 @@
</span><span class="cx"> void repatchPutByID(ExecState* exec, JSValue baseValue, Structure* structure, const Identifier& propertyName, const PutPropertySlot& slot, StructureStubInfo& stubInfo, PutKind putKind)
</span><span class="cx"> {
</span><span class="cx"> SuperSamplerScope superSamplerScope(false);
</span><del>- GCSafeConcurrentJITLocker locker(exec->codeBlock()->m_lock, exec->vm().heap);
</del><ins>+ GCSafeConcurrentJSLocker locker(exec->codeBlock()->m_lock, exec->vm().heap);
</ins><span class="cx">
</span><span class="cx"> if (tryCachePutByID(exec, baseValue, structure, propertyName, slot, stubInfo, putKind) == GiveUpOnCache)
</span><span class="cx"> ftlThunkAwareRepatchCall(exec->codeBlock(), stubInfo.slowPathCallLocation(), appropriateGenericPutByIdFunction(slot, putKind));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntSlowPathscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -627,7 +627,7 @@
</span><span class="cx"> }
</span><span class="cx"> ASSERT((offset == invalidOffset) == slot.isUnset());
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx">
</span><span class="cx"> if (slot.isUnset()) {
</span><span class="cx"> pc[0].u.opcode = LLInt::getOpcode(op_get_by_id_unset);
</span><span class="lines">@@ -675,7 +675,7 @@
</span><span class="cx"> if (structure->propertyAccessesAreCacheable()) {
</span><span class="cx"> vm.heap.writeBarrier(codeBlock);
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx">
</span><span class="cx"> pc[4].u.structureID = structure->id();
</span><span class="cx"> pc[5].u.operand = slot.cachedOffset();
</span><span class="lines">@@ -748,7 +748,7 @@
</span><span class="cx"> vm.heap.writeBarrier(codeBlock);
</span><span class="cx">
</span><span class="cx"> if (slot.type() == PutPropertySlot::NewProperty) {
</span><del>- GCSafeConcurrentJITLocker locker(codeBlock->m_lock, vm.heap);
</del><ins>+ GCSafeConcurrentJSLocker locker(codeBlock->m_lock, vm.heap);
</ins><span class="cx">
</span><span class="cx"> if (!structure->isDictionary() && structure->previousID()->outOfLineCapacity() == structure->outOfLineCapacity()) {
</span><span class="cx"> ASSERT(structure->previousID()->transitionWatchpointSetHasBeenInvalidated());
</span><span class="lines">@@ -1335,7 +1335,7 @@
</span><span class="cx"> if (!LLINT_ALWAYS_ACCESS_SLOW && callLinkInfo) {
</span><span class="cx"> CodeBlock* callerCodeBlock = exec->codeBlock();
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(callerCodeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(callerCodeBlock->m_lock);
</ins><span class="cx">
</span><span class="cx"> if (callLinkInfo->isOnList())
</span><span class="cx"> callLinkInfo->remove();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreprofilerProfilerBytecodeSequencecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/profiler/ProfilerBytecodeSequence.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/profiler/ProfilerBytecodeSequence.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/profiler/ProfilerBytecodeSequence.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> StringPrintStream out;
</span><span class="cx">
</span><span class="cx"> for (unsigned i = 0; i < codeBlock->numberOfArgumentValueProfiles(); ++i) {
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> CString description = codeBlock->valueProfileForArgument(i)->briefDescription(locker);
</span><span class="cx"> if (!description.length())
</span><span class="cx"> continue;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonSlowPathscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -826,7 +826,7 @@
</span><span class="cx"> if (resolvedScope->isGlobalObject()) {
</span><span class="cx"> JSGlobalObject* globalObject = jsCast<JSGlobalObject*>(resolvedScope);
</span><span class="cx"> if (globalObject->hasProperty(exec, ident)) {
</span><del>- ConcurrentJITLocker locker(exec->codeBlock()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(exec->codeBlock()->m_lock);
</ins><span class="cx"> if (resolveType == UnresolvedProperty)
</span><span class="cx"> pc[4].u.operand = GlobalProperty;
</span><span class="cx"> else
</span><span class="lines">@@ -836,7 +836,7 @@
</span><span class="cx"> }
</span><span class="cx"> } else if (resolvedScope->isGlobalLexicalEnvironment()) {
</span><span class="cx"> JSGlobalLexicalEnvironment* globalLexicalEnvironment = jsCast<JSGlobalLexicalEnvironment*>(resolvedScope);
</span><del>- ConcurrentJITLocker locker(exec->codeBlock()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(exec->codeBlock()->m_lock);
</ins><span class="cx"> if (resolveType == UnresolvedProperty)
</span><span class="cx"> pc[4].u.operand = GlobalLexicalVar;
</span><span class="cx"> else
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonSlowPathsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> ResolveType newResolveType = resolveType == UnresolvedProperty ? GlobalProperty : GlobalPropertyWithVarInjectionChecks;
</span><span class="cx"> resolveType = newResolveType;
</span><span class="cx"> getPutInfo = GetPutInfo(getPutInfo.resolveMode(), newResolveType, getPutInfo.initializationMode());
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> pc[4].u.operand = getPutInfo.operand();
</span><span class="cx"> } else if (scope->isGlobalLexicalEnvironment()) {
</span><span class="cx"> JSGlobalLexicalEnvironment* globalLexicalEnvironment = jsCast<JSGlobalLexicalEnvironment*>(scope);
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx"> pc[4].u.operand = GetPutInfo(getPutInfo.resolveMode(), newResolveType, getPutInfo.initializationMode()).operand();
</span><span class="cx"> SymbolTableEntry entry = globalLexicalEnvironment->symbolTable()->get(ident.impl());
</span><span class="cx"> ASSERT(!entry.isNull());
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> pc[5].u.watchpointSet = entry.watchpointSet();
</span><span class="cx"> pc[6].u.pointer = static_cast<void*>(globalLexicalEnvironment->variableAt(entry.scopeOffset()).slot());
</span><span class="cx"> }
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">
</span><span class="cx"> scope->structure()->didCachePropertyReplacement(exec->vm(), slot.cachedOffset());
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> pc[5].u.structure.set(exec->vm(), codeBlock, scope->structure());
</span><span class="cx"> pc[6].u.operand = slot.cachedOffset();
</span><span class="cx"> }
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx"> if (scope->isGlobalObject()) {
</span><span class="cx"> ResolveType newResolveType = resolveType == UnresolvedProperty ? GlobalProperty : GlobalPropertyWithVarInjectionChecks;
</span><span class="cx"> resolveType = newResolveType; // Allow below caching mechanism to kick in.
</span><del>- ConcurrentJITLocker locker(exec->codeBlock()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(exec->codeBlock()->m_lock);
</ins><span class="cx"> pc[4].u.operand = GetPutInfo(getPutInfo.resolveMode(), newResolveType, getPutInfo.initializationMode()).operand();
</span><span class="cx"> } else if (scope->isGlobalLexicalEnvironment()) {
</span><span class="cx"> JSGlobalLexicalEnvironment* globalLexicalEnvironment = jsCast<JSGlobalLexicalEnvironment*>(scope);
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx"> ResolveType newResolveType = resolveType == UnresolvedProperty ? GlobalLexicalVar : GlobalLexicalVarWithVarInjectionChecks;
</span><span class="cx"> SymbolTableEntry entry = globalLexicalEnvironment->symbolTable()->get(ident.impl());
</span><span class="cx"> ASSERT(!entry.isNull());
</span><del>- ConcurrentJITLocker locker(exec->codeBlock()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(exec->codeBlock()->m_lock);
</ins><span class="cx"> pc[4].u.operand = GetPutInfo(getPutInfo.resolveMode(), newResolveType, getPutInfo.initializationMode()).operand();
</span><span class="cx"> pc[5].u.watchpointSet = entry.watchpointSet();
</span><span class="cx"> pc[6].u.pointer = static_cast<void*>(globalLexicalEnvironment->variableAt(entry.scopeOffset()).slot());
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx"> CodeBlock* codeBlock = exec->codeBlock();
</span><span class="cx"> Structure* structure = scope->structure(vm);
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(codeBlock->m_lock);
</del><ins>+ ConcurrentJSLocker locker(codeBlock->m_lock);
</ins><span class="cx"> pc[5].u.structure.set(exec->vm(), codeBlock, structure);
</span><span class="cx"> pc[6].u.operand = slot.cachedOffset();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeConcurrentJITLockh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/runtime/ConcurrentJITLock.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ConcurrentJITLock.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/ConcurrentJITLock.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -1,134 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013, 2016 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.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 INC. OR
- * 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.
- */
-
-#pragma once
-
-#include "DeferGC.h"
-#include <wtf/Lock.h>
-#include <wtf/NoLock.h>
-#include <wtf/Optional.h>
-
-namespace JSC {
-
-#if ENABLE(CONCURRENT_JIT)
-typedef Lock ConcurrentJITLock;
-typedef LockHolder ConcurrentJITLockerImpl;
-#else
-typedef NoLock ConcurrentJITLock;
-typedef NoLockLocker ConcurrentJITLockerImpl;
-#endif
-
-class ConcurrentJITLockerBase {
- WTF_MAKE_NONCOPYABLE(ConcurrentJITLockerBase);
-public:
- explicit ConcurrentJITLockerBase(ConcurrentJITLock& lockable)
- : m_locker(&lockable)
- {
- }
- explicit ConcurrentJITLockerBase(ConcurrentJITLock* lockable)
- : m_locker(lockable)
- {
- }
-
- explicit ConcurrentJITLockerBase(NoLockingNecessaryTag)
- : m_locker(NoLockingNecessary)
- {
- }
-
- ~ConcurrentJITLockerBase()
- {
- }
-
- void unlockEarly()
- {
- m_locker.unlockEarly();
- }
-
-private:
- ConcurrentJITLockerImpl m_locker;
-};
-
-class GCSafeConcurrentJITLocker : public ConcurrentJITLockerBase {
-public:
- GCSafeConcurrentJITLocker(ConcurrentJITLock& lockable, Heap& heap)
- : ConcurrentJITLockerBase(lockable)
- , m_deferGC(heap)
- {
- }
-
- GCSafeConcurrentJITLocker(ConcurrentJITLock* lockable, Heap& heap)
- : ConcurrentJITLockerBase(lockable)
- , m_deferGC(heap)
- {
- }
-
- ~GCSafeConcurrentJITLocker()
- {
- // We have to unlock early due to the destruction order of base
- // vs. derived classes. If we didn't, then we would destroy the
- // DeferGC object before unlocking the lock which could cause a GC
- // and resulting deadlock.
- unlockEarly();
- }
-
-private:
- DeferGC m_deferGC;
-};
-
-class ConcurrentJITLocker : public ConcurrentJITLockerBase {
-public:
- ConcurrentJITLocker(ConcurrentJITLock& lockable)
- : ConcurrentJITLockerBase(lockable)
-#if ENABLE(CONCURRENT_JIT) && !defined(NDEBUG)
- , m_disallowGC(InPlace)
-#endif
- {
- }
-
- ConcurrentJITLocker(ConcurrentJITLock* lockable)
- : ConcurrentJITLockerBase(lockable)
-#if ENABLE(CONCURRENT_JIT) && !defined(NDEBUG)
- , m_disallowGC(InPlace)
-#endif
- {
- }
-
- ConcurrentJITLocker(NoLockingNecessaryTag)
- : ConcurrentJITLockerBase(NoLockingNecessary)
-#if ENABLE(CONCURRENT_JIT) && !defined(NDEBUG)
- , m_disallowGC(Nullopt)
-#endif
- {
- }
-
- ConcurrentJITLocker(int) = delete;
-
-#if ENABLE(CONCURRENT_JIT) && !defined(NDEBUG)
-private:
- Optional<DisallowGC> m_disallowGC;
-#endif
-};
-
-} // namespace JSC
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeConcurrentJSLockhfromrev208760trunkSourceJavaScriptCoreruntimeConcurrentJITLockh"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/runtime/ConcurrentJSLock.h (from rev 208760, trunk/Source/JavaScriptCore/runtime/ConcurrentJITLock.h) (0 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ConcurrentJSLock.h         (rev 0)
+++ trunk/Source/JavaScriptCore/runtime/ConcurrentJSLock.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -0,0 +1,134 @@
</span><ins>+/*
+ * Copyright (C) 2013, 2016 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 INC. OR
+ * 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.
+ */
+
+#pragma once
+
+#include "DeferGC.h"
+#include <wtf/Lock.h>
+#include <wtf/NoLock.h>
+#include <wtf/Optional.h>
+
+namespace JSC {
+
+#if ENABLE(CONCURRENT_JS)
+typedef Lock ConcurrentJSLock;
+typedef LockHolder ConcurrentJSLockerImpl;
+#else
+typedef NoLock ConcurrentJSLock;
+typedef NoLockLocker ConcurrentJSLockerImpl;
+#endif
+
+class ConcurrentJSLockerBase {
+ WTF_MAKE_NONCOPYABLE(ConcurrentJSLockerBase);
+public:
+ explicit ConcurrentJSLockerBase(ConcurrentJSLock& lockable)
+ : m_locker(&lockable)
+ {
+ }
+ explicit ConcurrentJSLockerBase(ConcurrentJSLock* lockable)
+ : m_locker(lockable)
+ {
+ }
+
+ explicit ConcurrentJSLockerBase(NoLockingNecessaryTag)
+ : m_locker(NoLockingNecessary)
+ {
+ }
+
+ ~ConcurrentJSLockerBase()
+ {
+ }
+
+ void unlockEarly()
+ {
+ m_locker.unlockEarly();
+ }
+
+private:
+ ConcurrentJSLockerImpl m_locker;
+};
+
+class GCSafeConcurrentJSLocker : public ConcurrentJSLockerBase {
+public:
+ GCSafeConcurrentJSLocker(ConcurrentJSLock& lockable, Heap& heap)
+ : ConcurrentJSLockerBase(lockable)
+ , m_deferGC(heap)
+ {
+ }
+
+ GCSafeConcurrentJSLocker(ConcurrentJSLock* lockable, Heap& heap)
+ : ConcurrentJSLockerBase(lockable)
+ , m_deferGC(heap)
+ {
+ }
+
+ ~GCSafeConcurrentJSLocker()
+ {
+ // We have to unlock early due to the destruction order of base
+ // vs. derived classes. If we didn't, then we would destroy the
+ // DeferGC object before unlocking the lock which could cause a GC
+ // and resulting deadlock.
+ unlockEarly();
+ }
+
+private:
+ DeferGC m_deferGC;
+};
+
+class ConcurrentJSLocker : public ConcurrentJSLockerBase {
+public:
+ ConcurrentJSLocker(ConcurrentJSLock& lockable)
+ : ConcurrentJSLockerBase(lockable)
+#if ENABLE(CONCURRENT_JS) && !defined(NDEBUG)
+ , m_disallowGC(InPlace)
+#endif
+ {
+ }
+
+ ConcurrentJSLocker(ConcurrentJSLock* lockable)
+ : ConcurrentJSLockerBase(lockable)
+#if ENABLE(CONCURRENT_JS) && !defined(NDEBUG)
+ , m_disallowGC(InPlace)
+#endif
+ {
+ }
+
+ ConcurrentJSLocker(NoLockingNecessaryTag)
+ : ConcurrentJSLockerBase(NoLockingNecessary)
+#if ENABLE(CONCURRENT_JS) && !defined(NDEBUG)
+ , m_disallowGC(Nullopt)
+#endif
+ {
+ }
+
+ ConcurrentJSLocker(int) = delete;
+
+#if ENABLE(CONCURRENT_JS) && !defined(NDEBUG)
+private:
+ Optional<DisallowGC> m_disallowGC;
+#endif
+};
+
+} // namespace JSC
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeInferredTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/InferredType.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/InferredType.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/InferredType.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -366,7 +366,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InferredType::canWatch(const ConcurrentJITLocker& locker, const Descriptor& expected)
</del><ins>+bool InferredType::canWatch(const ConcurrentJSLocker& locker, const Descriptor& expected)
</ins><span class="cx"> {
</span><span class="cx"> if (expected.kind() == Top)
</span><span class="cx"> return false;
</span><span class="lines">@@ -376,11 +376,11 @@
</span><span class="cx">
</span><span class="cx"> bool InferredType::canWatch(const Descriptor& expected)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return canWatch(locker, expected);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void InferredType::addWatchpoint(const ConcurrentJITLocker& locker, Watchpoint* watchpoint)
</del><ins>+void InferredType::addWatchpoint(const ConcurrentJSLocker& locker, Watchpoint* watchpoint)
</ins><span class="cx"> {
</span><span class="cx"> RELEASE_ASSERT(descriptor(locker).kind() != Top);
</span><span class="cx">
</span><span class="lines">@@ -389,7 +389,7 @@
</span><span class="cx">
</span><span class="cx"> void InferredType::addWatchpoint(Watchpoint* watchpoint)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> addWatchpoint(locker, watchpoint);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -404,7 +404,7 @@
</span><span class="cx"> Descriptor myType;
</span><span class="cx"> bool result;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> oldType = descriptor(locker);
</span><span class="cx"> myType = Descriptor::forValue(value);
</span><span class="cx">
</span><span class="lines">@@ -427,7 +427,7 @@
</span><span class="cx"> {
</span><span class="cx"> Descriptor oldType;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> oldType = descriptor(locker);
</span><span class="cx"> if (!set(locker, vm, Top))
</span><span class="cx"> return;
</span><span class="lines">@@ -437,11 +437,11 @@
</span><span class="cx"> m_watchpointSet.fireAll(vm, detail);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InferredType::set(const ConcurrentJITLocker& locker, VM& vm, Descriptor newDescriptor)
</del><ins>+bool InferredType::set(const ConcurrentJSLocker& locker, VM& vm, Descriptor newDescriptor)
</ins><span class="cx"> {
</span><span class="cx"> // We will trigger write barriers while holding our lock. Currently, write barriers don't GC, but that
</span><span class="cx"> // could change. If it does, we don't want to deadlock. Note that we could have used
</span><del>- // GCSafeConcurrentJITLocker in the caller, but the caller is on a fast path so maybe that wouldn't be
</del><ins>+ // GCSafeConcurrentJSLocker in the caller, but the caller is on a fast path so maybe that wouldn't be
</ins><span class="cx"> // a good idea.
</span><span class="cx"> DeferGCForAWhile deferGC(vm.heap);
</span><span class="cx">
</span><span class="lines">@@ -506,7 +506,7 @@
</span><span class="cx"> Descriptor oldDescriptor;
</span><span class="cx"> Descriptor newDescriptor;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> oldDescriptor = descriptor(locker);
</span><span class="cx"> newDescriptor = oldDescriptor;
</span><span class="cx"> newDescriptor.removeStructure();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeInferredTypeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/InferredType.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/InferredType.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/InferredType.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "JSCell.h"
</span><span class="cx"> #include "PropertyName.h"
</span><span class="cx"> #include "PutByIdFlags.h"
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx"> Structure* m_structure;
</span><span class="cx"> };
</span><span class="cx">
</span><del>- ConcurrentJITLock& lock() const { return m_lock; }
</del><ins>+ ConcurrentJSLock& lock() const { return m_lock; }
</ins><span class="cx">
</span><span class="cx"> Descriptor descriptorMainThread() const
</span><span class="cx"> {
</span><span class="lines">@@ -180,17 +180,17 @@
</span><span class="cx"> return Descriptor(m_kind, m_structure ? m_structure->structure() : nullptr);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- Descriptor descriptor(const ConcurrentJITLocker&) const
</del><ins>+ Descriptor descriptor(const ConcurrentJSLocker&) const
</ins><span class="cx"> {
</span><span class="cx"> return descriptorMainThread();
</span><span class="cx"> }
</span><span class="cx"> Descriptor descriptor() const
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return descriptor(locker);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- Kind kind(const ConcurrentJITLocker& locker) const { return descriptor(locker).kind(); }
</del><ins>+ Kind kind(const ConcurrentJSLocker& locker) const { return descriptor(locker).kind(); }
</ins><span class="cx">
</span><span class="cx"> bool isTop() const { return m_kind == Top; }
</span><span class="cx"> bool isRelevant() const { return m_kind != Top; }
</span><span class="lines">@@ -214,10 +214,10 @@
</span><span class="cx">
</span><span class="cx"> // Returns true if it currently makes sense to watch this InferredType for this descriptor. Note that
</span><span class="cx"> // this will always return false for Top.
</span><del>- bool canWatch(const ConcurrentJITLocker&, const Descriptor&);
</del><ins>+ bool canWatch(const ConcurrentJSLocker&, const Descriptor&);
</ins><span class="cx"> bool canWatch(const Descriptor&);
</span><span class="cx">
</span><del>- void addWatchpoint(const ConcurrentJITLocker&, Watchpoint*);
</del><ins>+ void addWatchpoint(const ConcurrentJSLocker&, Watchpoint*);
</ins><span class="cx"> void addWatchpoint(Watchpoint*);
</span><span class="cx">
</span><span class="cx"> void dump(PrintStream&) const;
</span><span class="lines">@@ -231,11 +231,11 @@
</span><span class="cx">
</span><span class="cx"> // Helper for willStoreValueSlow() and makeTopSlow(). This returns true if we should fire the
</span><span class="cx"> // watchpoint set.
</span><del>- bool set(const ConcurrentJITLocker&, VM&, Descriptor);
</del><ins>+ bool set(const ConcurrentJSLocker&, VM&, Descriptor);
</ins><span class="cx">
</span><span class="cx"> void removeStructure();
</span><span class="cx">
</span><del>- mutable ConcurrentJITLock m_lock;
</del><ins>+ mutable ConcurrentJSLock m_lock;
</ins><span class="cx">
</span><span class="cx"> Kind m_kind { Bottom };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeInferredTypeTablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/InferredTypeTable.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/InferredTypeTable.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/InferredTypeTable.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> {
</span><span class="cx"> InferredTypeTable* inferredTypeTable = jsCast<InferredTypeTable*>(cell);
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(inferredTypeTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(inferredTypeTable->m_lock);
</ins><span class="cx">
</span><span class="cx"> for (auto& entry : inferredTypeTable->m_table) {
</span><span class="cx"> if (!entry.value)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-InferredType* InferredTypeTable::get(const ConcurrentJITLocker&, UniquedStringImpl* uid)
</del><ins>+InferredType* InferredTypeTable::get(const ConcurrentJSLocker&, UniquedStringImpl* uid)
</ins><span class="cx"> {
</span><span class="cx"> auto iter = m_table.find(uid);
</span><span class="cx"> if (iter == m_table.end() || !iter->value)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">
</span><span class="cx"> InferredType* InferredTypeTable::get(UniquedStringImpl* uid)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return get(locker, uid);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx">
</span><span class="cx"> TableType::AddResult result;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> result = m_table.add(propertyName.uid(), WriteBarrier<InferredType>());
</span><span class="cx"> }
</span><span class="cx"> if (result.isNewEntry) {
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">
</span><span class="cx"> TableType::AddResult result;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> result = m_table.add(propertyName.uid(), WriteBarrier<InferredType>());
</span><span class="cx"> }
</span><span class="cx"> if (!result.iterator->value)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeInferredTypeTableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/InferredTypeTable.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/InferredTypeTable.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/InferredTypeTable.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -55,13 +55,13 @@
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><span class="cx">
</span><del>- ConcurrentJITLock& lock() { return m_lock; }
</del><ins>+ ConcurrentJSLock& lock() { return m_lock; }
</ins><span class="cx">
</span><span class="cx"> bool isEmpty() const { return m_table.isEmpty(); }
</span><span class="cx">
</span><span class="cx"> // Get the current inferred type. Returns nullptr for both Top and Bottom. Null means Bottom if the
</span><span class="cx"> // owning Structure doesn't know about the property.
</span><del>- InferredType* get(const ConcurrentJITLocker&, UniquedStringImpl*);
</del><ins>+ InferredType* get(const ConcurrentJSLocker&, UniquedStringImpl*);
</ins><span class="cx"> InferredType* get(UniquedStringImpl*);
</span><span class="cx"> InferredType* get(PropertyName);
</span><span class="cx">
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx">
</span><span class="cx"> // We only grab this lock when we're doing modifications on the main thread, or reads on the compiler
</span><span class="cx"> // thread. The compiler thread is not allowed to do modifications.
</span><del>- ConcurrentJITLock m_lock;
</del><ins>+ ConcurrentJSLock m_lock;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSEnvironmentRecordcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSEnvironmentRecord.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSEnvironmentRecord.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSEnvironmentRecord.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> JSEnvironmentRecord* thisObject = jsCast<JSEnvironmentRecord*>(cell);
</span><span class="cx"> Base::heapSnapshot(cell, builder);
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(thisObject->symbolTable()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(thisObject->symbolTable()->m_lock);
</ins><span class="cx"> SymbolTable::Map::iterator end = thisObject->symbolTable()->end(locker);
</span><span class="cx"> for (SymbolTable::Map::iterator it = thisObject->symbolTable()->begin(locker); it != end; ++it) {
</span><span class="cx"> SymbolTableEntry::Fast entry = it->value;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -960,7 +960,7 @@
</span><span class="cx">
</span><span class="cx"> void JSGlobalObject::addGlobalVar(const Identifier& ident)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(symbolTable()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable()->m_lock);
</ins><span class="cx"> SymbolTableEntry entry = symbolTable()->get(locker, ident.impl());
</span><span class="cx"> if (!entry.isNull())
</span><span class="cx"> return;
</span><span class="lines">@@ -1283,7 +1283,7 @@
</span><span class="cx"> WatchpointSet* watchpointSet = nullptr;
</span><span class="cx"> WriteBarrierBase<Unknown>* variable = nullptr;
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(symbolTable()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable()->m_lock);
</ins><span class="cx"> ScopeOffset offset = symbolTable()->takeNextScopeOffset(locker);
</span><span class="cx"> RELEASE_ASSERT(offset = startOffset + i);
</span><span class="cx"> SymbolTableEntry newEntry(VarOffset(offset), global.attributes);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSLexicalEnvironmentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> JSLexicalEnvironment* thisObject = jsCast<JSLexicalEnvironment*>(object);
</span><span class="cx">
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(thisObject->symbolTable()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(thisObject->symbolTable()->m_lock);
</ins><span class="cx"> SymbolTable::Map::iterator end = thisObject->symbolTable()->end(locker);
</span><span class="cx"> for (SymbolTable::Map::iterator it = thisObject->symbolTable()->begin(locker); it != end; ++it) {
</span><span class="cx"> if (it->value.getAttributes() & DontEnum && !mode.includeDontEnumProperties())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObject.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -1554,7 +1554,7 @@
</span><span class="cx">
</span><span class="cx"> PropertyOffset offset;
</span><span class="cx"> if (structure->isUncacheableDictionary())
</span><del>- offset = structure->removePropertyWithoutTransition(vm, propertyName, [] (const ConcurrentJITLocker&, PropertyOffset) { });
</del><ins>+ offset = structure->removePropertyWithoutTransition(vm, propertyName, [] (const ConcurrentJSLocker&, PropertyOffset) { });
</ins><span class="cx"> else
</span><span class="cx"> thisObject->setStructure(vm, Structure::removePropertyTransition(vm, structure, propertyName, offset));
</span><span class="cx">
</span><span class="lines">@@ -3189,7 +3189,7 @@
</span><span class="cx"> vm, Structure::toCacheableDictionaryTransition(vm, structure(vm), &deferredWatchpointFire));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void JSObject::shiftButterflyAfterFlattening(const GCSafeConcurrentJITLocker&, VM& vm, Structure* structure, size_t outOfLineCapacityAfter)
</del><ins>+void JSObject::shiftButterflyAfterFlattening(const GCSafeConcurrentJSLocker&, VM& vm, Structure* structure, size_t outOfLineCapacityAfter)
</ins><span class="cx"> {
</span><span class="cx"> // This could interleave visitChildren because some old structure could have been a non
</span><span class="cx"> // dictionary structure. We have to be crazy careful. But, we are guaranteed to be holding
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObject.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObject.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSObject.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -758,7 +758,7 @@
</span><span class="cx"> {
</span><span class="cx"> structure(vm)->flattenDictionaryStructure(vm, this);
</span><span class="cx"> }
</span><del>- void shiftButterflyAfterFlattening(const GCSafeConcurrentJITLocker&, VM&, Structure* structure, size_t outOfLineCapacityAfter);
</del><ins>+ void shiftButterflyAfterFlattening(const GCSafeConcurrentJSLocker&, VM&, Structure* structure, size_t outOfLineCapacityAfter);
</ins><span class="cx">
</span><span class="cx"> JSGlobalObject* globalObject() const
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjectInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObjectInlines.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObjectInlines.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSObjectInlines.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx"> unsigned oldOutOfLineCapacity = structure->outOfLineCapacity();
</span><span class="cx"> structure->addPropertyWithoutTransition(
</span><span class="cx"> vm, propertyName, attributes,
</span><del>- [&] (const GCSafeConcurrentJITLocker&, PropertyOffset offset) {
</del><ins>+ [&] (const GCSafeConcurrentJSLocker&, PropertyOffset offset) {
</ins><span class="cx"> if (structure->outOfLineCapacity() != oldOutOfLineCapacity) {
</span><span class="cx"> butterfly = allocateMoreOutOfLineStorage(vm, oldOutOfLineCapacity, structure->outOfLineCapacity());
</span><span class="cx"> WTF::storeStoreFence();
</span><span class="lines">@@ -266,7 +266,7 @@
</span><span class="cx"> unsigned oldOutOfLineCapacity = structure->outOfLineCapacity();
</span><span class="cx"> offset = structure->addPropertyWithoutTransition(
</span><span class="cx"> vm, propertyName, attributes,
</span><del>- [&] (const GCSafeConcurrentJITLocker&, PropertyOffset offset) {
</del><ins>+ [&] (const GCSafeConcurrentJSLocker&, PropertyOffset offset) {
</ins><span class="cx"> Butterfly* butterfly = this->butterfly();
</span><span class="cx"> if (structure->outOfLineCapacity() != oldOutOfLineCapacity) {
</span><span class="cx"> butterfly = allocateMoreOutOfLineStorage(vm, oldOutOfLineCapacity, structure->outOfLineCapacity());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSScope.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSScope.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSScope.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">
</span><span class="cx"> SymbolTable* symbolTable = lexicalEnvironment->symbolTable();
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> auto iter = symbolTable->find(locker, ident.impl());
</span><span class="cx"> if (iter != symbolTable->end(locker)) {
</span><span class="cx"> SymbolTableEntry& entry = iter->value;
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx"> JSModuleRecord* importedRecord = resolution.moduleRecord;
</span><span class="cx"> JSModuleEnvironment* importedEnvironment = importedRecord->moduleEnvironment();
</span><span class="cx"> SymbolTable* symbolTable = importedEnvironment->symbolTable();
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> auto iter = symbolTable->find(locker, resolution.localName.impl());
</span><span class="cx"> ASSERT(iter != symbolTable->end(locker));
</span><span class="cx"> SymbolTableEntry& entry = iter->value;
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> if (scope->isGlobalLexicalEnvironment()) {
</span><span class="cx"> JSGlobalLexicalEnvironment* globalLexicalEnvironment = jsCast<JSGlobalLexicalEnvironment*>(scope);
</span><span class="cx"> SymbolTable* symbolTable = globalLexicalEnvironment->symbolTable();
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> auto iter = symbolTable->find(locker, ident.impl());
</span><span class="cx"> if (iter != symbolTable->end(locker)) {
</span><span class="cx"> SymbolTableEntry& entry = iter->value;
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx"> JSGlobalObject* globalObject = jsCast<JSGlobalObject*>(scope);
</span><span class="cx"> {
</span><span class="cx"> SymbolTable* symbolTable = globalObject->symbolTable();
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> auto iter = symbolTable->find(locker, ident.impl());
</span><span class="cx"> if (iter != symbolTable->end(locker)) {
</span><span class="cx"> SymbolTableEntry& entry = iter->value;
</span><span class="lines">@@ -277,7 +277,7 @@
</span><span class="cx">
</span><span class="cx"> SymbolTable* symbolTable = jsCast<JSSymbolTableObject*>(scope)->symbolTable();
</span><span class="cx"> ASSERT(symbolTable->scopeType() == SymbolTable::ScopeType::LexicalScope || symbolTable->scopeType() == SymbolTable::ScopeType::CatchScope);
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> for (auto end = symbolTable->end(locker), iter = symbolTable->begin(locker); iter != end; ++iter)
</span><span class="cx"> result.add(iter->key);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSegmentedVariableObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx">
</span><span class="cx"> ScopeOffset JSSegmentedVariableObject::findVariableIndex(void* variableAddress)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> for (unsigned i = m_variables.size(); i--;) {
</span><span class="cx"> if (&m_variables[i] != variableAddress)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">
</span><span class="cx"> ScopeOffset JSSegmentedVariableObject::addVariables(unsigned numberOfVariablesToAdd, JSValue initialValue)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> size_t oldSize = m_variables.size();
</span><span class="cx"> m_variables.grow(oldSize + numberOfVariablesToAdd);
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> JSSegmentedVariableObject* thisObject = jsCast<JSSegmentedVariableObject*>(cell);
</span><span class="cx"> Base::heapSnapshot(cell, builder);
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(thisObject->symbolTable()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(thisObject->symbolTable()->m_lock);
</ins><span class="cx"> SymbolTable::Map::iterator end = thisObject->symbolTable()->end(locker);
</span><span class="cx"> for (SymbolTable::Map::iterator it = thisObject->symbolTable()->begin(locker); it != end; ++it) {
</span><span class="cx"> SymbolTableEntry::Fast entry = it->value;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSegmentedVariableObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "JSObject.h"
</span><span class="cx"> #include "JSSymbolTableObject.h"
</span><span class="cx"> #include "SymbolTable.h"
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> SegmentedVector<WriteBarrier<Unknown>, 16> m_variables;
</span><del>- ConcurrentJITLock m_lock;
</del><ins>+ ConcurrentJSLock m_lock;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSymbolTableObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> {
</span><span class="cx"> JSSymbolTableObject* thisObject = jsCast<JSSymbolTableObject*>(object);
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(thisObject->symbolTable()->m_lock);
</del><ins>+ ConcurrentJSLocker locker(thisObject->symbolTable()->m_lock);
</ins><span class="cx"> SymbolTable::Map::iterator end = thisObject->symbolTable()->end(locker);
</span><span class="cx"> for (SymbolTable::Map::iterator it = thisObject->symbolTable()->begin(locker); it != end; ++it) {
</span><span class="cx"> if (!(it->value.getAttributes() & DontEnum) || mode.includeDontEnumProperties()) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSymbolTableObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> SymbolTableObjectType* object, PropertyName propertyName, PropertySlot& slot)
</span><span class="cx"> {
</span><span class="cx"> SymbolTable& symbolTable = *object->symbolTable();
</span><del>- ConcurrentJITLocker locker(symbolTable.m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable.m_lock);
</ins><span class="cx"> SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.uid());
</span><span class="cx"> if (iter == symbolTable.end(locker))
</span><span class="cx"> return false;
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> SymbolTableObjectType* object, PropertyName propertyName, PropertyDescriptor& descriptor)
</span><span class="cx"> {
</span><span class="cx"> SymbolTable& symbolTable = *object->symbolTable();
</span><del>- ConcurrentJITLocker locker(symbolTable.m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable.m_lock);
</ins><span class="cx"> SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.uid());
</span><span class="cx"> if (iter == symbolTable.end(locker))
</span><span class="cx"> return false;
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> bool& slotIsWriteable)
</span><span class="cx"> {
</span><span class="cx"> SymbolTable& symbolTable = *object->symbolTable();
</span><del>- ConcurrentJITLocker locker(symbolTable.m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable.m_lock);
</ins><span class="cx"> SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.uid());
</span><span class="cx"> if (iter == symbolTable.end(locker))
</span><span class="cx"> return false;
</span><span class="lines">@@ -174,7 +174,7 @@
</span><span class="cx"> SymbolTable& symbolTable = *object->symbolTable();
</span><span class="cx"> // FIXME: This is very suspicious. We shouldn't need a GC-safe lock here.
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=134601
</span><del>- GCSafeConcurrentJITLocker locker(symbolTable.m_lock, vm.heap);
</del><ins>+ GCSafeConcurrentJSLocker locker(symbolTable.m_lock, vm.heap);
</ins><span class="cx"> SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.uid());
</span><span class="cx"> if (iter == symbolTable.end(locker))
</span><span class="cx"> return false;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeOptionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Options.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Options.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/Options.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -317,8 +317,8 @@
</span><span class="cx"> #if !ENABLE(YARR_JIT)
</span><span class="cx"> Options::useRegExpJIT() = false;
</span><span class="cx"> #endif
</span><del>-#if !ENABLE(CONCURRENT_JIT)
- Options::useConcurrentJIT() = false;
</del><ins>+#if !ENABLE(CONCURRENT_JS)
+ Options::useConcurrentJS() = false;
</ins><span class="cx"> #endif
</span><span class="cx"> #if !ENABLE(DFG_JIT)
</span><span class="cx"> Options::useDFGJIT() = false;
</span><span class="lines">@@ -370,7 +370,7 @@
</span><span class="cx"> Options::thresholdForFTLOptimizeAfterWarmUp() = 20;
</span><span class="cx"> Options::thresholdForFTLOptimizeSoon() = 20;
</span><span class="cx"> Options::maximumEvalCacheableSourceLength() = 150000;
</span><del>- Options::useConcurrentJIT() = false;
</del><ins>+ Options::useConcurrentJS() = false;
</ins><span class="cx"> }
</span><span class="cx"> if (Options::useMaximalFlushInsertionPhase()) {
</span><span class="cx"> Options::useOSREntryToDFG() = false;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeOptionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Options.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Options.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/Options.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx"> v(bool, useObjectAllocationSinking, true, Normal, nullptr) \
</span><span class="cx"> v(bool, logExecutableAllocation, false, Normal, nullptr) \
</span><span class="cx"> \
</span><del>- v(bool, useConcurrentJIT, true, Normal, "allows the DFG / FTL compilation in threads other than the executing JS thread") \
</del><ins>+ v(bool, useConcurrentJS, true, Normal, "allows the DFG / FTL compilation in threads other than the executing JS thread") \
</ins><span class="cx"> v(unsigned, numberOfDFGCompilerThreads, computeNumberOfWorkerThreads(2, 2) - 1, Normal, nullptr) \
</span><span class="cx"> v(unsigned, numberOfFTLCompilerThreads, computeNumberOfWorkerThreads(8, 2) - 1, Normal, nullptr) \
</span><span class="cx"> v(int32, priorityDeltaOfDFGCompilerThreads, computePriorityDeltaOfWorkerThreads(-1, 0), Normal, nullptr) \
</span><span class="lines">@@ -431,7 +431,7 @@
</span><span class="cx"> v(enablePolymorphicCallInlining, usePolymorphicCallInlining, SameOption) \
</span><span class="cx"> v(enableMovHintRemoval, useMovHintRemoval, SameOption) \
</span><span class="cx"> v(enableObjectAllocationSinking, useObjectAllocationSinking, SameOption) \
</span><del>- v(enableConcurrentJIT, useConcurrentJIT, SameOption) \
</del><ins>+ v(enableConcurrentJS, useConcurrentJS, SameOption) \
</ins><span class="cx"> v(enableProfiler, useProfiler, SameOption) \
</span><span class="cx"> v(enableArchitectureSpecificOptimizations, useArchitectureSpecificOptimizations, SameOption) \
</span><span class="cx"> v(enablePolyvariantCallInlining, usePolyvariantCallInlining, SameOption) \
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeProgramExecutablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ProgramExecutable.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ProgramExecutable.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/ProgramExecutable.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -153,7 +153,7 @@
</span><span class="cx"> {
</span><span class="cx"> JSGlobalLexicalEnvironment* globalLexicalEnvironment = jsCast<JSGlobalLexicalEnvironment*>(globalObject->globalScope());
</span><span class="cx"> SymbolTable* symbolTable = globalLexicalEnvironment->symbolTable();
</span><del>- ConcurrentJITLocker locker(symbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(symbolTable->m_lock);
</ins><span class="cx"> for (auto& entry : lexicalDeclarations) {
</span><span class="cx"> if (UNLIKELY(entry.value.isConst() && !vm.globalConstRedeclarationShouldThrow() && !isStrictMode())) {
</span><span class="cx"> if (symbolTable->contains(locker, entry.key.get()))
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExp.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExp.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/RegExp.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -262,7 +262,7 @@
</span><span class="cx">
</span><span class="cx"> void RegExp::compile(VM* vm, Yarr::YarrCharSize charSize)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> Yarr::YarrPattern pattern(m_patternString, m_flags, &m_constructionError, vm->stackLimit());
</span><span class="cx"> if (m_constructionError) {
</span><span class="lines">@@ -304,7 +304,7 @@
</span><span class="cx"> bool RegExp::matchConcurrently(
</span><span class="cx"> VM& vm, const String& s, unsigned startOffset, int& position, Vector<int>& ovector)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> if (!hasCodeFor(s.is8Bit() ? Yarr::Char8 : Yarr::Char16))
</span><span class="cx"> return false;
</span><span class="lines">@@ -315,7 +315,7 @@
</span><span class="cx">
</span><span class="cx"> void RegExp::compileMatchOnly(VM* vm, Yarr::YarrCharSize charSize)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> Yarr::YarrPattern pattern(m_patternString, m_flags, &m_constructionError, vm->stackLimit());
</span><span class="cx"> if (m_constructionError) {
</span><span class="lines">@@ -356,7 +356,7 @@
</span><span class="cx">
</span><span class="cx"> bool RegExp::matchConcurrently(VM& vm, const String& s, unsigned startOffset, MatchResult& result)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> if (!hasMatchOnlyCodeFor(s.is8Bit() ? Yarr::Char8 : Yarr::Char16))
</span><span class="cx"> return false;
</span><span class="lines">@@ -367,7 +367,7 @@
</span><span class="cx">
</span><span class="cx"> void RegExp::deleteCode()
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> if (!hasCode())
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExp.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExp.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/RegExp.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "ExecutableAllocator.h"
</span><span class="cx"> #include "MatchResult.h"
</span><span class="cx"> #include "RegExpKey.h"
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> unsigned m_rtMatchCallCount;
</span><span class="cx"> unsigned m_rtMatchFoundCount;
</span><span class="cx"> #endif
</span><del>- ConcurrentJITLock m_lock;
</del><ins>+ ConcurrentJSLock m_lock;
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(YARR_JIT)
</span><span class="cx"> Yarr::YarrCodeBlock m_regExpJITCode;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStructurecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Structure.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Structure.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/Structure.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -337,7 +337,7 @@
</span><span class="cx"> // Must hold the lock on this structure, since we will be modifying this structure's
</span><span class="cx"> // property map. We don't want getConcurrently() to see the property map in a half-baked
</span><span class="cx"> // state.
</span><del>- GCSafeConcurrentJITLocker locker(m_lock, vm.heap);
</del><ins>+ GCSafeConcurrentJSLocker locker(m_lock, vm.heap);
</ins><span class="cx"> if (setPropertyTable)
</span><span class="cx"> this->setPropertyTable(vm, table);
</span><span class="cx">
</span><span class="lines">@@ -380,7 +380,7 @@
</span><span class="cx">
</span><span class="cx"> Structure* Structure::addPropertyTransitionToExistingStructureConcurrently(Structure* structure, UniquedStringImpl* uid, unsigned attributes, PropertyOffset& offset)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(structure->m_lock);
</del><ins>+ ConcurrentJSLocker locker(structure->m_lock);
</ins><span class="cx"> return addPropertyTransitionToExistingStructureImpl(structure, uid, attributes, offset);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -478,7 +478,7 @@
</span><span class="cx">
</span><span class="cx"> checkOffset(transition->m_offset, transition->inlineCapacity());
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(structure->m_lock);
</del><ins>+ ConcurrentJSLocker locker(structure->m_lock);
</ins><span class="cx"> structure->m_transitionTable.add(vm, transition);
</span><span class="cx"> }
</span><span class="cx"> transition->checkOffsetConsistency();
</span><span class="lines">@@ -597,7 +597,7 @@
</span><span class="cx"> if (result) {
</span><span class="cx"> if (isPinnedPropertyTable())
</span><span class="cx"> return result->copy(vm, result->size() + 1);
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> setPropertyTable(vm, nullptr);
</span><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="lines">@@ -668,7 +668,7 @@
</span><span class="cx"> if (structure->isDictionary())
</span><span class="cx"> transition->pin(vm, transition->ensurePropertyTable(vm));
</span><span class="cx"> else {
</span><del>- ConcurrentJITLocker locker(structure->m_lock);
</del><ins>+ ConcurrentJSLocker locker(structure->m_lock);
</ins><span class="cx"> structure->m_transitionTable.add(vm, transition);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -719,7 +719,7 @@
</span><span class="cx"> checkOffsetConsistency();
</span><span class="cx"> ASSERT(isDictionary());
</span><span class="cx">
</span><del>- GCSafeConcurrentJITLocker locker(m_lock, vm.heap);
</del><ins>+ GCSafeConcurrentJSLocker locker(m_lock, vm.heap);
</ins><span class="cx">
</span><span class="cx"> size_t beforeOutOfLineCapacity = this->outOfLineCapacity();
</span><span class="cx"> if (isUncacheableDictionary()) {
</span><span class="lines">@@ -803,7 +803,7 @@
</span><span class="cx">
</span><span class="cx"> if (!hasRareData())
</span><span class="cx"> allocateRareData(vm);
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> StructureRareData* rareData = this->rareData();
</span><span class="cx"> if (!rareData->m_replacementWatchpointSets) {
</span><span class="cx"> rareData->m_replacementWatchpointSets =
</span><span class="lines">@@ -943,12 +943,12 @@
</span><span class="cx">
</span><span class="cx"> PropertyOffset Structure::add(VM& vm, PropertyName propertyName, unsigned attributes)
</span><span class="cx"> {
</span><del>- return add(vm, propertyName, attributes, [] (const GCSafeConcurrentJITLocker&, PropertyOffset) { });
</del><ins>+ return add(vm, propertyName, attributes, [] (const GCSafeConcurrentJSLocker&, PropertyOffset) { });
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PropertyOffset Structure::remove(PropertyName propertyName)
</span><span class="cx"> {
</span><del>- return remove(propertyName, [] (const ConcurrentJITLocker&, PropertyOffset) { });
</del><ins>+ return remove(propertyName, [] (const ConcurrentJSLocker&, PropertyOffset) { });
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Structure::getPropertyNamesFromStructure(VM& vm, PropertyNameArray& propertyNames, EnumerationMode mode)
</span><span class="lines">@@ -1023,7 +1023,7 @@
</span><span class="cx">
</span><span class="cx"> JSCell::visitChildren(thisObject, visitor);
</span><span class="cx">
</span><del>- ConcurrentJITLocker locker(thisObject->m_lock);
</del><ins>+ ConcurrentJSLocker locker(thisObject->m_lock);
</ins><span class="cx">
</span><span class="cx"> visitor.append(&thisObject->m_globalObject);
</span><span class="cx"> if (!thisObject->isObject())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStructureh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Structure.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Structure.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/Structure.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><span class="cx"> #include "ClassInfo.h"
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "IndexingType.h"
</span><span class="cx"> #include "InferredTypeTable.h"
</span><span class="cx"> #include "JSCJSValue.h"
</span><span class="lines">@@ -581,7 +581,7 @@
</span><span class="cx">
</span><span class="cx"> static void dumpContextHeader(PrintStream&);
</span><span class="cx">
</span><del>- ConcurrentJITLock& lock() { return m_lock; }
</del><ins>+ ConcurrentJSLock& lock() { return m_lock; }
</ins><span class="cx">
</span><span class="cx"> DECLARE_EXPORT_INFO;
</span><span class="cx">
</span><span class="lines">@@ -760,7 +760,7 @@
</span><span class="cx">
</span><span class="cx"> uint8_t m_inlineCapacity;
</span><span class="cx">
</span><del>- ConcurrentJITLock m_lock;
</del><ins>+ ConcurrentJSLock m_lock;
</ins><span class="cx">
</span><span class="cx"> uint32_t m_bitField;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStructureInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StructureInlines.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StructureInlines.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/StructureInlines.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx">
</span><span class="cx"> inline WatchpointSet* Structure::propertyReplacementWatchpointSet(PropertyOffset offset)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> if (!hasRareData())
</span><span class="cx"> return nullptr;
</span><span class="cx"> WTF::loadLoadFence();
</span><span class="lines">@@ -290,7 +290,7 @@
</span><span class="cx"> {
</span><span class="cx"> PropertyTable* table = ensurePropertyTable(vm);
</span><span class="cx">
</span><del>- GCSafeConcurrentJITLocker locker(m_lock, vm.heap);
</del><ins>+ GCSafeConcurrentJSLocker locker(m_lock, vm.heap);
</ins><span class="cx">
</span><span class="cx"> setPropertyTable(vm, table);
</span><span class="cx">
</span><span class="lines">@@ -315,7 +315,7 @@
</span><span class="cx"> template<typename Func>
</span><span class="cx"> inline PropertyOffset Structure::remove(PropertyName propertyName, const Func& func)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx">
</span><span class="cx"> checkConsistency();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeSymbolTablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/SymbolTable.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/SymbolTable.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/SymbolTable.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -108,11 +108,11 @@
</span><span class="cx"> visitor.append(&thisSymbolTable->m_rareData->m_codeBlock);
</span><span class="cx">
</span><span class="cx"> // Save some memory. This is O(n) to rebuild and we do so on the fly.
</span><del>- ConcurrentJITLocker locker(thisSymbolTable->m_lock);
</del><ins>+ ConcurrentJSLocker locker(thisSymbolTable->m_lock);
</ins><span class="cx"> thisSymbolTable->m_localToEntry = nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-const SymbolTable::LocalToEntryVec& SymbolTable::localToEntry(const ConcurrentJITLocker&)
</del><ins>+const SymbolTable::LocalToEntryVec& SymbolTable::localToEntry(const ConcurrentJSLocker&)
</ins><span class="cx"> {
</span><span class="cx"> if (UNLIKELY(!m_localToEntry)) {
</span><span class="cx"> unsigned size = 0;
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx"> return *m_localToEntry;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-SymbolTableEntry* SymbolTable::entryFor(const ConcurrentJITLocker& locker, ScopeOffset offset)
</del><ins>+SymbolTableEntry* SymbolTable::entryFor(const ConcurrentJSLocker& locker, ScopeOffset offset)
</ins><span class="cx"> {
</span><span class="cx"> auto& toEntryVector = localToEntry(locker);
</span><span class="cx"> if (offset.offset() >= toEntryVector.size())
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void SymbolTable::prepareForTypeProfiling(const ConcurrentJITLocker&)
</del><ins>+void SymbolTable::prepareForTypeProfiling(const ConcurrentJSLocker&)
</ins><span class="cx"> {
</span><span class="cx"> if (m_rareData)
</span><span class="cx"> return;
</span><span class="lines">@@ -220,7 +220,7 @@
</span><span class="cx"> m_rareData->m_codeBlock.set(*codeBlock->vm(), this, codeBlock);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-GlobalVariableID SymbolTable::uniqueIDForVariable(const ConcurrentJITLocker&, UniquedStringImpl* key, VM& vm)
</del><ins>+GlobalVariableID SymbolTable::uniqueIDForVariable(const ConcurrentJSLocker&, UniquedStringImpl* key, VM& vm)
</ins><span class="cx"> {
</span><span class="cx"> RELEASE_ASSERT(m_rareData);
</span><span class="cx">
</span><span class="lines">@@ -239,7 +239,7 @@
</span><span class="cx"> return id;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-GlobalVariableID SymbolTable::uniqueIDForOffset(const ConcurrentJITLocker& locker, VarOffset offset, VM& vm)
</del><ins>+GlobalVariableID SymbolTable::uniqueIDForOffset(const ConcurrentJSLocker& locker, VarOffset offset, VM& vm)
</ins><span class="cx"> {
</span><span class="cx"> RELEASE_ASSERT(m_rareData);
</span><span class="cx">
</span><span class="lines">@@ -251,7 +251,7 @@
</span><span class="cx"> return uniqueIDForVariable(locker, iter->value.get(), vm);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-RefPtr<TypeSet> SymbolTable::globalTypeSetForOffset(const ConcurrentJITLocker& locker, VarOffset offset, VM& vm)
</del><ins>+RefPtr<TypeSet> SymbolTable::globalTypeSetForOffset(const ConcurrentJSLocker& locker, VarOffset offset, VM& vm)
</ins><span class="cx"> {
</span><span class="cx"> RELEASE_ASSERT(m_rareData);
</span><span class="cx">
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx"> return globalTypeSetForVariable(locker, iter->value.get(), vm);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-RefPtr<TypeSet> SymbolTable::globalTypeSetForVariable(const ConcurrentJITLocker& locker, UniquedStringImpl* key, VM& vm)
</del><ins>+RefPtr<TypeSet> SymbolTable::globalTypeSetForVariable(const ConcurrentJSLocker& locker, UniquedStringImpl* key, VM& vm)
</ins><span class="cx"> {
</span><span class="cx"> RELEASE_ASSERT(m_rareData);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeSymbolTableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/SymbolTable.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/SymbolTable.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/SymbolTable.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "ConstantMode.h"
</span><span class="cx"> #include "InferredValue.h"
</span><span class="cx"> #include "JSObject.h"
</span><span class="lines">@@ -462,17 +462,17 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // You must hold the lock until after you're done with the iterator.
</span><del>- Map::iterator find(const ConcurrentJITLocker&, UniquedStringImpl* key)
</del><ins>+ Map::iterator find(const ConcurrentJSLocker&, UniquedStringImpl* key)
</ins><span class="cx"> {
</span><span class="cx"> return m_map.find(key);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- Map::iterator find(const GCSafeConcurrentJITLocker&, UniquedStringImpl* key)
</del><ins>+ Map::iterator find(const GCSafeConcurrentJSLocker&, UniquedStringImpl* key)
</ins><span class="cx"> {
</span><span class="cx"> return m_map.find(key);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- SymbolTableEntry get(const ConcurrentJITLocker&, UniquedStringImpl* key)
</del><ins>+ SymbolTableEntry get(const ConcurrentJSLocker&, UniquedStringImpl* key)
</ins><span class="cx"> {
</span><span class="cx"> return m_map.get(key);
</span><span class="cx"> }
</span><span class="lines">@@ -479,11 +479,11 @@
</span><span class="cx">
</span><span class="cx"> SymbolTableEntry get(UniquedStringImpl* key)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return get(locker, key);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- SymbolTableEntry inlineGet(const ConcurrentJITLocker&, UniquedStringImpl* key)
</del><ins>+ SymbolTableEntry inlineGet(const ConcurrentJSLocker&, UniquedStringImpl* key)
</ins><span class="cx"> {
</span><span class="cx"> return m_map.inlineGet(key);
</span><span class="cx"> }
</span><span class="lines">@@ -490,26 +490,26 @@
</span><span class="cx">
</span><span class="cx"> SymbolTableEntry inlineGet(UniquedStringImpl* key)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return inlineGet(locker, key);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- Map::iterator begin(const ConcurrentJITLocker&)
</del><ins>+ Map::iterator begin(const ConcurrentJSLocker&)
</ins><span class="cx"> {
</span><span class="cx"> return m_map.begin();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- Map::iterator end(const ConcurrentJITLocker&)
</del><ins>+ Map::iterator end(const ConcurrentJSLocker&)
</ins><span class="cx"> {
</span><span class="cx"> return m_map.end();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- Map::iterator end(const GCSafeConcurrentJITLocker&)
</del><ins>+ Map::iterator end(const GCSafeConcurrentJSLocker&)
</ins><span class="cx"> {
</span><span class="cx"> return m_map.end();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- size_t size(const ConcurrentJITLocker&) const
</del><ins>+ size_t size(const ConcurrentJSLocker&) const
</ins><span class="cx"> {
</span><span class="cx"> return m_map.size();
</span><span class="cx"> }
</span><span class="lines">@@ -516,7 +516,7 @@
</span><span class="cx">
</span><span class="cx"> size_t size() const
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return size(locker);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -555,7 +555,7 @@
</span><span class="cx"> return ScopeOffset(scopeSize());
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ScopeOffset takeNextScopeOffset(const ConcurrentJITLocker&)
</del><ins>+ ScopeOffset takeNextScopeOffset(const ConcurrentJSLocker&)
</ins><span class="cx"> {
</span><span class="cx"> ScopeOffset result = nextScopeOffset();
</span><span class="cx"> m_maxScopeOffset = result;
</span><span class="lines">@@ -564,12 +564,12 @@
</span><span class="cx">
</span><span class="cx"> ScopeOffset takeNextScopeOffset()
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return takeNextScopeOffset(locker);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> template<typename Entry>
</span><del>- void add(const ConcurrentJITLocker&, UniquedStringImpl* key, Entry&& entry)
</del><ins>+ void add(const ConcurrentJSLocker&, UniquedStringImpl* key, Entry&& entry)
</ins><span class="cx"> {
</span><span class="cx"> RELEASE_ASSERT(!m_localToEntry);
</span><span class="cx"> didUseVarOffset(entry.varOffset());
</span><span class="lines">@@ -580,12 +580,12 @@
</span><span class="cx"> template<typename Entry>
</span><span class="cx"> void add(UniquedStringImpl* key, Entry&& entry)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> add(locker, key, std::forward<Entry>(entry));
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> template<typename Entry>
</span><del>- void set(const ConcurrentJITLocker&, UniquedStringImpl* key, Entry&& entry)
</del><ins>+ void set(const ConcurrentJSLocker&, UniquedStringImpl* key, Entry&& entry)
</ins><span class="cx"> {
</span><span class="cx"> RELEASE_ASSERT(!m_localToEntry);
</span><span class="cx"> didUseVarOffset(entry.varOffset());
</span><span class="lines">@@ -595,11 +595,11 @@
</span><span class="cx"> template<typename Entry>
</span><span class="cx"> void set(UniquedStringImpl* key, Entry&& entry)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> set(locker, key, std::forward<Entry>(entry));
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool contains(const ConcurrentJITLocker&, UniquedStringImpl* key)
</del><ins>+ bool contains(const ConcurrentJSLocker&, UniquedStringImpl* key)
</ins><span class="cx"> {
</span><span class="cx"> return m_map.contains(key);
</span><span class="cx"> }
</span><span class="lines">@@ -606,7 +606,7 @@
</span><span class="cx">
</span><span class="cx"> bool contains(UniquedStringImpl* key)
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> return contains(locker, key);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -651,13 +651,13 @@
</span><span class="cx"> return m_arguments.get();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- const LocalToEntryVec& localToEntry(const ConcurrentJITLocker&);
- SymbolTableEntry* entryFor(const ConcurrentJITLocker&, ScopeOffset);
</del><ins>+ const LocalToEntryVec& localToEntry(const ConcurrentJSLocker&);
+ SymbolTableEntry* entryFor(const ConcurrentJSLocker&, ScopeOffset);
</ins><span class="cx">
</span><del>- GlobalVariableID uniqueIDForVariable(const ConcurrentJITLocker&, UniquedStringImpl* key, VM&);
- GlobalVariableID uniqueIDForOffset(const ConcurrentJITLocker&, VarOffset, VM&);
- RefPtr<TypeSet> globalTypeSetForOffset(const ConcurrentJITLocker&, VarOffset, VM&);
- RefPtr<TypeSet> globalTypeSetForVariable(const ConcurrentJITLocker&, UniquedStringImpl* key, VM&);
</del><ins>+ GlobalVariableID uniqueIDForVariable(const ConcurrentJSLocker&, UniquedStringImpl* key, VM&);
+ GlobalVariableID uniqueIDForOffset(const ConcurrentJSLocker&, VarOffset, VM&);
+ RefPtr<TypeSet> globalTypeSetForOffset(const ConcurrentJSLocker&, VarOffset, VM&);
+ RefPtr<TypeSet> globalTypeSetForVariable(const ConcurrentJSLocker&, UniquedStringImpl* key, VM&);
</ins><span class="cx">
</span><span class="cx"> bool usesNonStrictEval() const { return m_usesNonStrictEval; }
</span><span class="cx"> void setUsesNonStrictEval(bool usesNonStrictEval) { m_usesNonStrictEval = usesNonStrictEval; }
</span><span class="lines">@@ -677,7 +677,7 @@
</span><span class="cx">
</span><span class="cx"> SymbolTable* cloneScopePart(VM&);
</span><span class="cx">
</span><del>- void prepareForTypeProfiling(const ConcurrentJITLocker&);
</del><ins>+ void prepareForTypeProfiling(const ConcurrentJSLocker&);
</ins><span class="cx">
</span><span class="cx"> CodeBlock* rareDataCodeBlock();
</span><span class="cx"> void setRareDataCodeBlock(CodeBlock*);
</span><span class="lines">@@ -715,7 +715,7 @@
</span><span class="cx"> std::unique_ptr<LocalToEntryVec> m_localToEntry;
</span><span class="cx">
</span><span class="cx"> public:
</span><del>- mutable ConcurrentJITLock m_lock;
</del><ins>+ mutable ConcurrentJSLock m_lock;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypeSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypeSet.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypeSet.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/TypeSet.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> if (structure && newShape && !runtimeTypeIsPrimitive(type)) {
</span><span class="cx"> if (!m_structureSet.contains(structure)) {
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> m_structureSet.add(structure);
</span><span class="cx"> }
</span><span class="cx"> // Make one more pass making sure that:
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">
</span><span class="cx"> void TypeSet::invalidateCache()
</span><span class="cx"> {
</span><del>- ConcurrentJITLocker locker(m_lock);
</del><ins>+ ConcurrentJSLocker locker(m_lock);
</ins><span class="cx"> auto keepMarkedStructuresFilter = [] (Structure* structure) -> bool { return Heap::isMarked(structure); };
</span><span class="cx"> m_structureSet.genericFilter(keepMarkedStructuresFilter);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypeSeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypeSet.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypeSet.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/TypeSet.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "RuntimeType.h"
</span><span class="cx"> #include "StructureSet.h"
</span><span class="cx"> #include <wtf/HashSet.h>
</span><span class="lines">@@ -97,9 +97,9 @@
</span><span class="cx"> bool isEmpty() const { return m_seenTypes == TypeNothing; }
</span><span class="cx"> bool doesTypeConformTo(RuntimeTypeMask test) const;
</span><span class="cx"> RuntimeTypeMask seenTypes() const { return m_seenTypes; }
</span><del>- StructureSet structureSet(const ConcurrentJITLocker&) const { return m_structureSet; }
</del><ins>+ StructureSet structureSet(const ConcurrentJSLocker&) const { return m_structureSet; }
</ins><span class="cx">
</span><del>- ConcurrentJITLock m_lock;
</del><ins>+ ConcurrentJSLock m_lock;
</ins><span class="cx"> private:
</span><span class="cx"> bool m_isOverflown;
</span><span class="cx"> RuntimeTypeMask m_seenTypes;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeVMh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/VM.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/VM.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/VM.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><span class="cx"> #include "CallData.h"
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "ControlFlowProfiler.h"
</span><span class="cx"> #include "DateInstanceCache.h"
</span><span class="cx"> #include "ExceptionEventLocation.h"
</span><span class="lines">@@ -557,7 +557,7 @@
</span><span class="cx"> RefPtr<TypedArrayController> m_typedArrayController;
</span><span class="cx"> RegExpCache* m_regExpCache;
</span><span class="cx"> BumpPointerAllocator m_regExpAllocator;
</span><del>- ConcurrentJITLock m_regExpAllocatorLock;
</del><ins>+ ConcurrentJSLock m_regExpAllocatorLock;
</ins><span class="cx">
</span><span class="cx"> std::unique_ptr<HasOwnPropertyCache> m_hasOwnPropertyCache;
</span><span class="cx"> ALWAYS_INLINE HasOwnPropertyCache* hasOwnPropertyCache() { return m_hasOwnPropertyCache.get(); }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeWriteBarrierInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/WriteBarrierInlines.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/WriteBarrierInlines.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/runtime/WriteBarrierInlines.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> inline void WriteBarrierBase<T>::set(VM& vm, const JSCell* owner, T* value)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(value);
</span><del>- ASSERT(!Options::useConcurrentJIT() || !isCompilationThread());
</del><ins>+ ASSERT(!Options::useConcurrentJS() || !isCompilationThread());
</ins><span class="cx"> validateCell(value);
</span><span class="cx"> setEarlyValue(vm, owner, value);
</span><span class="cx"> }
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">
</span><span class="cx"> inline void WriteBarrierBase<Unknown>::set(VM& vm, const JSCell* owner, JSValue value)
</span><span class="cx"> {
</span><del>- ASSERT(!Options::useConcurrentJIT() || !isCompilationThread());
</del><ins>+ ASSERT(!Options::useConcurrentJS() || !isCompilationThread());
</ins><span class="cx"> m_value = JSValue::encode(value);
</span><span class="cx"> vm.heap.writeBarrier(owner, value);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreyarrYarrInterpretercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/yarr/YarrInterpreter.cpp (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/yarr/YarrInterpreter.cpp        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/yarr/YarrInterpreter.cpp        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -1588,7 +1588,7 @@
</span><span class="cx"> m_currentAlternativeIndex = 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- std::unique_ptr<BytecodePattern> compile(BumpPointerAllocator* allocator, ConcurrentJITLock* lock)
</del><ins>+ std::unique_ptr<BytecodePattern> compile(BumpPointerAllocator* allocator, ConcurrentJSLock* lock)
</ins><span class="cx"> {
</span><span class="cx"> regexBegin(m_pattern.m_numSubpatterns, m_pattern.m_body->m_callFrameSize, m_pattern.m_body->m_alternatives[0]->onceThrough());
</span><span class="cx"> emitDisjunction(m_pattern.m_body);
</span><span class="lines">@@ -2042,7 +2042,7 @@
</span><span class="cx"> Vector<std::unique_ptr<ByteDisjunction>> m_allParenthesesInfo;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-std::unique_ptr<BytecodePattern> byteCompile(YarrPattern& pattern, BumpPointerAllocator* allocator, ConcurrentJITLock* lock)
</del><ins>+std::unique_ptr<BytecodePattern> byteCompile(YarrPattern& pattern, BumpPointerAllocator* allocator, ConcurrentJSLock* lock)
</ins><span class="cx"> {
</span><span class="cx"> return ByteCompiler(pattern).compile(allocator, lock);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreyarrYarrInterpreterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/yarr/YarrInterpreter.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/yarr/YarrInterpreter.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/JavaScriptCore/yarr/YarrInterpreter.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ConcurrentJITLock.h"
</del><ins>+#include "ConcurrentJSLock.h"
</ins><span class="cx"> #include "YarrPattern.h"
</span><span class="cx">
</span><span class="cx"> namespace WTF {
</span><span class="lines">@@ -337,7 +337,7 @@
</span><span class="cx"> struct BytecodePattern {
</span><span class="cx"> WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- BytecodePattern(std::unique_ptr<ByteDisjunction> body, Vector<std::unique_ptr<ByteDisjunction>>& parenthesesInfoToAdopt, YarrPattern& pattern, BumpPointerAllocator* allocator, ConcurrentJITLock* lock)
</del><ins>+ BytecodePattern(std::unique_ptr<ByteDisjunction> body, Vector<std::unique_ptr<ByteDisjunction>>& parenthesesInfoToAdopt, YarrPattern& pattern, BumpPointerAllocator* allocator, ConcurrentJSLock* lock)
</ins><span class="cx"> : m_body(WTFMove(body))
</span><span class="cx"> , m_flags(pattern.m_flags)
</span><span class="cx"> , m_allocator(allocator)
</span><span class="lines">@@ -370,7 +370,7 @@
</span><span class="cx"> // Each BytecodePattern is associated with a RegExp, each RegExp is associated
</span><span class="cx"> // with a VM. Cache a pointer to out VM's m_regExpAllocator.
</span><span class="cx"> BumpPointerAllocator* m_allocator;
</span><del>- ConcurrentJITLock* m_lock;
</del><ins>+ ConcurrentJSLock* m_lock;
</ins><span class="cx">
</span><span class="cx"> CharacterClass* newlineCharacterClass;
</span><span class="cx"> CharacterClass* wordcharCharacterClass;
</span><span class="lines">@@ -380,7 +380,7 @@
</span><span class="cx"> Vector<std::unique_ptr<CharacterClass>> m_userCharacterClasses;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-JS_EXPORT_PRIVATE std::unique_ptr<BytecodePattern> byteCompile(YarrPattern&, BumpPointerAllocator*, ConcurrentJITLock* = nullptr);
</del><ins>+JS_EXPORT_PRIVATE std::unique_ptr<BytecodePattern> byteCompile(YarrPattern&, BumpPointerAllocator*, ConcurrentJSLock* = nullptr);
</ins><span class="cx"> JS_EXPORT_PRIVATE unsigned interpret(BytecodePattern*, const String& input, unsigned start, unsigned* output);
</span><span class="cx"> unsigned interpret(BytecodePattern*, const LChar* input, unsigned length, unsigned start, unsigned* output);
</span><span class="cx"> unsigned interpret(BytecodePattern*, const UChar* input, unsigned length, unsigned start, unsigned* output);
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/WTF/ChangeLog        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -1,5 +1,18 @@
</span><span class="cx"> 2016-11-15 Filip Pizlo <fpizlo@apple.com>
</span><span class="cx">
</span><ins>+ Rename CONCURRENT_JIT/ConcurrentJIT to CONCURRENT_JS/ConcurrentJS
+ https://bugs.webkit.org/show_bug.cgi?id=164791
+
+ Reviewed by Geoffrey Garen.
+
+ Both the concurrent GC and the concurrent JIT rely on concurrency support in fundamental
+ JSC runtime components like JSValue. So, the thing that guards it should be a "feature"
+ called CONCURRENT_JS not CONCURRENT_JIT.
+
+ * wtf/Platform.h:
+
+2016-11-15 Filip Pizlo <fpizlo@apple.com>
+
</ins><span class="cx"> The concurrent GC should have a timeslicing controller
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=164783
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWTFwtfPlatformh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Platform.h (208760 => 208761)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Platform.h        2016-11-15 23:12:40 UTC (rev 208760)
+++ trunk/Source/WTF/wtf/Platform.h        2016-11-15 23:21:50 UTC (rev 208761)
</span><span class="lines">@@ -744,12 +744,12 @@
</span><span class="cx"> #endif
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-/* Concurrent JIT only works on 64-bit platforms because it requires that
</del><ins>+/* Concurrent JS only works on 64-bit platforms because it requires that
</ins><span class="cx"> values get stored to atomically. This is trivially true on 64-bit platforms,
</span><span class="cx"> but not true at all on 32-bit platforms where values are composed of two
</span><span class="cx"> separate sub-values. */
</span><span class="cx"> #if ENABLE(DFG_JIT) && USE(JSVALUE64)
</span><del>-#define ENABLE_CONCURRENT_JIT 1
</del><ins>+#define ENABLE_CONCURRENT_JS 1
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> /* This controls whether B3 is built. B3 is needed for FTL JIT and WebAssembly */
</span></span></pre>
</div>
</div>
</body>
</html>