<!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>[208985] trunk</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/208985">208985</a></dd>
<dt>Author</dt> <dd>utatane.tea@gmail.com</dd>
<dt>Date</dt> <dd>2016-11-26 22:08:16 -0800 (Sat, 26 Nov 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[WTF] Import std::optional reference implementation as WTF::Optional
https://bugs.webkit.org/show_bug.cgi?id=164199

Reviewed by Saam Barati and Sam Weinig.

Source/JavaScriptCore:

Previous WTF::Optional::operator= is not compatible to std::optional::operator=.
std::optional::emplace has the same semantics to the previous one.
So we change the code to use it.

* Scripts/builtins/builtins_templates.py:
* Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
* Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::commuteCompareToZeroIntoTest):
* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::commuteCompareToZeroIntoTest):
* b3/B3CheckSpecial.cpp:
(JSC::B3::CheckSpecial::forEachArg):
(JSC::B3::CheckSpecial::shouldTryAliasingDef):
* b3/B3CheckSpecial.h:
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::scaleForShl):
(JSC::B3::Air::LowerToAir::effectiveAddr):
(JSC::B3::Air::LowerToAir::tryAppendLea):
* b3/B3Opcode.cpp:
(JSC::B3::invertedCompare):
* b3/B3Opcode.h:
* b3/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::forEachArg):
* b3/B3StackmapSpecial.cpp:
(JSC::B3::StackmapSpecial::forEachArgImpl):
* b3/B3StackmapSpecial.h:
* b3/B3Value.cpp:
(JSC::B3::Value::invertedCompare):
* b3/air/AirArg.h:
(JSC::B3::Air::Arg::isValidScale):
(JSC::B3::Air::Arg::isValidAddrForm):
(JSC::B3::Air::Arg::isValidIndexForm):
(JSC::B3::Air::Arg::isValidForm):
* b3/air/AirCustom.h:
(JSC::B3::Air::PatchCustom::shouldTryAliasingDef):
* b3/air/AirFixObviousSpills.cpp:
* b3/air/AirInst.h:
* b3/air/AirInstInlines.h:
(JSC::B3::Air::Inst::shouldTryAliasingDef):
* b3/air/AirIteratedRegisterCoalescing.cpp:
* b3/air/AirSpecial.cpp:
(JSC::B3::Air::Special::shouldTryAliasingDef):
* b3/air/AirSpecial.h:
* bytecode/BytecodeGeneratorification.cpp:
(JSC::BytecodeGeneratorification::storageForGeneratorLocal):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::findPC):
(JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex):
* bytecode/CodeBlock.h:
* bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::link):
* bytecode/UnlinkedFunctionExecutable.h:
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitPutConstantProperty):
(JSC::ObjectPatternNode::bindValue):
* debugger/Debugger.cpp:
(JSC::Debugger::resolveBreakpoint):
* debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::currentPosition):
* debugger/DebuggerParseData.cpp:
(JSC::DebuggerPausePositions::breakpointLocationForLineColumn):
* debugger/DebuggerParseData.h:
* debugger/ScriptProfilingScope.h:
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter&lt;AbstractStateType&gt;::executeEffects):
(JSC::DFG::AbstractInterpreter&lt;AbstractStateType&gt;::executeDoubleUnaryOpEffects):
* dfg/DFGJITCode.cpp:
(JSC::DFG::JITCode::findPC):
* dfg/DFGJITCode.h:
* dfg/DFGOperations.cpp:
(JSC::DFG::operationPutByValInternal):
* dfg/DFGSlowPathGenerator.h:
(JSC::DFG::SlowPathGenerator::generate):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):
(JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
(JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileMathIC):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
* ftl/FTLJITCode.cpp:
(JSC::FTL::JITCode::findPC):
* ftl/FTLJITCode.h:
* heap/Heap.cpp:
(JSC::Heap::collectAsync):
(JSC::Heap::collectSync):
(JSC::Heap::collectInThread):
(JSC::Heap::requestCollection):
(JSC::Heap::willStartCollection):
(JSC::Heap::didFinishCollection):
(JSC::Heap::shouldDoFullCollection):
* heap/Heap.h:
(JSC::Heap::collectionScope):
* heap/HeapSnapshot.cpp:
(JSC::HeapSnapshot::nodeForCell):
(JSC::HeapSnapshot::nodeForObjectIdentifier):
* heap/HeapSnapshot.h:
* inspector/InspectorBackendDispatcher.cpp:
(Inspector::BackendDispatcher::dispatch):
(Inspector::BackendDispatcher::sendPendingErrors):
(Inspector::BackendDispatcher::reportProtocolError):
* inspector/InspectorBackendDispatcher.h:
* inspector/agents/InspectorHeapAgent.cpp:
(Inspector::InspectorHeapAgent::nodeForHeapObjectIdentifier):
(Inspector::InspectorHeapAgent::getPreview):
(Inspector::InspectorHeapAgent::getRemoteObject):
* inspector/agents/InspectorHeapAgent.h:
* inspector/remote/RemoteConnectionToTarget.h:
* inspector/remote/RemoteConnectionToTarget.mm:
(Inspector::RemoteConnectionToTarget::targetIdentifier):
(Inspector::RemoteConnectionToTarget::setup):
* inspector/remote/RemoteInspector.h:
* inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::updateClientCapabilities):
* inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(_generate_declarations_for_enum_conversion_methods):
(_generate_declarations_for_enum_conversion_methods.return_type_with_export_macro):
* inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain.generate_conversion_method_body):
* inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
* inspector/scripts/tests/expected/enum-values.json-result:
* inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
* inspector/scripts/tests/expected/type-declaration-array-type.json-result:
* inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
* inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
* jit/JITCode.h:
(JSC::JITCode::findPC):
* jit/JITDivGenerator.cpp:
(JSC::JITDivGenerator::generateFastPath):
* jit/JITOperations.cpp:
* jit/PCToCodeOriginMap.cpp:
(JSC::PCToCodeOriginMap::findPC):
* jit/PCToCodeOriginMap.h:
* jsc.cpp:
(WTF::RuntimeArray::getOwnPropertySlot):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* parser/ModuleAnalyzer.cpp:
(JSC::ModuleAnalyzer::exportVariable):
* runtime/ConcurrentJSLock.h:
(JSC::ConcurrentJSLocker::ConcurrentJSLocker):
* runtime/DefinePropertyAttributes.h:
(JSC::DefinePropertyAttributes::writable):
(JSC::DefinePropertyAttributes::configurable):
(JSC::DefinePropertyAttributes::enumerable):
* runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments&lt;Type&gt;::getOwnPropertySlot):
(JSC::GenericArguments&lt;Type&gt;::put):
(JSC::GenericArguments&lt;Type&gt;::deleteProperty):
(JSC::GenericArguments&lt;Type&gt;::defineOwnProperty):
* runtime/HasOwnPropertyCache.h:
(JSC::HasOwnPropertyCache::get):
* runtime/HashMapImpl.h:
(JSC::concurrentJSMapHash):
* runtime/Identifier.h:
(JSC::parseIndex):
* runtime/JSArray.cpp:
(JSC::JSArray::defineOwnProperty):
* runtime/JSCJSValue.cpp:
(JSC::JSValue::toNumberFromPrimitive):
(JSC::JSValue::putToPrimitive):
* runtime/JSCJSValue.h:
* runtime/JSGenericTypedArrayView.h:
(JSC::JSGenericTypedArrayView::toAdaptorNativeFromValueWithoutCoercion):
* runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
(JSC::constructGenericTypedArrayView):
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView&lt;Adaptor&gt;::getOwnPropertySlot):
(JSC::JSGenericTypedArrayView&lt;Adaptor&gt;::put):
* runtime/JSModuleRecord.cpp:
* runtime/JSModuleRecord.h:
* runtime/JSObject.cpp:
(JSC::JSObject::putDirectAccessor):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::putDirectMayBeIndex):
(JSC::JSObject::defineOwnProperty):
* runtime/JSObject.h:
(JSC::JSObject::getOwnPropertySlot):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::putOwnDataPropertyMayBeIndex):
* runtime/JSObjectInlines.h:
(JSC::JSObject::putInline):
* runtime/JSString.cpp:
(JSC::JSString::getStringPropertyDescriptor):
* runtime/JSString.h:
(JSC::JSString::getStringPropertySlot):
* runtime/LiteralParser.cpp:
(JSC::LiteralParser&lt;CharType&gt;::parse):
* runtime/MathCommon.h:
(JSC::safeReciprocalForDivByConst):
* runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncHasOwnProperty):
* runtime/PropertyDescriptor.h:
(JSC::toPropertyDescriptor):
* runtime/PropertyName.h:
(JSC::parseIndex):
* runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::processUnverifiedStackTraces):
* runtime/StringObject.cpp:
(JSC::StringObject::put):
(JSC::isStringOwnProperty):
(JSC::StringObject::deleteProperty):
* runtime/ToNativeFromValue.h:
(JSC::toNativeFromValueWithoutCoercion):
* runtime/TypedArrayAdaptors.h:
(JSC::IntegralTypedArrayAdaptor::toNativeFromInt32WithoutCoercion):
(JSC::IntegralTypedArrayAdaptor::toNativeFromUint32WithoutCoercion):
(JSC::IntegralTypedArrayAdaptor::toNativeFromDoubleWithoutCoercion):
(JSC::FloatTypedArrayAdaptor::toNativeFromInt32WithoutCoercion):
(JSC::FloatTypedArrayAdaptor::toNativeFromDoubleWithoutCoercion):
(JSC::Uint8ClampedAdaptor::toNativeFromInt32WithoutCoercion):
(JSC::Uint8ClampedAdaptor::toNativeFromDoubleWithoutCoercion):

Source/WebCore:

Rename valueOr to value_or. This is specified in C++17 proposal.

Use Optional::emplace. C++17 Optional::operator=(Optional&amp;&amp;) requires
either copy assignment operator or move assignment operator. But
DFG::JSValueOperand etc. only defines move constructors and drop
implicit copy assignment operators.

It was OK in the previous WTF::Optional since it always uses move
constructors. But it is not valid in C++17 Optional. We use Optional::emplace
instead. This function has the same semantics to the previous WTF::Optional's
operator=.

No behavior change.

* Modules/applepay/ApplePaySession.cpp:
(WebCore::parseAmount):
(WebCore::createContactFields):
(WebCore::toLineItemType):
(WebCore::createLineItem):
(WebCore::createLineItems):
(WebCore::createMerchantCapabilities):
(WebCore::createSupportedNetworks):
(WebCore::toShippingType):
(WebCore::createShippingMethod):
(WebCore::createShippingMethods):
(WebCore::createPaymentRequest):
(WebCore::toPaymentAuthorizationStatus):
* Modules/applepay/PaymentContact.h:
* Modules/applepay/PaymentCoordinator.cpp:
(WebCore::PaymentCoordinator::completeShippingMethodSelection):
(WebCore::PaymentCoordinator::completeShippingContactSelection):
(WebCore::PaymentCoordinator::completePaymentMethodSelection):
* Modules/applepay/PaymentCoordinator.h:
* Modules/applepay/PaymentCoordinatorClient.h:
* Modules/applepay/PaymentMerchantSession.h:
* Modules/applepay/PaymentRequest.h:
* Modules/applepay/cocoa/PaymentContactCocoa.mm:
(WebCore::PaymentContact::fromJS):
* Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm:
(WebCore::PaymentMerchantSession::fromJS):
* Modules/encryptedmedia/MediaKeyStatusMap.cpp:
(WebCore::MediaKeyStatusMap::Iterator::next):
* Modules/encryptedmedia/MediaKeyStatusMap.h:
* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::extract):
* Modules/fetch/FetchBody.h:
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::FetchBodyOwner):
(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::finishBlobLoading):
* Modules/fetch/FetchBodyOwner.h:
* Modules/fetch/FetchHeaders.cpp:
(WebCore::FetchHeaders::Iterator::next):
* Modules/fetch/FetchHeaders.h:
* Modules/fetch/FetchRequest.cpp:
(WebCore::setReferrerPolicy):
(WebCore::setMode):
(WebCore::setCredentials):
(WebCore::setCache):
(WebCore::setRedirect):
(WebCore::setMethod):
(WebCore::setReferrer):
(WebCore::buildOptions):
(WebCore::FetchRequest::clone):
* Modules/fetch/FetchRequest.h:
(WebCore::FetchRequest::FetchRequest):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::FetchResponse):
(WebCore::FetchResponse::cloneForJS):
(WebCore::FetchResponse::fetch):
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::didFail):
(WebCore::FetchResponse::BodyLoader::didReceiveResponse):
(WebCore::FetchResponse::BodyLoader::stop):
* Modules/fetch/FetchResponse.h:
* Modules/geolocation/Coordinates.cpp:
(WebCore::Coordinates::altitude):
(WebCore::Coordinates::altitudeAccuracy):
(WebCore::Coordinates::heading):
(WebCore::Coordinates::speed):
* Modules/geolocation/Coordinates.h:
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::stringToDirection):
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseIdentifier.h:
(WebCore::IDBDatabaseIdentifier::hash):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::open):
* Modules/indexeddb/IDBFactory.h:
* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::getAll):
(WebCore::IDBIndex::getAllKeys):
* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBKeyPath.h:
(WebCore::isolatedCopy):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::keyPath):
(WebCore::IDBObjectStore::getAll):
(WebCore::IDBObjectStore::getAllKeys):
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::requestGetAllIndexRecords):
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/IDBVersionChangeEvent.cpp:
(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
* Modules/indexeddb/IDBVersionChangeEvent.h:
* Modules/indexeddb/server/IDBSerialization.cpp:
(WebCore::serializeIDBKeyPath):
(WebCore::deserializeIDBKeyPath):
* Modules/indexeddb/server/IDBSerialization.h:
* Modules/indexeddb/server/MemoryIndex.cpp:
(WebCore::IDBServer::MemoryIndex::getAllRecords):
* Modules/indexeddb/server/MemoryIndex.h:
* Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::getAllRecords):
* Modules/indexeddb/server/MemoryObjectStore.h:
* Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
(WebCore::IDBServer::MemoryObjectStoreCursor::objectStoreCleared):
(WebCore::IDBServer::MemoryObjectStoreCursor::keyDeleted):
(WebCore::IDBServer::MemoryObjectStoreCursor::setFirstInRemainingRange):
(WebCore::IDBServer::MemoryObjectStoreCursor::setForwardIteratorFromRemainingRange):
(WebCore::IDBServer::MemoryObjectStoreCursor::setReverseIteratorFromRemainingRange):
(WebCore::IDBServer::MemoryObjectStoreCursor::incrementForwardIterator):
(WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):
* Modules/indexeddb/server/MemoryObjectStoreCursor.h:
* Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
* Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
(WebCore::IDBDatabaseInfo::createNewObjectStore):
* Modules/indexeddb/shared/IDBDatabaseInfo.h:
* Modules/indexeddb/shared/IDBGetAllRecordsData.h:
* Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
(WebCore::IDBObjectStoreInfo::IDBObjectStoreInfo):
* Modules/indexeddb/shared/IDBObjectStoreInfo.h:
(WebCore::IDBObjectStoreInfo::keyPath):
* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::displayNameForTrack):
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::endOfStream):
(WebCore::MediaSource::streamEndedWithError):
* Modules/mediasource/MediaSource.h:
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::addIceCandidateSucceeded):
(WebCore::PeerConnectionBackend::addIceCandidateFailed):
(WebCore::PeerConnectionBackend::stop):
* Modules/mediastream/PeerConnectionBackend.h:
* Modules/mediastream/RTCDTMFSender.cpp:
(WebCore::RTCDTMFSender::insertDTMF):
* Modules/mediastream/RTCDTMFSender.h:
* Modules/mediastream/RTCIceCandidate.cpp:
(WebCore::RTCIceCandidate::create):
(WebCore::RTCIceCandidate::RTCIceCandidate):
* Modules/mediastream/RTCIceCandidate.h:
(WebCore::RTCIceCandidate::sdpMLineIndex):
* Modules/mediastream/SDPProcessor.cpp:
(WebCore::iceCandidateFromJSON):
* Modules/proximity/DeviceProximityEvent.h:
* Modules/streams/ReadableStreamSource.h:
(WebCore::ReadableStreamSource::startFinished):
(WebCore::ReadableStreamSource::pullFinished):
(WebCore::ReadableStreamSource::clean):
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::start):
* Modules/webaudio/AudioBufferSourceNode.h:
* Modules/webdatabase/SQLResultSet.h:
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::close):
* Modules/websockets/WebSocket.h:
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::didReceiveSocketStreamData):
* Modules/websockets/WebSocketChannel.h:
* bindings/generic/IDLTypes.h:
(WebCore::IDLType::nullValue):
* bindings/js/CachedModuleScript.h:
(WebCore::CachedModuleScript::error):
* bindings/js/Dictionary.h:
(WebCore::Dictionary::get):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::toJS):
* bindings/js/IDBBindingUtilities.h:
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
* bindings/js/JSCryptoKeySerializationJWK.h:
* bindings/js/JSDOMConvert.h:
(WebCore::Detail::VariadicConverterBase::convert):
(WebCore::Detail::VariadicConverterBase&lt;IDLInterface&lt;T&gt;&gt;::convert):
(WebCore::convertVariadicArguments):
* bindings/js/JSDOMIterator.h:
(WebCore::IteratorTraits&gt;::next):
* bindings/js/JSDOMPromise.h:
(WebCore::DOMPromise::DOMPromise):
(WebCore::DOMPromise::operator=):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
* bindings/js/JSDictionary.h:
(WebCore::JSDictionary::convertValue):
* bindings/js/JSFileCustom.cpp:
(WebCore::constructJSFile):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::callHTMLAllCollection):
(WebCore::JSHTMLAllCollection::item):
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::toDataURL):
* bindings/js/JSImageConstructor.cpp:
(WebCore::JSImageConstructor::construct):
* bindings/js/JSMediaDevicesCustom.cpp:
(WebCore::createStringConstraint):
(WebCore::createBooleanConstraint):
(WebCore::createDoubleConstraint):
(WebCore::createIntConstraint):
* bindings/js/JSWebKitSubtleCryptoCustom.cpp:
(WebCore::importKey):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::setupModuleScriptHandlers):
(WebCore::ScriptController::executeScriptInWorld):
(WebCore::ScriptController::executeScript):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateEnumerationImplementationContent):
(GenerateEnumerationHeaderContent):
(GenerateDefaultValue):
(GenerateImplementation):
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSFloat64Array.cpp:
(WebCore::JSFloat64Array::getOwnPropertySlot):
(WebCore::JSFloat64Array::getOwnPropertyDescriptor):
(WebCore::JSFloat64Array::put):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::parseEnumeration&lt;TestObj::EnumType&gt;):
(WebCore::parseEnumeration&lt;TestObj::Optional&gt;):
(WebCore::parseEnumeration&lt;AlternateEnumName&gt;):
(WebCore::parseEnumeration&lt;TestObj::EnumA&gt;):
(WebCore::parseEnumeration&lt;TestObj::EnumB&gt;):
(WebCore::parseEnumeration&lt;TestObj::EnumC&gt;):
(WebCore::parseEnumeration&lt;TestObj::Kind&gt;):
(WebCore::parseEnumeration&lt;TestObj::Size&gt;):
(WebCore::parseEnumeration&lt;TestObj::Confidence&gt;):
(WebCore::convertDictionary&lt;TestObj::Dictionary&gt;):
(WebCore::JSTestObj::getOwnPropertySlot):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordCaller):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Caller):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Caller):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentCaller):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
(WebCore::parseEnumeration&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt;):
* bindings/scripts/test/JS/JSTestStandaloneDictionary.h:
* bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp:
(WebCore::parseEnumeration&lt;TestStandaloneEnumeration&gt;):
* bindings/scripts/test/JS/JSTestStandaloneEnumeration.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsPrototypeFunctionSetShadowCaller):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampCaller):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::getOwnPropertySlot):
(JSC::RuntimeArray::put):
* crypto/CryptoAlgorithmRegistry.cpp:
(WebCore::CryptoAlgorithmRegistry::identifier):
* crypto/CryptoAlgorithmRegistry.h:
* crypto/CryptoKeySerialization.h:
* crypto/JsonWebKey.h:
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::importKey):
* crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
(WebCore::CryptoAlgorithmAES_KW::importKey):
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey):
(WebCore::CryptoAlgorithmHMAC::importKey):
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
* crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp:
(WebCore::calculateSignature):
* crypto/keys/CryptoKeyAES.h:
* crypto/keys/CryptoKeyHMAC.h:
* crypto/keys/CryptoKeyRSA.cpp:
(WebCore::CryptoKeyRSA::importJwk):
* crypto/keys/CryptoKeyRSA.h:
* crypto/keys/CryptoKeySerializationRaw.cpp:
(WebCore::CryptoKeySerializationRaw::reconcileAlgorithm):
* crypto/keys/CryptoKeySerializationRaw.h:
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::commonCryptoHMACAlgorithm):
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::cryptoDigestAlgorithm):
* crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
* crypto/parameters/CryptoAlgorithmRsaOaepParams.h:
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::calculateStyleMask):
(WebCore::CSSFontFace::calculateWeightMask):
* css/CSSFontFace.h:
* css/CSSFontFaceSet.cpp:
(WebCore::computeFontTraitsMask):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::doubleValue):
(WebCore::CSSPrimitiveValue::doubleValueInternal):
* css/CSSPrimitiveValue.h:
* css/CSSPropertyNames.in:
* css/CSSSegmentedFontFace.cpp:
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::create):
(WebCore::CSSStyleSheet::CSSStyleSheet):
(WebCore::CSSStyleSheet::addRule):
* css/CSSStyleSheet.h:
* css/FontFace.cpp:
(WebCore::FontFace::fontStateChanged):
* css/FontFace.h:
* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::completedLoading):
* css/FontFaceSet.h:
* css/MediaQueryEvaluator.cpp:
(WebCore::doubleValue):
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertGridPosition):
(WebCore::StyleBuilderConverter::convertWordSpacing):
(WebCore::StyleBuilderConverter::convertPerspective):
(WebCore::StyleBuilderConverter::convertMarqueeIncrement):
(WebCore::StyleBuilderConverter::convertFilterOperations):
(WebCore::StyleBuilderConverter::convertLineHeight):
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueLineHeight):
* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::requestStyleSheet):
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
(WebCore::CSSParser::parseSpringTimingFunctionValue):
(WebCore::CSSParser::parseColorFunctionParameters):
(WebCore::CSSParser::parseColorFromValue):
* css/parser/CSSParser.h:
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelationIfResolvingStyle):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation):
* dom/CustomElementReactionQueue.cpp:
* dom/Document.cpp:
(WebCore::Document::lastModified):
* dom/Element.cpp:
(WebCore::Element::scrollBy):
(WebCore::Element::getIntegralAttribute):
(WebCore::Element::getUnsignedIntegralAttribute):
(WebCore::Element::resolveCustomStyle):
* dom/Element.h:
* dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::dropEventDispatchAssertion):
(WebCore::ElementIteratorAssertions::clear):
* dom/ExceptionOr.h:
* dom/InlineStyleSheetOwner.cpp:
(WebCore::makeInlineStyleSheetCacheKey):
* dom/KeyboardEvent.h:
* dom/LoadableClassicScript.cpp:
(WebCore::LoadableClassicScript::error):
* dom/LoadableClassicScript.h:
* dom/LoadableModuleScript.cpp:
(WebCore::LoadableModuleScript::error):
* dom/LoadableModuleScript.h:
* dom/LoadableScript.h:
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::create):
(WebCore::MessageEvent::initMessageEvent):
* dom/MessageEvent.h:
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::observe):
* dom/MutationObserver.h:
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::checkStyleSheet):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::resolveCustomStyle):
* dom/PseudoElement.h:
* dom/RangeBoundaryPoint.h:
(WebCore::RangeBoundaryPoint::setToBeforeChild):
(WebCore::RangeBoundaryPoint::setToAfterChild):
(WebCore::RangeBoundaryPoint::setToEndOfNode):
(WebCore::RangeBoundaryPoint::invalidateOffset):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::determineScriptType):
(WebCore::ScriptElement::prepareScript):
(WebCore::ScriptElement::executeScriptAndDispatchEvent):
* dom/ScriptElement.h:
* dom/TextDecoder.cpp:
(WebCore::TextDecoder::decode):
* dom/TextDecoder.h:
* dom/UserGestureIndicator.cpp:
(WebCore::UserGestureIndicator::UserGestureIndicator):
* dom/UserGestureIndicator.h:
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
* editing/CompositeEditCommand.h:
* fileapi/File.h:
* history/CachedFrame.h:
(WebCore::CachedFrame::hasInsecureContent):
* html/DOMTokenList.cpp:
(WebCore::DOMTokenList::toggle):
* html/DOMTokenList.h:
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toDataURL):
* html/HTMLCanvasElement.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseBorderWidthAttribute):
(WebCore::HTMLElement::parseAttribute):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::createForJSConstructor):
(WebCore::HTMLImageElement::width):
(WebCore::HTMLImageElement::height):
* html/HTMLImageElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::findClosestTickMarkValue):
(WebCore::HTMLInputElement::maxLengthAttributeChanged):
(WebCore::HTMLInputElement::minLengthAttributeChanged):
* html/HTMLInputElement.h:
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::initializeStyleSheet):
(WebCore::HTMLLinkElement::iconType):
* html/HTMLLinkElement.h:
* html/HTMLOListElement.h:
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add):
* html/HTMLOptionsCollection.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::add):
(WebCore::HTMLSelectElement::setLength):
* html/HTMLSelectElement.h:
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::maxLengthAttributeChanged):
(WebCore::HTMLTextAreaElement::minLengthAttributeChanged):
* html/ImageInputType.cpp:
(WebCore::ImageInputType::height):
(WebCore::ImageInputType::width):
* html/InputType.cpp:
(WebCore::InputType::findClosestTickMarkValue):
* html/InputType.h:
* html/LinkIconCollector.cpp:
* html/LinkRelAttribute.h:
* html/RangeInputType.cpp:
(WebCore::RangeInputType::findClosestTickMarkValue):
* html/RangeInputType.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::restore):
(WebCore::CanvasRenderingContext2D::setStrokeColor):
(WebCore::CanvasRenderingContext2D::setFillColor):
(WebCore::CanvasRenderingContext2D::isPointInPathInternal):
(WebCore::CanvasRenderingContext2D::isPointInStrokeInternal):
(WebCore::CanvasRenderingContext2D::setShadow):
(WebCore::CanvasRenderingContext2D::fillText):
(WebCore::CanvasRenderingContext2D::strokeText):
(WebCore::CanvasRenderingContext2D::drawTextInternal):
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::arrayBufferViewElementSize):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::bufferData):
(WebCore::WebGLRenderingContextBase::bufferSubData):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::validateArrayBufferType):
(WebCore::WebGLRenderingContextBase::validateTexFuncData):
(WebCore::WebGLRenderingContextBase::texImage2D):
* html/canvas/WebGLRenderingContextBase.h:
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::indexOfFirstUnopenFormattingElement):
(WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
* html/parser/HTMLConstructionSite.h:
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseHTMLIntegerInternal):
(WebCore::parseHTMLInteger):
(WebCore::parseHTMLNonNegativeInteger):
(WebCore::parseValidHTMLNonNegativeIntegerInternal):
(WebCore::parseValidHTMLNonNegativeInteger):
(WebCore::parseValidHTMLFloatingPointNumberInternal):
(WebCore::parseValidHTMLFloatingPointNumber):
(WebCore::parseHTTPRefreshInternal):
* html/parser/HTMLParserIdioms.h:
(WebCore::limitToOnlyHTMLNonNegative):
* html/parser/HTMLSrcsetParser.cpp:
(WebCore::parseDescriptors):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint):
(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):
* html/shadow/SliderThumbElement.h:
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::resolveCustomStyle):
(WebCore::TextControlInnerTextElement::resolveCustomStyle):
(WebCore::TextControlPlaceholderElement::resolveCustomStyle):
* html/shadow/TextControlInnerElements.h:
* html/track/TrackEvent.h:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didFinishXHRLoading):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::addRule):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::setInstruments):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startIconLoading):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
(WebCore::DocumentThreadableLoader::clearResource):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::preflightFailure):
* loader/DocumentThreadableLoader.h:
* loader/EmptyClients.cpp:
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::dispatchDidCommitLoad):
(WebCore::FrameLoader::clearTestingOverrides):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::resourceTypeFromAsAttribute):
(WebCore::LinkLoader::loadLink):
* loader/LinkLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::notifyDone):
* loader/SubresourceLoader.h:
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::setLoadPriority):
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::CachedResourceRequest):
* loader/cache/CachedResourceRequest.h:
(WebCore::CachedResourceRequest::priority):
* mathml/MathMLElement.h:
(WebCore::MathMLElement::specifiedDisplayStyle):
(WebCore::MathMLElement::specifiedMathVariant):
* mathml/MathMLFractionElement.cpp:
(WebCore::MathMLFractionElement::cachedFractionAlignment):
(WebCore::MathMLFractionElement::parseAttribute):
* mathml/MathMLFractionElement.h:
* mathml/MathMLMathElement.cpp:
(WebCore::MathMLMathElement::specifiedDisplayStyle):
(WebCore::MathMLMathElement::parseAttribute):
* mathml/MathMLMathElement.h:
* mathml/MathMLMencloseElement.cpp:
(WebCore::MathMLMencloseElement::parseAttribute):
* mathml/MathMLMencloseElement.h:
* mathml/MathMLOperatorDictionary.cpp:
(WebCore::MathMLOperatorDictionary::search):
* mathml/MathMLOperatorDictionary.h:
* mathml/MathMLOperatorElement.cpp:
(WebCore::MathMLOperatorElement::computeOperatorFlag):
(WebCore::MathMLOperatorElement::childrenChanged):
(WebCore::attributeNameToPropertyFlag):
(WebCore::MathMLOperatorElement::parseAttribute):
* mathml/MathMLOperatorElement.h:
* mathml/MathMLPaddedElement.cpp:
(WebCore::MathMLPaddedElement::parseAttribute):
* mathml/MathMLPaddedElement.h:
* mathml/MathMLPresentationElement.cpp:
(WebCore::MathMLPresentationElement::cachedBooleanAttribute):
(WebCore::MathMLPresentationElement::cachedMathMLLength):
(WebCore::MathMLPresentationElement::specifiedDisplayStyle):
(WebCore::MathMLPresentationElement::specifiedMathVariant):
(WebCore::MathMLPresentationElement::parseAttribute):
* mathml/MathMLPresentationElement.h:
(WebCore::MathMLPresentationElement::toOptionalBool):
* mathml/MathMLScriptsElement.cpp:
(WebCore::MathMLScriptsElement::parseAttribute):
* mathml/MathMLScriptsElement.h:
* mathml/MathMLSpaceElement.cpp:
(WebCore::MathMLSpaceElement::parseAttribute):
* mathml/MathMLSpaceElement.h:
* mathml/MathMLTokenElement.cpp:
(WebCore::MathMLTokenElement::convertToSingleCodePoint):
* mathml/MathMLTokenElement.h:
* mathml/MathMLUnderOverElement.cpp:
(WebCore::MathMLUnderOverElement::parseAttribute):
* mathml/MathMLUnderOverElement.h:
* page/ChromeClient.h:
* page/DOMTimer.cpp:
(WebCore::DOMTimer::alignedFireTime):
* page/DOMTimer.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::scrollBy):
* page/DOMWindow.h:
* page/EventSource.cpp:
(WebCore::EventSource::parseEventStream):
(WebCore::EventSource::parseEventStreamLine):
* page/EventSource.h:
* page/FrameView.cpp:
(WebCore::FrameView::recalculateScrollbarOverlayStyle):
(WebCore::FrameView::setLayoutViewportOverrideRect):
(WebCore::FrameView::setViewExposedRect):
* page/FrameView.h:
* page/Page.cpp:
(WebCore::Page::takeAnyMediaCanStartListener):
* page/Page.h:
(WebCore::Page::eventThrottlingBehaviorOverride):
(WebCore::Page::setEventThrottlingBehaviorOverride):
* page/ScrollToOptions.h:
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::create):
* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::port):
* page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::debugString):
(WebCore::SecurityOriginData::databaseIdentifier):
(WebCore::SecurityOriginData::fromDatabaseIdentifier):
* page/SecurityOriginData.h:
(WebCore::SecurityOriginData::SecurityOriginData):
(WebCore::SecurityOriginData::isEmpty):
(WebCore::SecurityOriginDataHash::hash):
* page/SecurityOriginHash.h:
(WebCore::SecurityOriginHash::hash):
* page/WindowFeatures.cpp:
(WebCore::parseDialogFeatures):
(WebCore::boolFeature):
(WebCore::floatFeature):
* page/WindowFeatures.h:
* page/csp/ContentSecurityPolicySource.cpp:
(WebCore::ContentSecurityPolicySource::ContentSecurityPolicySource):
(WebCore::ContentSecurityPolicySource::portMatches):
* page/csp/ContentSecurityPolicySource.h:
* page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::parse):
(WebCore::ContentSecurityPolicySourceList::parseSource):
(WebCore::ContentSecurityPolicySourceList::parsePort):
* page/csp/ContentSecurityPolicySourceList.h:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
* page/scrolling/AsyncScrollingCoordinator.h:
(WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints):
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
(WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
* page/scrolling/ios/ScrollingTreeIOS.cpp:
(WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
* page/scrolling/ios/ScrollingTreeIOS.h:
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
* platform/DragImage.cpp:
* platform/LinkIcon.h:
* platform/MemoryPressureHandler.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange):
* platform/ScrollView.h:
* platform/Theme.h:
(WebCore::Theme::controlFont):
* platform/Timer.h:
(WebCore::TimerBase::alignedFireTime):
* platform/URL.cpp:
(WebCore::URL::port):
(WebCore::defaultPortForProtocol):
(WebCore::portAllowed):
* platform/URL.h:
* platform/URLParser.cpp:
(WebCore::URLParser::defaultPortForProtocol):
(WebCore::findLongestZeroSequence):
(WebCore::URLParser::parseIPv4Piece):
(WebCore::URLParser::parseIPv4Host):
(WebCore::URLParser::parseIPv4PieceInsideIPv6):
(WebCore::URLParser::parseIPv4AddressInsideIPv6):
(WebCore::URLParser::parseIPv6Host):
(WebCore::URLParser::domainToASCII):
(WebCore::URLParser::formURLDecode):
* platform/URLParser.h:
* platform/graphics/BitmapImage.h:
* platform/graphics/Color.h:
(WebCore::colorWithOverrideAlpha):
* platform/graphics/DisplayRefreshMonitorClient.h:
* platform/graphics/Font.h:
* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::drawText):
(WebCore::FontCascade::drawEmphasisMarks):
(WebCore::FontCascade::adjustSelectionRectForText):
(WebCore::FontCascade::getEmphasisMarkGlyphData):
(WebCore::FontCascade::emphasisMarkAscent):
(WebCore::FontCascade::emphasisMarkDescent):
(WebCore::FontCascade::emphasisMarkHeight):
* platform/graphics/FontCascade.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawText):
(WebCore::GraphicsContext::drawEmphasisMarks):
(WebCore::GraphicsContext::drawBidiText):
* platform/graphics/GraphicsContext.h:
(WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setPosition):
(WebCore::GraphicsLayer::setApproximatePosition):
* platform/graphics/Image.h:
(WebCore::Image::hotSpot):
* platform/graphics/ImageBuffer.h:
* platform/graphics/ImageFrameCache.cpp:
(WebCore::ImageFrameCache::clearMetadata):
(WebCore::ImageFrameCache::metadata):
(WebCore::ImageFrameCache::frameMetadataAtIndex):
(WebCore::ImageFrameCache::hotSpot):
* platform/graphics/ImageFrameCache.h:
* platform/graphics/ImageSource.h:
(WebCore::ImageSource::hotSpot):
* platform/graphics/PathUtilities.cpp:
(WebCore::rectFromPolygon):
(WebCore::PathUtilities::pathWithShrinkWrappedRectsForOutline):
* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::calculateLayerBoundingRect):
* platform/graphics/TiledBacking.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::flush):
(WebCore::SourceBufferPrivateAVFObjC::naturalSize):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect):
* platform/graphics/ca/TileController.cpp:
(WebCore::TileController::setLayoutViewportRect):
* platform/graphics/ca/TileController.h:
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::encodeImage):
(WebCore::dataURL):
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::ImageDecoder::hotSpot):
* platform/graphics/cg/ImageDecoderCG.h:
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::openTypeFeature):
(WebCore::advanceForColorBitmapFont):
* platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawGlyphs::localBounds):
(WebCore::DisplayList::DrawLine::localBounds):
(WebCore::DisplayList::DrawLinesForText::localBounds):
(WebCore::DisplayList::DrawLineForDocumentMarker::localBounds):
(WebCore::DisplayList::DrawFocusRingPath::localBounds):
(WebCore::DisplayList::DrawFocusRingRects::localBounds):
(WebCore::DisplayList::StrokeRect::localBounds):
(WebCore::DisplayList::StrokePath::localBounds):
(WebCore::DisplayList::StrokeEllipse::localBounds):
* platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawingItem::localBounds):
* platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::updateItemExtent):
(WebCore::DisplayList::Recorder::ContextState::rotate):
(WebCore::DisplayList::Recorder::ContextState::concatCTM):
* platform/graphics/efl/ImageBufferEfl.cpp:
(WebCore::encodeImageJPEG):
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/filters/Filter.h:
(WebCore::Filter::mapAbsolutePointToLocalPoint):
* platform/graphics/gtk/ImageBufferGtk.cpp:
(WebCore::encodeImage):
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::selectionRect):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::capitalized):
(WebCore::shouldSynthesize):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::replicaTransform):
(WebCore::TextureMapperLayer::mapScrollOffset):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::transformedVisibleRect):
(WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
* platform/graphics/transforms/AffineTransform.cpp:
(WebCore::AffineTransform::inverse):
* platform/graphics/transforms/AffineTransform.h:
* platform/graphics/transforms/TransformState.cpp:
(WebCore::TransformState::mappedPoint):
(WebCore::TransformState::mappedSecondaryQuad):
(WebCore::TransformState::mapQuad):
(WebCore::TransformState::flattenWithTransform):
* platform/graphics/transforms/TransformState.h:
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::inverse):
* platform/graphics/transforms/TransformationMatrix.h:
* platform/graphics/win/ImageBufferDirect2D.cpp:
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/win/ImageDecoderDirect2D.cpp:
(WebCore::ImageDecoder::hotSpot):
* platform/graphics/win/ImageDecoderDirect2D.h:
* platform/graphics/x11/PlatformDisplayX11.cpp:
(WebCore::PlatformDisplayX11::supportsXDamage):
* platform/graphics/x11/PlatformDisplayX11.h:
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageDecoder::hotSpot):
* platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::hotSpot):
(WebCore::ICOImageDecoder::hotSpotAtIndex):
* platform/image-decoders/ico/ICOImageDecoder.h:
* platform/image-encoders/JPEGImageEncoder.cpp:
(WebCore::compressRGBABigEndianToJPEG):
* platform/image-encoders/JPEGImageEncoder.h:
* platform/ios/LegacyTileCache.h:
* platform/ios/LegacyTileCache.mm:
(WebCore::LegacyTileCache::setOverrideVisibleRect):
* platform/ios/LegacyTileLayer.mm:
(-[LegacyTileHostLayer renderInContext:]):
* platform/linux/MemoryPressureHandlerLinux.cpp:
* platform/mac/ThemeMac.h:
* platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::controlFont):
* platform/mediastream/MediaConstraints.cpp:
(WebCore::MediaTrackConstraintSetMap::set):
* platform/mediastream/MediaConstraints.h:
(WebCore::MediaTrackConstraintSetMap::width):
(WebCore::MediaTrackConstraintSetMap::height):
(WebCore::MediaTrackConstraintSetMap::sampleRate):
(WebCore::MediaTrackConstraintSetMap::sampleSize):
(WebCore::MediaTrackConstraintSetMap::aspectRatio):
(WebCore::MediaTrackConstraintSetMap::frameRate):
(WebCore::MediaTrackConstraintSetMap::volume):
(WebCore::MediaTrackConstraintSetMap::echoCancellation):
(WebCore::MediaTrackConstraintSetMap::facingMode):
(WebCore::MediaTrackConstraintSetMap::deviceId):
(WebCore::MediaTrackConstraintSetMap::groupId):
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::supportsSizeAndFrameRate):
(WebCore::RealtimeMediaSource::applySizeAndFrameRate):
(WebCore::RealtimeMediaSource::applyConstraints):
* platform/mediastream/RealtimeMediaSource.h:
* platform/mediastream/mac/AVVideoCaptureSource.h:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::applySizeAndFrameRate):
(WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions):
(WebCore::AVVideoCaptureSource::supportsSizeAndFrameRate):
* platform/mediastream/openwebrtc/MediaEndpointOwr.h:
* platform/network/CacheValidation.cpp:
(WebCore::computeCurrentAge):
(WebCore::computeFreshnessLifetimeForHTTPFamily):
* platform/network/CacheValidation.h:
* platform/network/DataURLDecoder.h:
* platform/network/HTTPHeaderMap.h:
(WebCore::HTTPHeaderMap::HTTPHeaderMapConstIterator::updateKeyValue):
* platform/network/HTTPParsers.cpp:
(WebCore::parseHTTPDate):
* platform/network/HTTPParsers.h:
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::didReceiveResponse):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::cacheControlMaxAge):
(WebCore::parseDateValueInHeader):
(WebCore::ResourceResponseBase::date):
(WebCore::ResourceResponseBase::age):
(WebCore::ResourceResponseBase::expires):
(WebCore::ResourceResponseBase::lastModified):
* platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::certificateInfo):
* platform/network/SocketStreamHandle.h:
* platform/network/SocketStreamHandleClient.h:
* platform/network/cf/SocketStreamHandleImpl.h:
* platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::SocketStreamHandleImpl::readStreamCallback):
(WebCore::SocketStreamHandleImpl::platformSend):
* platform/network/curl/SocketStreamHandleImpl.h:
* platform/network/curl/SocketStreamHandleImplCurl.cpp:
(WebCore::SocketStreamHandleImpl::platformSend):
* platform/network/mac/CookieJarMac.mm:
(WebCore::cookiesInPartitionForURL):
* platform/network/soup/SocketStreamHandleImpl.h:
* platform/network/soup/SocketStreamHandleImplSoup.cpp:
(WebCore::SocketStreamHandleImpl::readBytes):
(WebCore::SocketStreamHandleImpl::platformSend):
* rendering/BreakLines.h:
(WebCore::nextBreakablePositionNonLoosely):
(WebCore::nextBreakablePositionLoosely):
(WebCore::isBreakable):
* rendering/HitTestingTransformState.cpp:
(WebCore::HitTestingTransformState::flattenWithTransform):
* rendering/ImageQualityController.cpp:
(WebCore::ImageQualityController::interpolationQualityFromStyle):
(WebCore::ImageQualityController::chooseInterpolationQuality):
* rendering/ImageQualityController.h:
* rendering/InlineIterator.h:
(WebCore::InlineIterator::moveTo):
(WebCore::InlineIterator::nextBreakablePosition):
(WebCore::InlineIterator::setNextBreakablePosition):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::substringToRender):
(WebCore::InlineTextBox::hyphenatedStringForTextRun):
(WebCore::InlineTextBox::constructTextRun):
* rendering/InlineTextBox.h:
(WebCore::InlineTextBox::substringToRender):
(WebCore::InlineTextBox::hyphenatedStringForTextRun):
(WebCore::InlineTextBox::constructTextRun):
* rendering/OrderIterator.cpp:
(WebCore::OrderIterator::reset):
* rendering/OrderIterator.h:
* rendering/PaintInfo.h:
(WebCore::PaintInfo::applyTransform):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlockRareData::RenderBlockRareData):
(WebCore::RenderBlock::baselinePosition):
(WebCore::RenderBlock::firstLineBaseline):
(WebCore::RenderBlock::inlineBlockBaseline):
(WebCore::RenderBlock::setCachedFlowThreadContainingBlockNeedsUpdate):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::firstLineBaseline):
(WebCore::RenderBlockFlow::inlineBlockBaseline):
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainLogicalHeightByMinMax):
(WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
(WebCore::RenderBox::overrideContainingBlockContentLogicalWidth):
(WebCore::RenderBox::overrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::adjustContentBoxLogicalHeightForBoxSizing):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computeLogicalHeightUsing):
(WebCore::RenderBox::computeContentLogicalHeight):
(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):
(WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
(WebCore::RenderBox::computePercentageLogicalHeight):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::availableLogicalHeight):
(WebCore::RenderBox::availableLogicalHeightUsing):
* rendering/RenderBox.h:
(WebCore::RenderBox::firstLineBaseline):
(WebCore::RenderBox::inlineBlockBaseline):
* rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::computeTextOrigin):
* rendering/RenderCombineText.h:
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::baselinePosition):
(WebCore::RenderFlexibleBox::firstLineBaseline):
(WebCore::RenderFlexibleBox::inlineBlockBaseline):
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
(WebCore::RenderFlexibleBox::marginBoxAscentForChild):
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing):
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
* rendering/RenderFlexibleBox.h:
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::addForcedRegionBreak):
* rendering/RenderGrid.cpp:
(WebCore::GridTrack::setGrowthLimit):
(WebCore::GridTrack::setGrowthLimitCap):
(WebCore::GridTrack::growthLimitCap):
(WebCore::RenderGrid::GridSizingData::freeSpace):
(WebCore::RenderGrid::GridSizingData::availableSpace):
(WebCore::RenderGrid::GridSizingData::setAvailableSpace):
(WebCore::RenderGrid::GridSizingData::setFreeSpace):
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeIntrinsicLogicalContentHeightUsing):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::overrideContainingBlockContentSizeForChild):
(WebCore::setOverrideContainingBlockContentSizeForChild):
(WebCore::RenderGrid::logicalHeightForChild):
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::sortByGridTrackGrowthPotential):
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
(WebCore::RenderGrid::applyStretchAlignmentToTracksIfNeeded):
(WebCore::RenderGrid::layoutGridItems):
* rendering/RenderGrid.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerByApplyingTransform):
(WebCore::RenderLayer::hitTestLayer):
* rendering/RenderLayerBacking.cpp:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintItem):
(WebCore::RenderListBox::listIndexIsVisible):
(WebCore::RenderListBox::computeFirstIndexesVisibleInPaddingTopBottomAreas):
* rendering/RenderListBox.h:
* rendering/RenderMenuList.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
(WebCore::RenderTable::baselinePosition):
(WebCore::RenderTable::inlineBlockBaseline):
(WebCore::RenderTable::firstLineBaseline):
* rendering/RenderTable.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::cellBaselinePosition):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::firstLineBaseline):
* rendering/RenderTableSection.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::RenderText::stringView):
* rendering/RenderText.h:
* rendering/RenderTextControl.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::setSelection):
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::getSelection):
(WebCore::RenderView::clearSelection):
* rendering/RenderView.h:
* rendering/SelectionSubtreeRoot.h:
(WebCore::SelectionSubtreeRoot::SelectionSubtreeData::SelectionSubtreeData):
(WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionStartPos):
(WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionEndPos):
(WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionStartPos):
(WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionEndPos):
(WebCore::SelectionSubtreeRoot::SelectionSubtreeData::clearSelection):
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::LineState::lastFragment):
(WebCore::SimpleLineLayout::closeLineEndingAndAdjustRuns):
(WebCore::SimpleLineLayout::createTextRuns):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
* rendering/line/BreakingContext.h:
(WebCore::WordTrailingSpace::width):
(WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
(WebCore::BreakingContext::InlineIteratorHistory::nextBreakablePosition):
(WebCore::BreakingContext::InlineIteratorHistory::moveTo):
(WebCore::tryHyphenating):
(WebCore::BreakingContext::computeAdditionalBetweenWordsWidth):
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord):
* rendering/mathml/MathMLStyle.cpp:
(WebCore::MathMLStyle::resolveMathMLStyle):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::baselinePosition):
(WebCore::RenderMathMLTable::firstLineBaseline):
* rendering/mathml/RenderMathMLBlock.h:
(WebCore::RenderMathMLBlock::ascentForChild):
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::firstLineBaseline):
* rendering/mathml/RenderMathMLFraction.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::firstLineBaseline):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLPadded.cpp:
(WebCore::RenderMathMLPadded::firstLineBaseline):
* rendering/mathml/RenderMathMLPadded.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::firstLineBaseline):
* rendering/mathml/RenderMathMLRow.h:
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::validateAndGetReferenceChildren):
(WebCore::RenderMathMLScripts::firstLineBaseline):
* rendering/mathml/RenderMathMLScripts.h:
* rendering/mathml/RenderMathMLSpace.cpp:
(WebCore::RenderMathMLSpace::firstLineBaseline):
* rendering/mathml/RenderMathMLSpace.h:
* rendering/mathml/RenderMathMLToken.cpp:
(WebCore::RenderMathMLToken::updateMathVariantGlyph):
(WebCore::RenderMathMLToken::firstLineBaseline):
* rendering/mathml/RenderMathMLToken.h:
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtFloatPoint):
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::nodeAtFloatPoint):
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::nodeAtPoint):
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::setupNonScalingStrokeContext):
(WebCore::RenderSVGShape::nodeAtFloatPoint):
(WebCore::RenderSVGShape::calculateStrokeBoundingBox):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::nodeAtFloatPoint):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::intersectRepaintRectWithShadows):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::clipToImageBuffer):
* rendering/svg/SVGTextQuery.cpp:
(WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
* style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::Parent::Parent):
* style/RenderTreeUpdater.h:
* style/StyleScope.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::parseAttribute):
(WebCore::SVGElement::resolveCustomStyle):
* svg/SVGElement.h:
* svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
(WebCore::SVGToOTFFontConverter::processGlyphElement):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):
(WebCore::convertSVGToOTFFont):
* svg/SVGToOTFFontConversion.h:
* testing/Internals.cpp:
(WebCore::Internals::setEventThrottlingBehaviorOverride):
(WebCore::Internals::eventThrottlingBehaviorOverride):
* testing/Internals.h:
* workers/Worker.h:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::prepareToSend):
(WebCore::XMLHttpRequest::didFinishLoading):
* xml/XMLHttpRequest.h:

Source/WebKit/mac:

Use WTF::Optional::value_or.

* DOM/DOMHTMLOptionsCollection.mm:
(-[DOMHTMLOptionsCollection add:index:]):
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::evaluate):
* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView sendEvent:isDrawRect:]):
* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDidCommitLoad):
* WebCoreSupport/WebPaymentCoordinatorClient.h:
* WebCoreSupport/WebPaymentCoordinatorClient.mm:
(WebPaymentCoordinatorClient::completeShippingMethodSelection):
(WebPaymentCoordinatorClient::completeShippingContactSelection):
(WebPaymentCoordinatorClient::completePaymentMethodSelection):
* WebCoreSupport/WebSecurityOrigin.mm:
(-[WebSecurityOrigin port]):
* WebView/WebHTMLView.mm:
(toAction):
(toTag):

Source/WebKit/win:

Use WTF::Optional::value_or.

* Plugins/PluginView.cpp:
(WebCore::PluginView::performRequest):
* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchDidCommitLoad):
* WebCoreSupport/WebFrameLoaderClient.h:
* WebSecurityOrigin.cpp:
(WebSecurityOrigin::port):

Source/WebKit2:

* NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::didReceiveResponse):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::responseHasExpired):
* NetworkProcess/cache/NetworkCacheCoders.h:
(WebKit::NetworkCache::Coder&lt;std::optional&lt;T&gt;&gt;::encode):
(WebKit::NetworkCache::Coder&lt;std::optional&lt;T&gt;&gt;::decode):
(WebKit::NetworkCache::Coder&lt;Optional&lt;T&gt;&gt;::encode): Deleted.
(WebKit::NetworkCache::Coder&lt;Optional&lt;T&gt;&gt;::decode): Deleted.
* NetworkProcess/cache/NetworkCacheData.cpp:
(WebKit::NetworkCache::readOrMakeSalt):
* NetworkProcess/cache/NetworkCacheData.h:
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::revalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCache::Statistics::recordRetrievalFailure):
(WebKit::NetworkCache::Statistics::queryWasEverRequested):
* NetworkProcess/cache/NetworkCacheStatistics.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::storeBodyAsBlob):
(WebKit::NetworkCache::Storage::encodeRecord):
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
* NetworkProcess/cache/NetworkCacheStorage.h:
* Platform/IPC/ArgumentCoders.h:
(IPC::ArgumentCoder&lt;std::optional&lt;T&gt;&gt;::encode):
(IPC::ArgumentCoder&lt;std::optional&lt;T&gt;&gt;::decode):
(IPC::ArgumentCoder&lt;WTF::Optional&lt;T&gt;&gt;::encode): Deleted.
(IPC::ArgumentCoder&lt;WTF::Optional&lt;T&gt;&gt;::decode): Deleted.
* Platform/IPC/Connection.h:
(IPC::Connection::sendWithReply):
* Platform/SharedMemory.h:
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::map):
* Scripts/webkit/messages.py:
(class_template_headers):
* Shared/API/APISecurityOrigin.h:
(API::SecurityOrigin::create):
* Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
* Shared/API/c/WKSecurityOriginRef.cpp:
(WKSecurityOriginGetPort):
* Shared/SessionState.h:
* Shared/WebPageCreationParameters.h:
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::typeFromObject):
* Shared/mac/SecItemShim.cpp:
(WebKit::sendSecItemRequest):
* UIProcess/API/C/WKKeyValueStorageManager.cpp:
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
* UIProcess/API/Cocoa/WKSecurityOrigin.mm:
(-[WKSecurityOrigin port]):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _navigationGestureDidEnd]):
* UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataType):
* UIProcess/API/efl/EwkView.cpp:
(EwkView::setCursor):
* UIProcess/API/mac/WKView.mm:
(toCoreScrollbarStyle):
(toAPIScrollbarStyle):
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::completeShippingMethodSelection):
(WebKit::WebPaymentCoordinatorProxy::completeShippingContactSelection):
(WebKit::WebPaymentCoordinatorProxy::completePaymentMethodSelection):
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKPaymentSummaryItem):
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection):
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection):
(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection):
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::webFrameIDForHandle):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateViewExposedRect):
(WebKit::WebViewImpl::setOverlayScrollbarStyle):
(WebKit::WebViewImpl::overlayScrollbarStyle):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::setViewExposedRect):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::viewExposedRect):
* UIProcess/InspectorServer/WebSocketServerConnection.cpp:
(WebKit::WebSocketServerConnection::didReceiveSocketStreamData):
* UIProcess/InspectorServer/WebSocketServerConnection.h:
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):
* UIProcess/Scrolling/RemoteScrollingTree.h:
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::fileCreationTime):
(WebKit::fileModificationTime):
* UIProcess/Storage/LocalStorageDatabaseTracker.h:
* UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::backForwardListState):
(WebKit::WebBackForwardList::restoreFromState):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setOverlayScrollbarStyle):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::overlayScrollbarStyle):
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebsiteData/WebsiteDataRecord.h:
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::transformFromScene):
* UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
* UIProcess/gtk/WebPreferencesGtk.cpp:
(WebKit::WebPreferences::platformInitializeStore):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _scrollOffsetForEvent:]):
(-[WKContentView _interpretKeyEvent:isCharEvent:]):
* UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::encodeFormDataElement):
(WebKit::decodeFormDataElement):
(WebKit::decodeV1SessionHistory):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::setViewExposedRect):
* WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::completeShippingMethodSelection):
(WebKit::WebPaymentCoordinator::completeShippingContactSelection):
(WebKit::WebPaymentCoordinator::completePaymentMethodSelection):
* WebProcess/ApplePay/WebPaymentCoordinator.h:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetEventThrottlingBehaviorOverride):
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::convertFromPDFViewToRootView):
(WebKit::PDFPlugin::convertFromPDFViewToScreen):
(WebKit::PDFPlugin::boundsOnScreen):
(WebKit::PDFPlugin::geometryDidChange):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::geometryDidChange):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performFrameLoadURLRequest):
(WebKit::PluginView::evaluate):
* WebProcess/Plugins/WebPluginInfoProvider.cpp:
(WebKit::WebPluginInfoProvider::pluginLoadClientPolicyForHost):
* WebProcess/Plugins/WebPluginInfoProvider.h:
* WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):
* WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toFormData):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::preferredScrollbarOverlayStyle):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::certificateInfo):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::setScrollbarOverlayStyle):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::scrollbarOverlayStyle):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setViewExposedRect):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setViewExposedRect):

Source/WTF:

Import std::optional reference implementation offered by the C++17
original proposal paper. It has the same interface and functionality
to the C++17's one. Previous WTF::Optional lacks several functionalities.
The largest one is the correct constexpr constructors. This fact prevents
us from using Optional&lt;literal type&gt; in constexpr context in WebKit.

In WebKit, we do not allow global constructors. So only the constexpr
constructor is the way to use WTF::Optional in the static const
global variables. WTF::Optional is used in DOMJIT::Effect and
we would like to emit static const global variables that includes
this DOMJIT::Effect. That is the main motivation of this work.
This functionality allows the IDL code generator to emit DOMJIT
signatures as static const global variables.

We import the reference implementation one instead of LLVM libc++'s one.
This is because LLVM libc++'s one depends on many macro and type_traits
offered by libc++ implementation. And adopting it to WebKit requires
large modification compared to this reference implementation one.
Furthermore, it is difficult to compile libc++'s optional in old GCC and VC++.
It also requires some more modifications. To keep the thing simple,
we import the reference implementation one now. Once C++17 is released
and we update the compiler baseline, we can smoothly switch to the standard
library's std::optional.

We also add support for the environment that does not use exceptions to this
reference implementation.

And we also add valueOrCompute helper function. That keeps the extended
functionality that previous WTF::Optional has.

* wtf/CrossThreadQueue.h:
(WTF::CrossThreadQueue&lt;DataType&gt;::tryGetMessage):
* wtf/Expected.h:
(WTF::makeExpected):
* wtf/Forward.h:
* wtf/HashTraits.h:
(WTF::HashTraits&lt;Ref&lt;P&gt;&gt;::take):
* wtf/MainThread.cpp:
(WTF::initializeGCThreads):
(WTF::mayBeGCThread):
* wtf/MainThread.h:
* wtf/Optional.h:
(std::detail_::is_assignable::has_assign):
(std::detail_::has_overloaded_addressof::has_overload):
(std::detail_::static_addressof):
(std::detail_::convert):
(std::nullopt_t::nullopt_t):
(std::bad_optional_access::bad_optional_access):
(std::optional_base::optional_base):
(std::optional_base::~optional_base):
(std::constexpr_optional_base::constexpr_optional_base):
(std::optional::dataptr):
(std::optional::contained_val):
(std::optional::__NOEXCEPT_):
(std::optional::optional):
(std::optional::operator=):
(std::optional::emplace):
(std::optional::operator -&gt;):
(std::optional::operator *):
(std::optional::value):
(std::optional::value_or):
(std::operator==):
(std::operator!=):
(std::operator&lt;):
(std::operator&gt;):
(std::operator&lt;=):
(std::operator&gt;=):
(std::__NOEXCEPT_):
(std::make_optional):
(std::hash&lt;std::optional&lt;T&gt;&gt;::operator()):
(WTF::NulloptTag::NulloptTag): Deleted.
(WTF::Optional::Optional): Deleted.
(WTF::Optional::~Optional): Deleted.
(WTF::Optional::operator=): Deleted.
(WTF::Optional::operator bool): Deleted.
(WTF::Optional::operator-&gt;): Deleted.
(WTF::Optional::operator*): Deleted.
(WTF::Optional::value): Deleted.
(WTF::Optional::valueOr): Deleted.
(WTF::Optional::valueOrCompute): Deleted.
(WTF::Optional::asPtr): Deleted.
(WTF::Optional::destroy): Deleted.
(WTF::operator==): Deleted.
(WTF::operator!=): Deleted.
(WTF::makeOptional): Deleted.
(WTF::printInternal): Deleted.
* wtf/text/StringView.cpp:
(WTF::StringView::GraphemeClusters::Iterator::Impl::Impl):
(WTF::StringView::GraphemeClusters::Iterator::Iterator):
* wtf/text/StringView.h:

Tools:

Use WTF::Optional::value_or.

* DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::stableStateOverride):
(WTR::UIScriptController::setStableStateOverride):
* TestRunnerShared/Bindings/JSWrappable.h:
(WTR::JSValueMakeBooleanOrNull):
(WTR::JSValueToNullableBoolean):
* TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::stableStateOverride):
(WTR::UIScriptController::setStableStateOverride):
* TestRunnerShared/UIScriptContext/UIScriptController.h:
* TestWebKitAPI/Tests/WTF/Optional.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp:
(TestWebKitAPI::testParseHTMLInteger):
(TestWebKitAPI::testParseHTMLNonNegativeInteger):
* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::checkURL):
(TestWebKitAPI::checkRelativeURL):
(TestWebKitAPI::checkURLDifferences):
(TestWebKitAPI::checkRelativeURLDifferences):
* WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::stableStateOverride):
(WTR::UIScriptController::setStableStateOverride):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_templatespy">trunk/Source/JavaScriptCore/Scripts/builtins/builtins_templates.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinPromiseCombinedjsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinPromiseSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinprototypeCombinedjsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinprototypeSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinConstructorCombinedjsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinConstructorSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreInternalClashingNamesCombinedjsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreAnotherGuardedInternalBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreArbitraryConditionalGuardSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedInternalBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreUnguardedBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCorexmlCasingTestSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreassemblerMacroAssemblerARM64h">trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreassemblerMacroAssemblerX86Commonh">trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3CheckSpecialcpp">trunk/Source/JavaScriptCore/b3/B3CheckSpecial.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3CheckSpecialh">trunk/Source/JavaScriptCore/b3/B3CheckSpecial.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3LowerToAircpp">trunk/Source/JavaScriptCore/b3/B3LowerToAir.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3Opcodecpp">trunk/Source/JavaScriptCore/b3/B3Opcode.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3Opcodeh">trunk/Source/JavaScriptCore/b3/B3Opcode.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3PatchpointSpecialcpp">trunk/Source/JavaScriptCore/b3/B3PatchpointSpecial.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3StackmapSpecialcpp">trunk/Source/JavaScriptCore/b3/B3StackmapSpecial.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3StackmapSpecialh">trunk/Source/JavaScriptCore/b3/B3StackmapSpecial.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3Valuecpp">trunk/Source/JavaScriptCore/b3/B3Value.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3airAirArgh">trunk/Source/JavaScriptCore/b3/air/AirArg.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3airAirCustomh">trunk/Source/JavaScriptCore/b3/air/AirCustom.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3airAirFixObviousSpillscpp">trunk/Source/JavaScriptCore/b3/air/AirFixObviousSpills.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3airAirInsth">trunk/Source/JavaScriptCore/b3/air/AirInst.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3airAirInstInlinesh">trunk/Source/JavaScriptCore/b3/air/AirInstInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3airAirIteratedRegisterCoalescingcpp">trunk/Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3airAirSpecialcpp">trunk/Source/JavaScriptCore/b3/air/AirSpecial.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3airAirSpecialh">trunk/Source/JavaScriptCore/b3/air/AirSpecial.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeBytecodeGeneratorificationcpp">trunk/Source/JavaScriptCore/bytecode/BytecodeGeneratorification.cpp</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="#trunkSourceJavaScriptCorebytecodeUnlinkedFunctionExecutablecpp">trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeUnlinkedFunctionExecutableh">trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorh">trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecompilerNodesCodegencpp">trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredebuggerDebuggercpp">trunk/Source/JavaScriptCore/debugger/Debugger.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredebuggerDebuggerCallFramecpp">trunk/Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredebuggerDebuggerParseDatacpp">trunk/Source/JavaScriptCore/debugger/DebuggerParseData.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredebuggerDebuggerParseDatah">trunk/Source/JavaScriptCore/debugger/DebuggerParseData.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredebuggerScriptProfilingScopeh">trunk/Source/JavaScriptCore/debugger/ScriptProfilingScope.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGAbstractInterpreterInlinesh">trunk/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGJITCodecpp">trunk/Source/JavaScriptCore/dfg/DFGJITCode.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGJITCodeh">trunk/Source/JavaScriptCore/dfg/DFGJITCode.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGOperationscpp">trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSlowPathGeneratorh">trunk/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJITcpp">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJITh">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJIT32_64cpp">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJIT64cpp">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGStrengthReductionPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreftlFTLJITCodecpp">trunk/Source/JavaScriptCore/ftl/FTLJITCode.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreftlFTLJITCodeh">trunk/Source/JavaScriptCore/ftl/FTLJITCode.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeapcpp">trunk/Source/JavaScriptCore/heap/Heap.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeaph">trunk/Source/JavaScriptCore/heap/Heap.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeapSnapshotcpp">trunk/Source/JavaScriptCore/heap/HeapSnapshot.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeapSnapshoth">trunk/Source/JavaScriptCore/heap/HeapSnapshot.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorBackendDispatchercpp">trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorBackendDispatcherh">trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorHeapAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorHeapAgenth">trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorremoteRemoteConnectionToTargeth">trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorremoteRemoteConnectionToTargetmm">trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.mm</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorremoteRemoteInspectorh">trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorremoteRemoteInspectormm">trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.mm</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithasyncattributejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithoptionalcallreturnparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedenumvaluesjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedshadowedoptionaltypesettersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationarraytypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationenumtypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtyperequiringruntimecastsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITCodeh">trunk/Source/JavaScriptCore/jit/JITCode.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITDivGeneratorcpp">trunk/Source/JavaScriptCore/jit/JITDivGenerator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITOperationscpp">trunk/Source/JavaScriptCore/jit/JITOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitPCToCodeOriginMapcpp">trunk/Source/JavaScriptCore/jit/PCToCodeOriginMap.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitPCToCodeOriginMaph">trunk/Source/JavaScriptCore/jit/PCToCodeOriginMap.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejsccpp">trunk/Source/JavaScriptCore/jsc.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntSlowPathscpp">trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserModuleAnalyzercpp">trunk/Source/JavaScriptCore/parser/ModuleAnalyzer.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeConcurrentJSLockh">trunk/Source/JavaScriptCore/runtime/ConcurrentJSLock.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeDefinePropertyAttributesh">trunk/Source/JavaScriptCore/runtime/DefinePropertyAttributes.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeGenericArgumentsInlinesh">trunk/Source/JavaScriptCore/runtime/GenericArgumentsInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeHasOwnPropertyCacheh">trunk/Source/JavaScriptCore/runtime/HasOwnPropertyCache.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeHashMapImplh">trunk/Source/JavaScriptCore/runtime/HashMapImpl.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeIdentifierh">trunk/Source/JavaScriptCore/runtime/Identifier.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArraycpp">trunk/Source/JavaScriptCore/runtime/JSArray.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSCJSValuecpp">trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSCJSValueh">trunk/Source/JavaScriptCore/runtime/JSCJSValue.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewConstructorInlinesh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewInlinesh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSModuleRecordcpp">trunk/Source/JavaScriptCore/runtime/JSModuleRecord.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSModuleRecordh">trunk/Source/JavaScriptCore/runtime/JSModuleRecord.h</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="#trunkSourceJavaScriptCoreruntimeJSStringcpp">trunk/Source/JavaScriptCore/runtime/JSString.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSStringh">trunk/Source/JavaScriptCore/runtime/JSString.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeLiteralParsercpp">trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeMathCommonh">trunk/Source/JavaScriptCore/runtime/MathCommon.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeObjectPrototypecpp">trunk/Source/JavaScriptCore/runtime/ObjectPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertyDescriptorh">trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertyNameh">trunk/Source/JavaScriptCore/runtime/PropertyName.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeSamplingProfilercpp">trunk/Source/JavaScriptCore/runtime/SamplingProfiler.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStringObjectcpp">trunk/Source/JavaScriptCore/runtime/StringObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeToNativeFromValueh">trunk/Source/JavaScriptCore/runtime/ToNativeFromValue.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypedArrayAdaptorsh">trunk/Source/JavaScriptCore/runtime/TypedArrayAdaptors.h</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfCrossThreadQueueh">trunk/Source/WTF/wtf/CrossThreadQueue.h</a></li>
<li><a href="#trunkSourceWTFwtfExpectedh">trunk/Source/WTF/wtf/Expected.h</a></li>
<li><a href="#trunkSourceWTFwtfForwardh">trunk/Source/WTF/wtf/Forward.h</a></li>
<li><a href="#trunkSourceWTFwtfHashTraitsh">trunk/Source/WTF/wtf/HashTraits.h</a></li>
<li><a href="#trunkSourceWTFwtfMainThreadcpp">trunk/Source/WTF/wtf/MainThread.cpp</a></li>
<li><a href="#trunkSourceWTFwtfMainThreadh">trunk/Source/WTF/wtf/MainThread.h</a></li>
<li><a href="#trunkSourceWTFwtfOptionalh">trunk/Source/WTF/wtf/Optional.h</a></li>
<li><a href="#trunkSourceWTFwtftextStringViewcpp">trunk/Source/WTF/wtf/text/StringView.cpp</a></li>
<li><a href="#trunkSourceWTFwtftextStringViewh">trunk/Source/WTF/wtf/text/StringView.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepayApplePaySessioncpp">trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepayPaymentContacth">trunk/Source/WebCore/Modules/applepay/PaymentContact.h</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepayPaymentCoordinatorcpp">trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepayPaymentCoordinatorh">trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.h</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepayPaymentCoordinatorClienth">trunk/Source/WebCore/Modules/applepay/PaymentCoordinatorClient.h</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepayPaymentMerchantSessionh">trunk/Source/WebCore/Modules/applepay/PaymentMerchantSession.h</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepayPaymentRequesth">trunk/Source/WebCore/Modules/applepay/PaymentRequest.h</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepaycocoaPaymentContactCocoamm">trunk/Source/WebCore/Modules/applepay/cocoa/PaymentContactCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepaycocoaPaymentMerchantSessionCocoamm">trunk/Source/WebCore/Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreModulesencryptedmediaMediaKeyStatusMapcpp">trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyStatusMap.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesencryptedmediaMediaKeyStatusMaph">trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyStatusMap.h</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchBodycpp">trunk/Source/WebCore/Modules/fetch/FetchBody.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchBodyh">trunk/Source/WebCore/Modules/fetch/FetchBody.h</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchBodyOwnercpp">trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchBodyOwnerh">trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.h</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchHeaderscpp">trunk/Source/WebCore/Modules/fetch/FetchHeaders.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchHeadersh">trunk/Source/WebCore/Modules/fetch/FetchHeaders.h</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchRequestcpp">trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchRequesth">trunk/Source/WebCore/Modules/fetch/FetchRequest.h</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchResponsecpp">trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchResponseh">trunk/Source/WebCore/Modules/fetch/FetchResponse.h</a></li>
<li><a href="#trunkSourceWebCoreModulesgeolocationCoordinatescpp">trunk/Source/WebCore/Modules/geolocation/Coordinates.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesgeolocationCoordinatesh">trunk/Source/WebCore/Modules/geolocation/Coordinates.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBCursorcpp">trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBCursorh">trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseh">trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseIdentifierh">trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBFactorycpp">trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBFactoryh">trunk/Source/WebCore/Modules/indexeddb/IDBFactory.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBIndexcpp">trunk/Source/WebCore/Modules/indexeddb/IDBIndex.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBIndexh">trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBKeyPathh">trunk/Source/WebCore/Modules/indexeddb/IDBKeyPath.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBObjectStorecpp">trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBObjectStoreh">trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBTransactioncpp">trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBTransactionh">trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBVersionChangeEventcpp">trunk/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBVersionChangeEventh">trunk/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverIDBSerializationcpp">trunk/Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverIDBSerializationh">trunk/Source/WebCore/Modules/indexeddb/server/IDBSerialization.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverMemoryIndexcpp">trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndex.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverMemoryIndexh">trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndex.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverMemoryObjectStorecpp">trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverMemoryObjectStoreh">trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverMemoryObjectStoreCursorcpp">trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverMemoryObjectStoreCursorh">trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverSQLiteIDBBackingStorecpp">trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedIDBDatabaseInfocpp">trunk/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedIDBDatabaseInfoh">trunk/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedIDBGetAllRecordsDatah">trunk/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedIDBObjectStoreInfocpp">trunk/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedIDBObjectStoreInfoh">trunk/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsMediaControlsHostcpp">trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsMediaControlsHosth">trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceMediaSourcecpp">trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceMediaSourceh">trunk/Source/WebCore/Modules/mediasource/MediaSource.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackh">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamPeerConnectionBackendcpp">trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamPeerConnectionBackendh">trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCDTMFSendercpp">trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCDTMFSenderh">trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCIceCandidatecpp">trunk/Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCIceCandidateh">trunk/Source/WebCore/Modules/mediastream/RTCIceCandidate.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamSDPProcessorcpp">trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesproximityDeviceProximityEventh">trunk/Source/WebCore/Modules/proximity/DeviceProximityEvent.h</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsReadableStreamSourceh">trunk/Source/WebCore/Modules/streams/ReadableStreamSource.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodecpp">trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodeh">trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebdatabaseSQLResultSeth">trunk/Source/WebCore/Modules/webdatabase/SQLResultSet.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketcpp">trunk/Source/WebCore/Modules/websockets/WebSocket.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketh">trunk/Source/WebCore/Modules/websockets/WebSocket.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketChannelcpp">trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketChannelh">trunk/Source/WebCore/Modules/websockets/WebSocketChannel.h</a></li>
<li><a href="#trunkSourceWebCorebindingsgenericIDLTypesh">trunk/Source/WebCore/bindings/generic/IDLTypes.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsCachedModuleScripth">trunk/Source/WebCore/bindings/js/CachedModuleScript.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsDictionaryh">trunk/Source/WebCore/bindings/js/Dictionary.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsIDBBindingUtilitiescpp">trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsIDBBindingUtilitiesh">trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCryptoKeySerializationJWKcpp">trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCryptoKeySerializationJWKh">trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMConverth">trunk/Source/WebCore/bindings/js/JSDOMConvert.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMIteratorh">trunk/Source/WebCore/bindings/js/JSDOMIterator.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMPromiseh">trunk/Source/WebCore/bindings/js/JSDOMPromise.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp">trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDictionaryh">trunk/Source/WebCore/bindings/js/JSDictionary.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSFileCustomcpp">trunk/Source/WebCore/bindings/js/JSFileCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLAllCollectionCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLCanvasElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSImageConstructorcpp">trunk/Source/WebCore/bindings/js/JSImageConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMediaDevicesCustomcpp">trunk/Source/WebCore/bindings/js/JSMediaDevicesCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSWebKitSubtleCryptoCustomcpp">trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsScriptControllercpp">trunk/Source/WebCore/bindings/js/ScriptController.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSFloat64Arraycpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSFloat64Array.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStandaloneDictionarycpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStandaloneDictionaryh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStandaloneEnumerationcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStandaloneEnumerationh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneEnumeration.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
<li><a href="#trunkSourceWebCorebridgeruntime_arraycpp">trunk/Source/WebCore/bridge/runtime_array.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoAlgorithmRegistrycpp">trunk/Source/WebCore/crypto/CryptoAlgorithmRegistry.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoAlgorithmRegistryh">trunk/Source/WebCore/crypto/CryptoAlgorithmRegistry.h</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeySerializationh">trunk/Source/WebCore/crypto/CryptoKeySerialization.h</a></li>
<li><a href="#trunkSourceWebCorecryptoJsonWebKeyh">trunk/Source/WebCore/crypto/JsonWebKey.h</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_CBCcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_KWcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmHMACcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSAES_PKCS1_v1_5cpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptogcryptCryptoAlgorithmHMACGCryptcpp">trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeyAESh">trunk/Source/WebCore/crypto/keys/CryptoKeyAES.h</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeyHMACh">trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.h</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeyRSAcpp">trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeyRSAh">trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.h</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeySerializationRawcpp">trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeySerializationRawh">trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.h</a></li>
<li><a href="#trunkSourceWebCorecryptomacCryptoAlgorithmHMACMaccpp">trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHMACMac.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptomacCryptoAlgorithmRSASSA_PKCS1_v1_5Maccpp">trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmHmacKeyParamsh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParams.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaOaepParamsh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParams.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFacecpp">trunk/Source/WebCore/css/CSSFontFace.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFaceh">trunk/Source/WebCore/css/CSSFontFace.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFaceSetcpp">trunk/Source/WebCore/css/CSSFontFaceSet.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSPrimitiveValuecpp">trunk/Source/WebCore/css/CSSPrimitiveValue.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSPrimitiveValueh">trunk/Source/WebCore/css/CSSPrimitiveValue.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorecssCSSSegmentedFontFacecpp">trunk/Source/WebCore/css/CSSSegmentedFontFace.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSStyleSheetcpp">trunk/Source/WebCore/css/CSSStyleSheet.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSStyleSheeth">trunk/Source/WebCore/css/CSSStyleSheet.h</a></li>
<li><a href="#trunkSourceWebCorecssFontFacecpp">trunk/Source/WebCore/css/FontFace.cpp</a></li>
<li><a href="#trunkSourceWebCorecssFontFaceh">trunk/Source/WebCore/css/FontFace.h</a></li>
<li><a href="#trunkSourceWebCorecssFontFaceSetcpp">trunk/Source/WebCore/css/FontFaceSet.cpp</a></li>
<li><a href="#trunkSourceWebCorecssFontFaceSeth">trunk/Source/WebCore/css/FontFaceSet.h</a></li>
<li><a href="#trunkSourceWebCorecssMediaQueryEvaluatorcpp">trunk/Source/WebCore/css/MediaQueryEvaluator.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderConverterh">trunk/Source/WebCore/css/StyleBuilderConverter.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderCustomh">trunk/Source/WebCore/css/StyleBuilderCustom.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleRuleImportcpp">trunk/Source/WebCore/css/StyleRuleImport.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParsercpp">trunk/Source/WebCore/css/parser/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParserh">trunk/Source/WebCore/css/parser/CSSParser.h</a></li>
<li><a href="#trunkSourceWebCorecssjitSelectorCompilercpp">trunk/Source/WebCore/cssjit/SelectorCompiler.cpp</a></li>
<li><a href="#trunkSourceWebCoredomCustomElementReactionQueuecpp">trunk/Source/WebCore/dom/CustomElementReactionQueue.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCoredomElementIteratorAssertionsh">trunk/Source/WebCore/dom/ElementIteratorAssertions.h</a></li>
<li><a href="#trunkSourceWebCoredomExceptionOrh">trunk/Source/WebCore/dom/ExceptionOr.h</a></li>
<li><a href="#trunkSourceWebCoredomInlineStyleSheetOwnercpp">trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp</a></li>
<li><a href="#trunkSourceWebCoredomKeyboardEventh">trunk/Source/WebCore/dom/KeyboardEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomLoadableClassicScriptcpp">trunk/Source/WebCore/dom/LoadableClassicScript.cpp</a></li>
<li><a href="#trunkSourceWebCoredomLoadableClassicScripth">trunk/Source/WebCore/dom/LoadableClassicScript.h</a></li>
<li><a href="#trunkSourceWebCoredomLoadableModuleScriptcpp">trunk/Source/WebCore/dom/LoadableModuleScript.cpp</a></li>
<li><a href="#trunkSourceWebCoredomLoadableModuleScripth">trunk/Source/WebCore/dom/LoadableModuleScript.h</a></li>
<li><a href="#trunkSourceWebCoredomLoadableScripth">trunk/Source/WebCore/dom/LoadableScript.h</a></li>
<li><a href="#trunkSourceWebCoredomMessageEventcpp">trunk/Source/WebCore/dom/MessageEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMessageEventh">trunk/Source/WebCore/dom/MessageEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomMutationObservercpp">trunk/Source/WebCore/dom/MutationObserver.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMutationObserverh">trunk/Source/WebCore/dom/MutationObserver.h</a></li>
<li><a href="#trunkSourceWebCoredomProcessingInstructioncpp">trunk/Source/WebCore/dom/ProcessingInstruction.cpp</a></li>
<li><a href="#trunkSourceWebCoredomPseudoElementcpp">trunk/Source/WebCore/dom/PseudoElement.cpp</a></li>
<li><a href="#trunkSourceWebCoredomPseudoElementh">trunk/Source/WebCore/dom/PseudoElement.h</a></li>
<li><a href="#trunkSourceWebCoredomRangeBoundaryPointh">trunk/Source/WebCore/dom/RangeBoundaryPoint.h</a></li>
<li><a href="#trunkSourceWebCoredomScriptElementcpp">trunk/Source/WebCore/dom/ScriptElement.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptElementh">trunk/Source/WebCore/dom/ScriptElement.h</a></li>
<li><a href="#trunkSourceWebCoredomTextDecodercpp">trunk/Source/WebCore/dom/TextDecoder.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTextDecoderh">trunk/Source/WebCore/dom/TextDecoder.h</a></li>
<li><a href="#trunkSourceWebCoredomUserGestureIndicatorcpp">trunk/Source/WebCore/dom/UserGestureIndicator.cpp</a></li>
<li><a href="#trunkSourceWebCoredomUserGestureIndicatorh">trunk/Source/WebCore/dom/UserGestureIndicator.h</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandcpp">trunk/Source/WebCore/editing/CompositeEditCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandh">trunk/Source/WebCore/editing/CompositeEditCommand.h</a></li>
<li><a href="#trunkSourceWebCorefileapiFileh">trunk/Source/WebCore/fileapi/File.h</a></li>
<li><a href="#trunkSourceWebCorehistoryCachedFrameh">trunk/Source/WebCore/history/CachedFrame.h</a></li>
<li><a href="#trunkSourceWebCorehtmlDOMTokenListcpp">trunk/Source/WebCore/html/DOMTokenList.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlDOMTokenListh">trunk/Source/WebCore/html/DOMTokenList.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLCanvasElementcpp">trunk/Source/WebCore/html/HTMLCanvasElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLCanvasElementh">trunk/Source/WebCore/html/HTMLCanvasElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLElementcpp">trunk/Source/WebCore/html/HTMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementcpp">trunk/Source/WebCore/html/HTMLImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementh">trunk/Source/WebCore/html/HTMLImageElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementh">trunk/Source/WebCore/html/HTMLInputElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLLinkElementcpp">trunk/Source/WebCore/html/HTMLLinkElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLLinkElementh">trunk/Source/WebCore/html/HTMLLinkElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOListElementh">trunk/Source/WebCore/html/HTMLOListElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptionsCollectioncpp">trunk/Source/WebCore/html/HTMLOptionsCollection.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptionsCollectionh">trunk/Source/WebCore/html/HTMLOptionsCollection.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementcpp">trunk/Source/WebCore/html/HTMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementh">trunk/Source/WebCore/html/HTMLSelectElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextAreaElementcpp">trunk/Source/WebCore/html/HTMLTextAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlImageInputTypecpp">trunk/Source/WebCore/html/ImageInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlInputTypecpp">trunk/Source/WebCore/html/InputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlInputTypeh">trunk/Source/WebCore/html/InputType.h</a></li>
<li><a href="#trunkSourceWebCorehtmlLinkIconCollectorcpp">trunk/Source/WebCore/html/LinkIconCollector.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlLinkRelAttributeh">trunk/Source/WebCore/html/LinkRelAttribute.h</a></li>
<li><a href="#trunkSourceWebCorehtmlRangeInputTypecpp">trunk/Source/WebCore/html/RangeInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlRangeInputTypeh">trunk/Source/WebCore/html/RangeInputType.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dh">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGL2RenderingContextcpp">trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLConstructionSitecpp">trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLConstructionSiteh">trunk/Source/WebCore/html/parser/HTMLConstructionSite.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLParserIdiomscpp">trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLParserIdiomsh">trunk/Source/WebCore/html/parser/HTMLParserIdioms.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLSrcsetParsercpp">trunk/Source/WebCore/html/parser/HTMLSrcsetParser.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowSliderThumbElementcpp">trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowSliderThumbElementh">trunk/Source/WebCore/html/shadow/SliderThumbElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowTextControlInnerElementscpp">trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowTextControlInnerElementsh">trunk/Source/WebCore/html/shadow/TextControlInnerElements.h</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTrackEventh">trunk/Source/WebCore/html/track/TrackEvent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp">trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorInstrumentationcpp">trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorInstrumentationh">trunk/Source/WebCore/inspector/InspectorInstrumentation.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorStyleSheetcpp">trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorTimelineAgentcpp">trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderDocumentLoadercpp">trunk/Source/WebCore/loader/DocumentLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderDocumentThreadableLoadercpp">trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderDocumentThreadableLoaderh">trunk/Source/WebCore/loader/DocumentThreadableLoader.h</a></li>
<li><a href="#trunkSourceWebCoreloaderEmptyClientscpp">trunk/Source/WebCore/loader/EmptyClients.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderEmptyClientsh">trunk/Source/WebCore/loader/EmptyClients.h</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoaderh">trunk/Source/WebCore/loader/FrameLoader.h</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoaderClienth">trunk/Source/WebCore/loader/FrameLoaderClient.h</a></li>
<li><a href="#trunkSourceWebCoreloaderLinkLoadercpp">trunk/Source/WebCore/loader/LinkLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderLinkLoaderh">trunk/Source/WebCore/loader/LinkLoader.h</a></li>
<li><a href="#trunkSourceWebCoreloaderSubresourceLoadercpp">trunk/Source/WebCore/loader/SubresourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderSubresourceLoaderh">trunk/Source/WebCore/loader/SubresourceLoader.h</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedResourcecpp">trunk/Source/WebCore/loader/cache/CachedResource.cpp</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedResourceh">trunk/Source/WebCore/loader/cache/CachedResource.h</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedResourceRequestcpp">trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedResourceRequesth">trunk/Source/WebCore/loader/cache/CachedResourceRequest.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLElementh">trunk/Source/WebCore/mathml/MathMLElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLFractionElementcpp">trunk/Source/WebCore/mathml/MathMLFractionElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLFractionElementh">trunk/Source/WebCore/mathml/MathMLFractionElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLMathElementcpp">trunk/Source/WebCore/mathml/MathMLMathElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLMathElementh">trunk/Source/WebCore/mathml/MathMLMathElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLMencloseElementcpp">trunk/Source/WebCore/mathml/MathMLMencloseElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLMencloseElementh">trunk/Source/WebCore/mathml/MathMLMencloseElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLOperatorDictionarycpp">trunk/Source/WebCore/mathml/MathMLOperatorDictionary.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLOperatorDictionaryh">trunk/Source/WebCore/mathml/MathMLOperatorDictionary.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLOperatorElementcpp">trunk/Source/WebCore/mathml/MathMLOperatorElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLOperatorElementh">trunk/Source/WebCore/mathml/MathMLOperatorElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLPaddedElementcpp">trunk/Source/WebCore/mathml/MathMLPaddedElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLPaddedElementh">trunk/Source/WebCore/mathml/MathMLPaddedElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLPresentationElementcpp">trunk/Source/WebCore/mathml/MathMLPresentationElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLPresentationElementh">trunk/Source/WebCore/mathml/MathMLPresentationElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLScriptsElementcpp">trunk/Source/WebCore/mathml/MathMLScriptsElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLScriptsElementh">trunk/Source/WebCore/mathml/MathMLScriptsElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLSpaceElementcpp">trunk/Source/WebCore/mathml/MathMLSpaceElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLSpaceElementh">trunk/Source/WebCore/mathml/MathMLSpaceElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLTokenElementcpp">trunk/Source/WebCore/mathml/MathMLTokenElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLTokenElementh">trunk/Source/WebCore/mathml/MathMLTokenElement.h</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLUnderOverElementcpp">trunk/Source/WebCore/mathml/MathMLUnderOverElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLUnderOverElementh">trunk/Source/WebCore/mathml/MathMLUnderOverElement.h</a></li>
<li><a href="#trunkSourceWebCorepageChromeClienth">trunk/Source/WebCore/page/ChromeClient.h</a></li>
<li><a href="#trunkSourceWebCorepageDOMTimercpp">trunk/Source/WebCore/page/DOMTimer.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMTimerh">trunk/Source/WebCore/page/DOMTimer.h</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowcpp">trunk/Source/WebCore/page/DOMWindow.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowh">trunk/Source/WebCore/page/DOMWindow.h</a></li>
<li><a href="#trunkSourceWebCorepageEventSourcecpp">trunk/Source/WebCore/page/EventSource.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventSourceh">trunk/Source/WebCore/page/EventSource.h</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewh">trunk/Source/WebCore/page/FrameView.h</a></li>
<li><a href="#trunkSourceWebCorepagePagecpp">trunk/Source/WebCore/page/Page.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageh">trunk/Source/WebCore/page/Page.h</a></li>
<li><a href="#trunkSourceWebCorepageScrollToOptionsh">trunk/Source/WebCore/page/ScrollToOptions.h</a></li>
<li><a href="#trunkSourceWebCorepageSecurityOrigincpp">trunk/Source/WebCore/page/SecurityOrigin.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSecurityOriginh">trunk/Source/WebCore/page/SecurityOrigin.h</a></li>
<li><a href="#trunkSourceWebCorepageSecurityOriginDatacpp">trunk/Source/WebCore/page/SecurityOriginData.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSecurityOriginDatah">trunk/Source/WebCore/page/SecurityOriginData.h</a></li>
<li><a href="#trunkSourceWebCorepageSecurityOriginHashh">trunk/Source/WebCore/page/SecurityOriginHash.h</a></li>
<li><a href="#trunkSourceWebCorepageWindowFeaturescpp">trunk/Source/WebCore/page/WindowFeatures.cpp</a></li>
<li><a href="#trunkSourceWebCorepageWindowFeaturesh">trunk/Source/WebCore/page/WindowFeatures.h</a></li>
<li><a href="#trunkSourceWebCorepagecspContentSecurityPolicySourcecpp">trunk/Source/WebCore/page/csp/ContentSecurityPolicySource.cpp</a></li>
<li><a href="#trunkSourceWebCorepagecspContentSecurityPolicySourceh">trunk/Source/WebCore/page/csp/ContentSecurityPolicySource.h</a></li>
<li><a href="#trunkSourceWebCorepagecspContentSecurityPolicySourceListcpp">trunk/Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp</a></li>
<li><a href="#trunkSourceWebCorepagecspContentSecurityPolicySourceListh">trunk/Source/WebCore/page/csp/ContentSecurityPolicySourceList.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingAsyncScrollingCoordinatorcpp">trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingAsyncScrollingCoordinatorh">trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingCoordinatorh">trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreecpp">trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeh">trunk/Source/WebCore/page/scrolling/ScrollingTree.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeScrollingNodecpp">trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingThreadedScrollingTreecpp">trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingThreadedScrollingTreeh">trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingTreeFrameScrollingNodeIOSmm">trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingTreeIOScpp">trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingTreeIOSh">trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingTreeFrameScrollingNodeMacmm">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformDragImagecpp">trunk/Source/WebCore/platform/DragImage.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformLinkIconh">trunk/Source/WebCore/platform/LinkIcon.h</a></li>
<li><a href="#trunkSourceWebCoreplatformMemoryPressureHandlerh">trunk/Source/WebCore/platform/MemoryPressureHandler.h</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollViewcpp">trunk/Source/WebCore/platform/ScrollView.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollViewh">trunk/Source/WebCore/platform/ScrollView.h</a></li>
<li><a href="#trunkSourceWebCoreplatformThemeh">trunk/Source/WebCore/platform/Theme.h</a></li>
<li><a href="#trunkSourceWebCoreplatformTimerh">trunk/Source/WebCore/platform/Timer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformURLcpp">trunk/Source/WebCore/platform/URL.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformURLh">trunk/Source/WebCore/platform/URL.h</a></li>
<li><a href="#trunkSourceWebCoreplatformURLParsercpp">trunk/Source/WebCore/platform/URLParser.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformURLParserh">trunk/Source/WebCore/platform/URLParser.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsBitmapImageh">trunk/Source/WebCore/platform/graphics/BitmapImage.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsColorh">trunk/Source/WebCore/platform/graphics/Color.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsDisplayRefreshMonitorClienth">trunk/Source/WebCore/platform/graphics/DisplayRefreshMonitorClient.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFonth">trunk/Source/WebCore/platform/graphics/Font.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontCascadecpp">trunk/Source/WebCore/platform/graphics/FontCascade.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontCascadeh">trunk/Source/WebCore/platform/graphics/FontCascade.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsContextcpp">trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsContexth">trunk/Source/WebCore/platform/graphics/GraphicsContext.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsLayerh">trunk/Source/WebCore/platform/graphics/GraphicsLayer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsImageh">trunk/Source/WebCore/platform/graphics/Image.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsImageBufferh">trunk/Source/WebCore/platform/graphics/ImageBuffer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsImageFrameCachecpp">trunk/Source/WebCore/platform/graphics/ImageFrameCache.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsImageFrameCacheh">trunk/Source/WebCore/platform/graphics/ImageFrameCache.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsImageSourceh">trunk/Source/WebCore/platform/graphics/ImageSource.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsPathUtilitiescpp">trunk/Source/WebCore/platform/graphics/PathUtilities.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsShadowBlurcpp">trunk/Source/WebCore/platform/graphics/ShadowBlur.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsTiledBackingh">trunk/Source/WebCore/platform/graphics/TiledBacking.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCh">trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAcpp">trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaTileControllercpp">trunk/Source/WebCore/platform/graphics/ca/TileController.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaTileControllerh">trunk/Source/WebCore/platform/graphics/ca/TileController.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscairoImageBufferCairocpp">trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscgImageBufferCGcpp">trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscgImageDecoderCGcpp">trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscgImageDecoderCGh">trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaFontCocoamm">trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsdisplaylistsDisplayListItemscpp">trunk/Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsdisplaylistsDisplayListItemsh">trunk/Source/WebCore/platform/graphics/displaylists/DisplayListItems.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsdisplaylistsDisplayListRecordercpp">trunk/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicseflImageBufferEflcpp">trunk/Source/WebCore/platform/graphics/efl/ImageBufferEfl.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFilterh">trunk/Source/WebCore/platform/graphics/filters/Filter.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgtkImageBufferGtkcpp">trunk/Source/WebCore/platform/graphics/gtk/ImageBufferGtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsharfbuzzHarfBuzzShapercpp">trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacComplexTextControllercpp">trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapTextureMapperLayercpp">trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsLayercpp">trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstransformsAffineTransformcpp">trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstransformsAffineTransformh">trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstransformsTransformStatecpp">trunk/Source/WebCore/platform/graphics/transforms/TransformState.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstransformsTransformStateh">trunk/Source/WebCore/platform/graphics/transforms/TransformState.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstransformsTransformationMatrixcpp">trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstransformsTransformationMatrixh">trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicswinImageBufferDirect2Dcpp">trunk/Source/WebCore/platform/graphics/win/ImageBufferDirect2D.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicswinImageDecoderDirect2Dcpp">trunk/Source/WebCore/platform/graphics/win/ImageDecoderDirect2D.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicswinImageDecoderDirect2Dh">trunk/Source/WebCore/platform/graphics/win/ImageDecoderDirect2D.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsx11PlatformDisplayX11cpp">trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsx11PlatformDisplayX11h">trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h</a></li>
<li><a href="#trunkSourceWebCoreplatformimagedecodersImageDecoderh">trunk/Source/WebCore/platform/image-decoders/ImageDecoder.h</a></li>
<li><a href="#trunkSourceWebCoreplatformimagedecodersicoICOImageDecodercpp">trunk/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformimagedecodersicoICOImageDecoderh">trunk/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h</a></li>
<li><a href="#trunkSourceWebCoreplatformimageencodersJPEGImageEncodercpp">trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformimageencodersJPEGImageEncoderh">trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h</a></li>
<li><a href="#trunkSourceWebCoreplatformiosLegacyTileCacheh">trunk/Source/WebCore/platform/ios/LegacyTileCache.h</a></li>
<li><a href="#trunkSourceWebCoreplatformiosLegacyTileCachemm">trunk/Source/WebCore/platform/ios/LegacyTileCache.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosLegacyTileLayermm">trunk/Source/WebCore/platform/ios/LegacyTileLayer.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformlinuxMemoryPressureHandlerLinuxcpp">trunk/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmacThemeMach">trunk/Source/WebCore/platform/mac/ThemeMac.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmacThemeMacmm">trunk/Source/WebCore/platform/mac/ThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaConstraintscpp">trunk/Source/WebCore/platform/mediastream/MediaConstraints.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaConstraintsh">trunk/Source/WebCore/platform/mediastream/MediaConstraints.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourcecpp">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceh">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourceh">trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourcemm">trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcMediaEndpointOwrh">trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkCacheValidationcpp">trunk/Source/WebCore/platform/network/CacheValidation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkCacheValidationh">trunk/Source/WebCore/platform/network/CacheValidation.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkDataURLDecoderh">trunk/Source/WebCore/platform/network/DataURLDecoder.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkHTTPHeaderMaph">trunk/Source/WebCore/platform/network/HTTPHeaderMap.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkHTTPParserscpp">trunk/Source/WebCore/platform/network/HTTPParsers.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkHTTPParsersh">trunk/Source/WebCore/platform/network/HTTPParsers.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkResourceHandlecpp">trunk/Source/WebCore/platform/network/ResourceHandle.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkResourceResponseBasecpp">trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkResourceResponseBaseh">trunk/Source/WebCore/platform/network/ResourceResponseBase.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkSocketStreamHandleh">trunk/Source/WebCore/platform/network/SocketStreamHandle.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkSocketStreamHandleClienth">trunk/Source/WebCore/platform/network/SocketStreamHandleClient.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfSocketStreamHandleImplh">trunk/Source/WebCore/platform/network/cf/SocketStreamHandleImpl.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfSocketStreamHandleImplCFNetcpp">trunk/Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcurlSocketStreamHandleImplh">trunk/Source/WebCore/platform/network/curl/SocketStreamHandleImpl.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcurlSocketStreamHandleImplCurlcpp">trunk/Source/WebCore/platform/network/curl/SocketStreamHandleImplCurl.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacCookieJarMacmm">trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworksoupSocketStreamHandleImplh">trunk/Source/WebCore/platform/network/soup/SocketStreamHandleImpl.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworksoupSocketStreamHandleImplSoupcpp">trunk/Source/WebCore/platform/network/soup/SocketStreamHandleImplSoup.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingBreakLinesh">trunk/Source/WebCore/rendering/BreakLines.h</a></li>
<li><a href="#trunkSourceWebCorerenderingHitTestingTransformStatecpp">trunk/Source/WebCore/rendering/HitTestingTransformState.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingImageQualityControllercpp">trunk/Source/WebCore/rendering/ImageQualityController.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingImageQualityControllerh">trunk/Source/WebCore/rendering/ImageQualityController.h</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineIteratorh">trunk/Source/WebCore/rendering/InlineIterator.h</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineTextBoxcpp">trunk/Source/WebCore/rendering/InlineTextBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineTextBoxh">trunk/Source/WebCore/rendering/InlineTextBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingOrderIteratorcpp">trunk/Source/WebCore/rendering/OrderIterator.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingOrderIteratorh">trunk/Source/WebCore/rendering/OrderIterator.h</a></li>
<li><a href="#trunkSourceWebCorerenderingPaintInfoh">trunk/Source/WebCore/rendering/PaintInfo.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockh">trunk/Source/WebCore/rendering/RenderBlock.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockFlowcpp">trunk/Source/WebCore/rendering/RenderBlockFlow.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockFlowh">trunk/Source/WebCore/rendering/RenderBlockFlow.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxh">trunk/Source/WebCore/rendering/RenderBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderCombineTextcpp">trunk/Source/WebCore/rendering/RenderCombineText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderCombineTexth">trunk/Source/WebCore/rendering/RenderCombineText.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderDeprecatedFlexibleBoxcpp">trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFlexibleBoxcpp">trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFlexibleBoxh">trunk/Source/WebCore/rendering/RenderFlexibleBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFlowThreadcpp">trunk/Source/WebCore/rendering/RenderFlowThread.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderGridcpp">trunk/Source/WebCore/rendering/RenderGrid.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderGridh">trunk/Source/WebCore/rendering/RenderGrid.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListBoxcpp">trunk/Source/WebCore/rendering/RenderListBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListBoxh">trunk/Source/WebCore/rendering/RenderListBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMenuListh">trunk/Source/WebCore/rendering/RenderMenuList.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMultiColumnSetcpp">trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTablecpp">trunk/Source/WebCore/rendering/RenderTable.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTableh">trunk/Source/WebCore/rendering/RenderTable.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTableCellcpp">trunk/Source/WebCore/rendering/RenderTableCell.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTableSectioncpp">trunk/Source/WebCore/rendering/RenderTableSection.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTableSectionh">trunk/Source/WebCore/rendering/RenderTableSection.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextcpp">trunk/Source/WebCore/rendering/RenderText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTexth">trunk/Source/WebCore/rendering/RenderText.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlh">trunk/Source/WebCore/rendering/RenderTextControl.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderViewcpp">trunk/Source/WebCore/rendering/RenderView.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderViewh">trunk/Source/WebCore/rendering/RenderView.h</a></li>
<li><a href="#trunkSourceWebCorerenderingSelectionSubtreeRooth">trunk/Source/WebCore/rendering/SelectionSubtreeRoot.h</a></li>
<li><a href="#trunkSourceWebCorerenderingSimpleLineLayoutcpp">trunk/Source/WebCore/rendering/SimpleLineLayout.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingSimpleLineLayoutFunctionscpp">trunk/Source/WebCore/rendering/SimpleLineLayoutFunctions.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderinglineBreakingContexth">trunk/Source/WebCore/rendering/line/BreakingContext.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlMathMLStylecpp">trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLBlockcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLBlockh">trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLFractioncpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLFractionh">trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLOperatorh">trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLPaddedcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLPaddedh">trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLRowcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLRowh">trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLScriptsh">trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLSpacecpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLSpaceh">trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLTokencpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLTokenh">trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGContainercpp">trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGForeignObjectcpp">trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGImagecpp">trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGResourceClippercpp">trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGResourceFiltercpp">trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGRootcpp">trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGShapecpp">trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGTextcpp">trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGRenderSupportcpp">trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGRenderingContextcpp">trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextQuerycpp">trunk/Source/WebCore/rendering/svg/SVGTextQuery.cpp</a></li>
<li><a href="#trunkSourceWebCorestyleRenderTreeUpdatercpp">trunk/Source/WebCore/style/RenderTreeUpdater.cpp</a></li>
<li><a href="#trunkSourceWebCorestyleRenderTreeUpdaterh">trunk/Source/WebCore/style/RenderTreeUpdater.h</a></li>
<li><a href="#trunkSourceWebCorestyleStyleScopeh">trunk/Source/WebCore/style/StyleScope.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGElementcpp">trunk/Source/WebCore/svg/SVGElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGElementh">trunk/Source/WebCore/svg/SVGElement.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGToOTFFontConversioncpp">trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGToOTFFontConversionh">trunk/Source/WebCore/svg/SVGToOTFFontConversion.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsh">trunk/Source/WebCore/testing/Internals.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerh">trunk/Source/WebCore/workers/Worker.h</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestcpp">trunk/Source/WebCore/xml/XMLHttpRequest.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequesth">trunk/Source/WebCore/xml/XMLHttpRequest.h</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacDOMDOMHTMLOptionsCollectionmm">trunk/Source/WebKit/mac/DOM/DOMHTMLOptionsCollection.mm</a></li>
<li><a href="#trunkSourceWebKitmacPluginsHostedNetscapePluginInstanceProxymm">trunk/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm</a></li>
<li><a href="#trunkSourceWebKitmacPluginsWebNetscapePluginViewmm">trunk/Source/WebKit/mac/Plugins/WebNetscapePluginView.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClienth">trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebPaymentCoordinatorClienth">trunk/Source/WebKit/mac/WebCoreSupport/WebPaymentCoordinatorClient.h</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebPaymentCoordinatorClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebPaymentCoordinatorClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebSecurityOriginmm">trunk/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebHTMLViewmm">trunk/Source/WebKit/mac/WebView/WebHTMLView.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinPluginsPluginViewcpp">trunk/Source/WebKit/win/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebFrameLoaderClienth">trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h</a></li>
<li><a href="#trunkSourceWebKitwinWebSecurityOrigincpp">trunk/Source/WebKit/win/WebSecurityOrigin.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkDataTaskcpp">trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkLoadh">trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCachecpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheCodersh">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheDatacpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheDatah">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadManagercpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadManagerh">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheStatisticscpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatistics.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheStatisticsh">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatistics.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheStoragecpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheStorageh">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCArgumentCodersh">trunk/Source/WebKit2/Platform/IPC/ArgumentCoders.h</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCConnectionh">trunk/Source/WebKit2/Platform/IPC/Connection.h</a></li>
<li><a href="#trunkSourceWebKit2PlatformSharedMemoryh">trunk/Source/WebKit2/Platform/SharedMemory.h</a></li>
<li><a href="#trunkSourceWebKit2PlatformunixSharedMemoryUnixcpp">trunk/Source/WebKit2/Platform/unix/SharedMemoryUnix.cpp</a></li>
<li><a href="#trunkSourceWebKit2Scriptswebkitmessagespy">trunk/Source/WebKit2/Scripts/webkit/messages.py</a></li>
<li><a href="#trunkSourceWebKit2SharedAPIAPISecurityOriginh">trunk/Source/WebKit2/Shared/API/APISecurityOrigin.h</a></li>
<li><a href="#trunkSourceWebKit2SharedAPICocoa_WKRemoteObjectInterfacemm">trunk/Source/WebKit2/Shared/API/Cocoa/_WKRemoteObjectInterface.mm</a></li>
<li><a href="#trunkSourceWebKit2SharedAPIcWKSecurityOriginRefcpp">trunk/Source/WebKit2/Shared/API/c/WKSecurityOriginRef.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedSessionStateh">trunk/Source/WebKit2/Shared/SessionState.h</a></li>
<li><a href="#trunkSourceWebKit2SharedWebPageCreationParametersh">trunk/Source/WebKit2/Shared/WebPageCreationParameters.h</a></li>
<li><a href="#trunkSourceWebKit2SharedmacObjCObjectGraphmm">trunk/Source/WebKit2/Shared/mac/ObjCObjectGraph.mm</a></li>
<li><a href="#trunkSourceWebKit2SharedmacSecItemShimcpp">trunk/Source/WebKit2/Shared/mac/SecItemShim.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKKeyValueStorageManagercpp">trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKSecurityOriginmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebsiteDataRecordInternalh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIeflEwkViewcpp">trunk/Source/WebKit2/UIProcess/API/efl/EwkView.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewmm">trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessApplePayWebPaymentCoordinatorProxycpp">trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessApplePayWebPaymentCoordinatorProxyh">trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessApplePayWebPaymentCoordinatorProxymessagesin">trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in</a></li>
<li><a href="#trunkSourceWebKit2UIProcessApplePaycocoaWebPaymentCoordinatorProxyCocoamm">trunk/Source/WebKit2/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAutomationWebAutomationSessioncpp">trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAutomationWebAutomationSessionh">trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaWebViewImplh">trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaWebViewImplmm">trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessDrawingAreaProxycpp">trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessDrawingAreaProxyh">trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessInspectorServerWebSocketServerConnectioncpp">trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessInspectorServerWebSocketServerConnectionh">trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxycpp">trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxyh">trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreecpp">trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreeh">trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessStorageLocalStorageDatabaseTrackercpp">trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessStorageLocalStorageDatabaseTrackerh">trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessUserMediaPermissionRequestManagerProxycpp">trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebBackForwardListcpp">trunk/Source/WebKit2/UIProcess/WebBackForwardList.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxyh">trunk/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxymessagesin">trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebsiteDataWebsiteDataRecordh">trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataRecord.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcesseflWebViewcpp">trunk/Source/WebKit2/UIProcess/efl/WebView.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessgtkAcceleratedBackingStoreX11cpp">trunk/Source/WebKit2/UIProcess/gtk/AcceleratedBackingStoreX11.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessgtkWebPreferencesGtkcpp">trunk/Source/WebKit2/UIProcess/gtk/WebPreferencesGtk.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKContentViewInteractionmm">trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacLegacySessionStateCodingcpp">trunk/Source/WebKit2/UIProcess/mac/LegacySessionStateCoding.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacRemoteLayerTreeDrawingAreaProxyh">trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacRemoteLayerTreeDrawingAreaProxymm">trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessApplePayWebPaymentCoordinatorcpp">trunk/Source/WebKit2/WebProcess/ApplePay/WebPaymentCoordinator.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessApplePayWebPaymentCoordinatorh">trunk/Source/WebKit2/WebProcess/ApplePay/WebPaymentCoordinator.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagecpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewcpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsWebPluginInfoProvidercpp">trunk/Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsWebPluginInfoProviderh">trunk/Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessScrollingRemoteScrollingCoordinatormm">trunk/Source/WebKit2/WebProcess/Scrolling/RemoteScrollingCoordinator.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportSessionStateConversioncpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/SessionStateConversion.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClienth">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClienth">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageDrawingAreah">trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageDrawingAreamessagesin">trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.messages.in</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebFramecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPageh">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagemessagesin">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacRemoteLayerTreeDrawingAreah">trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacRemoteLayerTreeDrawingAreamm">trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacTiledCoreAnimationDrawingAreah">trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacTiledCoreAnimationDrawingAreamm">trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreeiosUIScriptControllerIOSmm">trunk/Tools/DumpRenderTree/ios/UIScriptControllerIOS.mm</a></li>
<li><a href="#trunkToolsTestRunnerSharedBindingsJSWrappableh">trunk/Tools/TestRunnerShared/Bindings/JSWrappable.h</a></li>
<li><a href="#trunkToolsTestRunnerSharedUIScriptContextUIScriptControllercpp">trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.cpp</a></li>
<li><a href="#trunkToolsTestRunnerSharedUIScriptContextUIScriptControllerh">trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.h</a></li>
<li><a href="#trunkToolsTestWebKitAPITestsWTFOptionalcpp">trunk/Tools/TestWebKitAPI/Tests/WTF/Optional.cpp</a></li>
<li><a href="#trunkToolsTestWebKitAPITestsWebCoreHTMLParserIdiomscpp">trunk/Tools/TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp</a></li>
<li><a href="#trunkToolsTestWebKitAPITestsWebCoreURLParsercpp">trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunneriosUIScriptControllerIOSmm">trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1,3 +1,247 @@
</span><ins>+2016-11-26  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
+
+        [WTF] Import std::optional reference implementation as WTF::Optional
+        https://bugs.webkit.org/show_bug.cgi?id=164199
+
+        Reviewed by Saam Barati and Sam Weinig.
+
+        Previous WTF::Optional::operator= is not compatible to std::optional::operator=.
+        std::optional::emplace has the same semantics to the previous one.
+        So we change the code to use it.
+
+        * Scripts/builtins/builtins_templates.py:
+        * Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
+        * Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
+        * assembler/MacroAssemblerARM64.h:
+        (JSC::MacroAssemblerARM64::commuteCompareToZeroIntoTest):
+        * assembler/MacroAssemblerX86Common.h:
+        (JSC::MacroAssemblerX86Common::commuteCompareToZeroIntoTest):
+        * b3/B3CheckSpecial.cpp:
+        (JSC::B3::CheckSpecial::forEachArg):
+        (JSC::B3::CheckSpecial::shouldTryAliasingDef):
+        * b3/B3CheckSpecial.h:
+        * b3/B3LowerToAir.cpp:
+        (JSC::B3::Air::LowerToAir::scaleForShl):
+        (JSC::B3::Air::LowerToAir::effectiveAddr):
+        (JSC::B3::Air::LowerToAir::tryAppendLea):
+        * b3/B3Opcode.cpp:
+        (JSC::B3::invertedCompare):
+        * b3/B3Opcode.h:
+        * b3/B3PatchpointSpecial.cpp:
+        (JSC::B3::PatchpointSpecial::forEachArg):
+        * b3/B3StackmapSpecial.cpp:
+        (JSC::B3::StackmapSpecial::forEachArgImpl):
+        * b3/B3StackmapSpecial.h:
+        * b3/B3Value.cpp:
+        (JSC::B3::Value::invertedCompare):
+        * b3/air/AirArg.h:
+        (JSC::B3::Air::Arg::isValidScale):
+        (JSC::B3::Air::Arg::isValidAddrForm):
+        (JSC::B3::Air::Arg::isValidIndexForm):
+        (JSC::B3::Air::Arg::isValidForm):
+        * b3/air/AirCustom.h:
+        (JSC::B3::Air::PatchCustom::shouldTryAliasingDef):
+        * b3/air/AirFixObviousSpills.cpp:
+        * b3/air/AirInst.h:
+        * b3/air/AirInstInlines.h:
+        (JSC::B3::Air::Inst::shouldTryAliasingDef):
+        * b3/air/AirIteratedRegisterCoalescing.cpp:
+        * b3/air/AirSpecial.cpp:
+        (JSC::B3::Air::Special::shouldTryAliasingDef):
+        * b3/air/AirSpecial.h:
+        * bytecode/BytecodeGeneratorification.cpp:
+        (JSC::BytecodeGeneratorification::storageForGeneratorLocal):
+        * bytecode/CodeBlock.cpp:
+        (JSC::CodeBlock::findPC):
+        (JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex):
+        * bytecode/CodeBlock.h:
+        * bytecode/UnlinkedFunctionExecutable.cpp:
+        (JSC::UnlinkedFunctionExecutable::link):
+        * bytecode/UnlinkedFunctionExecutable.h:
+        * bytecompiler/BytecodeGenerator.h:
+        * bytecompiler/NodesCodegen.cpp:
+        (JSC::PropertyListNode::emitPutConstantProperty):
+        (JSC::ObjectPatternNode::bindValue):
+        * debugger/Debugger.cpp:
+        (JSC::Debugger::resolveBreakpoint):
+        * debugger/DebuggerCallFrame.cpp:
+        (JSC::DebuggerCallFrame::currentPosition):
+        * debugger/DebuggerParseData.cpp:
+        (JSC::DebuggerPausePositions::breakpointLocationForLineColumn):
+        * debugger/DebuggerParseData.h:
+        * debugger/ScriptProfilingScope.h:
+        * dfg/DFGAbstractInterpreterInlines.h:
+        (JSC::DFG::AbstractInterpreter&lt;AbstractStateType&gt;::executeEffects):
+        (JSC::DFG::AbstractInterpreter&lt;AbstractStateType&gt;::executeDoubleUnaryOpEffects):
+        * dfg/DFGJITCode.cpp:
+        (JSC::DFG::JITCode::findPC):
+        * dfg/DFGJITCode.h:
+        * dfg/DFGOperations.cpp:
+        (JSC::DFG::operationPutByValInternal):
+        * dfg/DFGSlowPathGenerator.h:
+        (JSC::DFG::SlowPathGenerator::generate):
+        * dfg/DFGSpeculativeJIT.cpp:
+        (JSC::DFG::SpeculativeJIT::runSlowPathGenerators):
+        (JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
+        (JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
+        (JSC::DFG::SpeculativeJIT::compileMathIC):
+        (JSC::DFG::SpeculativeJIT::compileArithDiv):
+        (JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
+        * dfg/DFGSpeculativeJIT.h:
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+        * dfg/DFGSpeculativeJIT64.cpp:
+        (JSC::DFG::SpeculativeJIT::compileLogicalNot):
+        (JSC::DFG::SpeculativeJIT::emitBranch):
+        (JSC::DFG::SpeculativeJIT::compile):
+        * dfg/DFGStrengthReductionPhase.cpp:
+        (JSC::DFG::StrengthReductionPhase::handleNode):
+        * ftl/FTLJITCode.cpp:
+        (JSC::FTL::JITCode::findPC):
+        * ftl/FTLJITCode.h:
+        * heap/Heap.cpp:
+        (JSC::Heap::collectAsync):
+        (JSC::Heap::collectSync):
+        (JSC::Heap::collectInThread):
+        (JSC::Heap::requestCollection):
+        (JSC::Heap::willStartCollection):
+        (JSC::Heap::didFinishCollection):
+        (JSC::Heap::shouldDoFullCollection):
+        * heap/Heap.h:
+        (JSC::Heap::collectionScope):
+        * heap/HeapSnapshot.cpp:
+        (JSC::HeapSnapshot::nodeForCell):
+        (JSC::HeapSnapshot::nodeForObjectIdentifier):
+        * heap/HeapSnapshot.h:
+        * inspector/InspectorBackendDispatcher.cpp:
+        (Inspector::BackendDispatcher::dispatch):
+        (Inspector::BackendDispatcher::sendPendingErrors):
+        (Inspector::BackendDispatcher::reportProtocolError):
+        * inspector/InspectorBackendDispatcher.h:
+        * inspector/agents/InspectorHeapAgent.cpp:
+        (Inspector::InspectorHeapAgent::nodeForHeapObjectIdentifier):
+        (Inspector::InspectorHeapAgent::getPreview):
+        (Inspector::InspectorHeapAgent::getRemoteObject):
+        * inspector/agents/InspectorHeapAgent.h:
+        * inspector/remote/RemoteConnectionToTarget.h:
+        * inspector/remote/RemoteConnectionToTarget.mm:
+        (Inspector::RemoteConnectionToTarget::targetIdentifier):
+        (Inspector::RemoteConnectionToTarget::setup):
+        * inspector/remote/RemoteInspector.h:
+        * inspector/remote/RemoteInspector.mm:
+        (Inspector::RemoteInspector::updateClientCapabilities):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
+        (_generate_declarations_for_enum_conversion_methods):
+        (_generate_declarations_for_enum_conversion_methods.return_type_with_export_macro):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
+        (CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain.generate_conversion_method_body):
+        * inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
+        * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
+        * inspector/scripts/tests/expected/enum-values.json-result:
+        * inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
+        * inspector/scripts/tests/expected/type-declaration-array-type.json-result:
+        * inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
+        * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
+        * jit/JITCode.h:
+        (JSC::JITCode::findPC):
+        * jit/JITDivGenerator.cpp:
+        (JSC::JITDivGenerator::generateFastPath):
+        * jit/JITOperations.cpp:
+        * jit/PCToCodeOriginMap.cpp:
+        (JSC::PCToCodeOriginMap::findPC):
+        * jit/PCToCodeOriginMap.h:
+        * jsc.cpp:
+        (WTF::RuntimeArray::getOwnPropertySlot):
+        * llint/LLIntSlowPaths.cpp:
+        (JSC::LLInt::LLINT_SLOW_PATH_DECL):
+        * parser/ModuleAnalyzer.cpp:
+        (JSC::ModuleAnalyzer::exportVariable):
+        * runtime/ConcurrentJSLock.h:
+        (JSC::ConcurrentJSLocker::ConcurrentJSLocker):
+        * runtime/DefinePropertyAttributes.h:
+        (JSC::DefinePropertyAttributes::writable):
+        (JSC::DefinePropertyAttributes::configurable):
+        (JSC::DefinePropertyAttributes::enumerable):
+        * runtime/GenericArgumentsInlines.h:
+        (JSC::GenericArguments&lt;Type&gt;::getOwnPropertySlot):
+        (JSC::GenericArguments&lt;Type&gt;::put):
+        (JSC::GenericArguments&lt;Type&gt;::deleteProperty):
+        (JSC::GenericArguments&lt;Type&gt;::defineOwnProperty):
+        * runtime/HasOwnPropertyCache.h:
+        (JSC::HasOwnPropertyCache::get):
+        * runtime/HashMapImpl.h:
+        (JSC::concurrentJSMapHash):
+        * runtime/Identifier.h:
+        (JSC::parseIndex):
+        * runtime/JSArray.cpp:
+        (JSC::JSArray::defineOwnProperty):
+        * runtime/JSCJSValue.cpp:
+        (JSC::JSValue::toNumberFromPrimitive):
+        (JSC::JSValue::putToPrimitive):
+        * runtime/JSCJSValue.h:
+        * runtime/JSGenericTypedArrayView.h:
+        (JSC::JSGenericTypedArrayView::toAdaptorNativeFromValueWithoutCoercion):
+        * runtime/JSGenericTypedArrayViewConstructorInlines.h:
+        (JSC::constructGenericTypedArrayViewWithArguments):
+        (JSC::constructGenericTypedArrayView):
+        * runtime/JSGenericTypedArrayViewInlines.h:
+        (JSC::JSGenericTypedArrayView&lt;Adaptor&gt;::getOwnPropertySlot):
+        (JSC::JSGenericTypedArrayView&lt;Adaptor&gt;::put):
+        * runtime/JSModuleRecord.cpp:
+        * runtime/JSModuleRecord.h:
+        * runtime/JSObject.cpp:
+        (JSC::JSObject::putDirectAccessor):
+        (JSC::JSObject::deleteProperty):
+        (JSC::JSObject::putDirectMayBeIndex):
+        (JSC::JSObject::defineOwnProperty):
+        * runtime/JSObject.h:
+        (JSC::JSObject::getOwnPropertySlot):
+        (JSC::JSObject::getPropertySlot):
+        (JSC::JSObject::putOwnDataPropertyMayBeIndex):
+        * runtime/JSObjectInlines.h:
+        (JSC::JSObject::putInline):
+        * runtime/JSString.cpp:
+        (JSC::JSString::getStringPropertyDescriptor):
+        * runtime/JSString.h:
+        (JSC::JSString::getStringPropertySlot):
+        * runtime/LiteralParser.cpp:
+        (JSC::LiteralParser&lt;CharType&gt;::parse):
+        * runtime/MathCommon.h:
+        (JSC::safeReciprocalForDivByConst):
+        * runtime/ObjectPrototype.cpp:
+        (JSC::objectProtoFuncHasOwnProperty):
+        * runtime/PropertyDescriptor.h:
+        (JSC::toPropertyDescriptor):
+        * runtime/PropertyName.h:
+        (JSC::parseIndex):
+        * runtime/SamplingProfiler.cpp:
+        (JSC::SamplingProfiler::processUnverifiedStackTraces):
+        * runtime/StringObject.cpp:
+        (JSC::StringObject::put):
+        (JSC::isStringOwnProperty):
+        (JSC::StringObject::deleteProperty):
+        * runtime/ToNativeFromValue.h:
+        (JSC::toNativeFromValueWithoutCoercion):
+        * runtime/TypedArrayAdaptors.h:
+        (JSC::IntegralTypedArrayAdaptor::toNativeFromInt32WithoutCoercion):
+        (JSC::IntegralTypedArrayAdaptor::toNativeFromUint32WithoutCoercion):
+        (JSC::IntegralTypedArrayAdaptor::toNativeFromDoubleWithoutCoercion):
+        (JSC::FloatTypedArrayAdaptor::toNativeFromInt32WithoutCoercion):
+        (JSC::FloatTypedArrayAdaptor::toNativeFromDoubleWithoutCoercion):
+        (JSC::Uint8ClampedAdaptor::toNativeFromInt32WithoutCoercion):
+        (JSC::Uint8ClampedAdaptor::toNativeFromDoubleWithoutCoercion):
+
</ins><span class="cx"> 2016-11-26  Sam Weinig  &lt;sam@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Convert IntersectionObserver over to using RuntimeEnabledFeatures so it can be properly excluded from script
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_templatespy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/builtins/builtins_templates.py (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/builtins/builtins_templates.py        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/builtins/builtins_templates.py        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \\
</span><span class="cx"> {\\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> ${macroPrefix}_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \\
</span><span class="cx"> {\\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> ${macroPrefix}_FOREACH_${objectMacro}_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \\
</span><span class="cx"> {\\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \\
</span><del>-    return clientData-&gt;builtinFunctions().${objectNameLC}Builtins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().${objectNameLC}Builtins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \\
</del><ins>+    return clientData-&gt;builtinFunctions().${objectNameLC}Builtins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().${objectNameLC}Builtins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \\
</ins><span class="cx"> }
</span><span class="cx"> ${macroPrefix}_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \\
</span><span class="cx"> {\\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \\
</span><del>-    return clientData-&gt;builtinFunctions().${objectNameLC}Builtins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().${objectNameLC}Builtins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \\
</del><ins>+    return clientData-&gt;builtinFunctions().${objectNameLC}Builtins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().${objectNameLC}Builtins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \\
</ins><span class="cx"> }
</span><span class="cx"> ${macroPrefix}_FOREACH_${objectMacro}_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinPromiseCombinedjsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), std::nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinPromiseSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -151,7 +151,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), std::nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN.PROMISE_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinprototypeCombinedjsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -176,7 +176,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), std::nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinprototypeSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -175,7 +175,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), std::nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN.PROTOTYPE_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinConstructorCombinedjsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -189,7 +189,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), std::nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinConstructorSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -188,7 +188,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), std::nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTINCONSTRUCTOR_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreInternalClashingNamesCombinedjsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), std::nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreAnotherGuardedInternalBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -214,7 +214,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().anotherGuardedInternalBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().anotherGuardedInternalBuiltinBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</del><ins>+    return clientData-&gt;builtinFunctions().anotherGuardedInternalBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().anotherGuardedInternalBuiltinBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_ANOTHERGUARDEDINTERNALBUILTIN_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreArbitraryConditionalGuardSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().arbitraryConditionalGuardBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().arbitraryConditionalGuardBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</del><ins>+    return clientData-&gt;builtinFunctions().arbitraryConditionalGuardBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().arbitraryConditionalGuardBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_ARBITRARYCONDITIONALGUARD_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().guardedBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().guardedBuiltinBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</del><ins>+    return clientData-&gt;builtinFunctions().guardedBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().guardedBuiltinBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_GUARDEDBUILTIN_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedInternalBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -216,7 +216,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().guardedInternalBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().guardedInternalBuiltinBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</del><ins>+    return clientData-&gt;builtinFunctions().guardedInternalBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().guardedInternalBuiltinBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_GUARDEDINTERNALBUILTIN_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreUnguardedBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -178,7 +178,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().unguardedBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().unguardedBuiltinBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</del><ins>+    return clientData-&gt;builtinFunctions().unguardedBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().unguardedBuiltinBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_UNGUARDEDBUILTIN_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCorexmlCasingTestSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -267,7 +267,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().xmlCasingTestBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().xmlCasingTestBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</del><ins>+    return clientData-&gt;builtinFunctions().xmlCasingTestBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().xmlCasingTestBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_XMLCASINGTEST_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreassemblerMacroAssemblerARM64h"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -3292,7 +3292,7 @@
</span><span class="cx">         return static_cast&lt;RelationalCondition&gt;(ARM64Assembler::invert(static_cast&lt;ARM64Assembler::Condition&gt;(cond)));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;ResultCondition&gt; commuteCompareToZeroIntoTest(RelationalCondition cond)
</del><ins>+    static std::optional&lt;ResultCondition&gt; commuteCompareToZeroIntoTest(RelationalCondition cond)
</ins><span class="cx">     {
</span><span class="cx">         switch (cond) {
</span><span class="cx">         case Equal:
</span><span class="lines">@@ -3305,7 +3305,7 @@
</span><span class="cx">             return PositiveOrZero;
</span><span class="cx">             break;
</span><span class="cx">         default:
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreassemblerMacroAssemblerX86Commonh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -2656,7 +2656,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;ResultCondition&gt; commuteCompareToZeroIntoTest(RelationalCondition cond)
</del><ins>+    static std::optional&lt;ResultCondition&gt; commuteCompareToZeroIntoTest(RelationalCondition cond)
</ins><span class="cx">     {
</span><span class="cx">         switch (cond) {
</span><span class="cx">         case Equal:
</span><span class="lines">@@ -2669,7 +2669,7 @@
</span><span class="cx">             return PositiveOrZero;
</span><span class="cx">             break;
</span><span class="cx">         default:
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3CheckSpecialcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3CheckSpecial.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3CheckSpecial.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/B3CheckSpecial.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">             callback(inst.args[1 + index], role, type, width);
</span><span class="cx">         });
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned&gt; firstRecoverableIndex;
</del><ins>+    std::optional&lt;unsigned&gt; firstRecoverableIndex;
</ins><span class="cx">     if (m_checkKind.opcode == BranchAdd32 || m_checkKind.opcode == BranchAdd64)
</span><span class="cx">         firstRecoverableIndex = 1;
</span><span class="cx">     forEachArgImpl(numB3Args(inst), m_numCheckArgs + 1, inst, m_stackmapRole, firstRecoverableIndex, callback);
</span><span class="lines">@@ -135,11 +135,11 @@
</span><span class="cx">     return admitsStackImpl(numB3Args(inst), m_numCheckArgs + 1, inst, argIndex);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;unsigned&gt; CheckSpecial::shouldTryAliasingDef(Inst&amp; inst)
</del><ins>+std::optional&lt;unsigned&gt; CheckSpecial::shouldTryAliasingDef(Inst&amp; inst)
</ins><span class="cx"> {
</span><del>-    if (Optional&lt;unsigned&gt; branchDef = hiddenBranch(inst).shouldTryAliasingDef())
</del><ins>+    if (std::optional&lt;unsigned&gt; branchDef = hiddenBranch(inst).shouldTryAliasingDef())
</ins><span class="cx">         return *branchDef + 1;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> CCallHelpers::Jump CheckSpecial::generate(Inst&amp; inst, CCallHelpers&amp; jit, GenerationContext&amp; context)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3CheckSpecialh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3CheckSpecial.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3CheckSpecial.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/B3CheckSpecial.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx">     void forEachArg(Air::Inst&amp;, const ScopedLambda&lt;Air::Inst::EachArgCallback&gt;&amp;) override;
</span><span class="cx">     bool isValid(Air::Inst&amp;) override;
</span><span class="cx">     bool admitsStack(Air::Inst&amp;, unsigned argIndex) override;
</span><del>-    Optional&lt;unsigned&gt; shouldTryAliasingDef(Air::Inst&amp;) override;
</del><ins>+    std::optional&lt;unsigned&gt; shouldTryAliasingDef(Air::Inst&amp;) override;
</ins><span class="cx"> 
</span><span class="cx">     // NOTE: the generate method will generate the hidden branch and then register a LatePath that
</span><span class="cx">     // generates the stackmap. Super crazy dude!
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3LowerToAircpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3LowerToAir.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3LowerToAir.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/B3LowerToAir.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -427,12 +427,12 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    Optional&lt;unsigned&gt; scaleForShl(Value* shl, int32_t offset, Optional&lt;Arg::Width&gt; width = Nullopt)
</del><ins>+    std::optional&lt;unsigned&gt; scaleForShl(Value* shl, int32_t offset, std::optional&lt;Arg::Width&gt; width = std::nullopt)
</ins><span class="cx">     {
</span><span class="cx">         if (shl-&gt;opcode() != Shl)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         if (!shl-&gt;child(1)-&gt;hasInt32())
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         unsigned logScale = shl-&gt;child(1)-&gt;asInt32();
</span><span class="cx">         if (shl-&gt;type() == Int32)
</span><span class="cx">             logScale &amp;= 31;
</span><span class="lines">@@ -442,10 +442,10 @@
</span><span class="cx">         // to signed since that's what all of our APIs want.
</span><span class="cx">         int64_t bigScale = static_cast&lt;uint64_t&gt;(1) &lt;&lt; static_cast&lt;uint64_t&gt;(logScale);
</span><span class="cx">         if (!isRepresentableAs&lt;int32_t&gt;(bigScale))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         unsigned scale = static_cast&lt;int32_t&gt;(bigScale);
</span><span class="cx">         if (!Arg::isValidIndexForm(scale, offset, width))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         return scale;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -470,7 +470,7 @@
</span><span class="cx">             Value* right = address-&gt;child(1);
</span><span class="cx"> 
</span><span class="cx">             auto tryIndex = [&amp;] (Value* index, Value* base) -&gt; Arg {
</span><del>-                Optional&lt;unsigned&gt; scale = scaleForShl(index, offset, width);
</del><ins>+                std::optional&lt;unsigned&gt; scale = scaleForShl(index, offset, width);
</ins><span class="cx">                 if (!scale)
</span><span class="cx">                     return Arg();
</span><span class="cx">                 if (m_locked.contains(index-&gt;child(0)) || m_locked.contains(base))
</span><span class="lines">@@ -1934,7 +1934,7 @@
</span><span class="cx">         }
</span><span class="cx">         
</span><span class="cx">         auto tryShl = [&amp;] (Value* shl, Value* other) -&gt; bool {
</span><del>-            Optional&lt;unsigned&gt; scale = scaleForShl(shl, offset);
</del><ins>+            std::optional&lt;unsigned&gt; scale = scaleForShl(shl, offset);
</ins><span class="cx">             if (!scale)
</span><span class="cx">                 return false;
</span><span class="cx">             if (!canBeInternal(shl))
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3Opcodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3Opcode.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3Opcode.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/B3Opcode.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace JSC { namespace B3 {
</span><span class="cx"> 
</span><del>-Optional&lt;Opcode&gt; invertedCompare(Opcode opcode, Type type)
</del><ins>+std::optional&lt;Opcode&gt; invertedCompare(Opcode opcode, Type type)
</ins><span class="cx"> {
</span><span class="cx">     switch (opcode) {
</span><span class="cx">     case Equal:
</span><span class="lines">@@ -42,19 +42,19 @@
</span><span class="cx">     case LessThan:
</span><span class="cx">         if (isInt(type))
</span><span class="cx">             return GreaterEqual;
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     case GreaterThan:
</span><span class="cx">         if (isInt(type))
</span><span class="cx">             return LessEqual;
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     case LessEqual:
</span><span class="cx">         if (isInt(type))
</span><span class="cx">             return GreaterThan;
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     case GreaterEqual:
</span><span class="cx">         if (isInt(type))
</span><span class="cx">             return LessThan;
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     case Above:
</span><span class="cx">         return BelowEqual;
</span><span class="cx">     case Below:
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     case BelowEqual:
</span><span class="cx">         return Above;
</span><span class="cx">     default:
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3Opcodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3Opcode.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3Opcode.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/B3Opcode.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;Opcode&gt; invertedCompare(Opcode, Type);
</del><ins>+std::optional&lt;Opcode&gt; invertedCompare(Opcode, Type);
</ins><span class="cx"> 
</span><span class="cx"> inline Opcode constPtrOpcode()
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3PatchpointSpecialcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3PatchpointSpecial.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3PatchpointSpecial.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/B3PatchpointSpecial.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">         callback(inst.args[argIndex++], role, inst.origin-&gt;airType(), inst.origin-&gt;airWidth());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    forEachArgImpl(0, argIndex, inst, SameAsRep, Nullopt, callback);
</del><ins>+    forEachArgImpl(0, argIndex, inst, SameAsRep, std::nullopt, callback);
</ins><span class="cx">     argIndex += inst.origin-&gt;numChildren();
</span><span class="cx"> 
</span><span class="cx">     for (unsigned i = patchpoint-&gt;numGPScratchRegisters; i--;)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3StackmapSpecialcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3StackmapSpecial.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3StackmapSpecial.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/B3StackmapSpecial.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StackmapSpecial::forEachArgImpl(
</span><span class="cx">     unsigned numIgnoredB3Args, unsigned numIgnoredAirArgs,
</span><del>-    Inst&amp; inst, RoleMode roleMode, Optional&lt;unsigned&gt; firstRecoverableIndex,
</del><ins>+    Inst&amp; inst, RoleMode roleMode, std::optional&lt;unsigned&gt; firstRecoverableIndex,
</ins><span class="cx">     const ScopedLambda&lt;Inst::EachArgCallback&gt;&amp; callback)
</span><span class="cx"> {
</span><span class="cx">     StackmapValue* value = inst.origin-&gt;as&lt;StackmapValue&gt;();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3StackmapSpecialh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3StackmapSpecial.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3StackmapSpecial.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/B3StackmapSpecial.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">     // subclasses that implement that.
</span><span class="cx">     void forEachArgImpl(
</span><span class="cx">         unsigned numIgnoredB3Args, unsigned numIgnoredAirArgs,
</span><del>-        Air::Inst&amp;, RoleMode, Optional&lt;unsigned&gt; firstRecoverableIndex,
</del><ins>+        Air::Inst&amp;, RoleMode, std::optional&lt;unsigned&gt; firstRecoverableIndex,
</ins><span class="cx">         const ScopedLambda&lt;Air::Inst::EachArgCallback&gt;&amp;);
</span><span class="cx">     
</span><span class="cx">     bool isValidImpl(
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3Valuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3Value.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3Value.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/B3Value.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -457,7 +457,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!numChildren())
</span><span class="cx">         return nullptr;
</span><del>-    if (Optional&lt;Opcode&gt; invertedOpcode = B3::invertedCompare(opcode(), child(0)-&gt;type())) {
</del><ins>+    if (std::optional&lt;Opcode&gt; invertedOpcode = B3::invertedCompare(opcode(), child(0)-&gt;type())) {
</ins><span class="cx">         ASSERT(!kind().hasExtraBits());
</span><span class="cx">         return proc.add&lt;Value&gt;(*invertedOpcode, type(), origin(), children());
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3airAirArgh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/air/AirArg.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/air/AirArg.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/air/AirArg.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -545,7 +545,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // If you don't pass a Width, this optimistically assumes that you're using the right width.
</span><del>-    static bool isValidScale(unsigned scale, Optional&lt;Width&gt; width = Nullopt)
</del><ins>+    static bool isValidScale(unsigned scale, std::optional&lt;Width&gt; width = std::nullopt)
</ins><span class="cx">     {
</span><span class="cx">         switch (scale) {
</span><span class="cx">         case 1:
</span><span class="lines">@@ -1085,7 +1085,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool isValidAddrForm(int32_t offset, Optional&lt;Width&gt; width = Nullopt)
</del><ins>+    static bool isValidAddrForm(int32_t offset, std::optional&lt;Width&gt; width = std::nullopt)
</ins><span class="cx">     {
</span><span class="cx">         if (isX86())
</span><span class="cx">             return true;
</span><span class="lines">@@ -1110,7 +1110,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool isValidIndexForm(unsigned scale, int32_t offset, Optional&lt;Width&gt; width = Nullopt)
</del><ins>+    static bool isValidIndexForm(unsigned scale, int32_t offset, std::optional&lt;Width&gt; width = std::nullopt)
</ins><span class="cx">     {
</span><span class="cx">         if (!isValidScale(scale, width))
</span><span class="cx">             return false;
</span><span class="lines">@@ -1124,7 +1124,7 @@
</span><span class="cx">     // If you don't pass a width then this optimistically assumes that you're using the right width. But
</span><span class="cx">     // the width is relevant to validity, so passing a null width is only useful for assertions. Don't
</span><span class="cx">     // pass null widths when cascading through Args in the instruction selector!
</span><del>-    bool isValidForm(Optional&lt;Width&gt; width = Nullopt) const
</del><ins>+    bool isValidForm(std::optional&lt;Width&gt; width = std::nullopt) const
</ins><span class="cx">     {
</span><span class="cx">         switch (kind()) {
</span><span class="cx">         case Invalid:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3airAirCustomh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/air/AirCustom.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/air/AirCustom.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/air/AirCustom.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">         return inst.args[0].special()-&gt;admitsStack(inst, argIndex);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;unsigned&gt; shouldTryAliasingDef(Inst&amp; inst)
</del><ins>+    static std::optional&lt;unsigned&gt; shouldTryAliasingDef(Inst&amp; inst)
</ins><span class="cx">     {
</span><span class="cx">         return inst.args[0].special()-&gt;shouldTryAliasingDef(inst);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3airAirFixObviousSpillscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/air/AirFixObviousSpills.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/air/AirFixObviousSpills.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/air/AirFixObviousSpills.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -129,12 +129,12 @@
</span><span class="cx">                 else if (isSpillSlot(inst.args[1]))
</span><span class="cx">                     m_state.addAlias(SlotConst(inst.args[1].stackSlot(), inst.args[0].value()));
</span><span class="cx">             } else if (isSpillSlot(inst.args[0]) &amp;&amp; inst.args[1].isReg()) {
</span><del>-                if (Optional&lt;int64_t&gt; constant = m_state.constantFor(inst.args[0]))
</del><ins>+                if (std::optional&lt;int64_t&gt; constant = m_state.constantFor(inst.args[0]))
</ins><span class="cx">                     m_state.addAlias(RegConst(inst.args[1].reg(), *constant));
</span><span class="cx">                 m_state.addAlias(
</span><span class="cx">                     RegSlot(inst.args[1].reg(), inst.args[0].stackSlot(), RegSlot::AllBits));
</span><span class="cx">             } else if (inst.args[0].isReg() &amp;&amp; isSpillSlot(inst.args[1])) {
</span><del>-                if (Optional&lt;int64_t&gt; constant = m_state.constantFor(inst.args[0]))
</del><ins>+                if (std::optional&lt;int64_t&gt; constant = m_state.constantFor(inst.args[0]))
</ins><span class="cx">                     m_state.addAlias(SlotConst(inst.args[1].stackSlot(), *constant));
</span><span class="cx">                 m_state.addAlias(
</span><span class="cx">                     RegSlot(inst.args[0].reg(), inst.args[1].stackSlot(), RegSlot::AllBits));
</span><span class="lines">@@ -148,12 +148,12 @@
</span><span class="cx">                 else if (isSpillSlot(inst.args[1]))
</span><span class="cx">                     m_state.addAlias(SlotConst(inst.args[1].stackSlot(), static_cast&lt;uint32_t&gt;(inst.args[0].value())));
</span><span class="cx">             } else if (isSpillSlot(inst.args[0]) &amp;&amp; inst.args[1].isReg()) {
</span><del>-                if (Optional&lt;int64_t&gt; constant = m_state.constantFor(inst.args[0]))
</del><ins>+                if (std::optional&lt;int64_t&gt; constant = m_state.constantFor(inst.args[0]))
</ins><span class="cx">                     m_state.addAlias(RegConst(inst.args[1].reg(), static_cast&lt;uint32_t&gt;(*constant)));
</span><span class="cx">                 m_state.addAlias(
</span><span class="cx">                     RegSlot(inst.args[1].reg(), inst.args[0].stackSlot(), RegSlot::ZExt32));
</span><span class="cx">             } else if (inst.args[0].isReg() &amp;&amp; isSpillSlot(inst.args[1])) {
</span><del>-                if (Optional&lt;int64_t&gt; constant = m_state.constantFor(inst.args[0]))
</del><ins>+                if (std::optional&lt;int64_t&gt; constant = m_state.constantFor(inst.args[0]))
</ins><span class="cx">                     m_state.addAlias(SlotConst(inst.args[1].stackSlot(), static_cast&lt;int32_t&gt;(*constant)));
</span><span class="cx">                 m_state.addAlias(
</span><span class="cx">                     RegSlot(inst.args[0].reg(), inst.args[1].stackSlot(), RegSlot::Match32));
</span><span class="lines">@@ -454,19 +454,19 @@
</span><span class="cx">             return nullptr;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Optional&lt;int64_t&gt; constantFor(const Arg&amp; arg)
</del><ins>+        std::optional&lt;int64_t&gt; constantFor(const Arg&amp; arg)
</ins><span class="cx">         {
</span><span class="cx">             if (arg.isReg()) {
</span><span class="cx">                 if (const RegConst* alias = getRegConst(arg.reg()))
</span><span class="cx">                     return alias-&gt;constant;
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             }
</span><span class="cx">             if (arg.isStack()) {
</span><span class="cx">                 if (const SlotConst* alias = getSlotConst(arg.stackSlot()))
</span><span class="cx">                     return alias-&gt;constant;
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             }
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         void clobber(const Arg&amp; arg)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3airAirInsth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/air/AirInst.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/air/AirInst.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/air/AirInst.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx">     // For example,
</span><span class="cx">     //     Add Tmp1, Tmp2, Tmp3
</span><span class="cx">     // returns 2 if 0 and 1 benefit from aliasing to Tmp3.
</span><del>-    Optional&lt;unsigned&gt; shouldTryAliasingDef();
</del><ins>+    std::optional&lt;unsigned&gt; shouldTryAliasingDef();
</ins><span class="cx">     
</span><span class="cx">     // This computes a hash for comparing this to JSAir's Inst.
</span><span class="cx">     unsigned jsHash() const;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3airAirInstInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/air/AirInstInlines.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/air/AirInstInlines.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/air/AirInstInlines.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -111,10 +111,10 @@
</span><span class="cx">     return admitsStack(&amp;arg - &amp;args[0]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;unsigned&gt; Inst::shouldTryAliasingDef()
</del><ins>+inline std::optional&lt;unsigned&gt; Inst::shouldTryAliasingDef()
</ins><span class="cx"> {
</span><span class="cx">     if (!isX86())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     switch (kind.opcode) {
</span><span class="cx">     case Add32:
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx">     case MulFloat:
</span><span class="cx"> #if CPU(X86) || CPU(X86_64)
</span><span class="cx">         if (MacroAssembler::supportsAVX())
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> #endif
</span><span class="cx">         if (args.size() == 3)
</span><span class="cx">             return 2;
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline bool isShiftValid(const Inst&amp; inst)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3airAirIteratedRegisterCoalescingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1007,7 +1007,7 @@
</span><span class="cx">         m_worklistMoves.startAddingLowPriorityMoves();
</span><span class="cx">         for (BasicBlock* block : m_code) {
</span><span class="cx">             for (Inst&amp; inst : *block) {
</span><del>-                if (Optional&lt;unsigned&gt; defArgIndex = inst.shouldTryAliasingDef()) {
</del><ins>+                if (std::optional&lt;unsigned&gt; defArgIndex = inst.shouldTryAliasingDef()) {
</ins><span class="cx">                     Arg op1 = inst.args[*defArgIndex - 2];
</span><span class="cx">                     Arg op2 = inst.args[*defArgIndex - 1];
</span><span class="cx">                     Arg dest = inst.args[*defArgIndex];
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3airAirSpecialcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/air/AirSpecial.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/air/AirSpecial.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/air/AirSpecial.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -50,9 +50,9 @@
</span><span class="cx">     return out.toCString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;unsigned&gt; Special::shouldTryAliasingDef(Inst&amp;)
</del><ins>+std::optional&lt;unsigned&gt; Special::shouldTryAliasingDef(Inst&amp;)
</ins><span class="cx"> {
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Special::isTerminal(Inst&amp;)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3airAirSpecialh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/air/AirSpecial.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/air/AirSpecial.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/b3/air/AirSpecial.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     virtual void forEachArg(Inst&amp;, const ScopedLambda&lt;Inst::EachArgCallback&gt;&amp;) = 0;
</span><span class="cx">     virtual bool isValid(Inst&amp;) = 0;
</span><span class="cx">     virtual bool admitsStack(Inst&amp;, unsigned argIndex) = 0;
</span><del>-    virtual Optional&lt;unsigned&gt; shouldTryAliasingDef(Inst&amp;);
</del><ins>+    virtual std::optional&lt;unsigned&gt; shouldTryAliasingDef(Inst&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // This gets called on for each Inst that uses this Special. Note that there is no way to
</span><span class="cx">     // guarantee that a Special gets used from just one Inst, because Air might taildup late. So,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeBytecodeGeneratorificationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/BytecodeGeneratorification.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/BytecodeGeneratorification.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/bytecode/BytecodeGeneratorification.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (m_storages.size() &lt;= index)
</span><span class="cx">             m_storages.resize(index + 1);
</span><del>-        if (Optional&lt;Storage&gt; storage = m_storages[index])
</del><ins>+        if (std::optional&lt;Storage&gt; storage = m_storages[index])
</ins><span class="cx">             return *storage;
</span><span class="cx"> 
</span><span class="cx">         UnlinkedCodeBlock* codeBlock = m_graph.codeBlock();
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx"> 
</span><span class="cx">     unsigned m_enterPoint { 0 };
</span><span class="cx">     BytecodeGraph&lt;UnlinkedCodeBlock&gt; m_graph;
</span><del>-    Vector&lt;Optional&lt;Storage&gt;&gt; m_storages;
</del><ins>+    Vector&lt;std::optional&lt;Storage&gt;&gt; m_storages;
</ins><span class="cx">     Yields m_yields;
</span><span class="cx">     Strong&lt;SymbolTable&gt; m_generatorFrameSymbolTable;
</span><span class="cx">     int m_generatorFrameSymbolTableIndex;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -4512,10 +4512,10 @@
</span><span class="cx">     m_pcToCodeOriginMap = WTFMove(map);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;CodeOrigin&gt; CodeBlock::findPC(void* pc)
</del><ins>+std::optional&lt;CodeOrigin&gt; CodeBlock::findPC(void* pc)
</ins><span class="cx"> {
</span><span class="cx">     if (m_pcToCodeOriginMap) {
</span><del>-        if (Optional&lt;CodeOrigin&gt; codeOrigin = m_pcToCodeOriginMap-&gt;findPC(pc))
</del><ins>+        if (std::optional&lt;CodeOrigin&gt; codeOrigin = m_pcToCodeOriginMap-&gt;findPC(pc))
</ins><span class="cx">             return codeOrigin;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -4522,19 +4522,19 @@
</span><span class="cx">     for (Bag&lt;StructureStubInfo&gt;::iterator iter = m_stubInfos.begin(); !!iter; ++iter) {
</span><span class="cx">         StructureStubInfo* stub = *iter;
</span><span class="cx">         if (stub-&gt;containsPC(pc))
</span><del>-            return Optional&lt;CodeOrigin&gt;(stub-&gt;codeOrigin);
</del><ins>+            return std::optional&lt;CodeOrigin&gt;(stub-&gt;codeOrigin);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (Optional&lt;CodeOrigin&gt; codeOrigin = m_jitCode-&gt;findPC(this, pc))
</del><ins>+    if (std::optional&lt;CodeOrigin&gt; codeOrigin = m_jitCode-&gt;findPC(this, pc))
</ins><span class="cx">         return codeOrigin;
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> #endif // ENABLE(JIT)
</span><span class="cx"> 
</span><del>-Optional&lt;unsigned&gt; CodeBlock::bytecodeOffsetFromCallSiteIndex(CallSiteIndex callSiteIndex)
</del><ins>+std::optional&lt;unsigned&gt; CodeBlock::bytecodeOffsetFromCallSiteIndex(CallSiteIndex callSiteIndex)
</ins><span class="cx"> {
</span><del>-    Optional&lt;unsigned&gt; bytecodeOffset;
</del><ins>+    std::optional&lt;unsigned&gt; bytecodeOffset;
</ins><span class="cx">     JITCode::JITType jitType = this-&gt;jitType();
</span><span class="cx">     if (jitType == JITCode::InterpreterThunk || jitType == JITCode::BaselineJIT) {
</span><span class="cx"> #if USE(JSVALUE64)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx">     void expressionRangeForBytecodeOffset(unsigned bytecodeOffset, int&amp; divot,
</span><span class="cx">         int&amp; startOffset, int&amp; endOffset, unsigned&amp; line, unsigned&amp; column) const;
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned&gt; bytecodeOffsetFromCallSiteIndex(CallSiteIndex);
</del><ins>+    std::optional&lt;unsigned&gt; bytecodeOffsetFromCallSiteIndex(CallSiteIndex);
</ins><span class="cx"> 
</span><span class="cx">     void getStubInfoMap(const ConcurrentJSLocker&amp;, StubInfoMap&amp; result);
</span><span class="cx">     void getStubInfoMap(StubInfoMap&amp; result);
</span><span class="lines">@@ -889,7 +889,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx">     void setPCToCodeOriginMap(std::unique_ptr&lt;PCToCodeOriginMap&gt;&amp;&amp;);
</span><del>-    Optional&lt;CodeOrigin&gt; findPC(void* pc);
</del><ins>+    std::optional&lt;CodeOrigin&gt; findPC(void* pc);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeUnlinkedFunctionExecutablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_unlinkedCodeBlockForConstruct);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-FunctionExecutable* UnlinkedFunctionExecutable::link(VM&amp; vm, const SourceCode&amp; ownerSource, Optional&lt;int&gt; overrideLineNumber, Intrinsic intrinsic)
</del><ins>+FunctionExecutable* UnlinkedFunctionExecutable::link(VM&amp; vm, const SourceCode&amp; ownerSource, std::optional&lt;int&gt; overrideLineNumber, Intrinsic intrinsic)
</ins><span class="cx"> {
</span><span class="cx">     SourceCode source = m_sourceOverride ? SourceCode(m_sourceOverride) : ownerSource;
</span><span class="cx">     unsigned firstLine = source.firstLine() + m_firstLineOffset;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeUnlinkedFunctionExecutableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx">         const Identifier&amp;, ExecState&amp;, const SourceCode&amp;, JSObject*&amp; exception, 
</span><span class="cx">         int overrideLineNumber);
</span><span class="cx"> 
</span><del>-    JS_EXPORT_PRIVATE FunctionExecutable* link(VM&amp;, const SourceCode&amp;, Optional&lt;int&gt; overrideLineNumber = Nullopt, Intrinsic = NoIntrinsic);
</del><ins>+    JS_EXPORT_PRIVATE FunctionExecutable* link(VM&amp;, const SourceCode&amp;, std::optional&lt;int&gt; overrideLineNumber = std::nullopt, Intrinsic = NoIntrinsic);
</ins><span class="cx"> 
</span><span class="cx">     void clearCode()
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -910,7 +910,7 @@
</span><span class="cx">         };
</span><span class="cx">         typedef HashMap&lt;RefPtr&lt;UniquedStringImpl&gt;, TDZNecessityLevel, IdentifierRepHash&gt; TDZMap;
</span><span class="cx">         Vector&lt;TDZMap&gt; m_TDZStack;
</span><del>-        Optional&lt;size_t&gt; m_varScopeSymbolTableIndex;
</del><ins>+        std::optional&lt;size_t&gt; m_varScopeSymbolTableIndex;
</ins><span class="cx">         void pushTDZVariables(const VariableEnvironment&amp;, TDZCheckOptimization, TDZRequirement);
</span><span class="cx"> 
</span><span class="cx">         ScopeNode* const m_scopeNode;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecompilerNodesCodegencpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -620,7 +620,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (const auto* identifier = node.name()) {
</span><del>-        Optional&lt;uint32_t&gt; optionalIndex = parseIndex(*identifier);
</del><ins>+        std::optional&lt;uint32_t&gt; optionalIndex = parseIndex(*identifier);
</ins><span class="cx">         if (!optionalIndex) {
</span><span class="cx">             generator.emitDirectPutById(newObj, *identifier, value.get(), node.putType());
</span><span class="cx">             return;
</span><span class="lines">@@ -3967,7 +3967,7 @@
</span><span class="cx">         RefPtr&lt;RegisterID&gt; temp = generator.newTemporary();
</span><span class="cx">         if (!target.propertyExpression) {
</span><span class="cx">             // Should not emit get_by_id for indexed ones.
</span><del>-            Optional&lt;uint32_t&gt; optionalIndex = parseIndex(target.propertyName);
</del><ins>+            std::optional&lt;uint32_t&gt; optionalIndex = parseIndex(target.propertyName);
</ins><span class="cx">             if (!optionalIndex)
</span><span class="cx">                 generator.emitGetById(temp.get(), rhs, target.propertyName);
</span><span class="cx">             else {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredebuggerDebuggercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/debugger/Debugger.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/debugger/Debugger.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/debugger/Debugger.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -360,7 +360,7 @@
</span><span class="cx">     unsigned column = breakpoint.column ? breakpoint.column : Breakpoint::unspecifiedColumn;
</span><span class="cx"> 
</span><span class="cx">     DebuggerParseData&amp; parseData = debuggerParseData(breakpoint.sourceID, sourceProvider);
</span><del>-    Optional&lt;JSTextPosition&gt; resolvedPosition = parseData.pausePositions.breakpointLocationForLineColumn((int)line, (int)column);
</del><ins>+    std::optional&lt;JSTextPosition&gt; resolvedPosition = parseData.pausePositions.breakpointLocationForLineColumn((int)line, (int)column);
</ins><span class="cx">     if (!resolvedPosition)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredebuggerDebuggerCallFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -290,7 +290,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (isTailDeleted()) {
</span><span class="cx">         CodeBlock* codeBlock = m_shadowChickenFrame.codeBlock;
</span><del>-        if (Optional&lt;unsigned&gt; bytecodeOffset = codeBlock-&gt;bytecodeOffsetFromCallSiteIndex(m_shadowChickenFrame.callSiteIndex)) {
</del><ins>+        if (std::optional&lt;unsigned&gt; bytecodeOffset = codeBlock-&gt;bytecodeOffsetFromCallSiteIndex(m_shadowChickenFrame.callSiteIndex)) {
</ins><span class="cx">             return TextPosition(OrdinalNumber::fromOneBasedInt(codeBlock-&gt;lineNumberForBytecodeOffset(*bytecodeOffset)),
</span><span class="cx">                 OrdinalNumber::fromOneBasedInt(codeBlock-&gt;columnNumberForBytecodeOffset(*bytecodeOffset)));
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredebuggerDebuggerParseDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/debugger/DebuggerParseData.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/debugger/DebuggerParseData.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/debugger/DebuggerParseData.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><del>-Optional&lt;JSTextPosition&gt; DebuggerPausePositions::breakpointLocationForLineColumn(int line, int column)
</del><ins>+std::optional&lt;JSTextPosition&gt; DebuggerPausePositions::breakpointLocationForLineColumn(int line, int column)
</ins><span class="cx"> {
</span><span class="cx">     unsigned start = 0;
</span><span class="cx">     unsigned end = m_positions.size();
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">             // We are guarenteed to have a Leave for an Entry so we don't need to bounds check.
</span><span class="cx">             while (true) {
</span><span class="cx">                 if (pausePosition.type != DebuggerPausePositionType::Enter)
</span><del>-                    return Optional&lt;JSTextPosition&gt;(pausePosition.position);
</del><ins>+                    return std::optional&lt;JSTextPosition&gt;(pausePosition.position);
</ins><span class="cx">                 pausePosition = m_positions[middle++];
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Past the end, no possible pause locations.
</span><span class="cx">     if (start &gt;= m_positions.size())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // If the next location is a function Entry we will need to decide if we should go into
</span><span class="cx">     // the function or go past the function. We decide to go into the function if the
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">     // Valid pause location. Use it.
</span><span class="cx">     DebuggerPausePosition&amp; firstSlidePosition = m_positions[start];
</span><span class="cx">     if (firstSlidePosition.type != DebuggerPausePositionType::Enter)
</span><del>-        return Optional&lt;JSTextPosition&gt;(firstSlidePosition.position);
</del><ins>+        return std::optional&lt;JSTextPosition&gt;(firstSlidePosition.position);
</ins><span class="cx"> 
</span><span class="cx">     // Determine if we should enter this function or skip past it.
</span><span class="cx">     // If entryStackSize is &gt; 0 we are skipping functions.
</span><span class="lines">@@ -113,11 +113,11 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // Found pause position.
</span><del>-        return Optional&lt;JSTextPosition&gt;(slidePosition.position);
</del><ins>+        return std::optional&lt;JSTextPosition&gt;(slidePosition.position);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // No pause positions found.
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DebuggerPausePositions::sort()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredebuggerDebuggerParseDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/debugger/DebuggerParseData.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/debugger/DebuggerParseData.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/debugger/DebuggerParseData.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx">         m_positions.append({ DebuggerPausePositionType::Leave, position });
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;JSTextPosition&gt; breakpointLocationForLineColumn(int line, int column);
</del><ins>+    std::optional&lt;JSTextPosition&gt; breakpointLocationForLineColumn(int line, int column);
</ins><span class="cx"> 
</span><span class="cx">     void sort();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredebuggerScriptProfilingScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/debugger/ScriptProfilingScope.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/debugger/ScriptProfilingScope.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/debugger/ScriptProfilingScope.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     JSGlobalObject* m_globalObject { nullptr };
</span><del>-    Optional&lt;double&gt; m_startTime;
</del><ins>+    std::optional&lt;double&gt; m_startTime;
</ins><span class="cx">     ProfilingReason m_reason;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGAbstractInterpreterInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -435,7 +435,7 @@
</span><span class="cx">         
</span><span class="cx">     case DoubleRep: {
</span><span class="cx">         JSValue child = forNode(node-&gt;child1()).value();
</span><del>-        if (Optional&lt;double&gt; number = child.toNumberFromPrimitive()) {
</del><ins>+        if (std::optional&lt;double&gt; number = child.toNumberFromPrimitive()) {
</ins><span class="cx">             setConstant(node, jsDoubleNumber(*number));
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -549,7 +549,7 @@
</span><span class="cx"> 
</span><span class="cx">     case ArithClz32: {
</span><span class="cx">         JSValue operand = forNode(node-&gt;child1()).value();
</span><del>-        if (Optional&lt;double&gt; number = operand.toNumberFromPrimitive()) {
</del><ins>+        if (std::optional&lt;double&gt; number = operand.toNumberFromPrimitive()) {
</ins><span class="cx">             uint32_t value = toUInt32(*number);
</span><span class="cx">             setConstant(node, jsNumber(clz32(value)));
</span><span class="cx">             break;
</span><span class="lines">@@ -855,7 +855,7 @@
</span><span class="cx">         JSValue child = forNode(node-&gt;child1()).value();
</span><span class="cx">         switch (node-&gt;child1().useKind()) {
</span><span class="cx">         case Int32Use:
</span><del>-            if (Optional&lt;double&gt; number = child.toNumberFromPrimitive()) {
</del><ins>+            if (std::optional&lt;double&gt; number = child.toNumberFromPrimitive()) {
</ins><span class="cx">                 JSValue result = jsNumber(fabs(*number));
</span><span class="cx">                 if (result.isInt32()) {
</span><span class="cx">                     setConstant(node, result);
</span><span class="lines">@@ -865,7 +865,7 @@
</span><span class="cx">             forNode(node).setType(SpecInt32Only);
</span><span class="cx">             break;
</span><span class="cx">         case DoubleRepUse:
</span><del>-            if (Optional&lt;double&gt; number = child.toNumberFromPrimitive()) {
</del><ins>+            if (std::optional&lt;double&gt; number = child.toNumberFromPrimitive()) {
</ins><span class="cx">                 setConstant(node, jsDoubleNumber(fabs(*number)));
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="lines">@@ -907,7 +907,7 @@
</span><span class="cx">     case ArithCeil:
</span><span class="cx">     case ArithTrunc: {
</span><span class="cx">         JSValue operand = forNode(node-&gt;child1()).value();
</span><del>-        if (Optional&lt;double&gt; number = operand.toNumberFromPrimitive()) {
</del><ins>+        if (std::optional&lt;double&gt; number = operand.toNumberFromPrimitive()) {
</ins><span class="cx">             double roundedValue = 0;
</span><span class="cx">             if (node-&gt;op() == ArithRound)
</span><span class="cx">                 roundedValue = jsRound(*number);
</span><span class="lines">@@ -995,7 +995,7 @@
</span><span class="cx"> 
</span><span class="cx">     case MapHash: {
</span><span class="cx">         if (JSValue key = forNode(node-&gt;child1()).value()) {
</span><del>-            if (Optional&lt;uint32_t&gt; hash = concurrentJSMapHash(key)) {
</del><ins>+            if (std::optional&lt;uint32_t&gt; hash = concurrentJSMapHash(key)) {
</ins><span class="cx">                 // Although C++ code uses uint32_t for the hash, the closest type in DFG IR is Int32
</span><span class="cx">                 // and that's what MapHash returns. So, we have to cast to int32_t to avoid large
</span><span class="cx">                 // unsigned values becoming doubles. This casting between signed and unsigned
</span><span class="lines">@@ -3165,7 +3165,7 @@
</span><span class="cx"> void AbstractInterpreter&lt;AbstractStateType&gt;::executeDoubleUnaryOpEffects(Node* node, double(*equivalentFunction)(double))
</span><span class="cx"> {
</span><span class="cx">     JSValue child = forNode(node-&gt;child1()).value();
</span><del>-    if (Optional&lt;double&gt; number = child.toNumberFromPrimitive()) {
</del><ins>+    if (std::optional&lt;double&gt; number = child.toNumberFromPrimitive()) {
</ins><span class="cx">         setConstant(node, jsDoubleNumber(equivalentFunction(*number)));
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGJITCodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGJITCode.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGJITCode.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGJITCode.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -215,16 +215,16 @@
</span><span class="cx">     minifiedDFG.validateReferences(trackedReferences);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;CodeOrigin&gt; JITCode::findPC(CodeBlock*, void* pc)
</del><ins>+std::optional&lt;CodeOrigin&gt; JITCode::findPC(CodeBlock*, void* pc)
</ins><span class="cx"> {
</span><span class="cx">     for (OSRExit&amp; exit : osrExit) {
</span><span class="cx">         if (ExecutableMemoryHandle* handle = exit.m_code.executableMemory()) {
</span><span class="cx">             if (handle-&gt;start() &lt;= pc &amp;&amp; pc &lt; handle-&gt;end())
</span><del>-                return Optional&lt;CodeOrigin&gt;(exit.m_codeOriginForExitProfile);
</del><ins>+                return std::optional&lt;CodeOrigin&gt;(exit.m_codeOriginForExitProfile);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } } // namespace JSC::DFG
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGJITCodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGJITCode.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGJITCode.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGJITCode.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> 
</span><span class="cx">     static ptrdiff_t commonDataOffset() { return OBJECT_OFFSETOF(JITCode, common); }
</span><span class="cx"> 
</span><del>-    Optional&lt;CodeOrigin&gt; findPC(CodeBlock*, void* pc) override;
</del><ins>+    std::optional&lt;CodeOrigin&gt; findPC(CodeBlock*, void* pc) override;
</ins><span class="cx">     
</span><span class="cx"> private:
</span><span class="cx">     friend class JITCompiler; // Allow JITCompiler to call setCodeRef().
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx">     PutPropertySlot slot(baseValue, strict);
</span><span class="cx">     if (direct) {
</span><span class="cx">         RELEASE_ASSERT(baseValue.isObject());
</span><del>-        if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</del><ins>+        if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</ins><span class="cx">             scope.release();
</span><span class="cx">             asObject(baseValue)-&gt;putDirectIndex(exec, index.value(), value, 0, strict ? PutDirectIndexShouldThrow : PutDirectIndexShouldNotThrow);
</span><span class="cx">             return;
</span><span class="lines">@@ -1174,7 +1174,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><del>-    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSInt8Array&gt;(exec, structure, encodedValue, 0, Nullopt));
</del><ins>+    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSInt8Array&gt;(exec, structure, encodedValue, 0, std::nullopt));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> char* JIT_OPERATION operationNewInt16ArrayWithSize(
</span><span class="lines">@@ -1188,7 +1188,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><del>-    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSInt16Array&gt;(exec, structure, encodedValue, 0, Nullopt));
</del><ins>+    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSInt16Array&gt;(exec, structure, encodedValue, 0, std::nullopt));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> char* JIT_OPERATION operationNewInt32ArrayWithSize(
</span><span class="lines">@@ -1202,7 +1202,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><del>-    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSInt32Array&gt;(exec, structure, encodedValue, 0, Nullopt));
</del><ins>+    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSInt32Array&gt;(exec, structure, encodedValue, 0, std::nullopt));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> char* JIT_OPERATION operationNewUint8ArrayWithSize(
</span><span class="lines">@@ -1216,7 +1216,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><del>-    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSUint8Array&gt;(exec, structure, encodedValue, 0, Nullopt));
</del><ins>+    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSUint8Array&gt;(exec, structure, encodedValue, 0, std::nullopt));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> char* JIT_OPERATION operationNewUint8ClampedArrayWithSize(
</span><span class="lines">@@ -1230,7 +1230,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><del>-    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSUint8ClampedArray&gt;(exec, structure, encodedValue, 0, Nullopt));
</del><ins>+    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSUint8ClampedArray&gt;(exec, structure, encodedValue, 0, std::nullopt));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> char* JIT_OPERATION operationNewUint16ArrayWithSize(
</span><span class="lines">@@ -1244,7 +1244,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><del>-    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSUint16Array&gt;(exec, structure, encodedValue, 0, Nullopt));
</del><ins>+    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSUint16Array&gt;(exec, structure, encodedValue, 0, std::nullopt));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> char* JIT_OPERATION operationNewUint32ArrayWithSize(
</span><span class="lines">@@ -1258,7 +1258,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><del>-    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSUint32Array&gt;(exec, structure, encodedValue, 0, Nullopt));
</del><ins>+    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSUint32Array&gt;(exec, structure, encodedValue, 0, std::nullopt));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> char* JIT_OPERATION operationNewFloat32ArrayWithSize(
</span><span class="lines">@@ -1272,7 +1272,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><del>-    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSFloat32Array&gt;(exec, structure, encodedValue, 0, Nullopt));
</del><ins>+    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSFloat32Array&gt;(exec, structure, encodedValue, 0, std::nullopt));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> char* JIT_OPERATION operationNewFloat64ArrayWithSize(
</span><span class="lines">@@ -1286,7 +1286,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><del>-    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSFloat64Array&gt;(exec, structure, encodedValue, 0, Nullopt));
</del><ins>+    return reinterpret_cast&lt;char*&gt;(constructGenericTypedArrayViewWithArguments&lt;JSFloat64Array&gt;(exec, structure, encodedValue, 0, std::nullopt));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSCell* JIT_OPERATION operationCreateActivationDirect(ExecState* exec, Structure* structure, JSScope* scope, SymbolTable* table, EncodedJSValue initialValueEncoded)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSlowPathGeneratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">         jit-&gt;m_outOfLineStreamIndex = m_streamIndex;
</span><span class="cx">         jit-&gt;m_origin = m_origin;
</span><span class="cx">         generateInternal(jit);
</span><del>-        jit-&gt;m_outOfLineStreamIndex = Nullopt;
</del><ins>+        jit-&gt;m_outOfLineStreamIndex = std::nullopt;
</ins><span class="cx">         if (!ASSERT_DISABLED)
</span><span class="cx">             jit-&gt;m_jit.abortWithReason(DFGSlowPathGeneratorFellThrough);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJITcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -399,7 +399,7 @@
</span><span class="cx">         m_outOfLineStreamIndex = slowPathLambda.streamIndex;
</span><span class="cx">         pcToCodeOriginMapBuilder.appendItem(m_jit.labelIgnoringWatchpoints(), currentNode-&gt;origin.semantic);
</span><span class="cx">         slowPathLambda.generator();
</span><del>-        m_outOfLineStreamIndex = Nullopt;
</del><ins>+        m_outOfLineStreamIndex = std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3188,8 +3188,8 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;JSValueOperand&gt; left;
-    Optional&lt;JSValueOperand&gt; right;
</del><ins>+    std::optional&lt;JSValueOperand&gt; left;
+    std::optional&lt;JSValueOperand&gt; right;
</ins><span class="cx"> 
</span><span class="cx">     JSValueRegs leftRegs;
</span><span class="cx">     JSValueRegs rightRegs;
</span><span class="lines">@@ -3219,11 +3219,11 @@
</span><span class="cx">     RELEASE_ASSERT(!leftOperand.isConst() || !rightOperand.isConst());
</span><span class="cx"> 
</span><span class="cx">     if (!leftOperand.isConst()) {
</span><del>-        left = JSValueOperand(this, leftChild);
</del><ins>+        left.emplace(this, leftChild);
</ins><span class="cx">         leftRegs = left-&gt;jsValueRegs();
</span><span class="cx">     }
</span><span class="cx">     if (!rightOperand.isConst()) {
</span><del>-        right = JSValueOperand(this, rightChild);
</del><ins>+        right.emplace(this, rightChild);
</ins><span class="cx">         rightRegs = right-&gt;jsValueRegs();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -3335,8 +3335,8 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;JSValueOperand&gt; left;
-    Optional&lt;JSValueOperand&gt; right;
</del><ins>+    std::optional&lt;JSValueOperand&gt; left;
+    std::optional&lt;JSValueOperand&gt; right;
</ins><span class="cx"> 
</span><span class="cx">     JSValueRegs leftRegs;
</span><span class="cx">     JSValueRegs rightRegs;
</span><span class="lines">@@ -3372,11 +3372,11 @@
</span><span class="cx">     RELEASE_ASSERT(!leftOperand.isConst() || !rightOperand.isConst());
</span><span class="cx"> 
</span><span class="cx">     if (!leftOperand.isConst()) {
</span><del>-        left = JSValueOperand(this, leftChild);
</del><ins>+        left.emplace(this, leftChild);
</ins><span class="cx">         leftRegs = left-&gt;jsValueRegs();
</span><span class="cx">     }
</span><span class="cx">     if (!rightOperand.isConst()) {
</span><del>-        right = JSValueOperand(this, rightChild);
</del><ins>+        right.emplace(this, rightChild);
</ins><span class="cx">         rightRegs = right-&gt;jsValueRegs();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -3497,8 +3497,8 @@
</span><span class="cx">     Edge&amp; leftChild = node-&gt;child1();
</span><span class="cx">     Edge&amp; rightChild = node-&gt;child2();
</span><span class="cx"> 
</span><del>-    Optional&lt;JSValueOperand&gt; left;
-    Optional&lt;JSValueOperand&gt; right;
</del><ins>+    std::optional&lt;JSValueOperand&gt; left;
+    std::optional&lt;JSValueOperand&gt; right;
</ins><span class="cx"> 
</span><span class="cx">     JSValueRegs leftRegs;
</span><span class="cx">     JSValueRegs rightRegs;
</span><span class="lines">@@ -3511,16 +3511,16 @@
</span><span class="cx">     GPRReg scratchGPR = InvalidGPRReg;
</span><span class="cx">     FPRReg scratchFPR = InvalidFPRReg;
</span><span class="cx"> 
</span><del>-    Optional&lt;FPRTemporary&gt; fprScratch;
</del><ins>+    std::optional&lt;FPRTemporary&gt; fprScratch;
</ins><span class="cx">     if (needsScratchFPRReg) {
</span><del>-        fprScratch = FPRTemporary(this);
</del><ins>+        fprScratch.emplace(this);
</ins><span class="cx">         scratchFPR = fprScratch-&gt;fpr();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if USE(JSVALUE64)
</span><del>-    Optional&lt;GPRTemporary&gt; gprScratch;
</del><ins>+    std::optional&lt;GPRTemporary&gt; gprScratch;
</ins><span class="cx">     if (needsScratchGPRReg) {
</span><del>-        gprScratch = GPRTemporary(this);
</del><ins>+        gprScratch.emplace(this);
</ins><span class="cx">         scratchGPR = gprScratch-&gt;gpr();
</span><span class="cx">     }
</span><span class="cx">     GPRTemporary result(this);
</span><span class="lines">@@ -3547,11 +3547,11 @@
</span><span class="cx">     ASSERT(!(Generator::isLeftOperandValidConstant(leftOperand) &amp;&amp; Generator::isRightOperandValidConstant(rightOperand)));
</span><span class="cx"> 
</span><span class="cx">     if (!Generator::isLeftOperandValidConstant(leftOperand)) {
</span><del>-        left = JSValueOperand(this, leftChild);
</del><ins>+        left.emplace(this, leftChild);
</ins><span class="cx">         leftRegs = left-&gt;jsValueRegs();
</span><span class="cx">     }
</span><span class="cx">     if (!Generator::isRightOperandValidConstant(rightOperand)) {
</span><del>-        right = JSValueOperand(this, rightChild);
</del><ins>+        right.emplace(this, rightChild);
</ins><span class="cx">         rightRegs = right-&gt;jsValueRegs();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -3616,10 +3616,10 @@
</span><span class="cx">         });
</span><span class="cx">     } else {
</span><span class="cx">         if (Generator::isLeftOperandValidConstant(leftOperand)) {
</span><del>-            left = JSValueOperand(this, leftChild);
</del><ins>+            left.emplace(this, leftChild);
</ins><span class="cx">             leftRegs = left-&gt;jsValueRegs();
</span><span class="cx">         } else if (Generator::isRightOperandValidConstant(rightOperand)) {
</span><del>-            right = JSValueOperand(this, rightChild);
</del><ins>+            right.emplace(this, rightChild);
</ins><span class="cx">             rightRegs = right-&gt;jsValueRegs();
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -4258,9 +4258,9 @@
</span><span class="cx"> void SpeculativeJIT::compileMathIC(Node* node, JITUnaryMathIC&lt;Generator&gt;* mathIC, bool needsScratchGPRReg, RepatchingFunction repatchingFunction, NonRepatchingFunction nonRepatchingFunction)
</span><span class="cx"> {
</span><span class="cx">     GPRReg scratchGPR = InvalidGPRReg;
</span><del>-    Optional&lt;GPRTemporary&gt; gprScratch;
</del><ins>+    std::optional&lt;GPRTemporary&gt; gprScratch;
</ins><span class="cx">     if (needsScratchGPRReg) {
</span><del>-        gprScratch = GPRTemporary(this);
</del><ins>+        gprScratch.emplace(this);
</ins><span class="cx">         scratchGPR = gprScratch-&gt;gpr();
</span><span class="cx">     }
</span><span class="cx">     JSValueOperand childOperand(this, node-&gt;child1());
</span><span class="lines">@@ -4687,8 +4687,8 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Optional&lt;JSValueOperand&gt; left;
-        Optional&lt;JSValueOperand&gt; right;
</del><ins>+        std::optional&lt;JSValueOperand&gt; left;
+        std::optional&lt;JSValueOperand&gt; right;
</ins><span class="cx"> 
</span><span class="cx">         JSValueRegs leftRegs;
</span><span class="cx">         JSValueRegs rightRegs;
</span><span class="lines">@@ -4735,11 +4735,11 @@
</span><span class="cx">         RELEASE_ASSERT(!leftOperand.isConst() || !rightOperand.isConst());
</span><span class="cx"> 
</span><span class="cx">         if (!leftOperand.isConst()) {
</span><del>-            left = JSValueOperand(this, leftChild);
</del><ins>+            left.emplace(this, leftChild);
</ins><span class="cx">             leftRegs = left-&gt;jsValueRegs();
</span><span class="cx">         }
</span><span class="cx">         if (!rightOperand.isConst()) {
</span><del>-            right = JSValueOperand(this, rightChild);
</del><ins>+            right.emplace(this, rightChild);
</ins><span class="cx">             rightRegs = right-&gt;jsValueRegs();
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -7612,10 +7612,10 @@
</span><span class="cx">     SpeculateCellOperand base(this, baseEdge);
</span><span class="cx">     regs.append(DOMJIT::Value(base.gpr(), m_state.forNode(baseEdge).value()));
</span><span class="cx"> 
</span><del>-    Optional&lt;SpeculateCellOperand&gt; globalObject;
</del><ins>+    std::optional&lt;SpeculateCellOperand&gt; globalObject;
</ins><span class="cx">     if (patchpoint-&gt;requireGlobalObject) {
</span><span class="cx">         Edge&amp; globalObjectEdge = node-&gt;child2();
</span><del>-        globalObject = SpeculateCellOperand(this, globalObjectEdge);
</del><ins>+        globalObject.emplace(this, globalObjectEdge);
</ins><span class="cx">         regs.append(DOMJIT::Value(globalObject-&gt;gpr(), m_state.forNode(globalObjectEdge).value()));
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJITh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -2928,7 +2928,7 @@
</span><span class="cx">     };
</span><span class="cx">     Vector&lt;SlowPathLambda&gt; m_slowPathLambdas;
</span><span class="cx">     Vector&lt;SilentRegisterSavePlan&gt; m_plans;
</span><del>-    Optional&lt;unsigned&gt; m_outOfLineStreamIndex;
</del><ins>+    std::optional&lt;unsigned&gt; m_outOfLineStreamIndex;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJIT32_64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -5050,15 +5050,15 @@
</span><span class="cx">         GPRTemporary structureID(this);
</span><span class="cx">         GPRTemporary result(this);
</span><span class="cx"> 
</span><del>-        Optional&lt;SpeculateCellOperand&gt; keyAsCell;
-        Optional&lt;JSValueOperand&gt; keyAsValue;
</del><ins>+        std::optional&lt;SpeculateCellOperand&gt; keyAsCell;
+        std::optional&lt;JSValueOperand&gt; keyAsValue;
</ins><span class="cx">         JSValueRegs keyRegs;
</span><span class="cx">         if (node-&gt;child2().useKind() == UntypedUse) {
</span><del>-            keyAsValue = JSValueOperand(this, node-&gt;child2());
</del><ins>+            keyAsValue.emplace(this, node-&gt;child2());
</ins><span class="cx">             keyRegs = keyAsValue-&gt;jsValueRegs();
</span><span class="cx">         } else {
</span><span class="cx">             ASSERT(node-&gt;child2().useKind() == StringUse || node-&gt;child2().useKind() == SymbolUse);
</span><del>-            keyAsCell = SpeculateCellOperand(this, node-&gt;child2());
</del><ins>+            keyAsCell.emplace(this, node-&gt;child2());
</ins><span class="cx">             keyRegs = JSValueRegs::payloadOnly(keyAsCell-&gt;gpr());
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJIT64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1949,10 +1949,10 @@
</span><span class="cx"> 
</span><span class="cx">         bool shouldCheckMasqueradesAsUndefined = !masqueradesAsUndefinedWatchpointIsStillValid();
</span><span class="cx">         JSGlobalObject* globalObject = m_jit.graph().globalObjectFor(node-&gt;origin.semantic);
</span><del>-        Optional&lt;GPRTemporary&gt; scratch;
</del><ins>+        std::optional&lt;GPRTemporary&gt; scratch;
</ins><span class="cx">         GPRReg scratchGPR = InvalidGPRReg;
</span><span class="cx">         if (shouldCheckMasqueradesAsUndefined) {
</span><del>-            scratch = GPRTemporary(this);
</del><ins>+            scratch.emplace(this);
</ins><span class="cx">             scratchGPR = scratch-&gt;gpr();
</span><span class="cx">         }
</span><span class="cx">         bool negateResult = true;
</span><span class="lines">@@ -2103,12 +2103,12 @@
</span><span class="cx">             GPRTemporary result(this);
</span><span class="cx">             FPRTemporary fprValue(this);
</span><span class="cx">             FPRTemporary fprTemp(this);
</span><del>-            Optional&lt;GPRTemporary&gt; scratch;
</del><ins>+            std::optional&lt;GPRTemporary&gt; scratch;
</ins><span class="cx"> 
</span><span class="cx">             GPRReg scratchGPR = InvalidGPRReg;
</span><span class="cx">             bool shouldCheckMasqueradesAsUndefined = !masqueradesAsUndefinedWatchpointIsStillValid();
</span><span class="cx">             if (shouldCheckMasqueradesAsUndefined) {
</span><del>-                scratch = GPRTemporary(this);
</del><ins>+                scratch.emplace(this);
</ins><span class="cx">                 scratchGPR = scratch-&gt;gpr();
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="lines">@@ -4769,11 +4769,11 @@
</span><span class="cx">         case StringUse: {
</span><span class="cx">             SpeculateCellOperand input(this, node-&gt;child1());
</span><span class="cx">             GPRTemporary result(this);
</span><del>-            Optional&lt;GPRTemporary&gt; temp;
</del><ins>+            std::optional&lt;GPRTemporary&gt; temp;
</ins><span class="cx"> 
</span><span class="cx">             GPRReg tempGPR = InvalidGPRReg;
</span><span class="cx">             if (node-&gt;child1().useKind() == CellUse) {
</span><del>-                temp = GPRTemporary(this);
</del><ins>+                temp.emplace(this);
</ins><span class="cx">                 tempGPR = temp-&gt;gpr();
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="lines">@@ -5207,15 +5207,15 @@
</span><span class="cx">         GPRTemporary structureID(this);
</span><span class="cx">         GPRTemporary result(this);
</span><span class="cx"> 
</span><del>-        Optional&lt;SpeculateCellOperand&gt; keyAsCell;
-        Optional&lt;JSValueOperand&gt; keyAsValue;
</del><ins>+        std::optional&lt;SpeculateCellOperand&gt; keyAsCell;
+        std::optional&lt;JSValueOperand&gt; keyAsValue;
</ins><span class="cx">         GPRReg keyGPR;
</span><span class="cx">         if (node-&gt;child2().useKind() == UntypedUse) {
</span><del>-            keyAsValue = JSValueOperand(this, node-&gt;child2());
</del><ins>+            keyAsValue.emplace(this, node-&gt;child2());
</ins><span class="cx">             keyGPR = keyAsValue-&gt;gpr();
</span><span class="cx">         } else {
</span><span class="cx">             ASSERT(node-&gt;child2().useKind() == StringUse || node-&gt;child2().useKind() == SymbolUse);
</span><del>-            keyAsCell = SpeculateCellOperand(this, node-&gt;child2());
</del><ins>+            keyAsCell.emplace(this, node-&gt;child2());
</ins><span class="cx">             keyGPR = keyAsCell-&gt;gpr();
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGStrengthReductionPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -204,7 +204,7 @@
</span><span class="cx">             if (m_node-&gt;isBinaryUseKind(DoubleRepUse)
</span><span class="cx">                 &amp;&amp; m_node-&gt;child2()-&gt;isNumberConstant()) {
</span><span class="cx"> 
</span><del>-                if (Optional&lt;double&gt; reciprocal = safeReciprocalForDivByConst(m_node-&gt;child2()-&gt;asNumber())) {
</del><ins>+                if (std::optional&lt;double&gt; reciprocal = safeReciprocalForDivByConst(m_node-&gt;child2()-&gt;asNumber())) {
</ins><span class="cx">                     Node* reciprocalNode = m_insertionSet.insertConstant(m_nodeIndex, m_node-&gt;origin, jsDoubleNumber(*reciprocal), DoubleConstant);
</span><span class="cx">                     m_node-&gt;setOp(ArithMul);
</span><span class="cx">                     m_node-&gt;child2() = Edge(reciprocalNode, DoubleRepUse);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreftlFTLJITCodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ftl/FTLJITCode.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ftl/FTLJITCode.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/ftl/FTLJITCode.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -146,12 +146,12 @@
</span><span class="cx">     return RegisterSet();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;CodeOrigin&gt; JITCode::findPC(CodeBlock* codeBlock, void* pc)
</del><ins>+std::optional&lt;CodeOrigin&gt; JITCode::findPC(CodeBlock* codeBlock, void* pc)
</ins><span class="cx"> {
</span><span class="cx">     for (OSRExit&amp; exit : osrExit) {
</span><span class="cx">         if (ExecutableMemoryHandle* handle = exit.m_code.executableMemory()) {
</span><span class="cx">             if (handle-&gt;start() &lt;= pc &amp;&amp; pc &lt; handle-&gt;end())
</span><del>-                return Optional&lt;CodeOrigin&gt;(exit.m_codeOriginForExitProfile);
</del><ins>+                return std::optional&lt;CodeOrigin&gt;(exit.m_codeOriginForExitProfile);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -158,11 +158,11 @@
</span><span class="cx">     for (std::unique_ptr&lt;LazySlowPath&gt;&amp; lazySlowPath : lazySlowPaths) {
</span><span class="cx">         if (ExecutableMemoryHandle* handle = lazySlowPath-&gt;stub().executableMemory()) {
</span><span class="cx">             if (handle-&gt;start() &lt;= pc &amp;&amp; pc &lt; handle-&gt;end())
</span><del>-                return Optional&lt;CodeOrigin&gt;(codeBlock-&gt;codeOrigin(lazySlowPath-&gt;callSiteIndex()));
</del><ins>+                return std::optional&lt;CodeOrigin&gt;(codeBlock-&gt;codeOrigin(lazySlowPath-&gt;callSiteIndex()));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } } // namespace JSC::FTL
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreftlFTLJITCodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ftl/FTLJITCode.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ftl/FTLJITCode.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/ftl/FTLJITCode.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> 
</span><span class="cx">     RegisterSet liveRegistersToPreserveAtExceptionHandlingCallSite(CodeBlock*, CallSiteIndex) override;
</span><span class="cx"> 
</span><del>-    Optional&lt;CodeOrigin&gt; findPC(CodeBlock*, void* pc) override;
</del><ins>+    std::optional&lt;CodeOrigin&gt; findPC(CodeBlock*, void* pc) override;
</ins><span class="cx"> 
</span><span class="cx">     CodeRef b3Code() const { return m_b3Code; }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/Heap.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/Heap.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/heap/Heap.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx"> 
</span><span class="cx"> class TimingScope {
</span><span class="cx"> public:
</span><del>-    TimingScope(Optional&lt;CollectionScope&gt; scope, const char* name)
</del><ins>+    TimingScope(std::optional&lt;CollectionScope&gt; scope, const char* name)
</ins><span class="cx">         : m_scope(scope)
</span><span class="cx">         , m_name(name)
</span><span class="cx">     {
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    void setScope(Optional&lt;CollectionScope&gt; scope)
</del><ins>+    void setScope(std::optional&lt;CollectionScope&gt; scope)
</ins><span class="cx">     {
</span><span class="cx">         m_scope = scope;
</span><span class="cx">     }
</span><span class="lines">@@ -224,7 +224,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> private:
</span><del>-    Optional&lt;CollectionScope&gt; m_scope;
</del><ins>+    std::optional&lt;CollectionScope&gt; m_scope;
</ins><span class="cx">     double m_before;
</span><span class="cx">     const char* m_name;
</span><span class="cx"> };
</span><span class="lines">@@ -1084,7 +1084,7 @@
</span><span class="cx">     sweepAllLogicallyEmptyWeakBlocks();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Heap::collectAsync(Optional&lt;CollectionScope&gt; scope)
</del><ins>+void Heap::collectAsync(std::optional&lt;CollectionScope&gt; scope)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_isSafeToCollect)
</span><span class="cx">         return;
</span><span class="lines">@@ -1092,7 +1092,7 @@
</span><span class="cx">     bool alreadyRequested = false;
</span><span class="cx">     {
</span><span class="cx">         LockHolder locker(*m_threadLock);
</span><del>-        for (Optional&lt;CollectionScope&gt; request : m_requests) {
</del><ins>+        for (std::optional&lt;CollectionScope&gt; request : m_requests) {
</ins><span class="cx">             if (scope) {
</span><span class="cx">                 if (scope == CollectionScope::Eden) {
</span><span class="cx">                     alreadyRequested = true;
</span><span class="lines">@@ -1118,7 +1118,7 @@
</span><span class="cx">     requestCollection(scope);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Heap::collectSync(Optional&lt;CollectionScope&gt; scope)
</del><ins>+void Heap::collectSync(std::optional&lt;CollectionScope&gt; scope)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_isSafeToCollect)
</span><span class="cx">         return;
</span><span class="lines">@@ -1138,7 +1138,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_currentGCStartTime = MonotonicTime::now();
</span><span class="cx">     
</span><del>-    Optional&lt;CollectionScope&gt; scope;
</del><ins>+    std::optional&lt;CollectionScope&gt; scope;
</ins><span class="cx">     {
</span><span class="cx">         LockHolder locker(*m_threadLock);
</span><span class="cx">         RELEASE_ASSERT(!m_requests.isEmpty());
</span><span class="lines">@@ -1164,7 +1164,7 @@
</span><span class="cx">     
</span><span class="cx">     ASSERT(m_isSafeToCollect);
</span><span class="cx">     if (m_collectionScope) {
</span><del>-        dataLog(&quot;Collection scope already set during GC: &quot;, m_collectionScope, &quot;\n&quot;);
</del><ins>+        dataLog(&quot;Collection scope already set during GC: &quot;, *m_collectionScope, &quot;\n&quot;);
</ins><span class="cx">         RELEASE_ASSERT_NOT_REACHED();
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -1542,7 +1542,7 @@
</span><span class="cx">         cache-&gt;clear();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Heap::Ticket Heap::requestCollection(Optional&lt;CollectionScope&gt; scope)
</del><ins>+Heap::Ticket Heap::requestCollection(std::optional&lt;CollectionScope&gt; scope)
</ins><span class="cx"> {
</span><span class="cx">     stopIfNecessary();
</span><span class="cx">     
</span><span class="lines">@@ -1582,7 +1582,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Heap::willStartCollection(Optional&lt;CollectionScope&gt; scope)
</del><ins>+void Heap::willStartCollection(std::optional&lt;CollectionScope&gt; scope)
</ins><span class="cx"> {
</span><span class="cx">     if (Options::logGC())
</span><span class="cx">         dataLog(&quot;=&gt; &quot;);
</span><span class="lines">@@ -1789,7 +1789,7 @@
</span><span class="cx"> 
</span><span class="cx">     RELEASE_ASSERT(m_collectionScope);
</span><span class="cx">     m_lastCollectionScope = m_collectionScope;
</span><del>-    m_collectionScope = Nullopt;
</del><ins>+    m_collectionScope = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     for (auto* observer : m_observers)
</span><span class="cx">         observer-&gt;didGarbageCollect(scope);
</span><span class="lines">@@ -1915,7 +1915,7 @@
</span><span class="cx">     m_writeBarrierBuffer.add(cell);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Heap::shouldDoFullCollection(Optional&lt;CollectionScope&gt; scope) const
</del><ins>+bool Heap::shouldDoFullCollection(std::optional&lt;CollectionScope&gt; scope) const
</ins><span class="cx"> {
</span><span class="cx">     if (!Options::useGenerationalGC())
</span><span class="cx">         return true;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/Heap.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/Heap.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/heap/Heap.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -146,7 +146,7 @@
</span><span class="cx">     void removeObserver(HeapObserver* observer) { m_observers.removeFirst(observer); }
</span><span class="cx"> 
</span><span class="cx">     MutatorState mutatorState() const { return m_mutatorState; }
</span><del>-    Optional&lt;CollectionScope&gt; collectionScope() const { return m_collectionScope; }
</del><ins>+    std::optional&lt;CollectionScope&gt; collectionScope() const { return m_collectionScope; }
</ins><span class="cx">     bool hasHeapAccess() const;
</span><span class="cx">     bool mutatorIsStopped() const;
</span><span class="cx">     bool collectorBelievesThatTheWorldIsStopped() const;
</span><span class="lines">@@ -186,11 +186,11 @@
</span><span class="cx">     bool shouldCollect();
</span><span class="cx">     
</span><span class="cx">     // Queue up a collection. Returns immediately. This will not queue a collection if a collection
</span><del>-    // of equal or greater strength exists. Full collections are stronger than Nullopt collections
-    // and Nullopt collections are stronger than Eden collections. Nullopt means that the GC can
</del><ins>+    // of equal or greater strength exists. Full collections are stronger than std::nullopt collections
+    // and std::nullopt collections are stronger than Eden collections. std::nullopt means that the GC can
</ins><span class="cx">     // choose Eden or Full. This implies that if you request a GC while that GC is ongoing, nothing
</span><span class="cx">     // will happen.
</span><del>-    JS_EXPORT_PRIVATE void collectAsync(Optional&lt;CollectionScope&gt; = Nullopt);
</del><ins>+    JS_EXPORT_PRIVATE void collectAsync(std::optional&lt;CollectionScope&gt; = std::nullopt);
</ins><span class="cx">     
</span><span class="cx">     // Queue up a collection and wait for it to complete. This won't return until you get your own
</span><span class="cx">     // complete collection. For example, if there was an ongoing asynchronous collection at the time
</span><span class="lines">@@ -197,7 +197,7 @@
</span><span class="cx">     // you called this, then this would wait for that one to complete and then trigger your
</span><span class="cx">     // collection and then return. In weird cases, there could be multiple GC requests in the backlog
</span><span class="cx">     // and this will wait for that backlog before running its GC and returning.
</span><del>-    JS_EXPORT_PRIVATE void collectSync(Optional&lt;CollectionScope&gt; = Nullopt);
</del><ins>+    JS_EXPORT_PRIVATE void collectSync(std::optional&lt;CollectionScope&gt; = std::nullopt);
</ins><span class="cx">     
</span><span class="cx">     bool collectIfNecessaryOrDefer(GCDeferralContext* = nullptr); // Returns true if it did collect.
</span><span class="cx">     void collectAccordingToDeferGCProbability();
</span><span class="lines">@@ -425,11 +425,11 @@
</span><span class="cx">     void notifyThreadStopping(const LockHolder&amp;);
</span><span class="cx">     
</span><span class="cx">     typedef uint64_t Ticket;
</span><del>-    Ticket requestCollection(Optional&lt;CollectionScope&gt;);
</del><ins>+    Ticket requestCollection(std::optional&lt;CollectionScope&gt;);
</ins><span class="cx">     void waitForCollection(Ticket);
</span><span class="cx">     
</span><span class="cx">     void suspendCompilerThreads();
</span><del>-    void willStartCollection(Optional&lt;CollectionScope&gt;);
</del><ins>+    void willStartCollection(std::optional&lt;CollectionScope&gt;);
</ins><span class="cx">     void flushWriteBarrierBuffer();
</span><span class="cx">     void prepareForMarking();
</span><span class="cx">     
</span><span class="lines">@@ -469,7 +469,7 @@
</span><span class="cx">     void sweepAllLogicallyEmptyWeakBlocks();
</span><span class="cx">     bool sweepNextLogicallyEmptyWeakBlock();
</span><span class="cx"> 
</span><del>-    bool shouldDoFullCollection(Optional&lt;CollectionScope&gt; requestedCollectionScope) const;
</del><ins>+    bool shouldDoFullCollection(std::optional&lt;CollectionScope&gt; requestedCollectionScope) const;
</ins><span class="cx"> 
</span><span class="cx">     void incrementDeferralDepth();
</span><span class="cx">     void decrementDeferralDepth();
</span><span class="lines">@@ -497,8 +497,8 @@
</span><span class="cx">     size_t m_totalBytesVisited;
</span><span class="cx">     size_t m_totalBytesVisitedThisCycle;
</span><span class="cx">     
</span><del>-    Optional&lt;CollectionScope&gt; m_collectionScope;
-    Optional&lt;CollectionScope&gt; m_lastCollectionScope;
</del><ins>+    std::optional&lt;CollectionScope&gt; m_collectionScope;
+    std::optional&lt;CollectionScope&gt; m_lastCollectionScope;
</ins><span class="cx">     MutatorState m_mutatorState { MutatorState::Running };
</span><span class="cx">     StructureIDTable m_structureIDTable;
</span><span class="cx">     MarkedSpace m_objectSpace;
</span><span class="lines">@@ -599,7 +599,7 @@
</span><span class="cx">     bool m_collectorBelievesThatTheWorldIsStopped { false };
</span><span class="cx">     MonotonicTime m_stopTime;
</span><span class="cx">     
</span><del>-    Deque&lt;Optional&lt;CollectionScope&gt;&gt; m_requests;
</del><ins>+    Deque&lt;std::optional&lt;CollectionScope&gt;&gt; m_requests;
</ins><span class="cx">     Ticket m_lastServedTicket { 0 };
</span><span class="cx">     Ticket m_lastGrantedTicket { 0 };
</span><span class="cx">     bool m_threadShouldStop { false };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeapSnapshotcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/HeapSnapshot.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/HeapSnapshot.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/heap/HeapSnapshot.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -130,7 +130,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;HeapSnapshotNode&gt; HeapSnapshot::nodeForCell(JSCell* cell)
</del><ins>+std::optional&lt;HeapSnapshotNode&gt; HeapSnapshot::nodeForCell(JSCell* cell)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_finalized);
</span><span class="cx"> 
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx">             unsigned middle = start + ((end - start) / 2);
</span><span class="cx">             HeapSnapshotNode&amp; node = m_nodes[middle];
</span><span class="cx">             if (cell == node.cell)
</span><del>-                return Optional&lt;HeapSnapshotNode&gt;(node);
</del><ins>+                return std::optional&lt;HeapSnapshotNode&gt;(node);
</ins><span class="cx">             if (cell &lt; node.cell)
</span><span class="cx">                 end = middle;
</span><span class="cx">             else
</span><span class="lines">@@ -153,32 +153,32 @@
</span><span class="cx">     if (m_previous)
</span><span class="cx">         return m_previous-&gt;nodeForCell(cell);
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;HeapSnapshotNode&gt; HeapSnapshot::nodeForObjectIdentifier(unsigned objectIdentifier)
</del><ins>+std::optional&lt;HeapSnapshotNode&gt; HeapSnapshot::nodeForObjectIdentifier(unsigned objectIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     if (isEmpty()) {
</span><span class="cx">         if (m_previous)
</span><span class="cx">             return m_previous-&gt;nodeForObjectIdentifier(objectIdentifier);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (objectIdentifier &gt; m_lastObjectIdentifier)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (objectIdentifier &lt; m_firstObjectIdentifier) {
</span><span class="cx">         if (m_previous)
</span><span class="cx">             return m_previous-&gt;nodeForObjectIdentifier(objectIdentifier);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; node : m_nodes) {
</span><span class="cx">         if (node.identifier == objectIdentifier)
</span><del>-            return Optional&lt;HeapSnapshotNode&gt;(node);
</del><ins>+            return std::optional&lt;HeapSnapshotNode&gt;(node);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeapSnapshoth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/HeapSnapshot.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/HeapSnapshot.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/heap/HeapSnapshot.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -45,8 +45,8 @@
</span><span class="cx">     void finalize();
</span><span class="cx"> 
</span><span class="cx">     bool isEmpty() const { return m_nodes.isEmpty(); }
</span><del>-    Optional&lt;HeapSnapshotNode&gt; nodeForCell(JSCell*);
-    Optional&lt;HeapSnapshotNode&gt; nodeForObjectIdentifier(unsigned objectIdentifier);
</del><ins>+    std::optional&lt;HeapSnapshotNode&gt; nodeForCell(JSCell*);
+    std::optional&lt;HeapSnapshotNode&gt; nodeForObjectIdentifier(unsigned objectIdentifier);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     friend class HeapSnapshotBuilder;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorBackendDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx">     {
</span><span class="cx">         // In case this is a re-entrant call from a nested run loop, we don't want to lose
</span><span class="cx">         // the outer request's id just because the inner request is bogus.
</span><del>-        SetForScope&lt;Optional&lt;long&gt;&gt; scopedRequestId(m_currentRequestId, Nullopt);
</del><ins>+        SetForScope&lt;std::optional&lt;long&gt;&gt; scopedRequestId(m_currentRequestId, std::nullopt);
</ins><span class="cx"> 
</span><span class="cx">         RefPtr&lt;InspectorValue&gt; parsedMessage;
</span><span class="cx">         if (!InspectorValue::parseJSON(message, parsedMessage)) {
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx"> 
</span><span class="cx">     {
</span><span class="cx">         // We could be called re-entrantly from a nested run loop, so restore the previous id.
</span><del>-        SetForScope&lt;Optional&lt;long&gt;&gt; scopedRequestId(m_currentRequestId, requestId);
</del><ins>+        SetForScope&lt;std::optional&lt;long&gt;&gt; scopedRequestId(m_currentRequestId, requestId);
</ins><span class="cx"> 
</span><span class="cx">         RefPtr&lt;InspectorValue&gt; methodValue;
</span><span class="cx">         if (!messageObject-&gt;getValue(ASCIILiteral(&quot;method&quot;), methodValue)) {
</span><span class="lines">@@ -246,7 +246,7 @@
</span><span class="cx">     m_frontendRouter-&gt;sendResponse(message-&gt;toJSONString());
</span><span class="cx"> 
</span><span class="cx">     m_protocolErrors.clear();
</span><del>-    m_currentRequestId = Nullopt;
</del><ins>+    m_currentRequestId = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> void BackendDispatcher::reportProtocolError(CommonErrorCode errorCode, const String&amp; errorMessage)
</span><span class="lines">@@ -254,7 +254,7 @@
</span><span class="cx">     reportProtocolError(m_currentRequestId, errorCode, errorMessage);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void BackendDispatcher::reportProtocolError(Optional&lt;long&gt; relatedRequestId, CommonErrorCode errorCode, const String&amp; errorMessage)
</del><ins>+void BackendDispatcher::reportProtocolError(std::optional&lt;long&gt; relatedRequestId, CommonErrorCode errorCode, const String&amp; errorMessage)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_ARG(errorCode, errorCode &gt;= 0);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorBackendDispatcherh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">     void sendPendingErrors();
</span><span class="cx"> 
</span><span class="cx">     void reportProtocolError(CommonErrorCode, const String&amp; errorMessage);
</span><del>-    void reportProtocolError(Optional&lt;long&gt; relatedRequestId, CommonErrorCode, const String&amp; errorMessage);
</del><ins>+    void reportProtocolError(std::optional&lt;long&gt; relatedRequestId, CommonErrorCode, const String&amp; errorMessage);
</ins><span class="cx"> 
</span><span class="cx">     template&lt;typename T&gt;
</span><span class="cx">     WTF_HIDDEN_DECLARATION
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx"> 
</span><span class="cx">     // For synchronously handled requests, avoid plumbing requestId through every
</span><span class="cx">     // call that could potentially fail with a protocol error.
</span><del>-    Optional&lt;long&gt; m_currentRequestId { Nullopt };
</del><ins>+    std::optional&lt;long&gt; m_currentRequestId { std::nullopt };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorHeapAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -213,24 +213,24 @@
</span><span class="cx">     m_frontendDispatcher-&gt;trackingComplete(timestamp, snapshotData);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;HeapSnapshotNode&gt; InspectorHeapAgent::nodeForHeapObjectIdentifier(ErrorString&amp; errorString, unsigned heapObjectIdentifier)
</del><ins>+std::optional&lt;HeapSnapshotNode&gt; InspectorHeapAgent::nodeForHeapObjectIdentifier(ErrorString&amp; errorString, unsigned heapObjectIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     HeapProfiler* heapProfiler = m_environment.vm().heapProfiler();
</span><span class="cx">     if (!heapProfiler) {
</span><span class="cx">         errorString = ASCIILiteral(&quot;No heap snapshot&quot;);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     HeapSnapshot* snapshot = heapProfiler-&gt;mostRecentSnapshot();
</span><span class="cx">     if (!snapshot) {
</span><span class="cx">         errorString = ASCIILiteral(&quot;No heap snapshot&quot;);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    const Optional&lt;HeapSnapshotNode&gt; optionalNode = snapshot-&gt;nodeForObjectIdentifier(heapObjectIdentifier);
</del><ins>+    const std::optional&lt;HeapSnapshotNode&gt; optionalNode = snapshot-&gt;nodeForObjectIdentifier(heapObjectIdentifier);
</ins><span class="cx">     if (!optionalNode) {
</span><span class="cx">         errorString = ASCIILiteral(&quot;No object for identifier, it may have been collected&quot;);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return optionalNode;
</span><span class="lines">@@ -244,7 +244,7 @@
</span><span class="cx">     DeferGC deferGC(vm.heap);
</span><span class="cx"> 
</span><span class="cx">     unsigned heapObjectIdentifier = static_cast&lt;unsigned&gt;(heapObjectId);
</span><del>-    const Optional&lt;HeapSnapshotNode&gt; optionalNode = nodeForHeapObjectIdentifier(errorString, heapObjectIdentifier);
</del><ins>+    const std::optional&lt;HeapSnapshotNode&gt; optionalNode = nodeForHeapObjectIdentifier(errorString, heapObjectIdentifier);
</ins><span class="cx">     if (!optionalNode)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -293,7 +293,7 @@
</span><span class="cx">     DeferGC deferGC(vm.heap);
</span><span class="cx"> 
</span><span class="cx">     unsigned heapObjectIdentifier = static_cast&lt;unsigned&gt;(heapObjectId);
</span><del>-    const Optional&lt;HeapSnapshotNode&gt; optionalNode = nodeForHeapObjectIdentifier(errorString, heapObjectIdentifier);
</del><ins>+    const std::optional&lt;HeapSnapshotNode&gt; optionalNode = nodeForHeapObjectIdentifier(errorString, heapObjectIdentifier);
</ins><span class="cx">     if (!optionalNode)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorHeapAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     void clearHeapSnapshots();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Optional&lt;JSC::HeapSnapshotNode&gt; nodeForHeapObjectIdentifier(ErrorString&amp;, unsigned heapObjectIdentifier);
</del><ins>+    std::optional&lt;JSC::HeapSnapshotNode&gt; nodeForHeapObjectIdentifier(ErrorString&amp;, unsigned heapObjectIdentifier);
</ins><span class="cx"> 
</span><span class="cx">     InjectedScriptManager&amp; m_injectedScriptManager;
</span><span class="cx">     std::unique_ptr&lt;HeapFrontendDispatcher&gt; m_frontendDispatcher;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorremoteRemoteConnectionToTargeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">     void close();
</span><span class="cx">     void targetClosed();
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned&gt; targetIdentifier() const;
</del><ins>+    std::optional&lt;unsigned&gt; targetIdentifier() const;
</ins><span class="cx">     NSString *connectionIdentifier() const;
</span><span class="cx">     NSString *destination() const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorremoteRemoteConnectionToTargetmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -119,9 +119,9 @@
</span><span class="cx">     teardownRunLoop();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;unsigned&gt; RemoteConnectionToTarget::targetIdentifier() const
</del><ins>+std::optional&lt;unsigned&gt; RemoteConnectionToTarget::targetIdentifier() const
</ins><span class="cx"> {
</span><del>-    return m_target ? Optional&lt;unsigned&gt;(m_target-&gt;targetIdentifier()) : Nullopt;
</del><ins>+    return m_target ? std::optional&lt;unsigned&gt;(m_target-&gt;targetIdentifier()) : std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> NSString *RemoteConnectionToTarget::connectionIdentifier() const
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx">         {
</span><span class="cx">             std::lock_guard&lt;Lock&gt; lock(m_targetMutex);
</span><span class="cx">             if (!m_target || !m_target-&gt;remoteControlAllowed()) {
</span><del>-                RemoteInspector::singleton().setupFailed(targetIdentifier().valueOr(0));
</del><ins>+                RemoteInspector::singleton().setupFailed(targetIdentifier().value_or(0));
</ins><span class="cx">                 m_target = nullptr;
</span><span class="cx">             } else if (is&lt;RemoteInspectionTarget&gt;(m_target)) {
</span><span class="cx">                 auto castedTarget = downcast&lt;RemoteInspectionTarget&gt;(m_target);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorremoteRemoteInspectorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx">     RefPtr&lt;RemoteInspectorXPCConnection&gt; m_relayConnection;
</span><span class="cx"> 
</span><span class="cx">     RemoteInspector::Client* m_client { nullptr };
</span><del>-    Optional&lt;RemoteInspector::Client::Capabilities&gt; m_clientCapabilities;
</del><ins>+    std::optional&lt;RemoteInspector::Client::Capabilities&gt; m_clientCapabilities;
</ins><span class="cx"> 
</span><span class="cx">     dispatch_queue_t m_xpcQueue;
</span><span class="cx">     unsigned m_nextAvailableTargetIdentifier { 1 };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorremoteRemoteInspectormm"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -256,7 +256,7 @@
</span><span class="cx">     std::lock_guard&lt;Lock&gt; lock(m_mutex);
</span><span class="cx"> 
</span><span class="cx">     if (!m_client)
</span><del>-        m_clientCapabilities = Nullopt;
</del><ins>+        m_clientCapabilities = std::nullopt;
</ins><span class="cx">     else {
</span><span class="cx">         RemoteInspector::Client::Capabilities updatedCapabilities = {
</span><span class="cx">             m_client-&gt;remoteAutomationAllowed() // remoteAutomationAllowed
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -370,11 +370,11 @@
</span><span class="cx">             'namespace %s {' % self.helpers_namespace(),
</span><span class="cx">             '',
</span><span class="cx">             'template&lt;typename ProtocolEnumType&gt;',
</span><del>-            'Optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);',
</del><ins>+            'std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);',
</ins><span class="cx">         ]))
</span><span class="cx"> 
</span><span class="cx">         def return_type_with_export_macro(cpp_protocol_type):
</span><del>-            enum_return_type = 'Optional&lt;%s&gt;' % cpp_protocol_type
</del><ins>+            enum_return_type = 'std::optional&lt;%s&gt;' % cpp_protocol_type
</ins><span class="cx">             result_terms = [enum_return_type]
</span><span class="cx">             export_macro = self.model().framework.setting('export_macro', None)
</span><span class="cx">             if export_macro is not None:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">             body_lines = []
</span><span class="cx">             body_lines.extend([
</span><span class="cx">                 'template&lt;&gt;',
</span><del>-                'Optional&lt;%s&gt; parseEnumValueFromString&lt;%s&gt;(const String&amp; protocolString)' % (cpp_protocol_type, cpp_protocol_type),
</del><ins>+                'std::optional&lt;%s&gt; parseEnumValueFromString&lt;%s&gt;(const String&amp; protocolString)' % (cpp_protocol_type, cpp_protocol_type),
</ins><span class="cx">                 '{',
</span><span class="cx">                 '    static const size_t constantValues[] = {',
</span><span class="cx">             ])
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">                 '        if (protocolString == enum_constant_values[constantValues[i]])',
</span><span class="cx">                 '            return (%s)constantValues[i];' % cpp_protocol_type,
</span><span class="cx">                 '',
</span><del>-                '    return Nullopt;',
</del><ins>+                '    return std::nullopt;',
</ins><span class="cx">                 '}',
</span><span class="cx">                 '',
</span><span class="cx">             ])
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithasyncattributejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -723,11 +723,11 @@
</span><span class="cx"> namespace TestHelpers {
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ProtocolEnumType&gt;
</span><del>-Optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</del><ins>+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> // Enums in the 'Database' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp;);
</del><ins>+std::optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> } // namespace TestHelpers
</span><span class="cx"> 
</span><span class="lines">@@ -795,7 +795,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Enums in the 'Database' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp; protocolString)
</del><ins>+std::optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp; protocolString)
</ins><span class="cx"> {
</span><span class="cx">     static const size_t constantValues[] = {
</span><span class="cx">         (size_t)Inspector::Protocol::Database::PrimaryColors::Red,
</span><span class="lines">@@ -806,7 +806,7 @@
</span><span class="cx">         if (protocolString == enum_constant_values[constantValues[i]])
</span><span class="cx">             return (Inspector::Protocol::Database::PrimaryColors)constantValues[i];
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithoptionalcallreturnparametersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -624,11 +624,11 @@
</span><span class="cx"> namespace TestHelpers {
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ProtocolEnumType&gt;
</span><del>-Optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</del><ins>+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> // Enums in the 'Database' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp;);
</del><ins>+std::optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> } // namespace TestHelpers
</span><span class="cx"> 
</span><span class="lines">@@ -696,7 +696,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Enums in the 'Database' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp; protocolString)
</del><ins>+std::optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp; protocolString)
</ins><span class="cx"> {
</span><span class="cx">     static const size_t constantValues[] = {
</span><span class="cx">         (size_t)Inspector::Protocol::Database::PrimaryColors::Red,
</span><span class="lines">@@ -707,7 +707,7 @@
</span><span class="cx">         if (protocolString == enum_constant_values[constantValues[i]])
</span><span class="cx">             return (Inspector::Protocol::Database::PrimaryColors)constantValues[i];
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedenumvaluesjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -471,11 +471,11 @@
</span><span class="cx"> namespace TestHelpers {
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ProtocolEnumType&gt;
</span><del>-Optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</del><ins>+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> // Enums in the 'TypeDomain' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt; parseEnumValueFromString&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt;(const String&amp;);
</del><ins>+std::optional&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt; parseEnumValueFromString&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt;(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> } // namespace TestHelpers
</span><span class="cx"> 
</span><span class="lines">@@ -545,7 +545,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Enums in the 'TypeDomain' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt; parseEnumValueFromString&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt;(const String&amp; protocolString)
</del><ins>+std::optional&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt; parseEnumValueFromString&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt;(const String&amp; protocolString)
</ins><span class="cx"> {
</span><span class="cx">     static const size_t constantValues[] = {
</span><span class="cx">         (size_t)Inspector::Protocol::TypeDomain::TypeDomainEnum::Shared,
</span><span class="lines">@@ -557,7 +557,7 @@
</span><span class="cx">         if (protocolString == enum_constant_values[constantValues[i]])
</span><span class="cx">             return (Inspector::Protocol::TypeDomain::TypeDomainEnum)constantValues[i];
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedshadowedoptionaltypesettersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -413,11 +413,11 @@
</span><span class="cx"> namespace TestHelpers {
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ProtocolEnumType&gt;
</span><del>-Optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</del><ins>+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> // Enums in the 'Runtime' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt;(const String&amp;);
</del><ins>+std::optional&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt;(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> } // namespace TestHelpers
</span><span class="cx"> 
</span><span class="lines">@@ -481,7 +481,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Enums in the 'Runtime' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt;(const String&amp; protocolString)
</del><ins>+std::optional&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt;(const String&amp; protocolString)
</ins><span class="cx"> {
</span><span class="cx">     static const size_t constantValues[] = {
</span><span class="cx">         (size_t)Inspector::Protocol::Runtime::KeyPath::Type::Null,
</span><span class="lines">@@ -492,7 +492,7 @@
</span><span class="cx">         if (protocolString == enum_constant_values[constantValues[i]])
</span><span class="cx">             return (Inspector::Protocol::Runtime::KeyPath::Type)constantValues[i];
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationarraytypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -363,11 +363,11 @@
</span><span class="cx"> namespace TestHelpers {
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ProtocolEnumType&gt;
</span><del>-Optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</del><ins>+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> // Enums in the 'Debugger' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Debugger::Reason&gt; parseEnumValueFromString&lt;Inspector::Protocol::Debugger::Reason&gt;(const String&amp;);
</del><ins>+std::optional&lt;Inspector::Protocol::Debugger::Reason&gt; parseEnumValueFromString&lt;Inspector::Protocol::Debugger::Reason&gt;(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> } // namespace TestHelpers
</span><span class="cx"> 
</span><span class="lines">@@ -431,7 +431,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Enums in the 'Debugger' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Debugger::Reason&gt; parseEnumValueFromString&lt;Inspector::Protocol::Debugger::Reason&gt;(const String&amp; protocolString)
</del><ins>+std::optional&lt;Inspector::Protocol::Debugger::Reason&gt; parseEnumValueFromString&lt;Inspector::Protocol::Debugger::Reason&gt;(const String&amp; protocolString)
</ins><span class="cx"> {
</span><span class="cx">     static const size_t constantValues[] = {
</span><span class="cx">         (size_t)Inspector::Protocol::Debugger::Reason::Died,
</span><span class="lines">@@ -442,7 +442,7 @@
</span><span class="cx">         if (protocolString == enum_constant_values[constantValues[i]])
</span><span class="cx">             return (Inspector::Protocol::Debugger::Reason)constantValues[i];
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationenumtypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -360,13 +360,13 @@
</span><span class="cx"> namespace TestHelpers {
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ProtocolEnumType&gt;
</span><del>-Optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</del><ins>+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> // Enums in the 'Runtime' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Runtime::FarmAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::FarmAnimals&gt;(const String&amp;);
</del><ins>+std::optional&lt;Inspector::Protocol::Runtime::FarmAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::FarmAnimals&gt;(const String&amp;);
</ins><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt;(const String&amp;);
</del><ins>+std::optional&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt;(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> } // namespace TestHelpers
</span><span class="cx"> 
</span><span class="lines">@@ -434,7 +434,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Enums in the 'Runtime' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Runtime::FarmAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::FarmAnimals&gt;(const String&amp; protocolString)
</del><ins>+std::optional&lt;Inspector::Protocol::Runtime::FarmAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::FarmAnimals&gt;(const String&amp; protocolString)
</ins><span class="cx"> {
</span><span class="cx">     static const size_t constantValues[] = {
</span><span class="cx">         (size_t)Inspector::Protocol::Runtime::FarmAnimals::Pigs,
</span><span class="lines">@@ -446,11 +446,11 @@
</span><span class="cx">         if (protocolString == enum_constant_values[constantValues[i]])
</span><span class="cx">             return (Inspector::Protocol::Runtime::FarmAnimals)constantValues[i];
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt;(const String&amp; protocolString)
</del><ins>+std::optional&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt;(const String&amp; protocolString)
</ins><span class="cx"> {
</span><span class="cx">     static const size_t constantValues[] = {
</span><span class="cx">         (size_t)Inspector::Protocol::Runtime::TwoLeggedAnimals::Ducks,
</span><span class="lines">@@ -462,7 +462,7 @@
</span><span class="cx">         if (protocolString == enum_constant_values[constantValues[i]])
</span><span class="cx">             return (Inspector::Protocol::Runtime::TwoLeggedAnimals)constantValues[i];
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtyperequiringruntimecastsjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -582,13 +582,13 @@
</span><span class="cx"> namespace TestHelpers {
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ProtocolEnumType&gt;
</span><del>-Optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</del><ins>+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> // Enums in the 'Test' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Test::UncastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::UncastedAnimals&gt;(const String&amp;);
</del><ins>+std::optional&lt;Inspector::Protocol::Test::UncastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::UncastedAnimals&gt;(const String&amp;);
</ins><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Test::CastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::CastedAnimals&gt;(const String&amp;);
</del><ins>+std::optional&lt;Inspector::Protocol::Test::CastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::CastedAnimals&gt;(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> } // namespace TestHelpers
</span><span class="cx"> 
</span><span class="lines">@@ -656,7 +656,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Enums in the 'Test' Domain
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Test::UncastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::UncastedAnimals&gt;(const String&amp; protocolString)
</del><ins>+std::optional&lt;Inspector::Protocol::Test::UncastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::UncastedAnimals&gt;(const String&amp; protocolString)
</ins><span class="cx"> {
</span><span class="cx">     static const size_t constantValues[] = {
</span><span class="cx">         (size_t)Inspector::Protocol::Test::UncastedAnimals::Pigs,
</span><span class="lines">@@ -668,11 +668,11 @@
</span><span class="cx">         if (protocolString == enum_constant_values[constantValues[i]])
</span><span class="cx">             return (Inspector::Protocol::Test::UncastedAnimals)constantValues[i];
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt;
</span><del>-Optional&lt;Inspector::Protocol::Test::CastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::CastedAnimals&gt;(const String&amp; protocolString)
</del><ins>+std::optional&lt;Inspector::Protocol::Test::CastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::CastedAnimals&gt;(const String&amp; protocolString)
</ins><span class="cx"> {
</span><span class="cx">     static const size_t constantValues[] = {
</span><span class="cx">         (size_t)Inspector::Protocol::Test::CastedAnimals::Ducks,
</span><span class="lines">@@ -684,7 +684,7 @@
</span><span class="cx">         if (protocolString == enum_constant_values[constantValues[i]])
</span><span class="cx">             return (Inspector::Protocol::Test::CastedAnimals)constantValues[i];
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITCodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITCode.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITCode.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/jit/JITCode.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -196,7 +196,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx">     virtual RegisterSet liveRegistersToPreserveAtExceptionHandlingCallSite(CodeBlock*, CallSiteIndex);
</span><del>-    virtual Optional&lt;CodeOrigin&gt; findPC(CodeBlock*, void* pc) { UNUSED_PARAM(pc); return Nullopt; }
</del><ins>+    virtual std::optional&lt;CodeOrigin&gt; findPC(CodeBlock*, void* pc) { UNUSED_PARAM(pc); return std::nullopt; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITDivGeneratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITDivGenerator.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITDivGenerator.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/jit/JITDivGenerator.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">     loadOperand(jit, m_leftOperand, m_left, m_leftFPR);
</span><span class="cx"> 
</span><span class="cx"> #if USE(JSVALUE64)
</span><del>-    Optional&lt;double&gt; safeReciprocal;
</del><ins>+    std::optional&lt;double&gt; safeReciprocal;
</ins><span class="cx">     if (m_rightOperand.isConst()) {
</span><span class="cx">         double constant = m_rightOperand.asConstNumber();
</span><span class="cx">         safeReciprocal = safeReciprocalForDivByConst(constant);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITOperations.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITOperations.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/jit/JITOperations.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -571,7 +571,7 @@
</span><span class="cx">     auto property = subscript.toPropertyKey(callFrame);
</span><span class="cx">     RETURN_IF_EXCEPTION(scope, void());
</span><span class="cx"> 
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(property)) {
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(property)) {
</ins><span class="cx">         byValInfo-&gt;tookSlowPath = true;
</span><span class="cx">         baseObject-&gt;putDirectIndex(callFrame, index.value(), value, 0, isStrictMode ? PutDirectIndexShouldThrow : PutDirectIndexShouldNotThrow);
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitPCToCodeOriginMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/PCToCodeOriginMap.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/PCToCodeOriginMap.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/jit/PCToCodeOriginMap.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -246,11 +246,11 @@
</span><span class="cx">     return size;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;CodeOrigin&gt; PCToCodeOriginMap::findPC(void* pc) const
</del><ins>+std::optional&lt;CodeOrigin&gt; PCToCodeOriginMap::findPC(void* pc) const
</ins><span class="cx"> {
</span><span class="cx">     uintptr_t pcAsInt = bitwise_cast&lt;uintptr_t&gt;(pc);
</span><span class="cx">     if (!(m_pcRangeStart &lt;= pcAsInt &amp;&amp; pcAsInt &lt;= m_pcRangeEnd))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     uintptr_t currentPC = 0;
</span><span class="cx">     CodeOrigin currentCodeOrigin(0, nullptr);
</span><span class="lines">@@ -293,12 +293,12 @@
</span><span class="cx">             // We subtract 1 because we generate end points inclusively in this table, even though we are interested in ranges of the form: [previousPC, currentPC)
</span><span class="cx">             uintptr_t endOfRange = currentPC - 1;
</span><span class="cx">             if (startOfRange &lt;= pcAsInt &amp;&amp; pcAsInt &lt;= endOfRange)
</span><del>-                return Optional&lt;CodeOrigin&gt;(previousOrigin); // We return previousOrigin here because CodeOrigin's are mapped to the startValue of the range.
</del><ins>+                return std::optional&lt;CodeOrigin&gt;(previousOrigin); // We return previousOrigin here because CodeOrigin's are mapped to the startValue of the range.
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RELEASE_ASSERT_NOT_REACHED();
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitPCToCodeOriginMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/PCToCodeOriginMap.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/PCToCodeOriginMap.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/jit/PCToCodeOriginMap.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     PCToCodeOriginMap(PCToCodeOriginMapBuilder&amp;&amp;, LinkBuffer&amp;);
</span><span class="cx">     ~PCToCodeOriginMap();
</span><span class="cx"> 
</span><del>-    Optional&lt;CodeOrigin&gt; findPC(void* pc) const;
</del><ins>+    std::optional&lt;CodeOrigin&gt; findPC(void* pc) const;
</ins><span class="cx"> 
</span><span class="cx">     double memorySize();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejsccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jsc.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jsc.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/jsc.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -421,7 +421,7 @@
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</del><ins>+        std::optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</ins><span class="cx">         if (index &amp;&amp; index.value() &lt; thisObject-&gt;getLength()) {
</span><span class="cx">             slot.setValue(thisObject, DontDelete | DontEnum, jsNumber(thisObject-&gt;m_vector[index.value()]));
</span><span class="cx">             return true;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntSlowPathscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -892,7 +892,7 @@
</span><span class="cx">     if (UNLIKELY(throwScope.exception()))
</span><span class="cx">         LLINT_END();
</span><span class="cx"> 
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(property))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(property))
</ins><span class="cx">         baseObject-&gt;putDirectIndex(exec, index.value(), value, 0, isStrictMode ? PutDirectIndexShouldThrow : PutDirectIndexShouldNotThrow);
</span><span class="cx">     else {
</span><span class="cx">         PutPropertySlot slot(baseObject, isStrictMode);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserModuleAnalyzercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/ModuleAnalyzer.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/ModuleAnalyzer.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/parser/ModuleAnalyzer.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">     // Indirectly exported binding.
</span><span class="cx">     // import a from &quot;mod&quot;
</span><span class="cx">     // export { a }
</span><del>-    Optional&lt;JSModuleRecord::ImportEntry&gt; optionalImportEntry = moduleRecord()-&gt;tryGetImportEntry(localName.get());
</del><ins>+    std::optional&lt;JSModuleRecord::ImportEntry&gt; optionalImportEntry = moduleRecord()-&gt;tryGetImportEntry(localName.get());
</ins><span class="cx">     ASSERT(optionalImportEntry);
</span><span class="cx">     const JSModuleRecord::ImportEntry&amp; importEntry = *optionalImportEntry;
</span><span class="cx">     for (auto&amp; exportName : moduleProgramNode.moduleScopeData().exportedBindings().get(localName.get()))
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeConcurrentJSLockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ConcurrentJSLock.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ConcurrentJSLock.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/ConcurrentJSLock.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx">     ConcurrentJSLocker(ConcurrentJSLock&amp; lockable)
</span><span class="cx">         : ConcurrentJSLockerBase(lockable)
</span><span class="cx"> #if ENABLE(CONCURRENT_JS) &amp;&amp; !defined(NDEBUG)
</span><del>-        , m_disallowGC(InPlace)
</del><ins>+        , m_disallowGC(std::in_place)
</ins><span class="cx"> #endif
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx">     ConcurrentJSLocker(ConcurrentJSLock* lockable)
</span><span class="cx">         : ConcurrentJSLockerBase(lockable)
</span><span class="cx"> #if ENABLE(CONCURRENT_JS) &amp;&amp; !defined(NDEBUG)
</span><del>-        , m_disallowGC(InPlace)
</del><ins>+        , m_disallowGC(std::in_place)
</ins><span class="cx"> #endif
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx">     ConcurrentJSLocker(NoLockingNecessaryTag)
</span><span class="cx">         : ConcurrentJSLockerBase(NoLockingNecessary)
</span><span class="cx"> #if ENABLE(CONCURRENT_JS) &amp;&amp; !defined(NDEBUG)
</span><del>-        , m_disallowGC(Nullopt)
</del><ins>+        , m_disallowGC(std::nullopt)
</ins><span class="cx"> #endif
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CONCURRENT_JS) &amp;&amp; !defined(NDEBUG)
</span><span class="cx"> private:
</span><del>-    Optional&lt;DisallowGC&gt; m_disallowGC;
</del><ins>+    std::optional&lt;DisallowGC&gt; m_disallowGC;
</ins><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeDefinePropertyAttributesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/DefinePropertyAttributes.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/DefinePropertyAttributes.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/DefinePropertyAttributes.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -99,10 +99,10 @@
</span><span class="cx">         return extractTriState(WritableShift) != MixedTriState;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;bool&gt; writable() const
</del><ins>+    std::optional&lt;bool&gt; writable() const
</ins><span class="cx">     {
</span><span class="cx">         if (!hasWritable())
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         return extractTriState(WritableShift) == TrueTriState;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -111,10 +111,10 @@
</span><span class="cx">         return extractTriState(ConfigurableShift) != MixedTriState;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;bool&gt; configurable() const
</del><ins>+    std::optional&lt;bool&gt; configurable() const
</ins><span class="cx">     {
</span><span class="cx">         if (!hasConfigurable())
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         return extractTriState(ConfigurableShift) == TrueTriState;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -123,10 +123,10 @@
</span><span class="cx">         return extractTriState(EnumerableShift) != MixedTriState;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;bool&gt; enumerable() const
</del><ins>+    std::optional&lt;bool&gt; enumerable() const
</ins><span class="cx">     {
</span><span class="cx">         if (!hasEnumerable())
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         return extractTriState(EnumerableShift) == TrueTriState;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeGenericArgumentsInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/GenericArgumentsInlines.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/GenericArgumentsInlines.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/GenericArgumentsInlines.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    Optional&lt;uint32_t&gt; index = parseIndex(ident);
</del><ins>+    std::optional&lt;uint32_t&gt; index = parseIndex(ident);
</ins><span class="cx">     if (index &amp;&amp; thisObject-&gt;canAccessIndexQuickly(index.value())) {
</span><span class="cx">         slot.setValue(thisObject, None, thisObject-&gt;getIndexQuickly(index.value()));
</span><span class="cx">         return true;
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">     if (UNLIKELY(isThisValueAltered(slot, thisObject)))
</span><span class="cx">         return ordinarySetSlow(exec, thisObject, ident, value, slot.thisValue(), slot.isStrictMode());
</span><span class="cx">     
</span><del>-    Optional&lt;uint32_t&gt; index = parseIndex(ident);
</del><ins>+    std::optional&lt;uint32_t&gt; index = parseIndex(ident);
</ins><span class="cx">     if (index &amp;&amp; thisObject-&gt;canAccessIndexQuickly(index.value())) {
</span><span class="cx">         thisObject-&gt;setIndexQuickly(vm, index.value(), value);
</span><span class="cx">         return true;
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">             || ident == vm.propertyNames-&gt;iteratorSymbol))
</span><span class="cx">         thisObject-&gt;overrideThings(vm);
</span><span class="cx">     
</span><del>-    Optional&lt;uint32_t&gt; index = parseIndex(ident);
</del><ins>+    std::optional&lt;uint32_t&gt; index = parseIndex(ident);
</ins><span class="cx">     if (index &amp;&amp; thisObject-&gt;canAccessIndexQuickly(index.value())) {
</span><span class="cx">         thisObject-&gt;overrideArgument(vm, index.value());
</span><span class="cx">         return true;
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx">         || ident == vm.propertyNames-&gt;iteratorSymbol)
</span><span class="cx">         thisObject-&gt;overrideThingsIfNecessary(vm);
</span><span class="cx">     else {
</span><del>-        Optional&lt;uint32_t&gt; optionalIndex = parseIndex(ident);
</del><ins>+        std::optional&lt;uint32_t&gt; optionalIndex = parseIndex(ident);
</ins><span class="cx">         if (optionalIndex &amp;&amp; thisObject-&gt;canAccessIndexQuickly(optionalIndex.value())) {
</span><span class="cx">             uint32_t index = optionalIndex.value();
</span><span class="cx">             if (!descriptor.isAccessorDescriptor()) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeHasOwnPropertyCacheh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/HasOwnPropertyCache.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/HasOwnPropertyCache.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/HasOwnPropertyCache.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx">         return bitwise_cast&lt;uint32_t&gt;(structureID) + impl-&gt;hash();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ALWAYS_INLINE Optional&lt;bool&gt; get(Structure* structure, PropertyName propName)
</del><ins>+    ALWAYS_INLINE std::optional&lt;bool&gt; get(Structure* structure, PropertyName propName)
</ins><span class="cx">     {
</span><span class="cx">         UniquedStringImpl* impl = propName.uid();
</span><span class="cx">         StructureID id = structure-&gt;id();
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">         Entry&amp; entry = bitwise_cast&lt;Entry*&gt;(this)[index];
</span><span class="cx">         if (entry.structureID == id &amp;&amp; entry.impl.get() == impl)
</span><span class="cx">             return entry.result;
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ALWAYS_INLINE void tryAdd(VM&amp; vm, PropertySlot&amp; slot, JSObject* object, PropertyName propName, bool result)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeHashMapImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/HashMapImpl.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/HashMapImpl.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/HashMapImpl.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -253,16 +253,16 @@
</span><span class="cx">     return wangsInt64Hash(rawValue);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ALWAYS_INLINE Optional&lt;uint32_t&gt; concurrentJSMapHash(JSValue key)
</del><ins>+ALWAYS_INLINE std::optional&lt;uint32_t&gt; concurrentJSMapHash(JSValue key)
</ins><span class="cx"> {
</span><span class="cx">     key = normalizeMapKey(key);
</span><span class="cx">     if (key.isString()) {
</span><span class="cx">         JSString* string = asString(key);
</span><span class="cx">         if (string-&gt;length() &gt; 10 * 1024)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         const StringImpl* impl = string-&gt;tryGetValueImpl();
</span><span class="cx">         if (!impl)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         return impl-&gt;concurrentHash();
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeIdentifierh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Identifier.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Identifier.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/Identifier.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -38,46 +38,46 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template &lt;typename CharType&gt;
</span><del>-ALWAYS_INLINE Optional&lt;uint32_t&gt; parseIndex(const CharType* characters, unsigned length)
</del><ins>+ALWAYS_INLINE std::optional&lt;uint32_t&gt; parseIndex(const CharType* characters, unsigned length)
</ins><span class="cx"> {
</span><span class="cx">     // An empty string is not a number.
</span><span class="cx">     if (!length)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // Get the first character, turning it into a digit.
</span><span class="cx">     uint32_t value = characters[0] - '0';
</span><span class="cx">     if (value &gt; 9)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // Check for leading zeros. If the first characher is 0, then the
</span><span class="cx">     // length of the string must be one - e.g. &quot;042&quot; is not equal to &quot;42&quot;.
</span><span class="cx">     if (!value &amp;&amp; length &gt; 1)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     while (--length) {
</span><span class="cx">         // Multiply value by 10, checking for overflow out of 32 bits.
</span><span class="cx">         if (value &gt; 0xFFFFFFFFU / 10)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         value *= 10;
</span><span class="cx"> 
</span><span class="cx">         // Get the next character, turning it into a digit.
</span><span class="cx">         uint32_t newValue = *(++characters) - '0';
</span><span class="cx">         if (newValue &gt; 9)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         // Add in the old value, checking for overflow out of 32 bits.
</span><span class="cx">         newValue += value;
</span><span class="cx">         if (newValue &lt; value)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         value = newValue;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!isIndex(value))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return value;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ALWAYS_INLINE Optional&lt;uint32_t&gt; parseIndex(StringImpl&amp; impl)
</del><ins>+ALWAYS_INLINE std::optional&lt;uint32_t&gt; parseIndex(StringImpl&amp; impl)
</ins><span class="cx"> {
</span><span class="cx">     if (impl.is8Bit())
</span><span class="cx">         return parseIndex(impl.characters8(), impl.length());
</span><span class="lines">@@ -271,13 +271,13 @@
</span><span class="cx">     return WTF::equal(r, s, length);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ALWAYS_INLINE Optional&lt;uint32_t&gt; parseIndex(const Identifier&amp; identifier)
</del><ins>+ALWAYS_INLINE std::optional&lt;uint32_t&gt; parseIndex(const Identifier&amp; identifier)
</ins><span class="cx"> {
</span><span class="cx">     auto uid = identifier.impl();
</span><span class="cx">     if (!uid)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (uid-&gt;isSymbol())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return parseIndex(*uid);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArray.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArray.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSArray.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -208,7 +208,7 @@
</span><span class="cx"> 
</span><span class="cx">     // 4. Else if P is an array index (15.4), then
</span><span class="cx">     // a. Let index be ToUint32(P).
</span><del>-    if (Optional&lt;uint32_t&gt; optionalIndex = parseIndex(propertyName)) {
</del><ins>+    if (std::optional&lt;uint32_t&gt; optionalIndex = parseIndex(propertyName)) {
</ins><span class="cx">         // b. Reject if index &gt;= oldLen and oldLenDesc.[[Writable]] is false.
</span><span class="cx">         uint32_t index = optionalIndex.value();
</span><span class="cx">         // FIXME: Nothing prevents this from being called on a RuntimeArray, and the length function will always return 0 in that case.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSCJSValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -76,10 +76,10 @@
</span><span class="cx">     return isUndefined() ? PNaN : 0; // null and false both convert to 0.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;double&gt; JSValue::toNumberFromPrimitive() const
</del><ins>+std::optional&lt;double&gt; JSValue::toNumberFromPrimitive() const
</ins><span class="cx"> {
</span><span class="cx">     if (isEmpty())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (isNumber())
</span><span class="cx">         return asNumber();
</span><span class="cx">     if (isBoolean())
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">         return PNaN;
</span><span class="cx">     if (isNull())
</span><span class="cx">         return 0;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSObject* JSValue::toObjectSlowCase(ExecState* exec, JSGlobalObject* globalObject) const
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx"> 
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return putToPrimitiveByIndex(exec, index.value(), value, slot.isStrictMode());
</span><span class="cx"> 
</span><span class="cx">     // Check if there are any setters or getters in the prototype chain
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSCJSValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSCJSValue.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSCJSValue.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSCJSValue.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -251,7 +251,7 @@
</span><span class="cx">     double toNumber(ExecState*) const;
</span><span class="cx"> 
</span><span class="cx">     // toNumber conversion if it can be done without side effects.
</span><del>-    Optional&lt;double&gt; toNumberFromPrimitive() const;
</del><ins>+    std::optional&lt;double&gt; toNumberFromPrimitive() const;
</ins><span class="cx"> 
</span><span class="cx">     JSString* toString(ExecState*) const; // On exception, this returns the empty string.
</span><span class="cx">     JSString* toStringOrNull(ExecState*) const; // On exception, this returns null, to make exception checks faster.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -189,7 +189,7 @@
</span><span class="cx"> 
</span><span class="cx">     static ElementType toAdaptorNativeFromValue(ExecState* exec, JSValue jsValue) { return toNativeFromValue&lt;Adaptor&gt;(exec, jsValue); }
</span><span class="cx"> 
</span><del>-    static Optional&lt;ElementType&gt; toAdaptorNativeFromValueWithoutCoercion(JSValue jsValue) { return toNativeFromValueWithoutCoercion&lt;Adaptor&gt;(jsValue); }
</del><ins>+    static std::optional&lt;ElementType&gt; toAdaptorNativeFromValueWithoutCoercion(JSValue jsValue) { return toNativeFromValueWithoutCoercion&lt;Adaptor&gt;(jsValue); }
</ins><span class="cx"> 
</span><span class="cx">     void sort()
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewConstructorInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ViewClass&gt;
</span><del>-inline JSObject* constructGenericTypedArrayViewWithArguments(ExecState* exec, Structure* structure, EncodedJSValue firstArgument, unsigned offset, Optional&lt;unsigned&gt; lengthOpt)
</del><ins>+inline JSObject* constructGenericTypedArrayViewWithArguments(ExecState* exec, Structure* structure, EncodedJSValue firstArgument, unsigned offset, std::optional&lt;unsigned&gt; lengthOpt)
</ins><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="lines">@@ -231,7 +231,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSValue firstValue = exec-&gt;uncheckedArgument(0);
</span><span class="cx">     unsigned offset = 0;
</span><del>-    Optional&lt;unsigned&gt; length = Nullopt;
</del><ins>+    std::optional&lt;unsigned&gt; length = std::nullopt;
</ins><span class="cx">     if (jsDynamicCast&lt;JSArrayBuffer*&gt;(firstValue) &amp;&amp; argCount &gt; 1) {
</span><span class="cx">         offset = exec-&gt;uncheckedArgument(1).toIndex(exec, &quot;byteOffset&quot;);
</span><span class="cx">         RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -345,7 +345,7 @@
</span><span class="cx"> {
</span><span class="cx">     JSGenericTypedArrayView* thisObject = jsCast&lt;JSGenericTypedArrayView*&gt;(object);
</span><span class="cx"> 
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</ins><span class="cx">         if (thisObject-&gt;isNeutered()) {
</span><span class="cx">             slot.setCustom(thisObject, None, throwNeuteredTypedArrayTypeError);
</span><span class="cx">             return true;
</span><span class="lines">@@ -371,7 +371,7 @@
</span><span class="cx">     // https://tc39.github.io/ecma262/#sec-integer-indexed-exotic-objects-set-p-v-receiver
</span><span class="cx">     // Ignore the receiver even if the receiver is altered to non base value.
</span><span class="cx">     // 9.4.5.5-2-b-i Return ? IntegerIndexedElementSet(O, numericIndex, V).
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return putByIndex(thisObject, exec, index.value(), value, slot.isStrictMode());
</span><span class="cx">     
</span><span class="cx">     return Base::put(thisObject, exec, propertyName, value, slot);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSModuleRecordcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSModuleRecord.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSModuleRecord.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSModuleRecord.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -90,20 +90,20 @@
</span><span class="cx">     ASSERT_UNUSED(isNewEntry, isNewEntry); // This is guaranteed by the parser.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-auto JSModuleRecord::tryGetImportEntry(UniquedStringImpl* localName) -&gt; Optional&lt;ImportEntry&gt;
</del><ins>+auto JSModuleRecord::tryGetImportEntry(UniquedStringImpl* localName) -&gt; std::optional&lt;ImportEntry&gt;
</ins><span class="cx"> {
</span><span class="cx">     const auto iterator = m_importEntries.find(localName);
</span><span class="cx">     if (iterator == m_importEntries.end())
</span><del>-        return Nullopt;
-    return Optional&lt;ImportEntry&gt;(iterator-&gt;value);
</del><ins>+        return std::nullopt;
+    return std::optional&lt;ImportEntry&gt;(iterator-&gt;value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-auto JSModuleRecord::tryGetExportEntry(UniquedStringImpl* exportName) -&gt; Optional&lt;ExportEntry&gt;
</del><ins>+auto JSModuleRecord::tryGetExportEntry(UniquedStringImpl* exportName) -&gt; std::optional&lt;ExportEntry&gt;
</ins><span class="cx"> {
</span><span class="cx">     const auto iterator = m_exportEntries.find(exportName);
</span><span class="cx">     if (iterator == m_exportEntries.end())
</span><del>-        return Nullopt;
-    return Optional&lt;ExportEntry&gt;(iterator-&gt;value);
</del><ins>+        return std::nullopt;
+    return std::optional&lt;ExportEntry&gt;(iterator-&gt;value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> auto JSModuleRecord::ExportEntry::createLocal(const Identifier&amp; exportName, const Identifier&amp; localName) -&gt; ExportEntry
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx"> 
</span><span class="cx"> auto JSModuleRecord::resolveImport(ExecState* exec, const Identifier&amp; localName) -&gt; Resolution
</span><span class="cx"> {
</span><del>-    Optional&lt;ImportEntry&gt; optionalImportEntry = tryGetImportEntry(localName.impl());
</del><ins>+    std::optional&lt;ImportEntry&gt; optionalImportEntry = tryGetImportEntry(localName.impl());
</ins><span class="cx">     if (!optionalImportEntry)
</span><span class="cx">         return Resolution::notFound();
</span><span class="cx"> 
</span><span class="lines">@@ -215,12 +215,12 @@
</span><span class="cx">     return lhs.moduleRecord == rhs.moduleRecord &amp;&amp; lhs.exportName == rhs.exportName;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-auto JSModuleRecord::tryGetCachedResolution(UniquedStringImpl* exportName) -&gt; Optional&lt;Resolution&gt;
</del><ins>+auto JSModuleRecord::tryGetCachedResolution(UniquedStringImpl* exportName) -&gt; std::optional&lt;Resolution&gt;
</ins><span class="cx"> {
</span><span class="cx">     const auto iterator = m_resolutionCache.find(exportName);
</span><span class="cx">     if (iterator == m_resolutionCache.end())
</span><del>-        return Nullopt;
-    return Optional&lt;Resolution&gt;(iterator-&gt;value);
</del><ins>+        return std::nullopt;
+    return std::optional&lt;Resolution&gt;(iterator-&gt;value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSModuleRecord::cacheResolution(UniquedStringImpl* exportName, const Resolution&amp; resolution)
</span><span class="lines">@@ -558,7 +558,7 @@
</span><span class="cx"> 
</span><span class="cx">             //  4. Once we follow star links, we should not retrieve the result from the cache and should not cache the result.
</span><span class="cx">             if (!foundStarLinks) {
</span><del>-                if (Optional&lt;Resolution&gt; cachedResolution = moduleRecord-&gt;tryGetCachedResolution(query.exportName.get())) {
</del><ins>+                if (std::optional&lt;Resolution&gt; cachedResolution = moduleRecord-&gt;tryGetCachedResolution(query.exportName.get())) {
</ins><span class="cx">                     if (!mergeToCurrentTop(*cachedResolution))
</span><span class="cx">                         return Resolution::ambiguous();
</span><span class="cx">                     continue;
</span><span class="lines">@@ -565,7 +565,7 @@
</span><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            const Optional&lt;ExportEntry&gt; optionalExportEntry = moduleRecord-&gt;tryGetExportEntry(query.exportName.get());
</del><ins>+            const std::optional&lt;ExportEntry&gt; optionalExportEntry = moduleRecord-&gt;tryGetExportEntry(query.exportName.get());
</ins><span class="cx">             if (!optionalExportEntry) {
</span><span class="cx">                 // If there is no matched exported binding in the current module,
</span><span class="cx">                 // we need to look into the stars.
</span><span class="lines">@@ -648,7 +648,7 @@
</span><span class="cx"> auto JSModuleRecord::resolveExport(ExecState* exec, const Identifier&amp; exportName) -&gt; Resolution
</span><span class="cx"> {
</span><span class="cx">     // Look up the cached resolution first before entering the resolving loop, since the loop setup takes some cost.
</span><del>-    if (Optional&lt;Resolution&gt; cachedResolution = tryGetCachedResolution(exportName.impl()))
</del><ins>+    if (std::optional&lt;Resolution&gt; cachedResolution = tryGetCachedResolution(exportName.impl()))
</ins><span class="cx">         return *cachedResolution;
</span><span class="cx">     return resolveExportImpl(exec, ResolveQuery(this, exportName.impl()));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSModuleRecordh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSModuleRecord.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSModuleRecord.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSModuleRecord.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -98,8 +98,8 @@
</span><span class="cx">     void addImportEntry(const ImportEntry&amp;);
</span><span class="cx">     void addExportEntry(const ExportEntry&amp;);
</span><span class="cx"> 
</span><del>-    Optional&lt;ImportEntry&gt; tryGetImportEntry(UniquedStringImpl* localName);
-    Optional&lt;ExportEntry&gt; tryGetExportEntry(UniquedStringImpl* exportName);
</del><ins>+    std::optional&lt;ImportEntry&gt; tryGetImportEntry(UniquedStringImpl* localName);
+    std::optional&lt;ExportEntry&gt; tryGetExportEntry(UniquedStringImpl* exportName);
</ins><span class="cx"> 
</span><span class="cx">     const SourceCode&amp; sourceCode() const { return m_sourceCode; }
</span><span class="cx">     const Identifier&amp; moduleKey() const { return m_moduleKey; }
</span><span class="lines">@@ -162,7 +162,7 @@
</span><span class="cx"> 
</span><span class="cx">     struct ResolveQuery;
</span><span class="cx">     static Resolution resolveExportImpl(ExecState*, const ResolveQuery&amp;);
</span><del>-    Optional&lt;Resolution&gt; tryGetCachedResolution(UniquedStringImpl* exportName);
</del><ins>+    std::optional&lt;Resolution&gt; tryGetCachedResolution(UniquedStringImpl* exportName);
</ins><span class="cx">     void cacheResolution(UniquedStringImpl* exportName, const Resolution&amp;);
</span><span class="cx"> 
</span><span class="cx">     // The loader resolves the given module name to the module key. The module key is the unique value to represent this module.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObject.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1462,7 +1462,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(value.isGetterSetter() &amp;&amp; (attributes &amp; Accessor));
</span><span class="cx"> 
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return putDirectIndex(exec, index.value(), value, attributes, PutDirectIndexLikePutDirect);
</span><span class="cx"> 
</span><span class="cx">     return putDirectNonIndexAccessor(exec-&gt;vm(), propertyName, value, attributes);
</span><span class="lines">@@ -1527,7 +1527,7 @@
</span><span class="cx">     JSObject* thisObject = jsCast&lt;JSObject*&gt;(cell);
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return thisObject-&gt;methodTable(vm)-&gt;deletePropertyByIndex(thisObject, exec, index.value());
</span><span class="cx"> 
</span><span class="cx">     unsigned attributes;
</span><span class="lines">@@ -3016,7 +3016,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool JSObject::putDirectMayBeIndex(ExecState* exec, PropertyName propertyName, JSValue value)
</span><span class="cx"> {
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return putDirectIndex(exec, index.value(), value);
</span><span class="cx">     return putDirect(exec-&gt;vm(), propertyName, value);
</span><span class="cx"> }
</span><span class="lines">@@ -3169,7 +3169,7 @@
</span><span class="cx"> bool JSObject::defineOwnProperty(JSObject* object, ExecState* exec, PropertyName propertyName, const PropertyDescriptor&amp; descriptor, bool throwException)
</span><span class="cx"> {
</span><span class="cx">     // If it's an array index, then use the indexed property storage.
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</ins><span class="cx">         // c. Let succeeded be the result of calling the default [[DefineOwnProperty]] internal method (8.12.9) on A passing P, Desc, and false as arguments.
</span><span class="cx">         // d. Reject if succeeded is false.
</span><span class="cx">         // e. If index &gt;= oldLen
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObject.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObject.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSObject.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1320,7 +1320,7 @@
</span><span class="cx">     Structure* structure = object-&gt;structure(vm);
</span><span class="cx">     if (object-&gt;getOwnNonIndexPropertySlot(vm, structure, propertyName, slot))
</span><span class="cx">         return true;
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return getOwnPropertySlotByIndex(object, exec, index.value(), slot);
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="lines">@@ -1338,7 +1338,7 @@
</span><span class="cx">             // getOwnNonIndexPropertySlot), so we cannot safely call the overridden getOwnPropertySlot
</span><span class="cx">             // (lest we return a property from a prototype that is shadowed). Check now for an index,
</span><span class="cx">             // if so we need to start afresh from this object.
</span><del>-            if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+            if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">                 return getPropertySlot(exec, index.value(), slot);
</span><span class="cx">             // Safe to continue searching from current position; call getNonIndexPropertySlot to avoid
</span><span class="cx">             // parsing the int again.
</span><span class="lines">@@ -1354,7 +1354,7 @@
</span><span class="cx">         object = asObject(prototype);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return getPropertySlot(exec, index.value(), slot);
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="lines">@@ -1394,7 +1394,7 @@
</span><span class="cx">     ASSERT(!structure()-&gt;hasGetterSetterProperties());
</span><span class="cx">     ASSERT(!structure()-&gt;hasCustomGetterSetterProperties());
</span><span class="cx"> 
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return putDirectIndex(exec, index.value(), value, 0, PutDirectIndexLikePutDirect);
</span><span class="cx"> 
</span><span class="cx">     return putDirectInternal&lt;PutModePut&gt;(exec-&gt;vm(), propertyName, value, 0, slot);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjectInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObjectInlines.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObjectInlines.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSObjectInlines.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -196,7 +196,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Try indexed put first. This is required for correctness, since loads on property names that appear like
</span><span class="cx">     // valid indices will never look in the named property storage.
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return putByIndex(thisObject, exec, index.value(), value, slot.isStrictMode());
</span><span class="cx"> 
</span><span class="cx">     if (thisObject-&gt;canPerformFastPutInline(exec, vm, propertyName)) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSStringcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSString.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSString.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSString.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -434,7 +434,7 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    Optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</del><ins>+    std::optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</ins><span class="cx">     if (index &amp;&amp; index.value() &lt; length()) {
</span><span class="cx">         descriptor.setDescriptor(getIndex(exec, index.value()), DontDelete | ReadOnly);
</span><span class="cx">         return true;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSStringh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSString.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSString.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/JSString.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -668,7 +668,7 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</del><ins>+    std::optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</ins><span class="cx">     if (index &amp;&amp; index.value() &lt; length()) {
</span><span class="cx">         slot.setValue(this, DontDelete | ReadOnly, getIndex(exec, index.value()));
</span><span class="cx">         return true;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeLiteralParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -690,7 +690,7 @@
</span><span class="cx">                     PutPropertySlot slot(object, codeBlock ? codeBlock-&gt;isStrictMode() : false);
</span><span class="cx">                     objectStack.last().put(m_exec, ident, lastValue, slot);
</span><span class="cx">                 } else {
</span><del>-                    if (Optional&lt;uint32_t&gt; index = parseIndex(ident))
</del><ins>+                    if (std::optional&lt;uint32_t&gt; index = parseIndex(ident))
</ins><span class="cx">                         object-&gt;putDirectIndex(m_exec, index.value(), lastValue);
</span><span class="cx">                     else
</span><span class="cx">                         object-&gt;putDirect(vm, ident, lastValue);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeMathCommonh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/MathCommon.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/MathCommon.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/MathCommon.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -118,15 +118,15 @@
</span><span class="cx">     return toInt32(number);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;double&gt; safeReciprocalForDivByConst(double constant)
</del><ins>+inline std::optional&lt;double&gt; safeReciprocalForDivByConst(double constant)
</ins><span class="cx"> {
</span><span class="cx">     // No &quot;weird&quot; numbers (NaN, Denormal, etc).
</span><span class="cx">     if (!constant || !std::isnormal(constant))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     int exponent;
</span><span class="cx">     if (std::frexp(constant, &amp;exponent) != 0.5)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // Note that frexp() returns the value divided by two
</span><span class="cx">     // so we to offset this exponent by one.
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">     // A double exponent is between -1022 and 1023.
</span><span class="cx">     // Nothing we can do to invert 1023.
</span><span class="cx">     if (exponent == 1023)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     double reciprocal = std::ldexp(1, -exponent);
</span><span class="cx">     ASSERT(std::isnormal(reciprocal));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeObjectPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ObjectPrototype.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ObjectPrototype.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/ObjectPrototype.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> 
</span><span class="cx">     Structure* structure = thisObject-&gt;structure(vm);
</span><span class="cx">     HasOwnPropertyCache* hasOwnPropertyCache = vm.ensureHasOwnPropertyCache();
</span><del>-    if (Optional&lt;bool&gt; result = hasOwnPropertyCache-&gt;get(structure, propertyName)) {
</del><ins>+    if (std::optional&lt;bool&gt; result = hasOwnPropertyCache-&gt;get(structure, propertyName)) {
</ins><span class="cx">         ASSERT(*result == thisObject-&gt;hasOwnProperty(exec, propertyName));
</span><span class="cx">         ASSERT(!scope.exception());
</span><span class="cx">         return JSValue::encode(jsBoolean(*result));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertyDescriptorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -98,16 +98,16 @@
</span><span class="cx">     // We assume that validation is already done.
</span><span class="cx">     PropertyDescriptor desc;
</span><span class="cx"> 
</span><del>-    if (Optional&lt;bool&gt; enumerable = attributes.enumerable())
</del><ins>+    if (std::optional&lt;bool&gt; enumerable = attributes.enumerable())
</ins><span class="cx">         desc.setEnumerable(enumerable.value());
</span><span class="cx"> 
</span><del>-    if (Optional&lt;bool&gt; configurable = attributes.configurable())
</del><ins>+    if (std::optional&lt;bool&gt; configurable = attributes.configurable())
</ins><span class="cx">         desc.setConfigurable(configurable.value());
</span><span class="cx"> 
</span><span class="cx">     if (attributes.hasValue())
</span><span class="cx">         desc.setValue(value);
</span><span class="cx"> 
</span><del>-    if (Optional&lt;bool&gt; writable = attributes.writable())
</del><ins>+    if (std::optional&lt;bool&gt; writable = attributes.writable())
</ins><span class="cx">         desc.setWritable(writable.value());
</span><span class="cx"> 
</span><span class="cx">     if (attributes.hasGet())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertyNameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertyName.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertyName.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/PropertyName.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -114,13 +114,13 @@
</span><span class="cx">     return a.uid() != b.uid();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ALWAYS_INLINE Optional&lt;uint32_t&gt; parseIndex(PropertyName propertyName)
</del><ins>+ALWAYS_INLINE std::optional&lt;uint32_t&gt; parseIndex(PropertyName propertyName)
</ins><span class="cx"> {
</span><span class="cx">     auto uid = propertyName.uid();
</span><span class="cx">     if (!uid)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (uid-&gt;isSymbol())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return parseIndex(*uid);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeSamplingProfilercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/SamplingProfiler.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/SamplingProfiler.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/SamplingProfiler.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -475,7 +475,7 @@
</span><span class="cx">                     storeCalleeIntoTopFrame(unprocessedStackTrace.frames[0].unverifiedCallee);
</span><span class="cx">                     startIndex = 1;
</span><span class="cx">                 }
</span><del>-            } else if (Optional&lt;CodeOrigin&gt; codeOrigin = topCodeBlock-&gt;findPC(unprocessedStackTrace.topPC)) {
</del><ins>+            } else if (std::optional&lt;CodeOrigin&gt; codeOrigin = topCodeBlock-&gt;findPC(unprocessedStackTrace.topPC)) {
</ins><span class="cx">                 codeOrigin-&gt;walkUpInlineStack([&amp;] (const CodeOrigin&amp; codeOrigin) {
</span><span class="cx">                     appendCodeBlock(codeOrigin.inlineCallFrame ? codeOrigin.inlineCallFrame-&gt;baselineCodeBlock.get() : topCodeBlock, codeOrigin.bytecodeIndex);
</span><span class="cx">                 });
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStringObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StringObject.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StringObject.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/StringObject.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (propertyName == vm.propertyNames-&gt;length)
</span><span class="cx">         return typeError(exec, scope, slot.isStrictMode(), ASCIILiteral(ReadonlyPropertyWriteError));
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return putByIndex(cell, exec, index.value(), value, slot.isStrictMode());
</span><span class="cx">     return JSObject::put(cell, exec, propertyName, value, slot);
</span><span class="cx"> }
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (propertyName == exec-&gt;propertyNames().length)
</span><span class="cx">         return true;
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</ins><span class="cx">         if (object-&gt;internalValue()-&gt;canGetIndex(index.value()))
</span><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx">     StringObject* thisObject = jsCast&lt;StringObject*&gt;(cell);
</span><span class="cx">     if (propertyName == exec-&gt;propertyNames().length)
</span><span class="cx">         return false;
</span><del>-    Optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</del><ins>+    std::optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</ins><span class="cx">     if (index &amp;&amp; thisObject-&gt;internalValue()-&gt;canGetIndex(index.value()))
</span><span class="cx">         return false;
</span><span class="cx">     return JSObject::deleteProperty(thisObject, exec, propertyName);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeToNativeFromValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ToNativeFromValue.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ToNativeFromValue.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/ToNativeFromValue.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -48,10 +48,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename Adaptor&gt;
</span><del>-Optional&lt;typename Adaptor::Type&gt; toNativeFromValueWithoutCoercion(JSValue value)
</del><ins>+std::optional&lt;typename Adaptor::Type&gt; toNativeFromValueWithoutCoercion(JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     if (!value.isNumber())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (value.isInt32())
</span><span class="cx">         return Adaptor::toNativeFromInt32WithoutCoercion(value.asInt32());
</span><span class="cx">     return Adaptor::toNativeFromDoubleWithoutCoercion(value.asDouble());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypedArrayAdaptorsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypedArrayAdaptors.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypedArrayAdaptors.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/JavaScriptCore/runtime/TypedArrayAdaptors.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -79,26 +79,26 @@
</span><span class="cx">         return OtherAdaptor::toNativeFromInt32(value);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;Type&gt; toNativeFromInt32WithoutCoercion(int32_t value)
</del><ins>+    static std::optional&lt;Type&gt; toNativeFromInt32WithoutCoercion(int32_t value)
</ins><span class="cx">     {
</span><span class="cx">         if ((value &gt;= 0 &amp;&amp; static_cast&lt;uint32_t&gt;(value) &gt; static_cast&lt;uint32_t&gt;(maxValue)) || value &lt; static_cast&lt;int32_t&gt;(minValue))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         return static_cast&lt;Type&gt;(value);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;Type&gt; toNativeFromUint32WithoutCoercion(uint32_t value)
</del><ins>+    static std::optional&lt;Type&gt; toNativeFromUint32WithoutCoercion(uint32_t value)
</ins><span class="cx">     {
</span><span class="cx">         if (value &gt; static_cast&lt;uint32_t&gt;(maxValue))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         return static_cast&lt;Type&gt;(value);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;Type&gt; toNativeFromDoubleWithoutCoercion(double value)
</del><ins>+    static std::optional&lt;Type&gt; toNativeFromDoubleWithoutCoercion(double value)
</ins><span class="cx">     {
</span><span class="cx">         Type integer = static_cast&lt;Type&gt;(value);
</span><span class="cx">         if (static_cast&lt;double&gt;(integer) != value)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         if (value &lt; 0)
</span><span class="cx">             return toNativeFromInt32WithoutCoercion(static_cast&lt;int32_t&gt;(value));
</span><span class="lines">@@ -149,12 +149,12 @@
</span><span class="cx">         return OtherAdaptor::toNativeFromDouble(value);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;Type&gt; toNativeFromInt32WithoutCoercion(int32_t value)
</del><ins>+    static std::optional&lt;Type&gt; toNativeFromInt32WithoutCoercion(int32_t value)
</ins><span class="cx">     {
</span><span class="cx">         return static_cast&lt;Type&gt;(value);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;Type&gt; toNativeFromDoubleWithoutCoercion(double value)
</del><ins>+    static std::optional&lt;Type&gt; toNativeFromDoubleWithoutCoercion(double value)
</ins><span class="cx">     {
</span><span class="cx">         if (std::isnan(value) || std::isinf(value))
</span><span class="cx">             return static_cast&lt;Type&gt;(value);
</span><span class="lines">@@ -162,10 +162,10 @@
</span><span class="cx">         Type valueResult = static_cast&lt;Type&gt;(value);
</span><span class="cx"> 
</span><span class="cx">         if (static_cast&lt;double&gt;(valueResult) != value)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         if (value &lt; minValue || value &gt; maxValue)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         return valueResult;
</span><span class="cx">     }
</span><span class="lines">@@ -255,19 +255,19 @@
</span><span class="cx">         return OtherAdaptor::toNativeFromInt32(value);
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    static Optional&lt;Type&gt; toNativeFromInt32WithoutCoercion(int32_t value)
</del><ins>+    static std::optional&lt;Type&gt; toNativeFromInt32WithoutCoercion(int32_t value)
</ins><span class="cx">     {
</span><span class="cx">         if (value &gt; maxValue || value &lt; minValue)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         return static_cast&lt;Type&gt;(value);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;Type&gt; toNativeFromDoubleWithoutCoercion(double value)
</del><ins>+    static std::optional&lt;Type&gt; toNativeFromDoubleWithoutCoercion(double value)
</ins><span class="cx">     {
</span><span class="cx">         uint8_t integer = static_cast&lt;uint8_t&gt;(value);
</span><span class="cx">         if (static_cast&lt;double&gt;(integer) != value)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         return integer;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/ChangeLog        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1,3 +1,101 @@
</span><ins>+2016-11-26  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
+
+        [WTF] Import std::optional reference implementation as WTF::Optional
+        https://bugs.webkit.org/show_bug.cgi?id=164199
+
+        Reviewed by Saam Barati and Sam Weinig.
+
+        Import std::optional reference implementation offered by the C++17
+        original proposal paper. It has the same interface and functionality
+        to the C++17's one. Previous WTF::Optional lacks several functionalities.
+        The largest one is the correct constexpr constructors. This fact prevents
+        us from using Optional&lt;literal type&gt; in constexpr context in WebKit.
+
+        In WebKit, we do not allow global constructors. So only the constexpr
+        constructor is the way to use WTF::Optional in the static const
+        global variables. WTF::Optional is used in DOMJIT::Effect and
+        we would like to emit static const global variables that includes
+        this DOMJIT::Effect. That is the main motivation of this work.
+        This functionality allows the IDL code generator to emit DOMJIT
+        signatures as static const global variables.
+
+        We import the reference implementation one instead of LLVM libc++'s one.
+        This is because LLVM libc++'s one depends on many macro and type_traits
+        offered by libc++ implementation. And adopting it to WebKit requires
+        large modification compared to this reference implementation one.
+        Furthermore, it is difficult to compile libc++'s optional in old GCC and VC++.
+        It also requires some more modifications. To keep the thing simple,
+        we import the reference implementation one now. Once C++17 is released
+        and we update the compiler baseline, we can smoothly switch to the standard
+        library's std::optional.
+
+        We also add support for the environment that does not use exceptions to this
+        reference implementation.
+
+        And we also add valueOrCompute helper function. That keeps the extended
+        functionality that previous WTF::Optional has.
+
+        * wtf/CrossThreadQueue.h:
+        (WTF::CrossThreadQueue&lt;DataType&gt;::tryGetMessage):
+        * wtf/Expected.h:
+        (WTF::makeExpected):
+        * wtf/Forward.h:
+        * wtf/HashTraits.h:
+        (WTF::HashTraits&lt;Ref&lt;P&gt;&gt;::take):
+        * wtf/MainThread.cpp:
+        (WTF::initializeGCThreads):
+        (WTF::mayBeGCThread):
+        * wtf/MainThread.h:
+        * wtf/Optional.h:
+        (std::detail_::is_assignable::has_assign):
+        (std::detail_::has_overloaded_addressof::has_overload):
+        (std::detail_::static_addressof):
+        (std::detail_::convert):
+        (std::nullopt_t::nullopt_t):
+        (std::bad_optional_access::bad_optional_access):
+        (std::optional_base::optional_base):
+        (std::optional_base::~optional_base):
+        (std::constexpr_optional_base::constexpr_optional_base):
+        (std::optional::dataptr):
+        (std::optional::contained_val):
+        (std::optional::__NOEXCEPT_):
+        (std::optional::optional):
+        (std::optional::operator=):
+        (std::optional::emplace):
+        (std::optional::operator -&gt;):
+        (std::optional::operator *):
+        (std::optional::value):
+        (std::optional::value_or):
+        (std::operator==):
+        (std::operator!=):
+        (std::operator&lt;):
+        (std::operator&gt;):
+        (std::operator&lt;=):
+        (std::operator&gt;=):
+        (std::__NOEXCEPT_):
+        (std::make_optional):
+        (std::hash&lt;std::optional&lt;T&gt;&gt;::operator()):
+        (WTF::NulloptTag::NulloptTag): Deleted.
+        (WTF::Optional::Optional): Deleted.
+        (WTF::Optional::~Optional): Deleted.
+        (WTF::Optional::operator=): Deleted.
+        (WTF::Optional::operator bool): Deleted.
+        (WTF::Optional::operator-&gt;): Deleted.
+        (WTF::Optional::operator*): Deleted.
+        (WTF::Optional::value): Deleted.
+        (WTF::Optional::valueOr): Deleted.
+        (WTF::Optional::valueOrCompute): Deleted.
+        (WTF::Optional::asPtr): Deleted.
+        (WTF::Optional::destroy): Deleted.
+        (WTF::operator==): Deleted.
+        (WTF::operator!=): Deleted.
+        (WTF::makeOptional): Deleted.
+        (WTF::printInternal): Deleted.
+        * wtf/text/StringView.cpp:
+        (WTF::StringView::GraphemeClusters::Iterator::Impl::Impl):
+        (WTF::StringView::GraphemeClusters::Iterator::Iterator):
+        * wtf/text/StringView.h:
+
</ins><span class="cx"> 2016-11-26  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Migrate some layout timer-related code from std::chrono to Seconds and MonotonicTime
</span></span></pre></div>
<a id="trunkSourceWTFwtfCrossThreadQueueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/CrossThreadQueue.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/CrossThreadQueue.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/wtf/CrossThreadQueue.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     void append(DataType&amp;&amp;);
</span><span class="cx"> 
</span><span class="cx">     DataType waitForMessage();
</span><del>-    Optional&lt;DataType&gt; tryGetMessage();
</del><ins>+    std::optional&lt;DataType&gt; tryGetMessage();
</ins><span class="cx"> 
</span><span class="cx">     bool isKilled() const { return false; }
</span><span class="cx"> 
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename DataType&gt;
</span><del>-Optional&lt;DataType&gt; CrossThreadQueue&lt;DataType&gt;::tryGetMessage()
</del><ins>+std::optional&lt;DataType&gt; CrossThreadQueue&lt;DataType&gt;::tryGetMessage()
</ins><span class="cx"> {
</span><span class="cx">     LockHolder lock(m_lock);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWTFwtfExpectedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Expected.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Expected.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/wtf/Expected.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -406,15 +406,15 @@
</span><span class="cx"> 
</span><span class="cx"> template &lt;typename T, typename E&gt; void swap(Expected&lt;T, E&gt;&amp; x, Expected&lt;T, E&gt;&amp; y) { x.swap(y); }
</span><span class="cx"> 
</span><del>-template &lt;class T, class E = WTF::NulloptTag&gt; constexpr Expected&lt;std::decay_t&lt;T&gt;, E&gt; makeExpected(T&amp;&amp; v)
</del><ins>+template &lt;class T, class E = std::nullopt_t&gt; constexpr Expected&lt;std::decay_t&lt;T&gt;, E&gt; makeExpected(T&amp;&amp; v)
</ins><span class="cx"> {
</span><span class="cx">     return Expected&lt;typename std::decay&lt;T&gt;::type, E&gt;(std::forward&lt;T&gt;(v));
</span><span class="cx"> }
</span><span class="cx"> template &lt;class T, class E&gt; constexpr Expected&lt;T, std::decay_t&lt;E&gt;&gt; makeExpectedFromError(E&amp;&amp; e) { return Expected&lt;T, std::decay_t&lt;E&gt;&gt;(makeUnexpected(e)); }
</span><span class="cx"> template &lt;class T, class E, class U&gt; constexpr Expected&lt;T, E&gt; makeExpectedFromError(U&amp;&amp; u) { return Expected&lt;T, E&gt;(makeUnexpected(E { std::forward&lt;U&gt;(u) } )); }
</span><del>-// template &lt;class F, class E = WTF::NulloptTag&gt; constexpr Expected&lt;typename std::result_of&lt;F&gt;::type, E&gt; makeExpected_from_call(F f);
</del><ins>+// template &lt;class F, class E = std::nullopt_t&gt; constexpr Expected&lt;typename std::result_of&lt;F&gt;::type, E&gt; makeExpected_from_call(F f);
</ins><span class="cx"> 
</span><del>-inline Expected&lt;void, WTF::NulloptTag&gt; makeExpected() { return Expected&lt;void, WTF::NulloptTag&gt;(); }
</del><ins>+inline Expected&lt;void, std::nullopt_t&gt; makeExpected() { return Expected&lt;void, std::nullopt_t&gt;(); }
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WTF
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWTFwtfForwardh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Forward.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Forward.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/wtf/Forward.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -22,6 +22,10 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;stddef.h&gt;
</span><span class="cx"> 
</span><ins>+namespace std {
+template&lt;typename T&gt; class optional;
+}
+
</ins><span class="cx"> namespace WTF {
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T&gt; class Function;
</span><span class="lines">@@ -28,7 +32,6 @@
</span><span class="cx"> template&lt;typename T&gt; class LazyNeverDestroyed;
</span><span class="cx"> template&lt;typename T&gt; class NeverDestroyed;
</span><span class="cx"> template&lt;typename T&gt; class OptionSet;
</span><del>-template&lt;typename T&gt; class Optional;
</del><span class="cx"> template&lt;typename T&gt; class PassRefPtr;
</span><span class="cx"> template&lt;typename T&gt; class Ref;
</span><span class="cx"> template&lt;typename T&gt; class RefPtr;
</span><span class="lines">@@ -61,7 +64,6 @@
</span><span class="cx"> using WTF::LazyNeverDestroyed;
</span><span class="cx"> using WTF::NeverDestroyed;
</span><span class="cx"> using WTF::OptionSet;
</span><del>-using WTF::Optional;
</del><span class="cx"> using WTF::OrdinalNumber;
</span><span class="cx"> using WTF::PassRefPtr;
</span><span class="cx"> using WTF::PrintStream;
</span></span></pre></div>
<a id="trunkSourceWTFwtfHashTraitsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/HashTraits.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/HashTraits.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/wtf/HashTraits.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -188,8 +188,8 @@
</span><span class="cx">     static PeekType peek(const Ref&lt;P&gt;&amp; value) { return const_cast&lt;PeekType&gt;(value.ptrAllowingHashTableEmptyValue()); }
</span><span class="cx">     static PeekType peek(P* value) { return value; }
</span><span class="cx"> 
</span><del>-    typedef Optional&lt;Ref&lt;P&gt;&gt; TakeType;
-    static TakeType take(Ref&lt;P&gt;&amp;&amp; value) { return isEmptyValue(value) ? Nullopt : Optional&lt;Ref&lt;P&gt;&gt;(WTFMove(value)); }
</del><ins>+    typedef std::optional&lt;Ref&lt;P&gt;&gt; TakeType;
+    static TakeType take(Ref&lt;P&gt;&amp;&amp; value) { return isEmptyValue(value) ? std::nullopt : std::optional&lt;Ref&lt;P&gt;&gt;(WTFMove(value)); }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; struct HashTraits&lt;String&gt; : SimpleClassHashTraits&lt;String&gt; {
</span></span></pre></div>
<a id="trunkSourceWTFwtfMainThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/MainThread.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/MainThread.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/wtf/MainThread.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-static ThreadSpecific&lt;Optional&lt;GCThreadType&gt;, CanBeGCThread::True&gt;* isGCThread;
</del><ins>+static ThreadSpecific&lt;std::optional&lt;GCThreadType&gt;, CanBeGCThread::True&gt;* isGCThread;
</ins><span class="cx"> 
</span><span class="cx"> void initializeGCThreads()
</span><span class="cx"> {
</span><span class="lines">@@ -198,7 +198,7 @@
</span><span class="cx">     std::call_once(
</span><span class="cx">         flag,
</span><span class="cx">         [] {
</span><del>-            isGCThread = new ThreadSpecific&lt;Optional&lt;GCThreadType&gt;, CanBeGCThread::True&gt;();
</del><ins>+            isGCThread = new ThreadSpecific&lt;std::optional&lt;GCThreadType&gt;, CanBeGCThread::True&gt;();
</ins><span class="cx">         });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -221,12 +221,12 @@
</span><span class="cx">     return isMainThread();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;GCThreadType&gt; mayBeGCThread()
</del><ins>+std::optional&lt;GCThreadType&gt; mayBeGCThread()
</ins><span class="cx"> {
</span><span class="cx">     if (!isGCThread)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (!isGCThread-&gt;isSet())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return **isGCThread;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWTFwtfMainThreadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/MainThread.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/MainThread.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/wtf/MainThread.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx"> void printInternal(PrintStream&amp;, GCThreadType);
</span><span class="cx"> 
</span><span class="cx"> WTF_EXPORT_PRIVATE void registerGCThread(GCThreadType);
</span><del>-WTF_EXPORT_PRIVATE Optional&lt;GCThreadType&gt; mayBeGCThread();
</del><ins>+WTF_EXPORT_PRIVATE std::optional&lt;GCThreadType&gt; mayBeGCThread();
</ins><span class="cx"> WTF_EXPORT_PRIVATE bool isMainThreadOrGCThread();
</span><span class="cx"> 
</span><span class="cx"> // NOTE: these functions are internal to the callOnMainThread implementation.
</span></span></pre></div>
<a id="trunkSourceWTFwtfOptionalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Optional.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Optional.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/wtf/Optional.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1,283 +1,1109 @@
</span><del>-/*
- * Copyright (C) 2014, 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. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
</del><ins>+// Copyright (C) 2011 - 2012 Andrzej Krzemienski.
+//
+// Use, modification, and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// The idea and interface is based on Boost.Optional library
+// authored by Fernando Luis Cacciola Carballal
+//
+// Boost Software License - Version 1.0 - August 17th, 2003
+//
+// Permission is hereby granted, free of charge, to any person or organization
+// obtaining a copy of the software and accompanying documentation covered by
+// this license (the &quot;Software&quot;) to use, reproduce, display, distribute,
+// execute, and transmit the Software, and to prepare derivative works of the
+// Software, and to permit third-parties to whom the Software is furnished to
+// do so, all subject to the following:
+//
+// The copyright notices in the Software and this entire statement, including
+// the above license grant, this restriction and the following disclaimer,
+// must be included in all copies of the Software, in whole or in part, and
+// all derivative works of the Software, unless such copies or derivative
+// works are solely in the form of machine-executable object code generated by
+// a source language processor.
+//
+// THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
</ins><span class="cx"> 
</span><del>-#ifndef Optional_h
-#define Optional_h
</del><ins>+// Copied from https://github.com/akrzemi1/Optional (727c729dd1d9f06f225868280e50154594d7e59d)
</ins><span class="cx"> 
</span><del>-#include &lt;type_traits&gt;
-#include &lt;wtf/Assertions.h&gt;
-#include &lt;wtf/PrintStream.h&gt;
-#include &lt;wtf/StdLibExtras.h&gt;
</del><ins>+// Modified to make it compile with exceptions disabled.
</ins><span class="cx"> 
</span><del>-// WTF::Optional is a class based on std::optional, described here:
-// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3527.html
-// If this ends up in a C++ standard, we should replace our implementation with it.
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><del>-namespace WTF {
</del><ins>+# include &lt;utility&gt;
+# include &lt;type_traits&gt;
+# include &lt;initializer_list&gt;
+# include &lt;cassert&gt;
+# include &lt;functional&gt;
+# include &lt;string&gt;
+# include &lt;stdexcept&gt;
+# include &lt;wtf/Assertions.h&gt;
+# include &lt;wtf/Compiler.h&gt;
+# include &lt;wtf/StdLibExtras.h&gt;
</ins><span class="cx"> 
</span><del>-struct InPlaceTag { };
-constexpr InPlaceTag InPlace { };
</del><ins>+# define TR2_OPTIONAL_REQUIRES(...) typename std::enable_if&lt;__VA_ARGS__::value, bool&gt;::type = false
</ins><span class="cx"> 
</span><del>-struct NulloptTag { explicit constexpr NulloptTag(int) { } };
-constexpr NulloptTag Nullopt { 0 };
</del><ins>+# if defined __GNUC__ // NOTE: GNUC is also defined for Clang
+#   if (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ &gt;= 8)
+#     define TR2_OPTIONAL_GCC_4_8_AND_HIGHER___
+#   elif (__GNUC__ &gt; 4)
+#     define TR2_OPTIONAL_GCC_4_8_AND_HIGHER___
+#   endif
+#
+#   if (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ &gt;= 7)
+#     define TR2_OPTIONAL_GCC_4_7_AND_HIGHER___
+#   elif (__GNUC__ &gt; 4)
+#     define TR2_OPTIONAL_GCC_4_7_AND_HIGHER___
+#   endif
+#
+#   if (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 8) &amp;&amp; (__GNUC_PATCHLEVEL__ &gt;= 1)
+#     define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
+#   elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ &gt;= 9)
+#     define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
+#   elif (__GNUC__ &gt; 4)
+#     define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
+#   endif
+# endif
+#
+# if defined __clang_major__
+#   if (__clang_major__ == 3 &amp;&amp; __clang_minor__ &gt;= 5)
+#     define TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_
+#   elif (__clang_major__ &gt; 3)
+#     define TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_
+#   endif
+#   if defined TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_
+#     define TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_
+#   elif (__clang_major__ == 3 &amp;&amp; __clang_minor__ == 4 &amp;&amp; __clang_patchlevel__ &gt;= 2)
+#     define TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_
+#   endif
+# endif
+#
+# if defined _MSC_VER
+#   if (_MSC_VER &gt;= 1900)
+#     define TR2_OPTIONAL_MSVC_2015_AND_HIGHER___
+#   endif
+# endif
</ins><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-class Optional {
</del><ins>+# if defined __clang__
+#   if (__clang_major__ &gt; 2) || (__clang_major__ == 2) &amp;&amp; (__clang_minor__ &gt;= 9)
+#     define OPTIONAL_HAS_THIS_RVALUE_REFS 1
+#   else
+#     define OPTIONAL_HAS_THIS_RVALUE_REFS 0
+#   endif
+# elif defined TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
+#   define OPTIONAL_HAS_THIS_RVALUE_REFS 1
+# elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___
+#   define OPTIONAL_HAS_THIS_RVALUE_REFS 1
+# else
+#   define OPTIONAL_HAS_THIS_RVALUE_REFS 0
+# endif
+
+
+# if defined TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
+#   define OPTIONAL_HAS_CONSTEXPR_INIT_LIST 1
+#   define OPTIONAL_CONSTEXPR_INIT_LIST constexpr
+# else
+#   define OPTIONAL_HAS_CONSTEXPR_INIT_LIST 0
+#   define OPTIONAL_CONSTEXPR_INIT_LIST
+# endif
+
+// FIXME: To make the result of value() type consistent among the compilers, we now intentionally disables move accessors.
+#   define OPTIONAL_HAS_MOVE_ACCESSORS 0
+// # if defined TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ &amp;&amp; (defined __cplusplus) &amp;&amp; (__cplusplus != 201103L)
+// #   define OPTIONAL_HAS_MOVE_ACCESSORS 1
+// # else
+// #   define OPTIONAL_HAS_MOVE_ACCESSORS 0
+// # endif
+
+# // In C++11 constexpr implies const, so we need to make non-const members also non-constexpr
+# if (defined __cplusplus) &amp;&amp; (__cplusplus == 201103L)
+#   define OPTIONAL_MUTABLE_CONSTEXPR
+# else
+#   define OPTIONAL_MUTABLE_CONSTEXPR constexpr
+# endif
+
+#if COMPILER_SUPPORTS(EXCEPTIONS)
+#define __THROW_EXCEPTION(__exception) throw __exception;
+#define __NOEXCEPT noexcept
+#define __NOEXCEPT_(__exception) noexcept(__exception)
+#else
+#define __THROW_EXCEPTION(__exception) do { (void)__exception; CRASH(); } while (0);
+#define __NOEXCEPT
+#define __NOEXCEPT_(...)
+#endif
+
+namespace std {
+namespace detail_ {
+
+// NOTE: All our target compilers support is_trivially_destructible.
+// // BEGIN workaround for missing is_trivially_destructible
+// # if defined TR2_OPTIONAL_GCC_4_8_AND_HIGHER___
+//     // leave it: it is already there
+// # elif defined TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_
+//     // leave it: it is already there
+// # elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___
+//     // leave it: it is already there
+// # elif defined TR2_OPTIONAL_DISABLE_EMULATION_OF_TYPE_TRAITS
+//     // leave it: the user doesn't want it
+// # else
+//     template &lt;typename T&gt;
+//     using is_trivially_destructible = std::has_trivial_destructor&lt;T&gt;;
+// # endif
+// // END workaround for missing is_trivially_destructible
+
+#if COMPILER_SUPPORTS(EXCEPTIONS)
+# if defined(TR2_OPTIONAL_GCC_4_7_AND_HIGHER___) || defined(TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_) || defined(TR2_OPTIONAL_MSVC_2015_AND_HIGHER___)
+    // leave it; our metafunctions are already defined.
+    template &lt;typename T&gt;
+    using is_nothrow_move_constructible = std::is_nothrow_move_constructible&lt;T&gt;;
+    template &lt;typename T&gt;
+    using is_nothrow_move_assignable = std::is_nothrow_move_assignable&lt;T&gt;;
+# elif defined TR2_OPTIONAL_DISABLE_EMULATION_OF_TYPE_TRAITS
+    // leave it: the user doesn't want it
+# else
+
+
+// workaround for missing traits in GCC and CLANG
+template &lt;class T&gt;
+struct is_nothrow_move_constructible
+{
+  constexpr static bool value = std::is_nothrow_constructible&lt;T, T&amp;&amp;&gt;::value;
+};
+
+
+template &lt;class T, class U&gt;
+struct is_assignable
+{
+  template &lt;class X, class Y&gt;
+  constexpr static bool has_assign(...) { return false; }
+
+  template &lt;class X, class Y, size_t S = sizeof((std::declval&lt;X&gt;() = std::declval&lt;Y&gt;(), true)) &gt;
+  // the comma operator is necessary for the cases where operator= returns void
+  constexpr static bool has_assign(bool) { return true; }
+
+  constexpr static bool value = has_assign&lt;T, U&gt;(true);
+};
+
+
+template &lt;class T&gt;
+struct is_nothrow_move_assignable
+{
+  template &lt;class X, bool has_any_move_assign&gt;
+  struct has_nothrow_move_assign {
+    constexpr static bool value = false;
+  };
+
+  template &lt;class X&gt;
+  struct has_nothrow_move_assign&lt;X, true&gt; {
+    constexpr static bool value = __NOEXCEPT_( std::declval&lt;X&amp;&gt;() = std::declval&lt;X&amp;&amp;&gt;() );
+  };
+
+  constexpr static bool value = has_nothrow_move_assign&lt;T, is_assignable&lt;T&amp;, T&amp;&amp;&gt;::value&gt;::value;
+};
+// end workaround
+
+
+# endif
+#endif
+
+} // namespace detail_
+
+// 20.5.4, optional for object types
+template &lt;class T&gt; class optional;
+
+// 20.5.5, optional for lvalue reference types
+template &lt;class T&gt; class optional&lt;T&amp;&gt;;
+
+namespace detail_ {
+
+// workaround: std utility functions aren't constexpr yet
+template &lt;class T&gt; inline constexpr T&amp;&amp; constexpr_forward(typename std::remove_reference&lt;T&gt;::type&amp; t) __NOEXCEPT
+{
+  return static_cast&lt;T&amp;&amp;&gt;(t);
+}
+
+template &lt;class T&gt; inline constexpr T&amp;&amp; constexpr_forward(typename std::remove_reference&lt;T&gt;::type&amp;&amp; t) __NOEXCEPT
+{
+    static_assert(!std::is_lvalue_reference&lt;T&gt;::value, &quot;!!&quot;);
+    return static_cast&lt;T&amp;&amp;&gt;(t);
+}
+
+template &lt;class T&gt; inline constexpr typename std::remove_reference&lt;T&gt;::type&amp;&amp; constexpr_move(T&amp;&amp; t) __NOEXCEPT
+{
+    return static_cast&lt;typename std::remove_reference&lt;T&gt;::type&amp;&amp;&gt;(t);
+}
+
+#if defined NDEBUG
+# define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR) (EXPR)
+#else
+# define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR) ((CHECK) ? (EXPR) : ([]{assert(!#CHECK);}(), (EXPR)))
+#endif
+
+
+// static_addressof: a constexpr version of addressof
+template &lt;typename T&gt;
+struct has_overloaded_addressof
+{
+  template &lt;class X&gt;
+  constexpr static bool has_overload(...) { return false; }
+
+  template &lt;class X, size_t S = sizeof(std::declval&lt;X&amp;&gt;().operator&amp;()) &gt;
+  constexpr static bool has_overload(bool) { return true; }
+
+  constexpr static bool value = has_overload&lt;T&gt;(true);
+};
+
+template &lt;typename T, TR2_OPTIONAL_REQUIRES(!has_overloaded_addressof&lt;T&gt;)&gt;
+constexpr T* static_addressof(T&amp; ref)
+{
+  return &amp;ref;
+}
+
+template &lt;typename T, TR2_OPTIONAL_REQUIRES(has_overloaded_addressof&lt;T&gt;)&gt;
+T* static_addressof(T&amp; ref)
+{
+  return std::addressof(ref);
+}
+
+
+// the call to convert&lt;A&gt;(b) has return type A and converts b to type A iff b decltype(b) is implicitly convertible to A
+template &lt;class U&gt;
+constexpr U convert(U v) { return v; }
+
+} // namespace detail
+
+
+constexpr struct trivial_init_t{} trivial_init{};
+
+
+// 20.5.6, In-place construction
+constexpr struct in_place_t{} in_place{};
+
+
+// 20.5.7, Disengaged state indicator
+struct nullopt_t
+{
+  struct init{};
+  constexpr explicit nullopt_t(init){}
+};
+constexpr nullopt_t nullopt{nullopt_t::init()};
+
+
+// 20.5.8, class bad_optional_access
+class bad_optional_access : public std::logic_error {
</ins><span class="cx"> public:
</span><del>-    Optional()
-        : m_isEngaged(false)
-    {
-    }
</del><ins>+  explicit bad_optional_access(const std::string&amp; what_arg) : std::logic_error{what_arg} {}
+  explicit bad_optional_access(const char* what_arg) : std::logic_error{what_arg} {}
+};
</ins><span class="cx"> 
</span><del>-    Optional(NulloptTag)
-        : m_isEngaged(false)
-    {
-    }
</del><span class="cx"> 
</span><del>-    Optional(const T&amp; value)
-        : m_isEngaged(true)
-    {
-        new (NotNull, &amp;m_value) T(value);
-    }
</del><ins>+template &lt;class T&gt;
+union storage_t
+{
+  unsigned char dummy_;
+  T value_;
</ins><span class="cx"> 
</span><del>-    Optional(const Optional&amp; other)
-        : m_isEngaged(other.m_isEngaged)
-    {
-        if (m_isEngaged)
-            new (NotNull, &amp;m_value) T(*other.asPtr());
-    }
</del><ins>+  constexpr storage_t( trivial_init_t ) __NOEXCEPT : dummy_() {};
</ins><span class="cx"> 
</span><del>-    Optional(Optional&amp;&amp; other)
-        : m_isEngaged(other.m_isEngaged)
-    {
-        if (m_isEngaged)
-            new (NotNull, &amp;m_value) T(WTFMove(*other.asPtr()));
-    }
</del><ins>+  template &lt;class... Args&gt;
+  constexpr storage_t( Args&amp;&amp;... args ) : value_(detail_::constexpr_forward&lt;Args&gt;(args)...) {}
</ins><span class="cx"> 
</span><del>-    Optional(T&amp;&amp; value)
-        : m_isEngaged(true)
-    {
-        new (NotNull, &amp;m_value) T(WTFMove(value));
-    }
</del><ins>+  ~storage_t(){}
+};
</ins><span class="cx"> 
</span><del>-    template&lt;typename... Args&gt;
-    Optional(InPlaceTag, Args&amp;&amp;... args)
-        : m_isEngaged(true)
-    {
-        new (NotNull, &amp;m_value) T(std::forward&lt;Args&gt;(args)...);
-    }
</del><span class="cx"> 
</span><del>-    ~Optional()
-    {
-        destroy();
-    }
</del><ins>+template &lt;class T&gt;
+union constexpr_storage_t
+{
+    unsigned char dummy_;
+    T value_;
</ins><span class="cx"> 
</span><del>-    Optional&amp; operator=(NulloptTag)
-    {
-        destroy();
-        return *this;
-    }
</del><ins>+    constexpr constexpr_storage_t( trivial_init_t ) __NOEXCEPT : dummy_() {};
</ins><span class="cx"> 
</span><del>-    Optional&amp; operator=(const Optional&amp; other)
-    {
-        if (this == &amp;other)
-            return *this;
</del><ins>+    template &lt;class... Args&gt;
+    constexpr constexpr_storage_t( Args&amp;&amp;... args ) : value_(detail_::constexpr_forward&lt;Args&gt;(args)...) {}
</ins><span class="cx"> 
</span><del>-        destroy();
-        if (other.m_isEngaged) {
-            new (NotNull, &amp;m_value) T(*other.asPtr());
-            m_isEngaged = true;
-        }
-        return *this;
-    }
</del><ins>+    ~constexpr_storage_t() = default;
+};
</ins><span class="cx"> 
</span><del>-    Optional&amp; operator=(Optional&amp;&amp; other)
-    {
-        if (this == &amp;other)
-            return *this;
</del><span class="cx"> 
</span><del>-        destroy();
-        if (other.m_isEngaged) {
-            new (NotNull, &amp;m_value) T(WTFMove(*other.asPtr()));
-            m_isEngaged = true;
-        }
-        return *this;
-    }
</del><ins>+template &lt;class T&gt;
+struct optional_base
+{
+    bool init_;
+    storage_t&lt;T&gt; storage_;
</ins><span class="cx"> 
</span><del>-    template&lt;typename U, class = typename std::enable_if&lt;std::is_same&lt;typename std::remove_reference&lt;U&gt;::type, T&gt;::value&gt;::type&gt;
-    Optional&amp; operator=(U&amp;&amp; u)
-    {
-        destroy();
-        new (NotNull, &amp;m_value) T(std::forward&lt;U&gt;(u));
-        m_isEngaged = true;
-        return *this;
-    }
</del><ins>+    constexpr optional_base() __NOEXCEPT : init_(false), storage_(trivial_init) {};
</ins><span class="cx"> 
</span><del>-    explicit operator bool() const { return m_isEngaged; }
</del><ins>+    explicit constexpr optional_base(const T&amp; v) : init_(true), storage_(v) {}
</ins><span class="cx"> 
</span><del>-    const T* operator-&gt;() const
-    {
-        ASSERT(m_isEngaged);
-        return asPtr();
-    }
</del><ins>+    explicit constexpr optional_base(T&amp;&amp; v) : init_(true), storage_(detail_::constexpr_move(v)) {}
</ins><span class="cx"> 
</span><del>-    T* operator-&gt;()
-    {
-        ASSERT(m_isEngaged);
-        return asPtr();
-    }
</del><ins>+    template &lt;class... Args&gt; explicit optional_base(in_place_t, Args&amp;&amp;... args)
+        : init_(true), storage_(detail_::constexpr_forward&lt;Args&gt;(args)...) {}
</ins><span class="cx"> 
</span><del>-    const T&amp; operator*() const { return value(); }
-    T&amp; operator*() { return value(); }
</del><ins>+    template &lt;class U, class... Args, TR2_OPTIONAL_REQUIRES(std::is_constructible&lt;T, std::initializer_list&lt;U&gt;&gt;)&gt;
+    explicit optional_base(in_place_t, std::initializer_list&lt;U&gt; il, Args&amp;&amp;... args)
+        : init_(true), storage_(il, std::forward&lt;Args&gt;(args)...) {}
</ins><span class="cx"> 
</span><del>-    T&amp; value()
-    {
-        ASSERT(m_isEngaged);
-        return *asPtr();
-    }
</del><ins>+    ~optional_base() { if (init_) storage_.value_.T::~T(); }
+};
</ins><span class="cx"> 
</span><del>-    const T&amp; value() const
-    {
-        ASSERT(m_isEngaged);
-        return *asPtr();
-    }
</del><span class="cx"> 
</span><del>-    template&lt;typename U&gt;
-    T valueOr(U&amp;&amp; value) const
-    {
-        if (m_isEngaged)
-            return *asPtr();
</del><ins>+template &lt;class T&gt;
+struct constexpr_optional_base
+{
+    bool init_;
+    constexpr_storage_t&lt;T&gt; storage_;
</ins><span class="cx"> 
</span><del>-        return std::forward&lt;U&gt;(value);
-    }
</del><ins>+    constexpr constexpr_optional_base() __NOEXCEPT : init_(false), storage_(trivial_init) {};
</ins><span class="cx"> 
</span><del>-    template&lt;typename U&gt;
-    T valueOrCompute(U callback) const
-    {
-        if (m_isEngaged)
-            return *asPtr();
</del><ins>+    explicit constexpr constexpr_optional_base(const T&amp; v) : init_(true), storage_(v) {}
</ins><span class="cx"> 
</span><del>-        return callback();
</del><ins>+    explicit constexpr constexpr_optional_base(T&amp;&amp; v) : init_(true), storage_(detail_::constexpr_move(v)) {}
+
+    template &lt;class... Args&gt; explicit constexpr constexpr_optional_base(in_place_t, Args&amp;&amp;... args)
+      : init_(true), storage_(detail_::constexpr_forward&lt;Args&gt;(args)...) {}
+
+    template &lt;class U, class... Args, TR2_OPTIONAL_REQUIRES(std::is_constructible&lt;T, std::initializer_list&lt;U&gt;&gt;)&gt;
+    OPTIONAL_CONSTEXPR_INIT_LIST explicit constexpr_optional_base(in_place_t, std::initializer_list&lt;U&gt; il, Args&amp;&amp;... args)
+      : init_(true), storage_(il, std::forward&lt;Args&gt;(args)...) {}
+
+    ~constexpr_optional_base() = default;
+};
+
+template &lt;class T&gt;
+using OptionalBase = typename std::conditional&lt;
+    std::is_trivially_destructible&lt;T&gt;::value,                          // if possible
+    constexpr_optional_base&lt;typename std::remove_const&lt;T&gt;::type&gt;, // use base with trivial destructor
+    optional_base&lt;typename std::remove_const&lt;T&gt;::type&gt;
+&gt;::type;
+
+
+
+template &lt;class T&gt;
+class optional : private OptionalBase&lt;T&gt;
+{
+  static_assert( !std::is_same&lt;typename std::decay&lt;T&gt;::type, nullopt_t&gt;::value, &quot;bad T&quot; );
+  static_assert( !std::is_same&lt;typename std::decay&lt;T&gt;::type, in_place_t&gt;::value, &quot;bad T&quot; );
+
+
+  constexpr bool initialized() const __NOEXCEPT { return OptionalBase&lt;T&gt;::init_; }
+  typename std::remove_const&lt;T&gt;::type* dataptr() {  return std::addressof(OptionalBase&lt;T&gt;::storage_.value_); }
+  constexpr const T* dataptr() const { return detail_::static_addressof(OptionalBase&lt;T&gt;::storage_.value_); }
+
+# if OPTIONAL_HAS_THIS_RVALUE_REFS == 1
+  constexpr const T&amp; contained_val() const&amp; { return OptionalBase&lt;T&gt;::storage_.value_; }
+#   if OPTIONAL_HAS_MOVE_ACCESSORS == 1
+  OPTIONAL_MUTABLE_CONSTEXPR T&amp;&amp; contained_val() &amp;&amp; { return std::move(OptionalBase&lt;T&gt;::storage_.value_); }
+  OPTIONAL_MUTABLE_CONSTEXPR T&amp; contained_val() &amp; { return OptionalBase&lt;T&gt;::storage_.value_; }
+#   else
+  T&amp; contained_val() &amp; { return OptionalBase&lt;T&gt;::storage_.value_; }
+  T&amp;&amp; contained_val() &amp;&amp; { return std::move(OptionalBase&lt;T&gt;::storage_.value_); }
+#   endif
+# else
+  constexpr const T&amp; contained_val() const { return OptionalBase&lt;T&gt;::storage_.value_; }
+  T&amp; contained_val() { return OptionalBase&lt;T&gt;::storage_.value_; }
+# endif
+
+  void clear() __NOEXCEPT {
+    if (initialized()) dataptr()-&gt;T::~T();
+    OptionalBase&lt;T&gt;::init_ = false;
+  }
+
+  template &lt;class... Args&gt;
+  void initialize(Args&amp;&amp;... args) __NOEXCEPT_(__NOEXCEPT_(T(std::forward&lt;Args&gt;(args)...)))
+  {
+    ASSERT(!OptionalBase&lt;T&gt;::init_);
+    ::new (static_cast&lt;void*&gt;(dataptr())) T(std::forward&lt;Args&gt;(args)...);
+    OptionalBase&lt;T&gt;::init_ = true;
+  }
+
+  template &lt;class U, class... Args&gt;
+  void initialize(std::initializer_list&lt;U&gt; il, Args&amp;&amp;... args) __NOEXCEPT_(__NOEXCEPT_(T(il, std::forward&lt;Args&gt;(args)...)))
+  {
+    ASSERT(!OptionalBase&lt;T&gt;::init_);
+    ::new (static_cast&lt;void*&gt;(dataptr())) T(il, std::forward&lt;Args&gt;(args)...);
+    OptionalBase&lt;T&gt;::init_ = true;
+  }
+
+public:
+  typedef T value_type;
+
+  // 20.5.5.1, constructors
+  constexpr optional() __NOEXCEPT : OptionalBase&lt;T&gt;()  {};
+  constexpr optional(nullopt_t) __NOEXCEPT : OptionalBase&lt;T&gt;() {};
+
+  optional(const optional&amp; rhs)
+  : OptionalBase&lt;T&gt;()
+  {
+    if (rhs.initialized()) {
+        ::new (static_cast&lt;void*&gt;(dataptr())) T(*rhs);
+        OptionalBase&lt;T&gt;::init_ = true;
</ins><span class="cx">     }
</span><ins>+  }
</ins><span class="cx"> 
</span><del>-private:
-    const T* asPtr() const { return reinterpret_cast&lt;const T*&gt;(&amp;m_value); }
-    T* asPtr() { return reinterpret_cast&lt;T*&gt;(&amp;m_value); }
-    void destroy()
-    {
-        if (m_isEngaged) {
-            asPtr()-&gt;~T();
-            m_isEngaged = false;
-        }
</del><ins>+  optional(optional&amp;&amp; rhs) __NOEXCEPT_(detail_::is_nothrow_move_constructible&lt;T&gt;::value)
+  : OptionalBase&lt;T&gt;()
+  {
+    if (rhs.initialized()) {
+        ::new (static_cast&lt;void*&gt;(dataptr())) T(std::move(*rhs));
+        OptionalBase&lt;T&gt;::init_ = true;
</ins><span class="cx">     }
</span><ins>+  }
</ins><span class="cx"> 
</span><del>-    bool m_isEngaged;
-    typename std::aligned_storage&lt;sizeof(T), std::alignment_of&lt;T&gt;::value&gt;::type m_value;
</del><ins>+  constexpr optional(const T&amp; v) : OptionalBase&lt;T&gt;(v) {}
+
+  constexpr optional(T&amp;&amp; v) : OptionalBase&lt;T&gt;(detail_::constexpr_move(v)) {}
+
+  template &lt;class... Args&gt;
+  explicit constexpr optional(in_place_t, Args&amp;&amp;... args)
+  : OptionalBase&lt;T&gt;(in_place_t{}, detail_::constexpr_forward&lt;Args&gt;(args)...) {}
+
+  template &lt;class U, class... Args, TR2_OPTIONAL_REQUIRES(std::is_constructible&lt;T, std::initializer_list&lt;U&gt;&gt;)&gt;
+  OPTIONAL_CONSTEXPR_INIT_LIST explicit optional(in_place_t, std::initializer_list&lt;U&gt; il, Args&amp;&amp;... args)
+  : OptionalBase&lt;T&gt;(in_place_t{}, il, detail_::constexpr_forward&lt;Args&gt;(args)...) {}
+
+  // 20.5.4.2, Destructor
+  ~optional() = default;
+
+  // 20.5.4.3, assignment
+  optional&amp; operator=(nullopt_t) __NOEXCEPT
+  {
+    clear();
+    return *this;
+  }
+
+  optional&amp; operator=(const optional&amp; rhs)
+  {
+    if      (initialized() == true  &amp;&amp; rhs.initialized() == false) clear();
+    else if (initialized() == false &amp;&amp; rhs.initialized() == true)  initialize(*rhs);
+    else if (initialized() == true  &amp;&amp; rhs.initialized() == true)  contained_val() = *rhs;
+    return *this;
+  }
+
+  optional&amp; operator=(optional&amp;&amp; rhs)
+  __NOEXCEPT_(detail_::is_nothrow_move_assignable&lt;T&gt;::value &amp;&amp; detail_::is_nothrow_move_constructible&lt;T&gt;::value)
+  {
+    if      (initialized() == true  &amp;&amp; rhs.initialized() == false) clear();
+    else if (initialized() == false &amp;&amp; rhs.initialized() == true)  initialize(std::move(*rhs));
+    else if (initialized() == true  &amp;&amp; rhs.initialized() == true)  contained_val() = std::move(*rhs);
+    return *this;
+  }
+
+  template &lt;class U&gt;
+  auto operator=(U&amp;&amp; v)
+  -&gt; typename std::enable_if
+  &lt;
+    std::is_same&lt;typename std::decay&lt;U&gt;::type, T&gt;::value,
+    optional&amp;
+  &gt;::type
+  {
+    if (initialized()) { contained_val() = std::forward&lt;U&gt;(v); }
+    else               { initialize(std::forward&lt;U&gt;(v));  }
+    return *this;
+  }
+
+
+  template &lt;class... Args&gt;
+  void emplace(Args&amp;&amp;... args)
+  {
+    clear();
+    initialize(std::forward&lt;Args&gt;(args)...);
+  }
+
+  template &lt;class U, class... Args&gt;
+  void emplace(std::initializer_list&lt;U&gt; il, Args&amp;&amp;... args)
+  {
+    clear();
+    initialize&lt;U, Args...&gt;(il, std::forward&lt;Args&gt;(args)...);
+  }
+
+  // 20.5.4.4, Swap
+  void swap(optional&lt;T&gt;&amp; rhs) __NOEXCEPT_(detail_::is_nothrow_move_constructible&lt;T&gt;::value &amp;&amp; __NOEXCEPT_(swap(std::declval&lt;T&amp;&gt;(), std::declval&lt;T&amp;&gt;())))
+  {
+    if      (initialized() == true  &amp;&amp; rhs.initialized() == false) { rhs.initialize(std::move(**this)); clear(); }
+    else if (initialized() == false &amp;&amp; rhs.initialized() == true)  { initialize(std::move(*rhs)); rhs.clear(); }
+    else if (initialized() == true  &amp;&amp; rhs.initialized() == true)  { using std::swap; swap(**this, *rhs); }
+  }
+
+  // 20.5.4.5, Observers
+
+  explicit constexpr operator bool() const __NOEXCEPT { return initialized(); }
+
+  constexpr T const* operator -&gt;() const {
+    return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), dataptr());
+  }
+
+# if OPTIONAL_HAS_MOVE_ACCESSORS == 1
+
+  OPTIONAL_MUTABLE_CONSTEXPR T* operator -&gt;() {
+    // FIXME: We need to offer special assert function that can be used under the contexpr context.
+    // CONSTEXPR_ASSERT(initialized());
+    return dataptr();
+  }
+
+  constexpr T const&amp; operator *() const&amp; {
+    return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), contained_val());
+  }
+
+  OPTIONAL_MUTABLE_CONSTEXPR T&amp; operator *() &amp; {
+    // FIXME: We need to offer special assert function that can be used under the contexpr context.
+    // CONSTEXPR_ASSERT(initialized());
+    return contained_val();
+  }
+
+  OPTIONAL_MUTABLE_CONSTEXPR T&amp;&amp; operator *() &amp;&amp; {
+    // FIXME: We need to offer special assert function that can be used under the contexpr context.
+    // CONSTEXPR_ASSERT(initialized());
+    return detail_::constexpr_move(contained_val());
+  }
+
+  constexpr T const&amp; value() const&amp; {
+    // FIXME: We need to offer special assert function that can be used under the contexpr context.
+    // return initialized() ? contained_val() : (throw bad_optional_access(&quot;bad optional access&quot;), contained_val());
+    return contained_val();
+  }
+
+  OPTIONAL_MUTABLE_CONSTEXPR T&amp; value() &amp; {
+    // FIXME: We need to offer special assert function that can be used under the contexpr context.
+    // return initialized() ? contained_val() : (throw bad_optional_access(&quot;bad optional access&quot;), contained_val());
+    return contained_val();
+  }
+
+  OPTIONAL_MUTABLE_CONSTEXPR T&amp;&amp; value() &amp;&amp; {
+    // FIXME: We need to offer special assert function that can be used under the contexpr context.
+    // if (!initialized()) __THROW_EXCEPTION(bad_optional_access(&quot;bad optional access&quot;));
+    return std::move(contained_val());
+  }
+
+# else
+
+  T* operator -&gt;() {
+    assert (initialized());
+    return dataptr();
+  }
+
+  constexpr T const&amp; operator *() const {
+    return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), contained_val());
+  }
+
+  T&amp; operator *() {
+    assert (initialized());
+    return contained_val();
+  }
+
+  constexpr T const&amp; value() const {
+    // FIXME: We need to offer special assert function that can be used under the contexpr context.
+    // return initialized() ? contained_val() : (throw bad_optional_access(&quot;bad optional access&quot;), contained_val());
+    return contained_val();
+  }
+
+  T&amp; value() {
+    // FIXME: We need to offer special assert function that can be used under the contexpr context.
+    // return initialized() ? contained_val() : (throw bad_optional_access(&quot;bad optional access&quot;), contained_val());
+    return contained_val();
+  }
+
+# endif
+
+# if OPTIONAL_HAS_THIS_RVALUE_REFS == 1
+
+  template &lt;class V&gt;
+  constexpr T value_or(V&amp;&amp; v) const&amp;
+  {
+    return *this ? **this : detail_::convert&lt;T&gt;(detail_::constexpr_forward&lt;V&gt;(v));
+  }
+
+#   if OPTIONAL_HAS_MOVE_ACCESSORS == 1
+
+  template &lt;class V&gt;
+  OPTIONAL_MUTABLE_CONSTEXPR T value_or(V&amp;&amp; v) &amp;&amp;
+  {
+    return *this ? detail_::constexpr_move(const_cast&lt;optional&lt;T&gt;&amp;&gt;(*this).contained_val()) : detail_::convert&lt;T&gt;(detail_::constexpr_forward&lt;V&gt;(v));
+  }
+
+#   else
+
+  template &lt;class V&gt;
+  T value_or(V&amp;&amp; v) &amp;&amp;
+  {
+    return *this ? detail_::constexpr_move(const_cast&lt;optional&lt;T&gt;&amp;&gt;(*this).contained_val()) : detail_::convert&lt;T&gt;(detail_::constexpr_forward&lt;V&gt;(v));
+  }
+
+#   endif
+
+# else
+
+  template &lt;class V&gt;
+  constexpr T value_or(V&amp;&amp; v) const
+  {
+    return *this ? **this : detail_::convert&lt;T&gt;(detail_::constexpr_forward&lt;V&gt;(v));
+  }
+
+# endif
+
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator==(const Optional&lt;T&gt;&amp; lhs, const Optional&lt;T&gt;&amp; rhs)
</del><ins>+
+template &lt;class T&gt;
+class optional&lt;T&amp;&gt;
</ins><span class="cx"> {
</span><del>-    return static_cast&lt;bool&gt;(lhs) == static_cast&lt;bool&gt;(rhs) &amp;&amp; (!static_cast&lt;bool&gt;(lhs) || lhs.value() == rhs.value());
</del><ins>+  static_assert( !std::is_same&lt;T, nullopt_t&gt;::value, &quot;bad T&quot; );
+  static_assert( !std::is_same&lt;T, in_place_t&gt;::value, &quot;bad T&quot; );
+  T* ref;
+
+public:
+
+  // 20.5.5.1, construction/destruction
+  constexpr optional() __NOEXCEPT : ref(nullptr) {}
+
+  constexpr optional(nullopt_t) __NOEXCEPT : ref(nullptr) {}
+
+  constexpr optional(T&amp; v) __NOEXCEPT : ref(detail_::static_addressof(v)) {}
+
+  optional(T&amp;&amp;) = delete;
+
+  constexpr optional(const optional&amp; rhs) __NOEXCEPT : ref(rhs.ref) {}
+
+  explicit constexpr optional(in_place_t, T&amp; v) __NOEXCEPT : ref(detail_::static_addressof(v)) {}
+
+  explicit optional(in_place_t, T&amp;&amp;) = delete;
+
+  ~optional() = default;
+
+  // 20.5.5.2, mutation
+  optional&amp; operator=(nullopt_t) __NOEXCEPT {
+    ref = nullptr;
+    return *this;
+  }
+
+  // optional&amp; operator=(const optional&amp; rhs) __NOEXCEPT {
+    // ref = rhs.ref;
+    // return *this;
+  // }
+
+  // optional&amp; operator=(optional&amp;&amp; rhs) __NOEXCEPT {
+    // ref = rhs.ref;
+    // return *this;
+  // }
+
+  template &lt;typename U&gt;
+  auto operator=(U&amp;&amp; rhs) __NOEXCEPT
+  -&gt; typename std::enable_if
+  &lt;
+    std::is_same&lt;typename std::decay&lt;U&gt;::type, optional&lt;T&amp;&gt;&gt;::value,
+    optional&amp;
+  &gt;::type
+  {
+    ref = rhs.ref;
+    return *this;
+  }
+
+  template &lt;typename U&gt;
+  auto operator=(U&amp;&amp; rhs) __NOEXCEPT
+  -&gt; typename std::enable_if
+  &lt;
+    !std::is_same&lt;typename std::decay&lt;U&gt;::type, optional&lt;T&amp;&gt;&gt;::value,
+    optional&amp;
+  &gt;::type
+  = delete;
+
+  void emplace(T&amp; v) __NOEXCEPT {
+    ref = detail_::static_addressof(v);
+  }
+
+  void emplace(T&amp;&amp;) = delete;
+
+
+  void swap(optional&lt;T&amp;&gt;&amp; rhs) __NOEXCEPT
+  {
+    std::swap(ref, rhs.ref);
+  }
+
+  // 20.5.5.3, observers
+  constexpr T* operator-&gt;() const {
+    return TR2_OPTIONAL_ASSERTED_EXPRESSION(ref, ref);
+  }
+
+  constexpr T&amp; operator*() const {
+    return TR2_OPTIONAL_ASSERTED_EXPRESSION(ref, *ref);
+  }
+
+  constexpr T&amp; value() const {
+    // FIXME: We need to offer special assert function that can be used under the contexpr context.
+    // return ref ? *ref : (throw bad_optional_access(&quot;bad optional access&quot;), *ref);
+    return *ref;
+  }
+
+  explicit constexpr operator bool() const __NOEXCEPT {
+    return ref != nullptr;
+  }
+
+  template &lt;class V&gt;
+  constexpr typename std::decay&lt;T&gt;::type value_or(V&amp;&amp; v) const
+  {
+    return *this ? **this : detail_::convert&lt;typename std::decay&lt;T&gt;::type&gt;(detail_::constexpr_forward&lt;V&gt;(v));
+  }
+};
+
+
+template &lt;class T&gt;
+class optional&lt;T&amp;&amp;&gt;
+{
+  static_assert( sizeof(T) == 0, &quot;optional rvalue references disallowed&quot; );
+};
+
+
+// 20.5.8, Relational operators
+template &lt;class T&gt; constexpr bool operator==(const optional&lt;T&gt;&amp; x, const optional&lt;T&gt;&amp; y)
+{
+  return bool(x) != bool(y) ? false : bool(x) == false ? true : *x == *y;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator!=(const Optional&lt;T&gt;&amp; lhs, const Optional&lt;T&gt;&amp; rhs)
</del><ins>+template &lt;class T&gt; constexpr bool operator!=(const optional&lt;T&gt;&amp; x, const optional&lt;T&gt;&amp; y)
</ins><span class="cx"> {
</span><del>-    return !(lhs == rhs);
</del><ins>+  return !(x == y);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator==(const Optional&lt;T&gt;&amp; opt, NulloptTag)
</del><ins>+template &lt;class T&gt; constexpr bool operator&lt;(const optional&lt;T&gt;&amp; x, const optional&lt;T&gt;&amp; y)
</ins><span class="cx"> {
</span><del>-    return !opt;
</del><ins>+  return (!y) ? false : (!x) ? true : *x &lt; *y;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator!=(const Optional&lt;T&gt;&amp; opt, NulloptTag)
</del><ins>+template &lt;class T&gt; constexpr bool operator&gt;(const optional&lt;T&gt;&amp; x, const optional&lt;T&gt;&amp; y)
</ins><span class="cx"> {
</span><del>-    return static_cast&lt;bool&gt;(opt);
</del><ins>+  return (y &lt; x);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator==(NulloptTag, const Optional&lt;T&gt;&amp; opt)
</del><ins>+template &lt;class T&gt; constexpr bool operator&lt;=(const optional&lt;T&gt;&amp; x, const optional&lt;T&gt;&amp; y)
</ins><span class="cx"> {
</span><del>-    return !opt;
</del><ins>+  return !(y &lt; x);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator!=(NulloptTag, const Optional&lt;T&gt;&amp; opt)
</del><ins>+template &lt;class T&gt; constexpr bool operator&gt;=(const optional&lt;T&gt;&amp; x, const optional&lt;T&gt;&amp; y)
</ins><span class="cx"> {
</span><del>-    return static_cast&lt;bool&gt;(opt);
</del><ins>+  return !(x &lt; y);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator==(const Optional&lt;T&gt;&amp; opt, const T&amp; value)
</del><ins>+
+// 20.5.9, Comparison with nullopt
+template &lt;class T&gt; constexpr bool operator==(const optional&lt;T&gt;&amp; x, nullopt_t) __NOEXCEPT
</ins><span class="cx"> {
</span><del>-    return opt &amp;&amp; opt.value() == value;
</del><ins>+  return (!x);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator!=(const Optional&lt;T&gt;&amp; opt, const T&amp; value)
</del><ins>+template &lt;class T&gt; constexpr bool operator==(nullopt_t, const optional&lt;T&gt;&amp; x) __NOEXCEPT
</ins><span class="cx"> {
</span><del>-    return !(opt == value);
</del><ins>+  return (!x);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator==(const T&amp; value, const Optional&lt;T&gt;&amp; opt)
</del><ins>+template &lt;class T&gt; constexpr bool operator!=(const optional&lt;T&gt;&amp; x, nullopt_t) __NOEXCEPT
</ins><span class="cx"> {
</span><del>-    return opt &amp;&amp; opt.value() == value;
</del><ins>+  return bool(x);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-constexpr bool operator!=(const T&amp; value, const Optional&lt;T&gt;&amp; opt)
</del><ins>+template &lt;class T&gt; constexpr bool operator!=(nullopt_t, const optional&lt;T&gt;&amp; x) __NOEXCEPT
</ins><span class="cx"> {
</span><del>-    return !(value == opt);
</del><ins>+  return bool(x);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-Optional&lt;typename std::decay&lt;T&gt;::type&gt;
-makeOptional(T&amp;&amp; value)
</del><ins>+template &lt;class T&gt; constexpr bool operator&lt;(const optional&lt;T&gt;&amp;, nullopt_t) __NOEXCEPT
</ins><span class="cx"> {
</span><del>-    return Optional&lt;typename std::decay&lt;T&gt;::type&gt;(std::forward&lt;T&gt;(value));
</del><ins>+  return false;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt;
-void printInternal(PrintStream&amp; out, const Optional&lt;T&gt;&amp; optional)
</del><ins>+template &lt;class T&gt; constexpr bool operator&lt;(nullopt_t, const optional&lt;T&gt;&amp; x) __NOEXCEPT
</ins><span class="cx"> {
</span><ins>+  return bool(x);
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;=(const optional&lt;T&gt;&amp; x, nullopt_t) __NOEXCEPT
+{
+  return (!x);
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;=(nullopt_t, const optional&lt;T&gt;&amp;) __NOEXCEPT
+{
+  return true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;(const optional&lt;T&gt;&amp; x, nullopt_t) __NOEXCEPT
+{
+  return bool(x);
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;(nullopt_t, const optional&lt;T&gt;&amp;) __NOEXCEPT
+{
+  return false;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;=(const optional&lt;T&gt;&amp;, nullopt_t) __NOEXCEPT
+{
+  return true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;=(nullopt_t, const optional&lt;T&gt;&amp; x) __NOEXCEPT
+{
+  return (!x);
+}
+
+
+
+// 20.5.10, Comparison with T
+template &lt;class T&gt; constexpr bool operator==(const optional&lt;T&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x == v : false;
+}
+
+template &lt;class T&gt; constexpr bool operator==(const T&amp; v, const optional&lt;T&gt;&amp; x)
+{
+  return bool(x) ? v == *x : false;
+}
+
+template &lt;class T&gt; constexpr bool operator!=(const optional&lt;T&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x != v : true;
+}
+
+template &lt;class T&gt; constexpr bool operator!=(const T&amp; v, const optional&lt;T&gt;&amp; x)
+{
+  return bool(x) ? v != *x : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;(const optional&lt;T&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &lt; v : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;(const T&amp; v, const optional&lt;T&gt;&amp; x)
+{
+  return bool(x) ? v &gt; *x : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;(const optional&lt;T&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &gt; v : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;(const T&amp; v, const optional&lt;T&gt;&amp; x)
+{
+  return bool(x) ? v &lt; *x : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;=(const optional&lt;T&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &gt;= v : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;=(const T&amp; v, const optional&lt;T&gt;&amp; x)
+{
+  return bool(x) ? v &lt;= *x : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;=(const optional&lt;T&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &lt;= v : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;=(const T&amp; v, const optional&lt;T&gt;&amp; x)
+{
+  return bool(x) ? v &gt;= *x : true;
+}
+
+
+// Comparison of optional&lt;T&amp;&gt; with T
+template &lt;class T&gt; constexpr bool operator==(const optional&lt;T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x == v : false;
+}
+
+template &lt;class T&gt; constexpr bool operator==(const T&amp; v, const optional&lt;T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v == *x : false;
+}
+
+template &lt;class T&gt; constexpr bool operator!=(const optional&lt;T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x != v : true;
+}
+
+template &lt;class T&gt; constexpr bool operator!=(const T&amp; v, const optional&lt;T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v != *x : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;(const optional&lt;T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &lt; v : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;(const T&amp; v, const optional&lt;T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v &gt; *x : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;(const optional&lt;T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &gt; v : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;(const T&amp; v, const optional&lt;T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v &lt; *x : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;=(const optional&lt;T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &gt;= v : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;=(const T&amp; v, const optional&lt;T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v &lt;= *x : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;=(const optional&lt;T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &lt;= v : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;=(const T&amp; v, const optional&lt;T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v &gt;= *x : true;
+}
+
+// Comparison of optional&lt;T const&amp;&gt; with T
+template &lt;class T&gt; constexpr bool operator==(const optional&lt;const T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x == v : false;
+}
+
+template &lt;class T&gt; constexpr bool operator==(const T&amp; v, const optional&lt;const T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v == *x : false;
+}
+
+template &lt;class T&gt; constexpr bool operator!=(const optional&lt;const T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x != v : true;
+}
+
+template &lt;class T&gt; constexpr bool operator!=(const T&amp; v, const optional&lt;const T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v != *x : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;(const optional&lt;const T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &lt; v : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;(const T&amp; v, const optional&lt;const T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v &gt; *x : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;(const optional&lt;const T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &gt; v : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;(const T&amp; v, const optional&lt;const T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v &lt; *x : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;=(const optional&lt;const T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &gt;= v : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;=(const T&amp; v, const optional&lt;const T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v &lt;= *x : false;
+}
+
+template &lt;class T&gt; constexpr bool operator&lt;=(const optional&lt;const T&amp;&gt;&amp; x, const T&amp; v)
+{
+  return bool(x) ? *x &lt;= v : true;
+}
+
+template &lt;class T&gt; constexpr bool operator&gt;=(const T&amp; v, const optional&lt;const T&amp;&gt;&amp; x)
+{
+  return bool(x) ? v &gt;= *x : true;
+}
+
+
+// 20.5.12, Specialized algorithms
+template &lt;class T&gt;
+void swap(optional&lt;T&gt;&amp; x, optional&lt;T&gt;&amp; y) __NOEXCEPT_(__NOEXCEPT_(x.swap(y)))
+{
+  x.swap(y);
+}
+
+
+template &lt;class T&gt;
+constexpr optional&lt;typename std::decay&lt;T&gt;::type&gt; make_optional(T&amp;&amp; v)
+{
+  return optional&lt;typename std::decay&lt;T&gt;::type&gt;(detail_::constexpr_forward&lt;T&gt;(v));
+}
+
+template &lt;class X&gt;
+constexpr optional&lt;X&amp;&gt; make_optional(std::reference_wrapper&lt;X&gt; v)
+{
+  return optional&lt;X&amp;&gt;(v.get());
+}
+
+} // namespace std
+
+namespace WTF {
+
+// -- WebKit Additions --
+template &lt;class OptionalType, class Callback&gt;
+ALWAYS_INLINE
+auto valueOrCompute(OptionalType optional, Callback callback) -&gt; typename OptionalType::value_type
+{
</ins><span class="cx">     if (optional)
</span><del>-        out.print(*optional);
-    else
-        out.print(&quot;Nullopt&quot;);
</del><ins>+        return *optional;
+    return callback();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WTF
</span><span class="cx"> 
</span><del>-using WTF::InPlace;
-using WTF::Nullopt;
-using WTF::Optional;
-using WTF::makeOptional;
</del><ins>+namespace std
+{
+  template &lt;typename T&gt;
+  struct hash&lt;std::optional&lt;T&gt;&gt;
+  {
+    typedef typename hash&lt;T&gt;::result_type result_type;
+    typedef std::optional&lt;T&gt; argument_type;
</ins><span class="cx"> 
</span><del>-#endif // Optional_h
</del><ins>+    constexpr result_type operator()(argument_type const&amp; arg) const {
+      return arg ? std::hash&lt;T&gt;{}(*arg) : result_type{};
+    }
+  };
+
+  template &lt;typename T&gt;
+  struct hash&lt;std::optional&lt;T&amp;&gt;&gt;
+  {
+    typedef typename hash&lt;T&gt;::result_type result_type;
+    typedef std::optional&lt;T&amp;&gt; argument_type;
+
+    constexpr result_type operator()(argument_type const&amp; arg) const {
+      return arg ? std::hash&lt;T&gt;{}(*arg) : result_type{};
+    }
+  };
+}
+
+# undef TR2_OPTIONAL_REQUIRES
+# undef TR2_OPTIONAL_ASSERTED_EXPRESSION
+
+using WTF::valueOrCompute;
</ins></span></pre></div>
<a id="trunkSourceWTFwtftextStringViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/StringView.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/StringView.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/wtf/text/StringView.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> 
</span><span class="cx"> class StringView::GraphemeClusters::Iterator::Impl {
</span><span class="cx"> public:
</span><del>-    Impl(const StringView&amp; stringView, Optional&lt;NonSharedCharacterBreakIterator&gt;&amp;&amp; iterator, unsigned index)
</del><ins>+    Impl(const StringView&amp; stringView, std::optional&lt;NonSharedCharacterBreakIterator&gt;&amp;&amp; iterator, unsigned index)
</ins><span class="cx">         : m_stringView(stringView)
</span><span class="cx">         , m_iterator(WTFMove(iterator))
</span><span class="cx">         , m_index(index)
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     const StringView&amp; m_stringView;
</span><del>-    Optional&lt;NonSharedCharacterBreakIterator&gt; m_iterator;
</del><ins>+    std::optional&lt;NonSharedCharacterBreakIterator&gt; m_iterator;
</ins><span class="cx">     unsigned m_index;
</span><span class="cx">     unsigned m_indexEnd;
</span><span class="cx"> };
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> StringView::GraphemeClusters::Iterator::Iterator(const StringView&amp; stringView, unsigned index)
</span><del>-    : m_impl(std::make_unique&lt;Impl&gt;(stringView, stringView.isNull() ? Nullopt : Optional&lt;NonSharedCharacterBreakIterator&gt;(NonSharedCharacterBreakIterator(stringView)), index))
</del><ins>+    : m_impl(std::make_unique&lt;Impl&gt;(stringView, stringView.isNull() ? std::nullopt : std::optional&lt;NonSharedCharacterBreakIterator&gt;(NonSharedCharacterBreakIterator(stringView)), index))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWTFwtftextStringViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/StringView.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/StringView.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WTF/wtf/text/StringView.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -673,7 +673,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     std::reference_wrapper&lt;const StringView&gt; m_stringView;
</span><del>-    Optional&lt;unsigned&gt; m_nextCodePointOffset;
</del><ins>+    std::optional&lt;unsigned&gt; m_nextCodePointOffset;
</ins><span class="cx">     UChar32 m_codePoint;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -738,7 +738,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_nextCodePointOffset);
</span><span class="cx">     if (m_nextCodePointOffset.value() == m_stringView.get().length()) {
</span><del>-        m_nextCodePointOffset = Nullopt;
</del><ins>+        m_nextCodePointOffset = std::nullopt;
</ins><span class="cx">         return *this;
</span><span class="cx">     }
</span><span class="cx">     if (m_stringView.get().is8Bit())
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/ChangeLog        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1,3 +1,1144 @@
</span><ins>+2016-11-26  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
+
+        [WTF] Import std::optional reference implementation as WTF::Optional
+        https://bugs.webkit.org/show_bug.cgi?id=164199
+
+        Reviewed by Saam Barati and Sam Weinig.
+
+        Rename valueOr to value_or. This is specified in C++17 proposal.
+
+        Use Optional::emplace. C++17 Optional::operator=(Optional&amp;&amp;) requires
+        either copy assignment operator or move assignment operator. But
+        DFG::JSValueOperand etc. only defines move constructors and drop
+        implicit copy assignment operators.
+
+        It was OK in the previous WTF::Optional since it always uses move
+        constructors. But it is not valid in C++17 Optional. We use Optional::emplace
+        instead. This function has the same semantics to the previous WTF::Optional's
+        operator=.
+
+        No behavior change.
+
+        * Modules/applepay/ApplePaySession.cpp:
+        (WebCore::parseAmount):
+        (WebCore::createContactFields):
+        (WebCore::toLineItemType):
+        (WebCore::createLineItem):
+        (WebCore::createLineItems):
+        (WebCore::createMerchantCapabilities):
+        (WebCore::createSupportedNetworks):
+        (WebCore::toShippingType):
+        (WebCore::createShippingMethod):
+        (WebCore::createShippingMethods):
+        (WebCore::createPaymentRequest):
+        (WebCore::toPaymentAuthorizationStatus):
+        * Modules/applepay/PaymentContact.h:
+        * Modules/applepay/PaymentCoordinator.cpp:
+        (WebCore::PaymentCoordinator::completeShippingMethodSelection):
+        (WebCore::PaymentCoordinator::completeShippingContactSelection):
+        (WebCore::PaymentCoordinator::completePaymentMethodSelection):
+        * Modules/applepay/PaymentCoordinator.h:
+        * Modules/applepay/PaymentCoordinatorClient.h:
+        * Modules/applepay/PaymentMerchantSession.h:
+        * Modules/applepay/PaymentRequest.h:
+        * Modules/applepay/cocoa/PaymentContactCocoa.mm:
+        (WebCore::PaymentContact::fromJS):
+        * Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm:
+        (WebCore::PaymentMerchantSession::fromJS):
+        * Modules/encryptedmedia/MediaKeyStatusMap.cpp:
+        (WebCore::MediaKeyStatusMap::Iterator::next):
+        * Modules/encryptedmedia/MediaKeyStatusMap.h:
+        * Modules/fetch/FetchBody.cpp:
+        (WebCore::FetchBody::extract):
+        * Modules/fetch/FetchBody.h:
+        * Modules/fetch/FetchBodyOwner.cpp:
+        (WebCore::FetchBodyOwner::FetchBodyOwner):
+        (WebCore::FetchBodyOwner::loadBlob):
+        (WebCore::FetchBodyOwner::finishBlobLoading):
+        * Modules/fetch/FetchBodyOwner.h:
+        * Modules/fetch/FetchHeaders.cpp:
+        (WebCore::FetchHeaders::Iterator::next):
+        * Modules/fetch/FetchHeaders.h:
+        * Modules/fetch/FetchRequest.cpp:
+        (WebCore::setReferrerPolicy):
+        (WebCore::setMode):
+        (WebCore::setCredentials):
+        (WebCore::setCache):
+        (WebCore::setRedirect):
+        (WebCore::setMethod):
+        (WebCore::setReferrer):
+        (WebCore::buildOptions):
+        (WebCore::FetchRequest::clone):
+        * Modules/fetch/FetchRequest.h:
+        (WebCore::FetchRequest::FetchRequest):
+        * Modules/fetch/FetchResponse.cpp:
+        (WebCore::FetchResponse::FetchResponse):
+        (WebCore::FetchResponse::cloneForJS):
+        (WebCore::FetchResponse::fetch):
+        (WebCore::FetchResponse::BodyLoader::didSucceed):
+        (WebCore::FetchResponse::BodyLoader::didFail):
+        (WebCore::FetchResponse::BodyLoader::didReceiveResponse):
+        (WebCore::FetchResponse::BodyLoader::stop):
+        * Modules/fetch/FetchResponse.h:
+        * Modules/geolocation/Coordinates.cpp:
+        (WebCore::Coordinates::altitude):
+        (WebCore::Coordinates::altitudeAccuracy):
+        (WebCore::Coordinates::heading):
+        (WebCore::Coordinates::speed):
+        * Modules/geolocation/Coordinates.h:
+        * Modules/indexeddb/IDBCursor.cpp:
+        (WebCore::IDBCursor::stringToDirection):
+        * Modules/indexeddb/IDBCursor.h:
+        * Modules/indexeddb/IDBDatabase.h:
+        * Modules/indexeddb/IDBDatabaseIdentifier.h:
+        (WebCore::IDBDatabaseIdentifier::hash):
+        * Modules/indexeddb/IDBFactory.cpp:
+        (WebCore::IDBFactory::open):
+        * Modules/indexeddb/IDBFactory.h:
+        * Modules/indexeddb/IDBIndex.cpp:
+        (WebCore::IDBIndex::getAll):
+        (WebCore::IDBIndex::getAllKeys):
+        * Modules/indexeddb/IDBIndex.h:
+        * Modules/indexeddb/IDBKeyPath.h:
+        (WebCore::isolatedCopy):
+        * Modules/indexeddb/IDBObjectStore.cpp:
+        (WebCore::IDBObjectStore::keyPath):
+        (WebCore::IDBObjectStore::getAll):
+        (WebCore::IDBObjectStore::getAllKeys):
+        * Modules/indexeddb/IDBObjectStore.h:
+        * Modules/indexeddb/IDBTransaction.cpp:
+        (WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
+        (WebCore::IDBTransaction::requestGetAllIndexRecords):
+        * Modules/indexeddb/IDBTransaction.h:
+        * Modules/indexeddb/IDBVersionChangeEvent.cpp:
+        (WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
+        * Modules/indexeddb/IDBVersionChangeEvent.h:
+        * Modules/indexeddb/server/IDBSerialization.cpp:
+        (WebCore::serializeIDBKeyPath):
+        (WebCore::deserializeIDBKeyPath):
+        * Modules/indexeddb/server/IDBSerialization.h:
+        * Modules/indexeddb/server/MemoryIndex.cpp:
+        (WebCore::IDBServer::MemoryIndex::getAllRecords):
+        * Modules/indexeddb/server/MemoryIndex.h:
+        * Modules/indexeddb/server/MemoryObjectStore.cpp:
+        (WebCore::IDBServer::MemoryObjectStore::getAllRecords):
+        * Modules/indexeddb/server/MemoryObjectStore.h:
+        * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
+        (WebCore::IDBServer::MemoryObjectStoreCursor::objectStoreCleared):
+        (WebCore::IDBServer::MemoryObjectStoreCursor::keyDeleted):
+        (WebCore::IDBServer::MemoryObjectStoreCursor::setFirstInRemainingRange):
+        (WebCore::IDBServer::MemoryObjectStoreCursor::setForwardIteratorFromRemainingRange):
+        (WebCore::IDBServer::MemoryObjectStoreCursor::setReverseIteratorFromRemainingRange):
+        (WebCore::IDBServer::MemoryObjectStoreCursor::incrementForwardIterator):
+        (WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):
+        * Modules/indexeddb/server/MemoryObjectStoreCursor.h:
+        * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
+        (WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
+        * Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
+        (WebCore::IDBDatabaseInfo::createNewObjectStore):
+        * Modules/indexeddb/shared/IDBDatabaseInfo.h:
+        * Modules/indexeddb/shared/IDBGetAllRecordsData.h:
+        * Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
+        (WebCore::IDBObjectStoreInfo::IDBObjectStoreInfo):
+        * Modules/indexeddb/shared/IDBObjectStoreInfo.h:
+        (WebCore::IDBObjectStoreInfo::keyPath):
+        * Modules/mediacontrols/MediaControlsHost.cpp:
+        (WebCore::MediaControlsHost::displayNameForTrack):
+        * Modules/mediacontrols/MediaControlsHost.h:
+        * Modules/mediasource/MediaSource.cpp:
+        (WebCore::MediaSource::endOfStream):
+        (WebCore::MediaSource::streamEndedWithError):
+        * Modules/mediasource/MediaSource.h:
+        * Modules/mediastream/MediaStreamTrack.h:
+        * Modules/mediastream/PeerConnectionBackend.cpp:
+        (WebCore::PeerConnectionBackend::createOfferSucceeded):
+        (WebCore::PeerConnectionBackend::createOfferFailed):
+        (WebCore::PeerConnectionBackend::createAnswerSucceeded):
+        (WebCore::PeerConnectionBackend::createAnswerFailed):
+        (WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
+        (WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
+        (WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
+        (WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
+        (WebCore::PeerConnectionBackend::addIceCandidateSucceeded):
+        (WebCore::PeerConnectionBackend::addIceCandidateFailed):
+        (WebCore::PeerConnectionBackend::stop):
+        * Modules/mediastream/PeerConnectionBackend.h:
+        * Modules/mediastream/RTCDTMFSender.cpp:
+        (WebCore::RTCDTMFSender::insertDTMF):
+        * Modules/mediastream/RTCDTMFSender.h:
+        * Modules/mediastream/RTCIceCandidate.cpp:
+        (WebCore::RTCIceCandidate::create):
+        (WebCore::RTCIceCandidate::RTCIceCandidate):
+        * Modules/mediastream/RTCIceCandidate.h:
+        (WebCore::RTCIceCandidate::sdpMLineIndex):
+        * Modules/mediastream/SDPProcessor.cpp:
+        (WebCore::iceCandidateFromJSON):
+        * Modules/proximity/DeviceProximityEvent.h:
+        * Modules/streams/ReadableStreamSource.h:
+        (WebCore::ReadableStreamSource::startFinished):
+        (WebCore::ReadableStreamSource::pullFinished):
+        (WebCore::ReadableStreamSource::clean):
+        * Modules/webaudio/AudioBufferSourceNode.cpp:
+        (WebCore::AudioBufferSourceNode::start):
+        * Modules/webaudio/AudioBufferSourceNode.h:
+        * Modules/webdatabase/SQLResultSet.h:
+        * Modules/websockets/WebSocket.cpp:
+        (WebCore::WebSocket::close):
+        * Modules/websockets/WebSocket.h:
+        * Modules/websockets/WebSocketChannel.cpp:
+        (WebCore::WebSocketChannel::didReceiveSocketStreamData):
+        * Modules/websockets/WebSocketChannel.h:
+        * bindings/generic/IDLTypes.h:
+        (WebCore::IDLType::nullValue):
+        * bindings/js/CachedModuleScript.h:
+        (WebCore::CachedModuleScript::error):
+        * bindings/js/Dictionary.h:
+        (WebCore::Dictionary::get):
+        * bindings/js/IDBBindingUtilities.cpp:
+        (WebCore::toJS):
+        * bindings/js/IDBBindingUtilities.h:
+        * bindings/js/JSCryptoKeySerializationJWK.cpp:
+        (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
+        * bindings/js/JSCryptoKeySerializationJWK.h:
+        * bindings/js/JSDOMConvert.h:
+        (WebCore::Detail::VariadicConverterBase::convert):
+        (WebCore::Detail::VariadicConverterBase&lt;IDLInterface&lt;T&gt;&gt;::convert):
+        (WebCore::convertVariadicArguments):
+        * bindings/js/JSDOMIterator.h:
+        (WebCore::IteratorTraits&gt;::next):
+        * bindings/js/JSDOMPromise.h:
+        (WebCore::DOMPromise::DOMPromise):
+        (WebCore::DOMPromise::operator=):
+        * bindings/js/JSDOMWindowCustom.cpp:
+        (WebCore::JSDOMWindow::getOwnPropertySlot):
+        * bindings/js/JSDictionary.h:
+        (WebCore::JSDictionary::convertValue):
+        * bindings/js/JSFileCustom.cpp:
+        (WebCore::constructJSFile):
+        * bindings/js/JSHTMLAllCollectionCustom.cpp:
+        (WebCore::callHTMLAllCollection):
+        (WebCore::JSHTMLAllCollection::item):
+        * bindings/js/JSHTMLCanvasElementCustom.cpp:
+        (WebCore::JSHTMLCanvasElement::toDataURL):
+        * bindings/js/JSImageConstructor.cpp:
+        (WebCore::JSImageConstructor::construct):
+        * bindings/js/JSMediaDevicesCustom.cpp:
+        (WebCore::createStringConstraint):
+        (WebCore::createBooleanConstraint):
+        (WebCore::createDoubleConstraint):
+        (WebCore::createIntConstraint):
+        * bindings/js/JSWebKitSubtleCryptoCustom.cpp:
+        (WebCore::importKey):
+        * bindings/js/ScriptController.cpp:
+        (WebCore::ScriptController::setupModuleScriptHandlers):
+        (WebCore::ScriptController::executeScriptInWorld):
+        (WebCore::ScriptController::executeScript):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateGetOwnPropertySlotBody):
+        (GenerateEnumerationImplementationContent):
+        (GenerateEnumerationHeaderContent):
+        (GenerateDefaultValue):
+        (GenerateImplementation):
+        (GenerateParametersCheck):
+        * bindings/scripts/test/JS/JSFloat64Array.cpp:
+        (WebCore::JSFloat64Array::getOwnPropertySlot):
+        (WebCore::JSFloat64Array::getOwnPropertyDescriptor):
+        (WebCore::JSFloat64Array::put):
+        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+        (WebCore::JSTestEventTarget::getOwnPropertySlot):
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::parseEnumeration&lt;TestObj::EnumType&gt;):
+        (WebCore::parseEnumeration&lt;TestObj::Optional&gt;):
+        (WebCore::parseEnumeration&lt;AlternateEnumName&gt;):
+        (WebCore::parseEnumeration&lt;TestObj::EnumA&gt;):
+        (WebCore::parseEnumeration&lt;TestObj::EnumB&gt;):
+        (WebCore::parseEnumeration&lt;TestObj::EnumC&gt;):
+        (WebCore::parseEnumeration&lt;TestObj::Kind&gt;):
+        (WebCore::parseEnumeration&lt;TestObj::Size&gt;):
+        (WebCore::parseEnumeration&lt;TestObj::Confidence&gt;):
+        (WebCore::convertDictionary&lt;TestObj::Dictionary&gt;):
+        (WebCore::JSTestObj::getOwnPropertySlot):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgCaller):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgCaller):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgCaller):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsCaller):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongCaller):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongCaller):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceCaller):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanCaller):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordCaller):
+        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Caller):
+        (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Caller):
+        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
+        (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentCaller):
+        * bindings/scripts/test/JS/JSTestObj.h:
+        * bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
+        (WebCore::parseEnumeration&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt;):
+        * bindings/scripts/test/JS/JSTestStandaloneDictionary.h:
+        * bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp:
+        (WebCore::parseEnumeration&lt;TestStandaloneEnumeration&gt;):
+        * bindings/scripts/test/JS/JSTestStandaloneEnumeration.h:
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        (WebCore::jsTestTypedefsPrototypeFunctionSetShadowCaller):
+        (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampCaller):
+        * bridge/runtime_array.cpp:
+        (JSC::RuntimeArray::getOwnPropertySlot):
+        (JSC::RuntimeArray::put):
+        * crypto/CryptoAlgorithmRegistry.cpp:
+        (WebCore::CryptoAlgorithmRegistry::identifier):
+        * crypto/CryptoAlgorithmRegistry.h:
+        * crypto/CryptoKeySerialization.h:
+        * crypto/JsonWebKey.h:
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+        (WebCore::CryptoAlgorithmAES_CBC::importKey):
+        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
+        (WebCore::CryptoAlgorithmAES_KW::importKey):
+        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
+        (WebCore::CryptoAlgorithmHMAC::generateKey):
+        (WebCore::CryptoAlgorithmHMAC::importKey):
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
+        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
+        * crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp:
+        (WebCore::calculateSignature):
+        * crypto/keys/CryptoKeyAES.h:
+        * crypto/keys/CryptoKeyHMAC.h:
+        * crypto/keys/CryptoKeyRSA.cpp:
+        (WebCore::CryptoKeyRSA::importJwk):
+        * crypto/keys/CryptoKeyRSA.h:
+        * crypto/keys/CryptoKeySerializationRaw.cpp:
+        (WebCore::CryptoKeySerializationRaw::reconcileAlgorithm):
+        * crypto/keys/CryptoKeySerializationRaw.h:
+        * crypto/mac/CryptoAlgorithmHMACMac.cpp:
+        (WebCore::commonCryptoHMACAlgorithm):
+        * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
+        (WebCore::cryptoDigestAlgorithm):
+        * crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
+        * crypto/parameters/CryptoAlgorithmRsaOaepParams.h:
+        * css/CSSFontFace.cpp:
+        (WebCore::CSSFontFace::calculateStyleMask):
+        (WebCore::CSSFontFace::calculateWeightMask):
+        * css/CSSFontFace.h:
+        * css/CSSFontFaceSet.cpp:
+        (WebCore::computeFontTraitsMask):
+        * css/CSSPrimitiveValue.cpp:
+        (WebCore::CSSPrimitiveValue::doubleValue):
+        (WebCore::CSSPrimitiveValue::doubleValueInternal):
+        * css/CSSPrimitiveValue.h:
+        * css/CSSPropertyNames.in:
+        * css/CSSSegmentedFontFace.cpp:
+        * css/CSSStyleSheet.cpp:
+        (WebCore::CSSStyleSheet::create):
+        (WebCore::CSSStyleSheet::CSSStyleSheet):
+        (WebCore::CSSStyleSheet::addRule):
+        * css/CSSStyleSheet.h:
+        * css/FontFace.cpp:
+        (WebCore::FontFace::fontStateChanged):
+        * css/FontFace.h:
+        * css/FontFaceSet.cpp:
+        (WebCore::FontFaceSet::completedLoading):
+        * css/FontFaceSet.h:
+        * css/MediaQueryEvaluator.cpp:
+        (WebCore::doubleValue):
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertGridPosition):
+        (WebCore::StyleBuilderConverter::convertWordSpacing):
+        (WebCore::StyleBuilderConverter::convertPerspective):
+        (WebCore::StyleBuilderConverter::convertMarqueeIncrement):
+        (WebCore::StyleBuilderConverter::convertFilterOperations):
+        (WebCore::StyleBuilderConverter::convertLineHeight):
+        * css/StyleBuilderCustom.h:
+        (WebCore::StyleBuilderCustom::applyValueLineHeight):
+        * css/StyleRuleImport.cpp:
+        (WebCore::StyleRuleImport::requestStyleSheet):
+        * css/parser/CSSParser.cpp:
+        (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
+        (WebCore::CSSParser::parseSpringTimingFunctionValue):
+        (WebCore::CSSParser::parseColorFunctionParameters):
+        (WebCore::CSSParser::parseColorFromValue):
+        * css/parser/CSSParser.h:
+        * cssjit/SelectorCompiler.cpp:
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelationIfResolvingStyle):
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation):
+        * dom/CustomElementReactionQueue.cpp:
+        * dom/Document.cpp:
+        (WebCore::Document::lastModified):
+        * dom/Element.cpp:
+        (WebCore::Element::scrollBy):
+        (WebCore::Element::getIntegralAttribute):
+        (WebCore::Element::getUnsignedIntegralAttribute):
+        (WebCore::Element::resolveCustomStyle):
+        * dom/Element.h:
+        * dom/ElementIteratorAssertions.h:
+        (WebCore::ElementIteratorAssertions::dropEventDispatchAssertion):
+        (WebCore::ElementIteratorAssertions::clear):
+        * dom/ExceptionOr.h:
+        * dom/InlineStyleSheetOwner.cpp:
+        (WebCore::makeInlineStyleSheetCacheKey):
+        * dom/KeyboardEvent.h:
+        * dom/LoadableClassicScript.cpp:
+        (WebCore::LoadableClassicScript::error):
+        * dom/LoadableClassicScript.h:
+        * dom/LoadableModuleScript.cpp:
+        (WebCore::LoadableModuleScript::error):
+        * dom/LoadableModuleScript.h:
+        * dom/LoadableScript.h:
+        * dom/MessageEvent.cpp:
+        (WebCore::MessageEvent::MessageEvent):
+        (WebCore::MessageEvent::create):
+        (WebCore::MessageEvent::initMessageEvent):
+        * dom/MessageEvent.h:
+        * dom/MutationObserver.cpp:
+        (WebCore::MutationObserver::observe):
+        * dom/MutationObserver.h:
+        * dom/ProcessingInstruction.cpp:
+        (WebCore::ProcessingInstruction::checkStyleSheet):
+        * dom/PseudoElement.cpp:
+        (WebCore::PseudoElement::resolveCustomStyle):
+        * dom/PseudoElement.h:
+        * dom/RangeBoundaryPoint.h:
+        (WebCore::RangeBoundaryPoint::setToBeforeChild):
+        (WebCore::RangeBoundaryPoint::setToAfterChild):
+        (WebCore::RangeBoundaryPoint::setToEndOfNode):
+        (WebCore::RangeBoundaryPoint::invalidateOffset):
+        * dom/ScriptElement.cpp:
+        (WebCore::ScriptElement::determineScriptType):
+        (WebCore::ScriptElement::prepareScript):
+        (WebCore::ScriptElement::executeScriptAndDispatchEvent):
+        * dom/ScriptElement.h:
+        * dom/TextDecoder.cpp:
+        (WebCore::TextDecoder::decode):
+        * dom/TextDecoder.h:
+        * dom/UserGestureIndicator.cpp:
+        (WebCore::UserGestureIndicator::UserGestureIndicator):
+        * dom/UserGestureIndicator.h:
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::moveParagraphs):
+        * editing/CompositeEditCommand.h:
+        * fileapi/File.h:
+        * history/CachedFrame.h:
+        (WebCore::CachedFrame::hasInsecureContent):
+        * html/DOMTokenList.cpp:
+        (WebCore::DOMTokenList::toggle):
+        * html/DOMTokenList.h:
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::handleClick):
+        * html/HTMLCanvasElement.cpp:
+        (WebCore::HTMLCanvasElement::toDataURL):
+        * html/HTMLCanvasElement.h:
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::parseBorderWidthAttribute):
+        (WebCore::HTMLElement::parseAttribute):
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::createForJSConstructor):
+        (WebCore::HTMLImageElement::width):
+        (WebCore::HTMLImageElement::height):
+        * html/HTMLImageElement.h:
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::findClosestTickMarkValue):
+        (WebCore::HTMLInputElement::maxLengthAttributeChanged):
+        (WebCore::HTMLInputElement::minLengthAttributeChanged):
+        * html/HTMLInputElement.h:
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::process):
+        (WebCore::HTMLLinkElement::initializeStyleSheet):
+        (WebCore::HTMLLinkElement::iconType):
+        * html/HTMLLinkElement.h:
+        * html/HTMLOListElement.h:
+        * html/HTMLOptionsCollection.cpp:
+        (WebCore::HTMLOptionsCollection::add):
+        * html/HTMLOptionsCollection.h:
+        * html/HTMLSelectElement.cpp:
+        (WebCore::HTMLSelectElement::add):
+        (WebCore::HTMLSelectElement::setLength):
+        * html/HTMLSelectElement.h:
+        * html/HTMLTextAreaElement.cpp:
+        (WebCore::HTMLTextAreaElement::maxLengthAttributeChanged):
+        (WebCore::HTMLTextAreaElement::minLengthAttributeChanged):
+        * html/ImageInputType.cpp:
+        (WebCore::ImageInputType::height):
+        (WebCore::ImageInputType::width):
+        * html/InputType.cpp:
+        (WebCore::InputType::findClosestTickMarkValue):
+        * html/InputType.h:
+        * html/LinkIconCollector.cpp:
+        * html/LinkRelAttribute.h:
+        * html/RangeInputType.cpp:
+        (WebCore::RangeInputType::findClosestTickMarkValue):
+        * html/RangeInputType.h:
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::restore):
+        (WebCore::CanvasRenderingContext2D::setStrokeColor):
+        (WebCore::CanvasRenderingContext2D::setFillColor):
+        (WebCore::CanvasRenderingContext2D::isPointInPathInternal):
+        (WebCore::CanvasRenderingContext2D::isPointInStrokeInternal):
+        (WebCore::CanvasRenderingContext2D::setShadow):
+        (WebCore::CanvasRenderingContext2D::fillText):
+        (WebCore::CanvasRenderingContext2D::strokeText):
+        (WebCore::CanvasRenderingContext2D::drawTextInternal):
+        * html/canvas/CanvasRenderingContext2D.h:
+        * html/canvas/WebGL2RenderingContext.cpp:
+        (WebCore::arrayBufferViewElementSize):
+        * html/canvas/WebGLRenderingContextBase.cpp:
+        (WebCore::WebGLRenderingContextBase::bufferData):
+        (WebCore::WebGLRenderingContextBase::bufferSubData):
+        (WebCore::WebGLRenderingContextBase::texSubImage2D):
+        (WebCore::WebGLRenderingContextBase::validateArrayBufferType):
+        (WebCore::WebGLRenderingContextBase::validateTexFuncData):
+        (WebCore::WebGLRenderingContextBase::texImage2D):
+        * html/canvas/WebGLRenderingContextBase.h:
+        * html/parser/HTMLConstructionSite.cpp:
+        (WebCore::HTMLConstructionSite::indexOfFirstUnopenFormattingElement):
+        (WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
+        * html/parser/HTMLConstructionSite.h:
+        * html/parser/HTMLParserIdioms.cpp:
+        (WebCore::parseHTMLIntegerInternal):
+        (WebCore::parseHTMLInteger):
+        (WebCore::parseHTMLNonNegativeInteger):
+        (WebCore::parseValidHTMLNonNegativeIntegerInternal):
+        (WebCore::parseValidHTMLNonNegativeInteger):
+        (WebCore::parseValidHTMLFloatingPointNumberInternal):
+        (WebCore::parseValidHTMLFloatingPointNumber):
+        (WebCore::parseHTTPRefreshInternal):
+        * html/parser/HTMLParserIdioms.h:
+        (WebCore::limitToOnlyHTMLNonNegative):
+        * html/parser/HTMLSrcsetParser.cpp:
+        (WebCore::parseDescriptors):
+        * html/shadow/SliderThumbElement.cpp:
+        (WebCore::SliderThumbElement::setPositionFromPoint):
+        (WebCore::SliderThumbElement::resolveCustomStyle):
+        (WebCore::SliderContainerElement::resolveCustomStyle):
+        * html/shadow/SliderThumbElement.h:
+        * html/shadow/TextControlInnerElements.cpp:
+        (WebCore::TextControlInnerElement::resolveCustomStyle):
+        (WebCore::TextControlInnerTextElement::resolveCustomStyle):
+        (WebCore::TextControlPlaceholderElement::resolveCustomStyle):
+        * html/shadow/TextControlInnerElements.h:
+        * html/track/TrackEvent.h:
+        * inspector/InspectorIndexedDBAgent.cpp:
+        * inspector/InspectorInstrumentation.cpp:
+        (WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
+        * inspector/InspectorInstrumentation.h:
+        (WebCore::InspectorInstrumentation::didFinishXHRLoading):
+        * inspector/InspectorStyleSheet.cpp:
+        (WebCore::InspectorStyleSheet::addRule):
+        * inspector/InspectorTimelineAgent.cpp:
+        (WebCore::InspectorTimelineAgent::setInstruments):
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::startIconLoading):
+        * loader/DocumentThreadableLoader.cpp:
+        (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
+        (WebCore::DocumentThreadableLoader::clearResource):
+        (WebCore::DocumentThreadableLoader::preflightSuccess):
+        (WebCore::DocumentThreadableLoader::preflightFailure):
+        * loader/DocumentThreadableLoader.h:
+        * loader/EmptyClients.cpp:
+        * loader/EmptyClients.h:
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::urlSelected):
+        (WebCore::FrameLoader::receivedFirstData):
+        (WebCore::FrameLoader::commitProvisionalLoad):
+        (WebCore::FrameLoader::open):
+        (WebCore::FrameLoader::dispatchDidCommitLoad):
+        (WebCore::FrameLoader::clearTestingOverrides):
+        * loader/FrameLoader.h:
+        * loader/FrameLoaderClient.h:
+        * loader/LinkLoader.cpp:
+        (WebCore::LinkLoader::resourceTypeFromAsAttribute):
+        (WebCore::LinkLoader::loadLink):
+        * loader/LinkLoader.h:
+        * loader/SubresourceLoader.cpp:
+        (WebCore::SubresourceLoader::SubresourceLoader):
+        (WebCore::SubresourceLoader::didReceiveResponse):
+        (WebCore::SubresourceLoader::notifyDone):
+        * loader/SubresourceLoader.h:
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::setLoadPriority):
+        * loader/cache/CachedResource.h:
+        * loader/cache/CachedResourceRequest.cpp:
+        (WebCore::CachedResourceRequest::CachedResourceRequest):
+        * loader/cache/CachedResourceRequest.h:
+        (WebCore::CachedResourceRequest::priority):
+        * mathml/MathMLElement.h:
+        (WebCore::MathMLElement::specifiedDisplayStyle):
+        (WebCore::MathMLElement::specifiedMathVariant):
+        * mathml/MathMLFractionElement.cpp:
+        (WebCore::MathMLFractionElement::cachedFractionAlignment):
+        (WebCore::MathMLFractionElement::parseAttribute):
+        * mathml/MathMLFractionElement.h:
+        * mathml/MathMLMathElement.cpp:
+        (WebCore::MathMLMathElement::specifiedDisplayStyle):
+        (WebCore::MathMLMathElement::parseAttribute):
+        * mathml/MathMLMathElement.h:
+        * mathml/MathMLMencloseElement.cpp:
+        (WebCore::MathMLMencloseElement::parseAttribute):
+        * mathml/MathMLMencloseElement.h:
+        * mathml/MathMLOperatorDictionary.cpp:
+        (WebCore::MathMLOperatorDictionary::search):
+        * mathml/MathMLOperatorDictionary.h:
+        * mathml/MathMLOperatorElement.cpp:
+        (WebCore::MathMLOperatorElement::computeOperatorFlag):
+        (WebCore::MathMLOperatorElement::childrenChanged):
+        (WebCore::attributeNameToPropertyFlag):
+        (WebCore::MathMLOperatorElement::parseAttribute):
+        * mathml/MathMLOperatorElement.h:
+        * mathml/MathMLPaddedElement.cpp:
+        (WebCore::MathMLPaddedElement::parseAttribute):
+        * mathml/MathMLPaddedElement.h:
+        * mathml/MathMLPresentationElement.cpp:
+        (WebCore::MathMLPresentationElement::cachedBooleanAttribute):
+        (WebCore::MathMLPresentationElement::cachedMathMLLength):
+        (WebCore::MathMLPresentationElement::specifiedDisplayStyle):
+        (WebCore::MathMLPresentationElement::specifiedMathVariant):
+        (WebCore::MathMLPresentationElement::parseAttribute):
+        * mathml/MathMLPresentationElement.h:
+        (WebCore::MathMLPresentationElement::toOptionalBool):
+        * mathml/MathMLScriptsElement.cpp:
+        (WebCore::MathMLScriptsElement::parseAttribute):
+        * mathml/MathMLScriptsElement.h:
+        * mathml/MathMLSpaceElement.cpp:
+        (WebCore::MathMLSpaceElement::parseAttribute):
+        * mathml/MathMLSpaceElement.h:
+        * mathml/MathMLTokenElement.cpp:
+        (WebCore::MathMLTokenElement::convertToSingleCodePoint):
+        * mathml/MathMLTokenElement.h:
+        * mathml/MathMLUnderOverElement.cpp:
+        (WebCore::MathMLUnderOverElement::parseAttribute):
+        * mathml/MathMLUnderOverElement.h:
+        * page/ChromeClient.h:
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::alignedFireTime):
+        * page/DOMTimer.h:
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::scrollBy):
+        * page/DOMWindow.h:
+        * page/EventSource.cpp:
+        (WebCore::EventSource::parseEventStream):
+        (WebCore::EventSource::parseEventStreamLine):
+        * page/EventSource.h:
+        * page/FrameView.cpp:
+        (WebCore::FrameView::recalculateScrollbarOverlayStyle):
+        (WebCore::FrameView::setLayoutViewportOverrideRect):
+        (WebCore::FrameView::setViewExposedRect):
+        * page/FrameView.h:
+        * page/Page.cpp:
+        (WebCore::Page::takeAnyMediaCanStartListener):
+        * page/Page.h:
+        (WebCore::Page::eventThrottlingBehaviorOverride):
+        (WebCore::Page::setEventThrottlingBehaviorOverride):
+        * page/ScrollToOptions.h:
+        * page/SecurityOrigin.cpp:
+        (WebCore::SecurityOrigin::SecurityOrigin):
+        (WebCore::SecurityOrigin::create):
+        * page/SecurityOrigin.h:
+        (WebCore::SecurityOrigin::port):
+        * page/SecurityOriginData.cpp:
+        (WebCore::SecurityOriginData::debugString):
+        (WebCore::SecurityOriginData::databaseIdentifier):
+        (WebCore::SecurityOriginData::fromDatabaseIdentifier):
+        * page/SecurityOriginData.h:
+        (WebCore::SecurityOriginData::SecurityOriginData):
+        (WebCore::SecurityOriginData::isEmpty):
+        (WebCore::SecurityOriginDataHash::hash):
+        * page/SecurityOriginHash.h:
+        (WebCore::SecurityOriginHash::hash):
+        * page/WindowFeatures.cpp:
+        (WebCore::parseDialogFeatures):
+        (WebCore::boolFeature):
+        (WebCore::floatFeature):
+        * page/WindowFeatures.h:
+        * page/csp/ContentSecurityPolicySource.cpp:
+        (WebCore::ContentSecurityPolicySource::ContentSecurityPolicySource):
+        (WebCore::ContentSecurityPolicySource::portMatches):
+        * page/csp/ContentSecurityPolicySource.h:
+        * page/csp/ContentSecurityPolicySourceList.cpp:
+        (WebCore::ContentSecurityPolicySourceList::parse):
+        (WebCore::ContentSecurityPolicySourceList::parseSource):
+        (WebCore::ContentSecurityPolicySourceList::parsePort):
+        * page/csp/ContentSecurityPolicySourceList.h:
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
+        (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
+        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
+        (WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
+        * page/scrolling/AsyncScrollingCoordinator.h:
+        (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
+        * page/scrolling/ScrollingCoordinator.h:
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
+        * page/scrolling/ScrollingTree.h:
+        * page/scrolling/ScrollingTreeScrollingNode.cpp:
+        (WebCore::ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints):
+        * page/scrolling/ThreadedScrollingTree.cpp:
+        (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
+        * page/scrolling/ThreadedScrollingTree.h:
+        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
+        * page/scrolling/ios/ScrollingTreeIOS.cpp:
+        (WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
+        * page/scrolling/ios/ScrollingTreeIOS.h:
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
+        * platform/DragImage.cpp:
+        * platform/LinkIcon.h:
+        * platform/MemoryPressureHandler.h:
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange):
+        * platform/ScrollView.h:
+        * platform/Theme.h:
+        (WebCore::Theme::controlFont):
+        * platform/Timer.h:
+        (WebCore::TimerBase::alignedFireTime):
+        * platform/URL.cpp:
+        (WebCore::URL::port):
+        (WebCore::defaultPortForProtocol):
+        (WebCore::portAllowed):
+        * platform/URL.h:
+        * platform/URLParser.cpp:
+        (WebCore::URLParser::defaultPortForProtocol):
+        (WebCore::findLongestZeroSequence):
+        (WebCore::URLParser::parseIPv4Piece):
+        (WebCore::URLParser::parseIPv4Host):
+        (WebCore::URLParser::parseIPv4PieceInsideIPv6):
+        (WebCore::URLParser::parseIPv4AddressInsideIPv6):
+        (WebCore::URLParser::parseIPv6Host):
+        (WebCore::URLParser::domainToASCII):
+        (WebCore::URLParser::formURLDecode):
+        * platform/URLParser.h:
+        * platform/graphics/BitmapImage.h:
+        * platform/graphics/Color.h:
+        (WebCore::colorWithOverrideAlpha):
+        * platform/graphics/DisplayRefreshMonitorClient.h:
+        * platform/graphics/Font.h:
+        * platform/graphics/FontCascade.cpp:
+        (WebCore::FontCascade::drawText):
+        (WebCore::FontCascade::drawEmphasisMarks):
+        (WebCore::FontCascade::adjustSelectionRectForText):
+        (WebCore::FontCascade::getEmphasisMarkGlyphData):
+        (WebCore::FontCascade::emphasisMarkAscent):
+        (WebCore::FontCascade::emphasisMarkDescent):
+        (WebCore::FontCascade::emphasisMarkHeight):
+        * platform/graphics/FontCascade.h:
+        * platform/graphics/GraphicsContext.cpp:
+        (WebCore::GraphicsContext::drawText):
+        (WebCore::GraphicsContext::drawEmphasisMarks):
+        (WebCore::GraphicsContext::drawBidiText):
+        * platform/graphics/GraphicsContext.h:
+        (WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
+        * platform/graphics/GraphicsLayer.h:
+        (WebCore::GraphicsLayer::setPosition):
+        (WebCore::GraphicsLayer::setApproximatePosition):
+        * platform/graphics/Image.h:
+        (WebCore::Image::hotSpot):
+        * platform/graphics/ImageBuffer.h:
+        * platform/graphics/ImageFrameCache.cpp:
+        (WebCore::ImageFrameCache::clearMetadata):
+        (WebCore::ImageFrameCache::metadata):
+        (WebCore::ImageFrameCache::frameMetadataAtIndex):
+        (WebCore::ImageFrameCache::hotSpot):
+        * platform/graphics/ImageFrameCache.h:
+        * platform/graphics/ImageSource.h:
+        (WebCore::ImageSource::hotSpot):
+        * platform/graphics/PathUtilities.cpp:
+        (WebCore::rectFromPolygon):
+        (WebCore::PathUtilities::pathWithShrinkWrappedRectsForOutline):
+        * platform/graphics/ShadowBlur.cpp:
+        (WebCore::ShadowBlur::calculateLayerBoundingRect):
+        * platform/graphics/TiledBacking.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::flush):
+        (WebCore::SourceBufferPrivateAVFObjC::naturalSize):
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect):
+        * platform/graphics/ca/TileController.cpp:
+        (WebCore::TileController::setLayoutViewportRect):
+        * platform/graphics/ca/TileController.h:
+        * platform/graphics/cairo/ImageBufferCairo.cpp:
+        (WebCore::ImageBuffer::toDataURL):
+        * platform/graphics/cg/ImageBufferCG.cpp:
+        (WebCore::encodeImage):
+        (WebCore::dataURL):
+        (WebCore::ImageBuffer::toDataURL):
+        * platform/graphics/cg/ImageDecoderCG.cpp:
+        (WebCore::ImageDecoder::hotSpot):
+        * platform/graphics/cg/ImageDecoderCG.h:
+        * platform/graphics/cocoa/FontCocoa.mm:
+        (WebCore::openTypeFeature):
+        (WebCore::advanceForColorBitmapFont):
+        * platform/graphics/displaylists/DisplayListItems.cpp:
+        (WebCore::DisplayList::DrawGlyphs::localBounds):
+        (WebCore::DisplayList::DrawLine::localBounds):
+        (WebCore::DisplayList::DrawLinesForText::localBounds):
+        (WebCore::DisplayList::DrawLineForDocumentMarker::localBounds):
+        (WebCore::DisplayList::DrawFocusRingPath::localBounds):
+        (WebCore::DisplayList::DrawFocusRingRects::localBounds):
+        (WebCore::DisplayList::StrokeRect::localBounds):
+        (WebCore::DisplayList::StrokePath::localBounds):
+        (WebCore::DisplayList::StrokeEllipse::localBounds):
+        * platform/graphics/displaylists/DisplayListItems.h:
+        (WebCore::DisplayList::DrawingItem::localBounds):
+        * platform/graphics/displaylists/DisplayListRecorder.cpp:
+        (WebCore::DisplayList::Recorder::updateItemExtent):
+        (WebCore::DisplayList::Recorder::ContextState::rotate):
+        (WebCore::DisplayList::Recorder::ContextState::concatCTM):
+        * platform/graphics/efl/ImageBufferEfl.cpp:
+        (WebCore::encodeImageJPEG):
+        (WebCore::ImageBuffer::toDataURL):
+        * platform/graphics/filters/Filter.h:
+        (WebCore::Filter::mapAbsolutePointToLocalPoint):
+        * platform/graphics/gtk/ImageBufferGtk.cpp:
+        (WebCore::encodeImage):
+        (WebCore::ImageBuffer::toDataURL):
+        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
+        (WebCore::HarfBuzzShaper::selectionRect):
+        * platform/graphics/mac/ComplexTextController.cpp:
+        (WebCore::capitalized):
+        (WebCore::shouldSynthesize):
+        * platform/graphics/texmap/TextureMapperLayer.cpp:
+        (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
+        (WebCore::TextureMapperLayer::replicaTransform):
+        (WebCore::TextureMapperLayer::mapScrollOffset):
+        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
+        (WebCore::CoordinatedGraphicsLayer::transformedVisibleRect):
+        (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
+        * platform/graphics/transforms/AffineTransform.cpp:
+        (WebCore::AffineTransform::inverse):
+        * platform/graphics/transforms/AffineTransform.h:
+        * platform/graphics/transforms/TransformState.cpp:
+        (WebCore::TransformState::mappedPoint):
+        (WebCore::TransformState::mappedSecondaryQuad):
+        (WebCore::TransformState::mapQuad):
+        (WebCore::TransformState::flattenWithTransform):
+        * platform/graphics/transforms/TransformState.h:
+        * platform/graphics/transforms/TransformationMatrix.cpp:
+        (WebCore::TransformationMatrix::inverse):
+        * platform/graphics/transforms/TransformationMatrix.h:
+        * platform/graphics/win/ImageBufferDirect2D.cpp:
+        (WebCore::ImageBuffer::toDataURL):
+        * platform/graphics/win/ImageDecoderDirect2D.cpp:
+        (WebCore::ImageDecoder::hotSpot):
+        * platform/graphics/win/ImageDecoderDirect2D.h:
+        * platform/graphics/x11/PlatformDisplayX11.cpp:
+        (WebCore::PlatformDisplayX11::supportsXDamage):
+        * platform/graphics/x11/PlatformDisplayX11.h:
+        * platform/image-decoders/ImageDecoder.h:
+        (WebCore::ImageDecoder::hotSpot):
+        * platform/image-decoders/ico/ICOImageDecoder.cpp:
+        (WebCore::ICOImageDecoder::hotSpot):
+        (WebCore::ICOImageDecoder::hotSpotAtIndex):
+        * platform/image-decoders/ico/ICOImageDecoder.h:
+        * platform/image-encoders/JPEGImageEncoder.cpp:
+        (WebCore::compressRGBABigEndianToJPEG):
+        * platform/image-encoders/JPEGImageEncoder.h:
+        * platform/ios/LegacyTileCache.h:
+        * platform/ios/LegacyTileCache.mm:
+        (WebCore::LegacyTileCache::setOverrideVisibleRect):
+        * platform/ios/LegacyTileLayer.mm:
+        (-[LegacyTileHostLayer renderInContext:]):
+        * platform/linux/MemoryPressureHandlerLinux.cpp:
+        * platform/mac/ThemeMac.h:
+        * platform/mac/ThemeMac.mm:
+        (WebCore::ThemeMac::controlFont):
+        * platform/mediastream/MediaConstraints.cpp:
+        (WebCore::MediaTrackConstraintSetMap::set):
+        * platform/mediastream/MediaConstraints.h:
+        (WebCore::MediaTrackConstraintSetMap::width):
+        (WebCore::MediaTrackConstraintSetMap::height):
+        (WebCore::MediaTrackConstraintSetMap::sampleRate):
+        (WebCore::MediaTrackConstraintSetMap::sampleSize):
+        (WebCore::MediaTrackConstraintSetMap::aspectRatio):
+        (WebCore::MediaTrackConstraintSetMap::frameRate):
+        (WebCore::MediaTrackConstraintSetMap::volume):
+        (WebCore::MediaTrackConstraintSetMap::echoCancellation):
+        (WebCore::MediaTrackConstraintSetMap::facingMode):
+        (WebCore::MediaTrackConstraintSetMap::deviceId):
+        (WebCore::MediaTrackConstraintSetMap::groupId):
+        * platform/mediastream/RealtimeMediaSource.cpp:
+        (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate):
+        (WebCore::RealtimeMediaSource::applySizeAndFrameRate):
+        (WebCore::RealtimeMediaSource::applyConstraints):
+        * platform/mediastream/RealtimeMediaSource.h:
+        * platform/mediastream/mac/AVVideoCaptureSource.h:
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoCaptureSource::applySizeAndFrameRate):
+        (WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions):
+        (WebCore::AVVideoCaptureSource::supportsSizeAndFrameRate):
+        * platform/mediastream/openwebrtc/MediaEndpointOwr.h:
+        * platform/network/CacheValidation.cpp:
+        (WebCore::computeCurrentAge):
+        (WebCore::computeFreshnessLifetimeForHTTPFamily):
+        * platform/network/CacheValidation.h:
+        * platform/network/DataURLDecoder.h:
+        * platform/network/HTTPHeaderMap.h:
+        (WebCore::HTTPHeaderMap::HTTPHeaderMapConstIterator::updateKeyValue):
+        * platform/network/HTTPParsers.cpp:
+        (WebCore::parseHTTPDate):
+        * platform/network/HTTPParsers.h:
+        * platform/network/ResourceHandle.cpp:
+        (WebCore::ResourceHandle::didReceiveResponse):
+        * platform/network/ResourceResponseBase.cpp:
+        (WebCore::ResourceResponseBase::cacheControlMaxAge):
+        (WebCore::parseDateValueInHeader):
+        (WebCore::ResourceResponseBase::date):
+        (WebCore::ResourceResponseBase::age):
+        (WebCore::ResourceResponseBase::expires):
+        (WebCore::ResourceResponseBase::lastModified):
+        * platform/network/ResourceResponseBase.h:
+        (WebCore::ResourceResponseBase::certificateInfo):
+        * platform/network/SocketStreamHandle.h:
+        * platform/network/SocketStreamHandleClient.h:
+        * platform/network/cf/SocketStreamHandleImpl.h:
+        * platform/network/cf/SocketStreamHandleImplCFNet.cpp:
+        (WebCore::SocketStreamHandleImpl::readStreamCallback):
+        (WebCore::SocketStreamHandleImpl::platformSend):
+        * platform/network/curl/SocketStreamHandleImpl.h:
+        * platform/network/curl/SocketStreamHandleImplCurl.cpp:
+        (WebCore::SocketStreamHandleImpl::platformSend):
+        * platform/network/mac/CookieJarMac.mm:
+        (WebCore::cookiesInPartitionForURL):
+        * platform/network/soup/SocketStreamHandleImpl.h:
+        * platform/network/soup/SocketStreamHandleImplSoup.cpp:
+        (WebCore::SocketStreamHandleImpl::readBytes):
+        (WebCore::SocketStreamHandleImpl::platformSend):
+        * rendering/BreakLines.h:
+        (WebCore::nextBreakablePositionNonLoosely):
+        (WebCore::nextBreakablePositionLoosely):
+        (WebCore::isBreakable):
+        * rendering/HitTestingTransformState.cpp:
+        (WebCore::HitTestingTransformState::flattenWithTransform):
+        * rendering/ImageQualityController.cpp:
+        (WebCore::ImageQualityController::interpolationQualityFromStyle):
+        (WebCore::ImageQualityController::chooseInterpolationQuality):
+        * rendering/ImageQualityController.h:
+        * rendering/InlineIterator.h:
+        (WebCore::InlineIterator::moveTo):
+        (WebCore::InlineIterator::nextBreakablePosition):
+        (WebCore::InlineIterator::setNextBreakablePosition):
+        * rendering/InlineTextBox.cpp:
+        (WebCore::InlineTextBox::paintSelection):
+        (WebCore::InlineTextBox::substringToRender):
+        (WebCore::InlineTextBox::hyphenatedStringForTextRun):
+        (WebCore::InlineTextBox::constructTextRun):
+        * rendering/InlineTextBox.h:
+        (WebCore::InlineTextBox::substringToRender):
+        (WebCore::InlineTextBox::hyphenatedStringForTextRun):
+        (WebCore::InlineTextBox::constructTextRun):
+        * rendering/OrderIterator.cpp:
+        (WebCore::OrderIterator::reset):
+        * rendering/OrderIterator.h:
+        * rendering/PaintInfo.h:
+        (WebCore::PaintInfo::applyTransform):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlockRareData::RenderBlockRareData):
+        (WebCore::RenderBlock::baselinePosition):
+        (WebCore::RenderBlock::firstLineBaseline):
+        (WebCore::RenderBlock::inlineBlockBaseline):
+        (WebCore::RenderBlock::setCachedFlowThreadContainingBlockNeedsUpdate):
+        * rendering/RenderBlock.h:
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::firstLineBaseline):
+        (WebCore::RenderBlockFlow::inlineBlockBaseline):
+        * rendering/RenderBlockFlow.h:
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::constrainLogicalHeightByMinMax):
+        (WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
+        (WebCore::RenderBox::overrideContainingBlockContentLogicalWidth):
+        (WebCore::RenderBox::overrideContainingBlockContentLogicalHeight):
+        (WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
+        (WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
+        (WebCore::RenderBox::adjustContentBoxLogicalHeightForBoxSizing):
+        (WebCore::RenderBox::computeLogicalHeight):
+        (WebCore::RenderBox::computeLogicalHeightUsing):
+        (WebCore::RenderBox::computeContentLogicalHeight):
+        (WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):
+        (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
+        (WebCore::RenderBox::computePercentageLogicalHeight):
+        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
+        (WebCore::RenderBox::availableLogicalHeight):
+        (WebCore::RenderBox::availableLogicalHeightUsing):
+        * rendering/RenderBox.h:
+        (WebCore::RenderBox::firstLineBaseline):
+        (WebCore::RenderBox::inlineBlockBaseline):
+        * rendering/RenderCombineText.cpp:
+        (WebCore::RenderCombineText::computeTextOrigin):
+        * rendering/RenderCombineText.h:
+        * rendering/RenderDeprecatedFlexibleBox.cpp:
+        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::baselinePosition):
+        (WebCore::RenderFlexibleBox::firstLineBaseline):
+        (WebCore::RenderFlexibleBox::inlineBlockBaseline):
+        (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
+        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
+        (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
+        (WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing):
+        (WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
+        (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
+        * rendering/RenderFlexibleBox.h:
+        * rendering/RenderFlowThread.cpp:
+        (WebCore::RenderFlowThread::addForcedRegionBreak):
+        * rendering/RenderGrid.cpp:
+        (WebCore::GridTrack::setGrowthLimit):
+        (WebCore::GridTrack::setGrowthLimitCap):
+        (WebCore::GridTrack::growthLimitCap):
+        (WebCore::RenderGrid::GridSizingData::freeSpace):
+        (WebCore::RenderGrid::GridSizingData::availableSpace):
+        (WebCore::RenderGrid::GridSizingData::setAvailableSpace):
+        (WebCore::RenderGrid::GridSizingData::setFreeSpace):
+        (WebCore::RenderGrid::layoutBlock):
+        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
+        (WebCore::RenderGrid::computeIntrinsicLogicalHeight):
+        (WebCore::RenderGrid::computeIntrinsicLogicalContentHeightUsing):
+        (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
+        (WebCore::overrideContainingBlockContentSizeForChild):
+        (WebCore::setOverrideContainingBlockContentSizeForChild):
+        (WebCore::RenderGrid::logicalHeightForChild):
+        (WebCore::RenderGrid::minSizeForChild):
+        (WebCore::RenderGrid::minContentForChild):
+        (WebCore::RenderGrid::maxContentForChild):
+        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
+        (WebCore::sortByGridTrackGrowthPotential):
+        (WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
+        (WebCore::RenderGrid::computeAutoRepeatTracksCount):
+        (WebCore::RenderGrid::applyStretchAlignmentToTracksIfNeeded):
+        (WebCore::RenderGrid::layoutGridItems):
+        * rendering/RenderGrid.h:
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::paintLayerByApplyingTransform):
+        (WebCore::RenderLayer::hitTestLayer):
+        * rendering/RenderLayerBacking.cpp:
+        * rendering/RenderListBox.cpp:
+        (WebCore::RenderListBox::paintItem):
+        (WebCore::RenderListBox::listIndexIsVisible):
+        (WebCore::RenderListBox::computeFirstIndexesVisibleInPaddingTopBottomAreas):
+        * rendering/RenderListBox.h:
+        * rendering/RenderMenuList.h:
+        * rendering/RenderMultiColumnSet.cpp:
+        (WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
+        (WebCore::RenderTable::baselinePosition):
+        (WebCore::RenderTable::inlineBlockBaseline):
+        (WebCore::RenderTable::firstLineBaseline):
+        * rendering/RenderTable.h:
+        * rendering/RenderTableCell.cpp:
+        (WebCore::RenderTableCell::cellBaselinePosition):
+        * rendering/RenderTableSection.cpp:
+        (WebCore::RenderTableSection::firstLineBaseline):
+        * rendering/RenderTableSection.h:
+        * rendering/RenderText.cpp:
+        (WebCore::RenderText::computePreferredLogicalWidths):
+        (WebCore::RenderText::stringView):
+        * rendering/RenderText.h:
+        * rendering/RenderTextControl.h:
+        * rendering/RenderView.cpp:
+        (WebCore::RenderView::setSelection):
+        (WebCore::RenderView::splitSelectionBetweenSubtrees):
+        (WebCore::RenderView::getSelection):
+        (WebCore::RenderView::clearSelection):
+        * rendering/RenderView.h:
+        * rendering/SelectionSubtreeRoot.h:
+        (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::SelectionSubtreeData):
+        (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionStartPos):
+        (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionEndPos):
+        (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionStartPos):
+        (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionEndPos):
+        (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::clearSelection):
+        * rendering/SimpleLineLayout.cpp:
+        (WebCore::SimpleLineLayout::LineState::lastFragment):
+        (WebCore::SimpleLineLayout::closeLineEndingAndAdjustRuns):
+        (WebCore::SimpleLineLayout::createTextRuns):
+        * rendering/SimpleLineLayoutFunctions.cpp:
+        (WebCore::SimpleLineLayout::paintFlow):
+        * rendering/line/BreakingContext.h:
+        (WebCore::WordTrailingSpace::width):
+        (WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
+        (WebCore::BreakingContext::InlineIteratorHistory::nextBreakablePosition):
+        (WebCore::BreakingContext::InlineIteratorHistory::moveTo):
+        (WebCore::tryHyphenating):
+        (WebCore::BreakingContext::computeAdditionalBetweenWordsWidth):
+        (WebCore::BreakingContext::handleText):
+        (WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord):
+        * rendering/mathml/MathMLStyle.cpp:
+        (WebCore::MathMLStyle::resolveMathMLStyle):
+        * rendering/mathml/RenderMathMLBlock.cpp:
+        (WebCore::RenderMathMLBlock::baselinePosition):
+        (WebCore::RenderMathMLTable::firstLineBaseline):
+        * rendering/mathml/RenderMathMLBlock.h:
+        (WebCore::RenderMathMLBlock::ascentForChild):
+        * rendering/mathml/RenderMathMLFraction.cpp:
+        (WebCore::RenderMathMLFraction::firstLineBaseline):
+        * rendering/mathml/RenderMathMLFraction.h:
+        * rendering/mathml/RenderMathMLOperator.cpp:
+        (WebCore::RenderMathMLOperator::firstLineBaseline):
+        * rendering/mathml/RenderMathMLOperator.h:
+        * rendering/mathml/RenderMathMLPadded.cpp:
+        (WebCore::RenderMathMLPadded::firstLineBaseline):
+        * rendering/mathml/RenderMathMLPadded.h:
+        * rendering/mathml/RenderMathMLRow.cpp:
+        (WebCore::RenderMathMLRow::firstLineBaseline):
+        * rendering/mathml/RenderMathMLRow.h:
+        * rendering/mathml/RenderMathMLScripts.cpp:
+        (WebCore::RenderMathMLScripts::validateAndGetReferenceChildren):
+        (WebCore::RenderMathMLScripts::firstLineBaseline):
+        * rendering/mathml/RenderMathMLScripts.h:
+        * rendering/mathml/RenderMathMLSpace.cpp:
+        (WebCore::RenderMathMLSpace::firstLineBaseline):
+        * rendering/mathml/RenderMathMLSpace.h:
+        * rendering/mathml/RenderMathMLToken.cpp:
+        (WebCore::RenderMathMLToken::updateMathVariantGlyph):
+        (WebCore::RenderMathMLToken::firstLineBaseline):
+        * rendering/mathml/RenderMathMLToken.h:
+        * rendering/svg/RenderSVGContainer.cpp:
+        (WebCore::RenderSVGContainer::nodeAtFloatPoint):
+        * rendering/svg/RenderSVGForeignObject.cpp:
+        (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
+        * rendering/svg/RenderSVGImage.cpp:
+        (WebCore::RenderSVGImage::nodeAtFloatPoint):
+        * rendering/svg/RenderSVGResourceClipper.cpp:
+        (WebCore::RenderSVGResourceClipper::hitTestClipContent):
+        * rendering/svg/RenderSVGResourceFilter.cpp:
+        (WebCore::RenderSVGResourceFilter::postApplyResource):
+        * rendering/svg/RenderSVGRoot.cpp:
+        (WebCore::RenderSVGRoot::nodeAtPoint):
+        * rendering/svg/RenderSVGShape.cpp:
+        (WebCore::RenderSVGShape::setupNonScalingStrokeContext):
+        (WebCore::RenderSVGShape::nodeAtFloatPoint):
+        (WebCore::RenderSVGShape::calculateStrokeBoundingBox):
+        * rendering/svg/RenderSVGText.cpp:
+        (WebCore::RenderSVGText::nodeAtFloatPoint):
+        * rendering/svg/SVGRenderSupport.cpp:
+        (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows):
+        * rendering/svg/SVGRenderingContext.cpp:
+        (WebCore::SVGRenderingContext::clipToImageBuffer):
+        * rendering/svg/SVGTextQuery.cpp:
+        (WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
+        * style/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::Parent::Parent):
+        * style/RenderTreeUpdater.h:
+        * style/StyleScope.h:
+        * svg/SVGElement.cpp:
+        (WebCore::SVGElement::parseAttribute):
+        (WebCore::SVGElement::resolveCustomStyle):
+        * svg/SVGElement.h:
+        * svg/SVGToOTFFontConversion.cpp:
+        (WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
+        (WebCore::SVGToOTFFontConverter::processGlyphElement):
+        (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):
+        (WebCore::convertSVGToOTFFont):
+        * svg/SVGToOTFFontConversion.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::setEventThrottlingBehaviorOverride):
+        (WebCore::Internals::eventThrottlingBehaviorOverride):
+        * testing/Internals.h:
+        * workers/Worker.h:
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::prepareToSend):
+        (WebCore::XMLHttpRequest::didFinishLoading):
+        * xml/XMLHttpRequest.h:
+
</ins><span class="cx"> 2016-11-26  Csaba Osztrogonác  &lt;ossy@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix build warnings in WebCore/Modules/indexeddb/server/IDBSerialization.cp
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepayApplePaySessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -76,7 +76,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // The amount follows the regular expression -?[0-9]+(\.[0-9][0-9])?.
</span><del>-static Optional&lt;int64_t&gt; parseAmount(const String&amp; amountString)
</del><ins>+static std::optional&lt;int64_t&gt; parseAmount(const String&amp; amountString)
</ins><span class="cx"> {
</span><span class="cx">     int64_t amount = 0;
</span><span class="cx"> 
</span><span class="lines">@@ -105,13 +105,13 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             if (!parseDigit(c, isNegative, amount))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             state = State::Digit;
</span><span class="cx">             break;
</span><span class="cx"> 
</span><span class="cx">         case State::Sign:
</span><span class="cx">             if (!parseDigit(c, isNegative, amount))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             state = State::Digit;
</span><span class="cx">             break;
</span><span class="cx"> 
</span><span class="lines">@@ -122,12 +122,12 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             if (!parseDigit(c, isNegative, amount))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             break;
</span><span class="cx"> 
</span><span class="cx">         case State::Dot:
</span><span class="cx">             if (!parseDigit(c, isNegative, amount))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">             state = State::DotDigit;
</span><span class="cx">             break;
</span><span class="lines">@@ -134,18 +134,18 @@
</span><span class="cx"> 
</span><span class="cx">         case State::DotDigit:
</span><span class="cx">             if (!parseDigit(c, isNegative, amount))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">             state = State::End;
</span><span class="cx">             break;
</span><span class="cx">             
</span><span class="cx">         case State::End:
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (state != State::Digit &amp;&amp; state != State::DotDigit &amp;&amp; state != State::End)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (state == State::DotDigit) {
</span><span class="cx">         // There was a single digit after the decimal point.
</span><span class="lines">@@ -163,18 +163,18 @@
</span><span class="cx">     return amount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;PaymentRequest::ContactFields&gt; createContactFields(DOMWindow&amp; window, const ArrayValue&amp; contactFieldsArray)
</del><ins>+static std::optional&lt;PaymentRequest::ContactFields&gt; createContactFields(DOMWindow&amp; window, const ArrayValue&amp; contactFieldsArray)
</ins><span class="cx"> {
</span><span class="cx">     PaymentRequest::ContactFields result;
</span><span class="cx"> 
</span><span class="cx">     size_t contactFieldsCount;
</span><span class="cx">     if (!contactFieldsArray.length(contactFieldsCount))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     for (size_t i = 0; i &lt; contactFieldsCount; ++i) {
</span><span class="cx">         String contactField;
</span><span class="cx">         if (!contactFieldsArray.get(i, contactField))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         if (contactField == &quot;postalAddress&quot;)
</span><span class="cx">             result.postalAddress = true;
</span><span class="lines">@@ -187,7 +187,7 @@
</span><span class="cx">         else {
</span><span class="cx">             auto message = makeString(&quot;\&quot;&quot; + contactField, &quot;\&quot; is not a valid contact field.&quot;);
</span><span class="cx">             window.printErrorMessage(message);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -194,7 +194,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;PaymentRequest::LineItem::Type&gt; toLineItemType(const String&amp; type)
</del><ins>+static std::optional&lt;PaymentRequest::LineItem::Type&gt; toLineItemType(const String&amp; type)
</ins><span class="cx"> {
</span><span class="cx">     if (type == &quot;pending&quot;)
</span><span class="cx">         return PaymentRequest::LineItem::Type::Pending;
</span><span class="lines">@@ -201,7 +201,7 @@
</span><span class="cx">     if (type == &quot;final&quot;)
</span><span class="cx">         return PaymentRequest::LineItem::Type::Final;
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isValidLineItemPropertyName(const String&amp; propertyName)
</span><span class="lines">@@ -220,7 +220,7 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;PaymentRequest::LineItem&gt; createLineItem(DOMWindow&amp; window, const Dictionary&amp; total)
</del><ins>+static std::optional&lt;PaymentRequest::LineItem&gt; createLineItem(DOMWindow&amp; window, const Dictionary&amp; total)
</ins><span class="cx"> {
</span><span class="cx">     Vector&lt;String&gt; propertyNames;
</span><span class="cx">     total.getOwnPropertyNames(propertyNames);
</span><span class="lines">@@ -229,7 +229,7 @@
</span><span class="cx">         if (!isValidLineItemPropertyName(propertyName)) {
</span><span class="cx">             auto message = makeString(&quot;\&quot;&quot; + propertyName, &quot;\&quot; is not a valid line item property name.&quot;);
</span><span class="cx">             window.printErrorMessage(message);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -241,7 +241,7 @@
</span><span class="cx">         if (!type) {
</span><span class="cx">             auto message = makeString(&quot;\&quot;&quot; + *typeString, &quot;\&quot; is not a valid line item type.&quot;);
</span><span class="cx">             window.printErrorMessage(message);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         result.type = *type;
</span><span class="lines">@@ -255,7 +255,7 @@
</span><span class="cx">         else {
</span><span class="cx">             auto message = makeString(&quot;\&quot;&quot; + *amountString, &quot;\&quot; is not a valid amount.&quot;);
</span><span class="cx">             window.printErrorMessage(message);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -262,18 +262,18 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Vector&lt;PaymentRequest::LineItem&gt;&gt; createLineItems(DOMWindow&amp; window, const ArrayValue&amp; lineItemsArray)
</del><ins>+static std::optional&lt;Vector&lt;PaymentRequest::LineItem&gt;&gt; createLineItems(DOMWindow&amp; window, const ArrayValue&amp; lineItemsArray)
</ins><span class="cx"> {
</span><span class="cx">     Vector&lt;PaymentRequest::LineItem&gt; result;
</span><span class="cx"> 
</span><span class="cx">     size_t lineItemCount;
</span><span class="cx">     if (!lineItemsArray.length(lineItemCount))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     for (size_t i = 0; i &lt; lineItemCount; ++i) {
</span><span class="cx">         Dictionary lineItemDictionary;
</span><span class="cx">         if (!lineItemsArray.get(i, lineItemDictionary))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         if (auto lineItem = createLineItem(window, lineItemDictionary))
</span><span class="cx">             result.append(*lineItem);
</span><span class="lines">@@ -282,18 +282,18 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;PaymentRequest::MerchantCapabilities&gt; createMerchantCapabilities(DOMWindow&amp; window, const ArrayValue&amp; merchantCapabilitiesArray)
</del><ins>+static std::optional&lt;PaymentRequest::MerchantCapabilities&gt; createMerchantCapabilities(DOMWindow&amp; window, const ArrayValue&amp; merchantCapabilitiesArray)
</ins><span class="cx"> {
</span><span class="cx">     PaymentRequest::MerchantCapabilities result;
</span><span class="cx"> 
</span><span class="cx">     size_t merchantCapabilitiesCount;
</span><span class="cx">     if (!merchantCapabilitiesArray.length(merchantCapabilitiesCount))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     for (size_t i = 0; i &lt; merchantCapabilitiesCount; ++i) {
</span><span class="cx">         String merchantCapability;
</span><span class="cx">         if (!merchantCapabilitiesArray.get(i, merchantCapability))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         if (merchantCapability == &quot;supports3DS&quot;)
</span><span class="cx">             result.supports3DS = true;
</span><span class="lines">@@ -306,7 +306,7 @@
</span><span class="cx">         else {
</span><span class="cx">             auto message = makeString(&quot;\&quot;&quot; + merchantCapability, &quot;\&quot; is not a valid merchant capability.&quot;);
</span><span class="cx">             window.printErrorMessage(message);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -313,23 +313,23 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Vector&lt;String&gt;&gt; createSupportedNetworks(unsigned version, DOMWindow&amp; window, const ArrayValue&amp; supportedNetworksArray)
</del><ins>+static std::optional&lt;Vector&lt;String&gt;&gt; createSupportedNetworks(unsigned version, DOMWindow&amp; window, const ArrayValue&amp; supportedNetworksArray)
</ins><span class="cx"> {
</span><span class="cx">     Vector&lt;String&gt; result;
</span><span class="cx"> 
</span><span class="cx">     size_t supportedNetworksCount;
</span><span class="cx">     if (!supportedNetworksArray.length(supportedNetworksCount))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     for (size_t i = 0; i &lt; supportedNetworksCount; ++i) {
</span><span class="cx">         String supportedNetwork;
</span><span class="cx">         if (!supportedNetworksArray.get(i, supportedNetwork))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         if (!PaymentRequest::isValidSupportedNetwork(version, supportedNetwork)) {
</span><span class="cx">             auto message = makeString(&quot;\&quot;&quot; + supportedNetwork, &quot;\&quot; is not a valid payment network.&quot;);
</span><span class="cx">             window.printErrorMessage(message);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         result.append(WTFMove(supportedNetwork));
</span><span class="lines">@@ -338,7 +338,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;PaymentRequest::ShippingType&gt; toShippingType(const String&amp; shippingTypeString)
</del><ins>+static std::optional&lt;PaymentRequest::ShippingType&gt; toShippingType(const String&amp; shippingTypeString)
</ins><span class="cx"> {
</span><span class="cx">     if (shippingTypeString == &quot;shipping&quot;)
</span><span class="cx">         return PaymentRequest::ShippingType::Shipping;
</span><span class="lines">@@ -349,7 +349,7 @@
</span><span class="cx">     if (shippingTypeString == &quot;servicePickup&quot;)
</span><span class="cx">         return PaymentRequest::ShippingType::ServicePickup;
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isValidShippingMethodPropertyName(const String&amp; propertyName)
</span><span class="lines">@@ -369,7 +369,7 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;PaymentRequest::ShippingMethod&gt; createShippingMethod(DOMWindow&amp; window, const Dictionary&amp; shippingMethodDictionary)
</del><ins>+static std::optional&lt;PaymentRequest::ShippingMethod&gt; createShippingMethod(DOMWindow&amp; window, const Dictionary&amp; shippingMethodDictionary)
</ins><span class="cx"> {
</span><span class="cx">     Vector&lt;String&gt; propertyNames;
</span><span class="cx">     shippingMethodDictionary.getOwnPropertyNames(propertyNames);
</span><span class="lines">@@ -378,7 +378,7 @@
</span><span class="cx">         if (!isValidShippingMethodPropertyName(propertyName)) {
</span><span class="cx">             auto message = makeString(&quot;\&quot;&quot; + propertyName, &quot;\&quot; is not a valid shipping method property name.&quot;);
</span><span class="cx">             window.printErrorMessage(message);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -387,7 +387,7 @@
</span><span class="cx">     auto label = shippingMethodDictionary.get&lt;String&gt;(&quot;label&quot;);
</span><span class="cx">     if (!label) {
</span><span class="cx">         window.printErrorMessage(&quot;Missing shipping method label.&quot;);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     result.label = *label;
</span><span class="cx"> 
</span><span class="lines">@@ -394,7 +394,7 @@
</span><span class="cx">     auto detail = shippingMethodDictionary.get&lt;String&gt;(&quot;detail&quot;);
</span><span class="cx">     if (!detail) {
</span><span class="cx">         window.printErrorMessage(&quot;Missing shipping method detail.&quot;);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     result.detail = *detail;
</span><span class="cx"> 
</span><span class="lines">@@ -401,7 +401,7 @@
</span><span class="cx">     auto amountString = shippingMethodDictionary.get&lt;String&gt;(&quot;amount&quot;);
</span><span class="cx">     if (!amountString) {
</span><span class="cx">         window.printErrorMessage(&quot;Missing shipping method amount.&quot;);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (auto amount = parseAmount(*amountString))
</span><span class="lines">@@ -409,13 +409,13 @@
</span><span class="cx">     else {
</span><span class="cx">         auto message = makeString(&quot;\&quot;&quot; + *amountString, &quot;\&quot; is not a valid amount.&quot;);
</span><span class="cx">         window.printErrorMessage(message);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     auto identifier = shippingMethodDictionary.get&lt;String&gt;(&quot;identifier&quot;);
</span><span class="cx">     if (!identifier) {
</span><span class="cx">         window.printErrorMessage(&quot;Missing shipping method identifier.&quot;);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     result.identifier = *identifier;
</span><span class="cx"> 
</span><span class="lines">@@ -422,23 +422,23 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Vector&lt;PaymentRequest::ShippingMethod&gt;&gt; createShippingMethods(DOMWindow&amp; window, const ArrayValue&amp; shippingMethodsArray)
</del><ins>+static std::optional&lt;Vector&lt;PaymentRequest::ShippingMethod&gt;&gt; createShippingMethods(DOMWindow&amp; window, const ArrayValue&amp; shippingMethodsArray)
</ins><span class="cx"> {
</span><span class="cx">     Vector&lt;PaymentRequest::ShippingMethod&gt; result;
</span><span class="cx"> 
</span><span class="cx">     size_t shippingMethodCount;
</span><span class="cx">     if (!shippingMethodsArray.length(shippingMethodCount))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     for (size_t i = 0; i &lt; shippingMethodCount; ++i) {
</span><span class="cx">         Dictionary shippingMethodDictionary;
</span><span class="cx">         if (!shippingMethodsArray.get(i, shippingMethodDictionary))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         if (auto shippingMethod = createShippingMethod(window, shippingMethodDictionary))
</span><span class="cx">             result.append(*shippingMethod);
</span><span class="cx">         else
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return result;
</span><span class="lines">@@ -470,7 +470,7 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;PaymentRequest&gt; createPaymentRequest(unsigned version, DOMWindow&amp; window, const Dictionary&amp; dictionary)
</del><ins>+static std::optional&lt;PaymentRequest&gt; createPaymentRequest(unsigned version, DOMWindow&amp; window, const Dictionary&amp; dictionary)
</ins><span class="cx"> {
</span><span class="cx">     PaymentRequest paymentRequest;
</span><span class="cx"> 
</span><span class="lines">@@ -480,18 +480,18 @@
</span><span class="cx">     for (auto&amp; propertyName : propertyNames) {
</span><span class="cx">         if (propertyName == &quot;requiredShippingAddressFields&quot;) {
</span><span class="cx">             window.printErrorMessage(&quot;\&quot;requiredShippingAddressFields\&quot; has been deprecated. Please switch to \&quot;requiredShippingContactFields\&quot; instead.&quot;);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (propertyName == &quot;requiredBillingAddressFields&quot;) {
</span><span class="cx">             window.printErrorMessage(&quot;\&quot;requiredBillingAddressFields\&quot; has been deprecated. Please switch to \&quot;requiredBillingContactFields\&quot; instead.&quot;);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (!isValidPaymentRequestPropertyName(propertyName)) {
</span><span class="cx">             auto message = makeString(&quot;\&quot;&quot; + propertyName, &quot;\&quot; is not a valid payment request property name.&quot;);
</span><span class="cx">             window.printErrorMessage(message);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -498,7 +498,7 @@
</span><span class="cx">     if (auto merchantCapabilitiesArray = dictionary.get&lt;ArrayValue&gt;(&quot;merchantCapabilities&quot;)) {
</span><span class="cx">         auto merchantCapabilities = createMerchantCapabilities(window, *merchantCapabilitiesArray);
</span><span class="cx">         if (!merchantCapabilities)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         paymentRequest.setMerchantCapabilities(*merchantCapabilities);
</span><span class="cx">     }
</span><span class="lines">@@ -506,7 +506,7 @@
</span><span class="cx">     if (auto supportedNetworksArray = dictionary.get&lt;ArrayValue&gt;(&quot;supportedNetworks&quot;)) {
</span><span class="cx">         auto supportedNetworks = createSupportedNetworks(version, window, *supportedNetworksArray);
</span><span class="cx">         if (!supportedNetworks)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         paymentRequest.setSupportedNetworks(*supportedNetworks);
</span><span class="cx">     }
</span><span class="lines">@@ -519,7 +519,7 @@
</span><span class="cx">     if (auto requiredBillingContactFieldsArray = dictionary.get&lt;ArrayValue&gt;(&quot;requiredBillingContactFields&quot;)) {
</span><span class="cx">         auto requiredBillingContactFields = createContactFields(window, *requiredBillingContactFieldsArray);
</span><span class="cx">         if (!requiredBillingContactFields)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         paymentRequest.setRequiredBillingContactFields(*requiredBillingContactFields);
</span><span class="cx">     }
</span><span class="lines">@@ -529,7 +529,7 @@
</span><span class="cx">         auto billingContact = PaymentContact::fromJS(*JSMainThreadExecState::currentState(), *billingContactValue, errorMessage);
</span><span class="cx">         if (!billingContact) {
</span><span class="cx">             window.printErrorMessage(errorMessage);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         paymentRequest.setBillingContact(*billingContact);
</span><span class="lines">@@ -538,7 +538,7 @@
</span><span class="cx">     if (auto requiredShippingContactFieldsArray = dictionary.get&lt;ArrayValue&gt;(&quot;requiredShippingContactFields&quot;)) {
</span><span class="cx">         auto requiredShippingContactFields = createContactFields(window, *requiredShippingContactFieldsArray);
</span><span class="cx">         if (!requiredShippingContactFields)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         paymentRequest.setRequiredShippingContactFields(*requiredShippingContactFields);
</span><span class="cx">     }
</span><span class="lines">@@ -548,7 +548,7 @@
</span><span class="cx">         auto shippingContact = PaymentContact::fromJS(*JSMainThreadExecState::currentState(), *shippingContactValue, errorMessage);
</span><span class="cx">         if (!shippingContact) {
</span><span class="cx">             window.printErrorMessage(errorMessage);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         paymentRequest.setShippingContact(*shippingContact);
</span><span class="lines">@@ -560,7 +560,7 @@
</span><span class="cx">         if (!shippingType) {
</span><span class="cx">             auto message = makeString(&quot;\&quot;&quot; + *shippingTypeString, &quot;\&quot; is not a valid shipping type.&quot;);
</span><span class="cx">             window.printErrorMessage(message);
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">         paymentRequest.setShippingType(*shippingType);
</span><span class="cx">     }
</span><span class="lines">@@ -568,7 +568,7 @@
</span><span class="cx">     if (auto shippingMethodsArray = dictionary.get&lt;ArrayValue&gt;(&quot;shippingMethods&quot;)) {
</span><span class="cx">         auto shippingMethods = createShippingMethods(window, *shippingMethodsArray);
</span><span class="cx">         if (!shippingMethods)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         paymentRequest.setShippingMethods(*shippingMethods);
</span><span class="cx">     }
</span><span class="lines">@@ -576,7 +576,7 @@
</span><span class="cx">     if (auto totalDictionary = dictionary.get&lt;Dictionary&gt;(&quot;total&quot;)) {
</span><span class="cx">         auto total = createLineItem(window, *totalDictionary);
</span><span class="cx">         if (!total)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         paymentRequest.setTotal(*total);
</span><span class="cx">     }
</span><span class="lines">@@ -842,7 +842,7 @@
</span><span class="cx">     return { };
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;PaymentAuthorizationStatus&gt; toPaymentAuthorizationStatus(unsigned short status)
</del><ins>+static std::optional&lt;PaymentAuthorizationStatus&gt; toPaymentAuthorizationStatus(unsigned short status)
</ins><span class="cx"> {
</span><span class="cx">     switch (status) {
</span><span class="cx">     case ApplePaySession::STATUS_SUCCESS:
</span><span class="lines">@@ -870,7 +870,7 @@
</span><span class="cx">         return PaymentAuthorizationStatus::PINLockout;
</span><span class="cx"> 
</span><span class="cx">     default:
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepayPaymentContacth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/PaymentContact.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/PaymentContact.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/applepay/PaymentContact.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;PaymentContact&gt; fromJS(JSC::ExecState&amp;, JSC::JSValue, String&amp; errorMessage);
</del><ins>+    static std::optional&lt;PaymentContact&gt; fromJS(JSC::ExecState&amp;, JSC::JSValue, String&amp; errorMessage);
</ins><span class="cx">     JSC::JSValue toJS(JSC::ExecState&amp;) const;
</span><span class="cx"> 
</span><span class="cx">     PKContact *pkContact() const { return m_pkContact.get(); }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepayPaymentCoordinatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     m_client.completeMerchantValidation(paymentMerchantSession);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PaymentCoordinator::completeShippingMethodSelection(PaymentAuthorizationStatus status, Optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</del><ins>+void PaymentCoordinator::completeShippingMethodSelection(PaymentAuthorizationStatus status, std::optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_activeSession);
</span><span class="cx"> 
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx">     m_client.completeShippingMethodSelection(status, WTFMove(newTotalAndItems));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PaymentCoordinator::completeShippingContactSelection(PaymentAuthorizationStatus status, const Vector&lt;PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, Optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</del><ins>+void PaymentCoordinator::completeShippingContactSelection(PaymentAuthorizationStatus status, const Vector&lt;PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, std::optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_activeSession);
</span><span class="cx"> 
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">     m_client.completeShippingContactSelection(status, newShippingMethods, WTFMove(newTotalAndItems));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PaymentCoordinator::completePaymentMethodSelection(Optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</del><ins>+void PaymentCoordinator::completePaymentMethodSelection(std::optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_activeSession);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepayPaymentCoordinatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -55,9 +55,9 @@
</span><span class="cx"> 
</span><span class="cx">     bool beginPaymentSession(ApplePaySession&amp;, const URL&amp; originatingURL, const Vector&lt;URL&gt;&amp; linkIconURLs, const PaymentRequest&amp;);
</span><span class="cx">     void completeMerchantValidation(const PaymentMerchantSession&amp;);
</span><del>-    void completeShippingMethodSelection(PaymentAuthorizationStatus, Optional&lt;PaymentRequest::TotalAndLineItems&gt; newItems);
-    void completeShippingContactSelection(PaymentAuthorizationStatus, const Vector&lt;PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, Optional&lt;PaymentRequest::TotalAndLineItems&gt; newItems);
-    void completePaymentMethodSelection(Optional&lt;PaymentRequest::TotalAndLineItems&gt; newItems);
</del><ins>+    void completeShippingMethodSelection(PaymentAuthorizationStatus, std::optional&lt;PaymentRequest::TotalAndLineItems&gt; newItems);
+    void completeShippingContactSelection(PaymentAuthorizationStatus, const Vector&lt;PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, std::optional&lt;PaymentRequest::TotalAndLineItems&gt; newItems);
+    void completePaymentMethodSelection(std::optional&lt;PaymentRequest::TotalAndLineItems&gt; newItems);
</ins><span class="cx">     void completePaymentSession(PaymentAuthorizationStatus);
</span><span class="cx">     void abortPaymentSession();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepayPaymentCoordinatorClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/PaymentCoordinatorClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/PaymentCoordinatorClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/applepay/PaymentCoordinatorClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -46,9 +46,9 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool showPaymentUI(const URL&amp; originatingURL, const Vector&lt;URL&gt;&amp; linkIconURLs, const PaymentRequest&amp;) = 0;
</span><span class="cx">     virtual void completeMerchantValidation(const PaymentMerchantSession&amp;) = 0;
</span><del>-    virtual void completeShippingMethodSelection(PaymentAuthorizationStatus, Optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) = 0;
-    virtual void completeShippingContactSelection(PaymentAuthorizationStatus, const Vector&lt;PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, Optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) = 0;
-    virtual void completePaymentMethodSelection(Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) = 0;
</del><ins>+    virtual void completeShippingMethodSelection(PaymentAuthorizationStatus, std::optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) = 0;
+    virtual void completeShippingContactSelection(PaymentAuthorizationStatus, const Vector&lt;PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, std::optional&lt;PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) = 0;
+    virtual void completePaymentMethodSelection(std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) = 0;
</ins><span class="cx">     virtual void completePaymentSession(PaymentAuthorizationStatus) = 0;
</span><span class="cx">     virtual void abortPaymentSession() = 0;
</span><span class="cx">     virtual void paymentCoordinatorDestroyed() = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepayPaymentMerchantSessionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/PaymentMerchantSession.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/PaymentMerchantSession.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/applepay/PaymentMerchantSession.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Optional&lt;PaymentMerchantSession&gt; fromJS(JSC::ExecState&amp;, JSC::JSValue, String&amp; errorMessage);
</del><ins>+    static std::optional&lt;PaymentMerchantSession&gt; fromJS(JSC::ExecState&amp;, JSC::JSValue, String&amp; errorMessage);
</ins><span class="cx"> 
</span><span class="cx">     PKPaymentMerchantSession *pkPaymentMerchantSession() const { return m_pkPaymentMerchantSession.get(); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepayPaymentRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/PaymentRequest.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/PaymentRequest.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/applepay/PaymentRequest.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">         // Stored as a fixed point decimal number with two decimals:
</span><span class="cx">         // 1.23 -&gt; 123.
</span><span class="cx">         // 0.01 -&gt; 1.
</span><del>-        Optional&lt;int64_t&gt; amount;
</del><ins>+        std::optional&lt;int64_t&gt; amount;
</ins><span class="cx">         String label;
</span><span class="cx">     };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepaycocoaPaymentContactCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/cocoa/PaymentContactCocoa.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/cocoa/PaymentContactCocoa.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/applepay/cocoa/PaymentContactCocoa.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -104,20 +104,20 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;PaymentContact&gt; PaymentContact::fromJS(JSC::ExecState&amp; state, JSC::JSValue value, String&amp; errorMessage)
</del><ins>+std::optional&lt;PaymentContact&gt; PaymentContact::fromJS(JSC::ExecState&amp; state, JSC::JSValue value, String&amp; errorMessage)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: Don't round-trip using NSString.
</span><span class="cx">     auto jsonString = JSONStringify(&amp;state, value, 0);
</span><span class="cx">     if (!jsonString)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto dictionary = dynamic_objc_cast&lt;NSDictionary&gt;([NSJSONSerialization JSONObjectWithData:[(NSString *)jsonString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]);
</span><span class="cx">     if (!dictionary || ![dictionary isKindOfClass:[NSDictionary class]])
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto pkContact = fromDictionary(dictionary, errorMessage);
</span><span class="cx">     if (!pkContact)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return PaymentContact(pkContact.get());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepaycocoaPaymentMerchantSessionCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -42,16 +42,16 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-Optional&lt;PaymentMerchantSession&gt; PaymentMerchantSession::fromJS(JSC::ExecState&amp; state, JSC::JSValue value, String&amp;)
</del><ins>+std::optional&lt;PaymentMerchantSession&gt; PaymentMerchantSession::fromJS(JSC::ExecState&amp; state, JSC::JSValue value, String&amp;)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: Don't round-trip using NSString.
</span><span class="cx">     auto jsonString = JSONStringify(&amp;state, value, 0);
</span><span class="cx">     if (!jsonString)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto dictionary = dynamic_objc_cast&lt;NSDictionary&gt;([NSJSONSerialization JSONObjectWithData:[(NSString *)jsonString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]);
</span><span class="cx">     if (!dictionary || ![dictionary isKindOfClass:[NSDictionary class]])
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto pkPaymentMerchantSession = adoptNS([allocPKPaymentMerchantSessionInstance() initWithDictionary:dictionary]);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmediaMediaKeyStatusMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyStatusMap.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyStatusMap.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyStatusMap.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -61,9 +61,9 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;WTF::KeyValuePair&lt;BufferSource::VariantType, MediaKeyStatus&gt;&gt; MediaKeyStatusMap::Iterator::next()
</del><ins>+std::optional&lt;WTF::KeyValuePair&lt;BufferSource::VariantType, MediaKeyStatus&gt;&gt; MediaKeyStatusMap::Iterator::next()
</ins><span class="cx"> {
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmediaMediaKeyStatusMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyStatusMap.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyStatusMap.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyStatusMap.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     class Iterator {
</span><span class="cx">     public:
</span><span class="cx">         explicit Iterator(MediaKeyStatusMap&amp;);
</span><del>-        Optional&lt;WTF::KeyValuePair&lt;BufferSource::VariantType, MediaKeyStatus&gt;&gt; next();
</del><ins>+        std::optional&lt;WTF::KeyValuePair&lt;BufferSource::VariantType, MediaKeyStatus&gt;&gt; next();
</ins><span class="cx">     };
</span><span class="cx">     Iterator createIterator() { return Iterator(*this); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchBodycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchBody.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchBody.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchBody.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-Optional&lt;FetchBody&gt; FetchBody::extract(ScriptExecutionContext&amp; context, JSC::ExecState&amp; state, JSC::JSValue value, String&amp; contentType)
</del><ins>+std::optional&lt;FetchBody&gt; FetchBody::extract(ScriptExecutionContext&amp; context, JSC::ExecState&amp; state, JSC::JSValue value, String&amp; contentType)
</ins><span class="cx"> {
</span><span class="cx">     if (value.inherits(JSBlob::info())) {
</span><span class="cx">         auto&amp; blob = *JSBlob::toWrapped(value);
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx">     if (value.inherits(JSC::JSArrayBufferView::info()))
</span><span class="cx">         return FetchBody(toUnsharedArrayBufferView(value).releaseConstNonNull());
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FetchBody::arrayBuffer(FetchBodyOwner&amp; owner, Ref&lt;DeferredPromise&gt;&amp;&amp; promise)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchBodyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchBody.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchBody.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchBody.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     bool isURLSearchParams() const { return WTF::holds_alternative&lt;Ref&lt;const URLSearchParams&gt;&gt;(m_data); }
</span><span class="cx">     bool isText() const { return WTF::holds_alternative&lt;String&gt;(m_data); }
</span><span class="cx"> 
</span><del>-    static Optional&lt;FetchBody&gt; extract(ScriptExecutionContext&amp;, JSC::ExecState&amp;, JSC::JSValue, String&amp;);
</del><ins>+    static std::optional&lt;FetchBody&gt; extract(ScriptExecutionContext&amp;, JSC::ExecState&amp;, JSC::JSValue, String&amp;);
</ins><span class="cx">     static FetchBody loadingBody() { return { }; }
</span><span class="cx"> 
</span><span class="cx">     void loadingFailed();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchBodyOwnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-FetchBodyOwner::FetchBodyOwner(ScriptExecutionContext&amp; context, Optional&lt;FetchBody&gt;&amp;&amp; body, Ref&lt;FetchHeaders&gt;&amp;&amp; headers)
</del><ins>+FetchBodyOwner::FetchBodyOwner(ScriptExecutionContext&amp; context, std::optional&lt;FetchBody&gt;&amp;&amp; body, Ref&lt;FetchHeaders&gt;&amp;&amp; headers)
</ins><span class="cx">     : ActiveDOMObject(&amp;context)
</span><span class="cx">     , m_body(WTFMove(body))
</span><span class="cx">     , m_headers(WTFMove(headers))
</span><span class="lines">@@ -190,13 +190,13 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_blobLoader = { *this };
</del><ins>+    m_blobLoader.emplace(*this);
</ins><span class="cx">     m_blobLoader-&gt;loader = std::make_unique&lt;FetchLoader&gt;(*m_blobLoader, consumer);
</span><span class="cx"> 
</span><span class="cx">     m_blobLoader-&gt;loader-&gt;start(*scriptExecutionContext(), blob);
</span><span class="cx">     if (!m_blobLoader-&gt;loader-&gt;isStarted()) {
</span><span class="cx">         m_body-&gt;loadingFailed();
</span><del>-        m_blobLoader = Nullopt;
</del><ins>+        m_blobLoader = std::nullopt;
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     setPendingActivity(this);
</span><span class="lines">@@ -206,7 +206,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_blobLoader);
</span><span class="cx"> 
</span><del>-    m_blobLoader = Nullopt;
</del><ins>+    m_blobLoader = std::nullopt;
</ins><span class="cx">     unsetPendingActivity(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchBodyOwnerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchBodyOwner.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> class FetchBodyOwner : public RefCounted&lt;FetchBodyOwner&gt;, public ActiveDOMObject {
</span><span class="cx"> public:
</span><del>-    FetchBodyOwner(ScriptExecutionContext&amp;, Optional&lt;FetchBody&gt;&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;);
</del><ins>+    FetchBodyOwner(ScriptExecutionContext&amp;, std::optional&lt;FetchBody&gt;&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // Exposed Body API
</span><span class="cx">     bool isDisturbed() const { return m_isDisturbed; };
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    Optional&lt;FetchBody&gt; m_body;
</del><ins>+    std::optional&lt;FetchBody&gt; m_body;
</ins><span class="cx">     String m_contentType;
</span><span class="cx">     bool m_isDisturbed { false };
</span><span class="cx"> #if ENABLE(READABLE_STREAM_API)
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx">     Ref&lt;FetchHeaders&gt; m_headers;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Optional&lt;BlobLoader&gt; m_blobLoader;
</del><ins>+    std::optional&lt;BlobLoader&gt; m_blobLoader;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchHeaderscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchHeaders.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchHeaders.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchHeaders.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;WTF::KeyValuePair&lt;String, String&gt;&gt; FetchHeaders::Iterator::next()
</del><ins>+std::optional&lt;WTF::KeyValuePair&lt;String, String&gt;&gt; FetchHeaders::Iterator::next()
</ins><span class="cx"> {
</span><span class="cx">     while (m_currentIndex &lt; m_keys.size()) {
</span><span class="cx">         auto key = m_keys[m_currentIndex++];
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx">         if (!value.isNull())
</span><span class="cx">             return WTF::KeyValuePair&lt;String, String&gt; { WTFMove(key), WTFMove(value) };
</span><span class="cx">     }
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> FetchHeaders::Iterator::Iterator(FetchHeaders&amp; headers)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchHeadersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchHeaders.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchHeaders.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchHeaders.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     class Iterator {
</span><span class="cx">     public:
</span><span class="cx">         explicit Iterator(FetchHeaders&amp;);
</span><del>-        Optional&lt;WTF::KeyValuePair&lt;String, String&gt;&gt; next();
</del><ins>+        std::optional&lt;WTF::KeyValuePair&lt;String, String&gt;&gt; next();
</ins><span class="cx"> 
</span><span class="cx">     private:
</span><span class="cx">         Ref&lt;FetchHeaders&gt; m_headers;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-static Optional&lt;Exception&gt; setReferrerPolicy(FetchOptions&amp; options, const String&amp; referrerPolicy)
</del><ins>+static std::optional&lt;Exception&gt; setReferrerPolicy(FetchOptions&amp; options, const String&amp; referrerPolicy)
</ins><span class="cx"> {
</span><span class="cx">     if (referrerPolicy.isEmpty())
</span><span class="cx">         options.referrerPolicy = FetchOptions::ReferrerPolicy::EmptyString;
</span><span class="lines">@@ -55,10 +55,10 @@
</span><span class="cx">         options.referrerPolicy = FetchOptions::ReferrerPolicy::UnsafeUrl;
</span><span class="cx">     else
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;Bad referrer policy value.&quot;) };
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Exception&gt; setMode(FetchOptions&amp; options, const String&amp; mode)
</del><ins>+static std::optional&lt;Exception&gt; setMode(FetchOptions&amp; options, const String&amp; mode)
</ins><span class="cx"> {
</span><span class="cx">     if (mode == &quot;navigate&quot;)
</span><span class="cx">         options.mode = FetchOptions::Mode::Navigate;
</span><span class="lines">@@ -70,10 +70,10 @@
</span><span class="cx">         options.mode = FetchOptions::Mode::Cors;
</span><span class="cx">     else
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;Bad fetch mode value.&quot;) };
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Exception&gt; setCredentials(FetchOptions&amp; options, const String&amp; credentials)
</del><ins>+static std::optional&lt;Exception&gt; setCredentials(FetchOptions&amp; options, const String&amp; credentials)
</ins><span class="cx"> {
</span><span class="cx">     if (credentials == &quot;omit&quot;)
</span><span class="cx">         options.credentials = FetchOptions::Credentials::Omit;
</span><span class="lines">@@ -83,10 +83,10 @@
</span><span class="cx">         options.credentials = FetchOptions::Credentials::Include;
</span><span class="cx">     else
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;Bad credentials mode value.&quot;) };
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Exception&gt; setCache(FetchOptions&amp; options, const String&amp; cache)
</del><ins>+static std::optional&lt;Exception&gt; setCache(FetchOptions&amp; options, const String&amp; cache)
</ins><span class="cx"> {
</span><span class="cx">     if (cache == &quot;default&quot;)
</span><span class="cx">         options.cache = FetchOptions::Cache::Default;
</span><span class="lines">@@ -102,10 +102,10 @@
</span><span class="cx">         options.cache = FetchOptions::Cache::OnlyIfCached;
</span><span class="cx">     else
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;Bad cache mode value.&quot;) };
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Exception&gt; setRedirect(FetchOptions&amp; options, const String&amp; redirect)
</del><ins>+static std::optional&lt;Exception&gt; setRedirect(FetchOptions&amp; options, const String&amp; redirect)
</ins><span class="cx"> {
</span><span class="cx">     if (redirect == &quot;follow&quot;)
</span><span class="cx">         options.redirect = FetchOptions::Redirect::Follow;
</span><span class="lines">@@ -115,10 +115,10 @@
</span><span class="cx">         options.redirect = FetchOptions::Redirect::Manual;
</span><span class="cx">     else
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;Bad redirect mode value.&quot;) };
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Exception&gt; setMethod(ResourceRequest&amp; request, const String&amp; initMethod)
</del><ins>+static std::optional&lt;Exception&gt; setMethod(ResourceRequest&amp; request, const String&amp; initMethod)
</ins><span class="cx"> {
</span><span class="cx">     if (!isValidHTTPToken(initMethod))
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;Method is not a valid HTTP token.&quot;) };
</span><span class="lines">@@ -129,17 +129,17 @@
</span><span class="cx"> 
</span><span class="cx">     request.setHTTPMethod((method == &quot;DELETE&quot; || method == &quot;GET&quot; || method == &quot;HEAD&quot; || method == &quot;OPTIONS&quot; || method == &quot;POST&quot; || method == &quot;PUT&quot;) ? method : initMethod);
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Exception&gt; setReferrer(FetchRequest::InternalRequest&amp; request, ScriptExecutionContext&amp; context, const Dictionary&amp; init)
</del><ins>+static std::optional&lt;Exception&gt; setReferrer(FetchRequest::InternalRequest&amp; request, ScriptExecutionContext&amp; context, const Dictionary&amp; init)
</ins><span class="cx"> {
</span><span class="cx">     String referrer;
</span><span class="cx">     if (!init.get(&quot;referrer&quot;, referrer))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (referrer.isEmpty()) {
</span><span class="cx">         request.referrer = ASCIILiteral(&quot;no-referrer&quot;);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     // FIXME: Tighten the URL parsing algorithm according https://url.spec.whatwg.org/#concept-url-parser.
</span><span class="cx">     URL referrerURL = context.completeURL(referrer);
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (referrerURL.protocolIs(&quot;about&quot;) &amp;&amp; referrerURL.path() == &quot;client&quot;) {
</span><span class="cx">         request.referrer = ASCIILiteral(&quot;client&quot;);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!(context.securityOrigin() &amp;&amp; context.securityOrigin()-&gt;canRequest(referrerURL)))
</span><span class="lines">@@ -155,10 +155,10 @@
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;Referrer is not same-origin.&quot;) };
</span><span class="cx"> 
</span><span class="cx">     request.referrer = referrerURL.string();
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Exception&gt; buildOptions(FetchRequest::InternalRequest&amp; request, ScriptExecutionContext&amp; context, const Dictionary&amp; init)
</del><ins>+static std::optional&lt;Exception&gt; buildOptions(FetchRequest::InternalRequest&amp; request, ScriptExecutionContext&amp; context, const Dictionary&amp; init)
</ins><span class="cx"> {
</span><span class="cx">     JSC::JSValue window;
</span><span class="cx">     if (init.get(&quot;window&quot;, window)) {
</span><span class="lines">@@ -213,7 +213,7 @@
</span><span class="cx">         if (exception)
</span><span class="cx">             return exception;
</span><span class="cx">     }
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool methodCanHaveBody(const FetchRequest::InternalRequest&amp; internalRequest)
</span><span class="lines">@@ -320,7 +320,7 @@
</span><span class="cx">     if (isDisturbedOrLocked())
</span><span class="cx">         return Exception { TypeError };
</span><span class="cx"> 
</span><del>-    auto clone = adoptRef(*new FetchRequest(context, Nullopt, FetchHeaders::create(m_headers.get()), FetchRequest::InternalRequest(m_internalRequest)));
</del><ins>+    auto clone = adoptRef(*new FetchRequest(context, std::nullopt, FetchHeaders::create(m_headers.get()), FetchRequest::InternalRequest(m_internalRequest)));
</ins><span class="cx">     clone-&gt;cloneBody(*this);
</span><span class="cx">     return WTFMove(clone);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchRequest.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchRequest.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchRequest.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> 
</span><span class="cx"> class FetchRequest final : public FetchBodyOwner {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;FetchRequest&gt; create(ScriptExecutionContext&amp; context) { return adoptRef(*new FetchRequest(context, Nullopt, FetchHeaders::create(FetchHeaders::Guard::Request), { })); }
</del><ins>+    static Ref&lt;FetchRequest&gt; create(ScriptExecutionContext&amp; context) { return adoptRef(*new FetchRequest(context, std::nullopt, FetchHeaders::create(FetchHeaders::Guard::Request), { })); }
</ins><span class="cx"> 
</span><span class="cx">     ExceptionOr&lt;FetchHeaders&amp;&gt; initializeWith(FetchRequest&amp;, const Dictionary&amp;);
</span><span class="cx">     ExceptionOr&lt;FetchHeaders&amp;&gt; initializeWith(const String&amp;, const Dictionary&amp;);
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">     const String&amp; internalRequestReferrer() const { return m_internalRequest.referrer; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    FetchRequest(ScriptExecutionContext&amp;, Optional&lt;FetchBody&gt;&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;, InternalRequest&amp;&amp;);
</del><ins>+    FetchRequest(ScriptExecutionContext&amp;, std::optional&lt;FetchBody&gt;&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;, InternalRequest&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     ExceptionOr&lt;FetchHeaders&amp;&gt; initializeOptions(const Dictionary&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">     mutable String m_requestURL;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-inline FetchRequest::FetchRequest(ScriptExecutionContext&amp; context, Optional&lt;FetchBody&gt;&amp;&amp; body, Ref&lt;FetchHeaders&gt;&amp;&amp; headers, InternalRequest&amp;&amp; internalRequest)
</del><ins>+inline FetchRequest::FetchRequest(ScriptExecutionContext&amp; context, std::optional&lt;FetchBody&gt;&amp;&amp; body, Ref&lt;FetchHeaders&gt;&amp;&amp; headers, InternalRequest&amp;&amp; internalRequest)
</ins><span class="cx">     : FetchBodyOwner(context, WTFMove(body), WTFMove(headers))
</span><span class="cx">     , m_internalRequest(WTFMove(internalRequest))
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchResponsecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">     updateContentType();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-FetchResponse::FetchResponse(ScriptExecutionContext&amp; context, Optional&lt;FetchBody&gt;&amp;&amp; body, Ref&lt;FetchHeaders&gt;&amp;&amp; headers, ResourceResponse&amp;&amp; response)
</del><ins>+FetchResponse::FetchResponse(ScriptExecutionContext&amp; context, std::optional&lt;FetchBody&gt;&amp;&amp; body, Ref&lt;FetchHeaders&gt;&amp;&amp; headers, ResourceResponse&amp;&amp; response)
</ins><span class="cx">     : FetchBodyOwner(context, WTFMove(body), WTFMove(headers))
</span><span class="cx">     , m_response(WTFMove(response))
</span><span class="cx"> {
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">     ASSERT(scriptExecutionContext());
</span><span class="cx">     ASSERT(!isDisturbedOrLocked());
</span><span class="cx"> 
</span><del>-    auto clone = adoptRef(*new FetchResponse(*scriptExecutionContext(), Nullopt, FetchHeaders::create(headers()), ResourceResponse(m_response)));
</del><ins>+    auto clone = adoptRef(*new FetchResponse(*scriptExecutionContext(), std::nullopt, FetchHeaders::create(headers()), ResourceResponse(m_response)));
</ins><span class="cx">     clone-&gt;cloneBody(*this);
</span><span class="cx">     return clone;
</span><span class="cx"> }
</span><span class="lines">@@ -105,9 +105,9 @@
</span><span class="cx">     // Setting pending activity until BodyLoader didFail or didSucceed callback is called.
</span><span class="cx">     response-&gt;setPendingActivity(response.ptr());
</span><span class="cx"> 
</span><del>-    response-&gt;m_bodyLoader = BodyLoader(response.get(), WTFMove(promise));
</del><ins>+    response-&gt;m_bodyLoader.emplace(response.get(), WTFMove(promise));
</ins><span class="cx">     if (!response-&gt;m_bodyLoader-&gt;start(context, request))
</span><del>-        response-&gt;m_bodyLoader = Nullopt;
</del><ins>+        response-&gt;m_bodyLoader = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const String&amp; FetchResponse::url() const
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     if (m_loader-&gt;isStarted())
</span><del>-        m_response.m_bodyLoader = Nullopt;
</del><ins>+        m_response.m_bodyLoader = std::nullopt;
</ins><span class="cx">     m_response.unsetPendingActivity(&amp;m_response);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_response.hasPendingActivity());
</span><span class="cx">     if (m_promise)
</span><del>-        std::exchange(m_promise, Nullopt)-&gt;reject(TypeError);
</del><ins>+        std::exchange(m_promise, std::nullopt)-&gt;reject(TypeError);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(READABLE_STREAM_API)
</span><span class="cx">     if (m_response.m_readableStreamSource) {
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Check whether didFail is called as part of FetchLoader::start.
</span><span class="cx">     if (m_loader-&gt;isStarted())
</span><del>-        m_response.m_bodyLoader = Nullopt;
</del><ins>+        m_response.m_bodyLoader = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     m_response.unsetPendingActivity(&amp;m_response);
</span><span class="cx"> }
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx">     m_response.m_response = resourceResponse;
</span><span class="cx">     m_response.m_headers-&gt;filterAndFill(resourceResponse.httpHeaderFields(), FetchHeaders::Guard::Response);
</span><span class="cx"> 
</span><del>-    std::exchange(m_promise, Nullopt)-&gt;resolve(m_response);
</del><ins>+    std::exchange(m_promise, std::nullopt)-&gt;resolve(m_response);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FetchResponse::BodyLoader::didReceiveData(const char* data, size_t size)
</span><span class="lines">@@ -204,7 +204,7 @@
</span><span class="cx"> 
</span><span class="cx"> void FetchResponse::BodyLoader::stop()
</span><span class="cx"> {
</span><del>-    m_promise = Nullopt;
</del><ins>+    m_promise = std::nullopt;
</ins><span class="cx">     if (m_loader)
</span><span class="cx">         m_loader-&gt;stop();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchResponseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchResponse.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchResponse.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/fetch/FetchResponse.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> public:
</span><span class="cx">     using Type = ResourceResponse::Type;
</span><span class="cx"> 
</span><del>-    static Ref&lt;FetchResponse&gt; create(ScriptExecutionContext&amp; context) { return adoptRef(*new FetchResponse(context, Nullopt, FetchHeaders::create(FetchHeaders::Guard::Response), ResourceResponse())); }
</del><ins>+    static Ref&lt;FetchResponse&gt; create(ScriptExecutionContext&amp; context) { return adoptRef(*new FetchResponse(context, std::nullopt, FetchHeaders::create(FetchHeaders::Guard::Response), ResourceResponse())); }
</ins><span class="cx">     static Ref&lt;FetchResponse&gt; error(ScriptExecutionContext&amp;);
</span><span class="cx">     static ExceptionOr&lt;Ref&lt;FetchResponse&gt;&gt; redirect(ScriptExecutionContext&amp;, const String&amp; url, int status);
</span><span class="cx"> 
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">     bool isLoading() const { return !!m_bodyLoader; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    FetchResponse(ScriptExecutionContext&amp;, Optional&lt;FetchBody&gt;&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;, ResourceResponse&amp;&amp;);
</del><ins>+    FetchResponse(ScriptExecutionContext&amp;, std::optional&lt;FetchBody&gt;&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;, ResourceResponse&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     static void startFetching(ScriptExecutionContext&amp;, const FetchRequest&amp;, FetchPromise&amp;&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -117,12 +117,12 @@
</span><span class="cx">         void didReceiveData(const char*, size_t) final;
</span><span class="cx"> 
</span><span class="cx">         FetchResponse&amp; m_response;
</span><del>-        Optional&lt;FetchPromise&gt; m_promise;
</del><ins>+        std::optional&lt;FetchPromise&gt; m_promise;
</ins><span class="cx">         std::unique_ptr&lt;FetchLoader&gt; m_loader;
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     ResourceResponse m_response;
</span><del>-    Optional&lt;BodyLoader&gt; m_bodyLoader;
</del><ins>+    std::optional&lt;BodyLoader&gt; m_bodyLoader;
</ins><span class="cx">     mutable String m_responseURL;
</span><span class="cx"> 
</span><span class="cx">     FetchBodyConsumer m_consumer { FetchBodyConsumer::Type::ArrayBuffer  };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesgeolocationCoordinatescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/geolocation/Coordinates.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/geolocation/Coordinates.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/geolocation/Coordinates.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -28,31 +28,31 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-Optional&lt;double&gt; Coordinates::altitude() const
</del><ins>+std::optional&lt;double&gt; Coordinates::altitude() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_canProvideAltitude)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return m_altitude;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;double&gt; Coordinates::altitudeAccuracy() const
</del><ins>+std::optional&lt;double&gt; Coordinates::altitudeAccuracy() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_canProvideAltitudeAccuracy)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return m_altitudeAccuracy;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;double&gt; Coordinates::heading() const
</del><ins>+std::optional&lt;double&gt; Coordinates::heading() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_canProvideHeading)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return m_heading;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;double&gt; Coordinates::speed() const
</del><ins>+std::optional&lt;double&gt; Coordinates::speed() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_canProvideSpeed)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return m_speed;
</span><span class="cx"> }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesgeolocationCoordinatesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/geolocation/Coordinates.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/geolocation/Coordinates.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/geolocation/Coordinates.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -42,11 +42,11 @@
</span><span class="cx"> 
</span><span class="cx">     double latitude() const { return m_latitude; }
</span><span class="cx">     double longitude() const { return m_longitude; }
</span><del>-    Optional&lt;double&gt; altitude() const;
</del><ins>+    std::optional&lt;double&gt; altitude() const;
</ins><span class="cx">     double accuracy() const { return m_accuracy; }
</span><del>-    Optional&lt;double&gt; altitudeAccuracy() const;
-    Optional&lt;double&gt; heading() const;
-    Optional&lt;double&gt; speed() const;
</del><ins>+    std::optional&lt;double&gt; altitudeAccuracy() const;
+    std::optional&lt;double&gt; heading() const;
+    std::optional&lt;double&gt; speed() const;
</ins><span class="cx">     
</span><span class="cx"> private:
</span><span class="cx">     Coordinates(double latitude, double longitude, bool providesAltitude, double altitude, double accuracy, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBCursorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">     return prevunique;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;IndexedDB::CursorDirection&gt; IDBCursor::stringToDirection(const String&amp; directionString)
</del><ins>+std::optional&lt;IndexedDB::CursorDirection&gt; IDBCursor::stringToDirection(const String&amp; directionString)
</ins><span class="cx"> {
</span><span class="cx">     if (directionString == directionNext())
</span><span class="cx">         return IndexedDB::CursorDirection::Next;
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     if (directionString == directionPrevUnique())
</span><span class="cx">         return IndexedDB::CursorDirection::PrevNoDuplicate;
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; IDBCursor::directionToString(IndexedDB::CursorDirection direction)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBCursorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     static const AtomicString&amp; directionPrev();
</span><span class="cx">     static const AtomicString&amp; directionPrevUnique();
</span><span class="cx"> 
</span><del>-    static Optional&lt;IndexedDB::CursorDirection&gt; stringToDirection(const String&amp; modeString);
</del><ins>+    static std::optional&lt;IndexedDB::CursorDirection&gt; stringToDirection(const String&amp; modeString);
</ins><span class="cx">     static const AtomicString&amp; directionToString(IndexedDB::CursorDirection mode);
</span><span class="cx">     
</span><span class="cx">     virtual ~IDBCursor();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     RefPtr&lt;DOMStringList&gt; objectStoreNames() const;
</span><span class="cx"> 
</span><span class="cx">     struct ObjectStoreParameters {
</span><del>-        Optional&lt;IDBKeyPath&gt; keyPath;
</del><ins>+        std::optional&lt;IDBKeyPath&gt; keyPath;
</ins><span class="cx">         bool autoIncrement;
</span><span class="cx">     };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseIdentifierh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">         unsigned mainFrameProtocolHash = StringHash::hash(m_mainFrameOrigin.protocol);
</span><span class="cx">         unsigned mainFrameHostHash = StringHash::hash(m_mainFrameOrigin.host);
</span><span class="cx">         
</span><del>-        unsigned hashCodes[7] = { nameHash, openingProtocolHash, openingHostHash, m_openingOrigin.port.valueOr(0), mainFrameProtocolHash, mainFrameHostHash, m_mainFrameOrigin.port.valueOr(0) };
</del><ins>+        unsigned hashCodes[7] = { nameHash, openingProtocolHash, openingHostHash, m_openingOrigin.port.value_or(0), mainFrameProtocolHash, mainFrameHostHash, m_mainFrameOrigin.port.value_or(0) };
</ins><span class="cx">         return StringHasher::hashMemory&lt;sizeof(hashCodes)&gt;(hashCodes);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBFactorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -76,7 +76,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;Ref&lt;IDBOpenDBRequest&gt;&gt; IDBFactory::open(ScriptExecutionContext&amp; context, const String&amp; name, Optional&lt;uint64_t&gt; version)
</del><ins>+ExceptionOr&lt;Ref&lt;IDBOpenDBRequest&gt;&gt; IDBFactory::open(ScriptExecutionContext&amp; context, const String&amp; name, std::optional&lt;uint64_t&gt; version)
</ins><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;IDBFactory::open&quot;);
</span><span class="cx">     
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     if (version &amp;&amp; !version.value())
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;IDBFactory.open() called with a version of 0&quot;) };
</span><span class="cx"> 
</span><del>-    return openInternal(context, name, version.valueOr(0));
</del><ins>+    return openInternal(context, name, version.value_or(0));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ExceptionOr&lt;Ref&lt;IDBOpenDBRequest&gt;&gt; IDBFactory::openInternal(ScriptExecutionContext&amp; context, const String&amp; name, unsigned long long version)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBFactoryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBFactory.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBFactory.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBFactory.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     static Ref&lt;IDBFactory&gt; create(IDBClient::IDBConnectionProxy&amp;);
</span><span class="cx">     ~IDBFactory();
</span><span class="cx"> 
</span><del>-    ExceptionOr&lt;Ref&lt;IDBOpenDBRequest&gt;&gt; open(ScriptExecutionContext&amp;, const String&amp; name, Optional&lt;uint64_t&gt; version);
</del><ins>+    ExceptionOr&lt;Ref&lt;IDBOpenDBRequest&gt;&gt; open(ScriptExecutionContext&amp;, const String&amp; name, std::optional&lt;uint64_t&gt; version);
</ins><span class="cx">     ExceptionOr&lt;Ref&lt;IDBOpenDBRequest&gt;&gt; deleteDatabase(ScriptExecutionContext&amp;, const String&amp; name);
</span><span class="cx"> 
</span><span class="cx">     ExceptionOr&lt;short&gt; cmp(JSC::ExecState&amp;, JSC::JSValue first, JSC::JSValue second);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBIndexcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBIndex.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBIndex.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBIndex.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -321,7 +321,7 @@
</span><span class="cx">     return transaction.requestGetKey(execState, *this, range);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBIndex::getAll(ExecState&amp; execState, RefPtr&lt;IDBKeyRange&gt; range, Optional&lt;uint32_t&gt; count)
</del><ins>+ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBIndex::getAll(ExecState&amp; execState, RefPtr&lt;IDBKeyRange&gt; range, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;IDBIndex::getAll&quot;);
</span><span class="cx">     ASSERT(currentThread() == m_objectStore.transaction().database().originThreadID());
</span><span class="lines">@@ -335,7 +335,7 @@
</span><span class="cx">     return m_objectStore.transaction().requestGetAllIndexRecords(execState, *this, range.get(), IndexedDB::GetAllType::Values, count);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBIndex::getAll(ExecState&amp; execState, JSValue key, Optional&lt;uint32_t&gt; count)
</del><ins>+ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBIndex::getAll(ExecState&amp; execState, JSValue key, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     auto onlyResult = IDBKeyRange::only(execState, key);
</span><span class="cx">     if (onlyResult.hasException())
</span><span class="lines">@@ -344,7 +344,7 @@
</span><span class="cx">     return getAll(execState, onlyResult.releaseReturnValue(), count);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBIndex::getAllKeys(ExecState&amp; execState, RefPtr&lt;IDBKeyRange&gt; range, Optional&lt;uint32_t&gt; count)
</del><ins>+ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBIndex::getAllKeys(ExecState&amp; execState, RefPtr&lt;IDBKeyRange&gt; range, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;IDBIndex::getAllKeys&quot;);
</span><span class="cx">     ASSERT(currentThread() == m_objectStore.transaction().database().originThreadID());
</span><span class="lines">@@ -358,7 +358,7 @@
</span><span class="cx">     return m_objectStore.transaction().requestGetAllIndexRecords(execState, *this, range.get(), IndexedDB::GetAllType::Keys, count);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBIndex::getAllKeys(ExecState&amp; execState, JSValue key, Optional&lt;uint32_t&gt; count)
</del><ins>+ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBIndex::getAllKeys(ExecState&amp; execState, JSValue key, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     auto onlyResult = IDBKeyRange::only(execState, key);
</span><span class="cx">     if (onlyResult.hasException())
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBIndexh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -70,10 +70,10 @@
</span><span class="cx">     ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getKey(JSC::ExecState&amp;, IDBKeyRange*);
</span><span class="cx">     ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getKey(JSC::ExecState&amp;, JSC::JSValue key);
</span><span class="cx"> 
</span><del>-    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAll(JSC::ExecState&amp;, RefPtr&lt;IDBKeyRange&gt;, Optional&lt;uint32_t&gt; count);
-    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAll(JSC::ExecState&amp;, JSC::JSValue key, Optional&lt;uint32_t&gt; count);
-    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAllKeys(JSC::ExecState&amp;, RefPtr&lt;IDBKeyRange&gt;, Optional&lt;uint32_t&gt; count);
-    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAllKeys(JSC::ExecState&amp;, JSC::JSValue key, Optional&lt;uint32_t&gt; count);
</del><ins>+    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAll(JSC::ExecState&amp;, RefPtr&lt;IDBKeyRange&gt;, std::optional&lt;uint32_t&gt; count);
+    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAll(JSC::ExecState&amp;, JSC::JSValue key, std::optional&lt;uint32_t&gt; count);
+    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAllKeys(JSC::ExecState&amp;, RefPtr&lt;IDBKeyRange&gt;, std::optional&lt;uint32_t&gt; count);
+    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAllKeys(JSC::ExecState&amp;, JSC::JSValue key, std::optional&lt;uint32_t&gt; count);
</ins><span class="cx"> 
</span><span class="cx">     const IDBIndexInfo&amp; info() const { return m_info; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBKeyPathh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBKeyPath.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBKeyPath.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBKeyPath.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> 
</span><span class="cx"> void IDBParseKeyPath(const String&amp;, Vector&lt;String&gt;&amp;, IDBKeyPathParseError&amp;);
</span><span class="cx"> IDBKeyPath isolatedCopy(const IDBKeyPath&amp;);
</span><del>-inline Optional&lt;IDBKeyPath&gt; isolatedCopy(const Optional&lt;IDBKeyPath&gt;&amp; variant)
</del><ins>+inline std::optional&lt;IDBKeyPath&gt; isolatedCopy(const std::optional&lt;IDBKeyPath&gt;&amp; variant)
</ins><span class="cx"> {
</span><span class="cx">     if (!variant)
</span><span class="cx">         return { };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBObjectStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx">     return { };
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const Optional&lt;IDBKeyPath&gt;&amp; IDBObjectStore::keyPath() const
</del><ins>+const std::optional&lt;IDBKeyPath&gt;&amp; IDBObjectStore::keyPath() const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(currentThread() == m_transaction.database().originThreadID());
</span><span class="cx">     return m_info.keyPath();
</span><span class="lines">@@ -541,7 +541,7 @@
</span><span class="cx">     return m_transaction.requestCount(execState, *this, range);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBObjectStore::getAll(ExecState&amp; execState, RefPtr&lt;IDBKeyRange&gt; range, Optional&lt;uint32_t&gt; count)
</del><ins>+ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBObjectStore::getAll(ExecState&amp; execState, RefPtr&lt;IDBKeyRange&gt; range, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;IDBObjectStore::getAll&quot;);
</span><span class="cx">     ASSERT(currentThread() == m_transaction.database().originThreadID());
</span><span class="lines">@@ -555,7 +555,7 @@
</span><span class="cx">     return m_transaction.requestGetAllObjectStoreRecords(execState, *this, range.get(), IndexedDB::GetAllType::Values, count);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBObjectStore::getAll(ExecState&amp; execState, JSValue key, Optional&lt;uint32_t&gt; count)
</del><ins>+ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBObjectStore::getAll(ExecState&amp; execState, JSValue key, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     auto onlyResult = IDBKeyRange::only(execState, key);
</span><span class="cx">     if (onlyResult.hasException())
</span><span class="lines">@@ -564,7 +564,7 @@
</span><span class="cx">     return getAll(execState, onlyResult.releaseReturnValue(), count);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBObjectStore::getAllKeys(ExecState&amp; execState, RefPtr&lt;IDBKeyRange&gt; range, Optional&lt;uint32_t&gt; count)
</del><ins>+ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBObjectStore::getAllKeys(ExecState&amp; execState, RefPtr&lt;IDBKeyRange&gt; range, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;IDBObjectStore::getAllKeys&quot;);
</span><span class="cx">     ASSERT(currentThread() == m_transaction.database().originThreadID());
</span><span class="lines">@@ -578,7 +578,7 @@
</span><span class="cx">     return m_transaction.requestGetAllObjectStoreRecords(execState, *this, range.get(), IndexedDB::GetAllType::Keys, count);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBObjectStore::getAllKeys(ExecState&amp; execState, JSValue key, Optional&lt;uint32_t&gt; count)
</del><ins>+ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; IDBObjectStore::getAllKeys(ExecState&amp; execState, JSValue key, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     auto onlyResult = IDBKeyRange::only(execState, key);
</span><span class="cx">     if (onlyResult.hasException())
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBObjectStoreh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> 
</span><span class="cx">     const String&amp; name() const;
</span><span class="cx">     ExceptionOr&lt;void&gt; setName(const String&amp;);
</span><del>-    const Optional&lt;IDBKeyPath&gt;&amp; keyPath() const;
</del><ins>+    const std::optional&lt;IDBKeyPath&gt;&amp; keyPath() const;
</ins><span class="cx">     RefPtr&lt;DOMStringList&gt; indexNames() const;
</span><span class="cx">     IDBTransaction&amp; transaction();
</span><span class="cx">     bool autoIncrement() const;
</span><span class="lines">@@ -87,10 +87,10 @@
</span><span class="cx">     ExceptionOr&lt;void&gt; deleteIndex(const String&amp; name);
</span><span class="cx">     ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; count(JSC::ExecState&amp;, IDBKeyRange*);
</span><span class="cx">     ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; count(JSC::ExecState&amp;, JSC::JSValue key);
</span><del>-    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAll(JSC::ExecState&amp;, RefPtr&lt;IDBKeyRange&gt;, Optional&lt;uint32_t&gt; count);
-    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAll(JSC::ExecState&amp;, JSC::JSValue key, Optional&lt;uint32_t&gt; count);
-    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAllKeys(JSC::ExecState&amp;, RefPtr&lt;IDBKeyRange&gt;, Optional&lt;uint32_t&gt; count);
-    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAllKeys(JSC::ExecState&amp;, JSC::JSValue key, Optional&lt;uint32_t&gt; count);
</del><ins>+    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAll(JSC::ExecState&amp;, RefPtr&lt;IDBKeyRange&gt;, std::optional&lt;uint32_t&gt; count);
+    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAll(JSC::ExecState&amp;, JSC::JSValue key, std::optional&lt;uint32_t&gt; count);
+    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAllKeys(JSC::ExecState&amp;, RefPtr&lt;IDBKeyRange&gt;, std::optional&lt;uint32_t&gt; count);
+    ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; getAllKeys(JSC::ExecState&amp;, JSC::JSValue key, std::optional&lt;uint32_t&gt; count);
</ins><span class="cx"> 
</span><span class="cx">     ExceptionOr&lt;Ref&lt;IDBRequest&gt;&gt; putForCursorUpdate(JSC::ExecState&amp;, JSC::JSValue, JSC::JSValue key);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBTransactioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -756,7 +756,7 @@
</span><span class="cx">     request.didOpenOrIterateCursor(resultData);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;IDBRequest&gt; IDBTransaction::requestGetAllObjectStoreRecords(JSC::ExecState&amp; state, IDBObjectStore&amp; objectStore, const IDBKeyRangeData&amp; keyRangeData, IndexedDB::GetAllType getAllType, Optional&lt;uint32_t&gt; count)
</del><ins>+Ref&lt;IDBRequest&gt; IDBTransaction::requestGetAllObjectStoreRecords(JSC::ExecState&amp; state, IDBObjectStore&amp; objectStore, const IDBKeyRangeData&amp; keyRangeData, IndexedDB::GetAllType getAllType, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;IDBTransaction::requestGetAllObjectStoreRecords&quot;);
</span><span class="cx">     ASSERT(isActive());
</span><span class="lines">@@ -774,7 +774,7 @@
</span><span class="cx">     return request;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;IDBRequest&gt; IDBTransaction::requestGetAllIndexRecords(JSC::ExecState&amp; state, IDBIndex&amp; index, const IDBKeyRangeData&amp; keyRangeData, IndexedDB::GetAllType getAllType, Optional&lt;uint32_t&gt; count)
</del><ins>+Ref&lt;IDBRequest&gt; IDBTransaction::requestGetAllIndexRecords(JSC::ExecState&amp; state, IDBIndex&amp; index, const IDBKeyRangeData&amp; keyRangeData, IndexedDB::GetAllType getAllType, std::optional&lt;uint32_t&gt; count)
</ins><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;IDBTransaction::requestGetAllIndexRecords&quot;);
</span><span class="cx">     ASSERT(isActive());
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBTransactionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -115,8 +115,8 @@
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;IDBRequest&gt; requestPutOrAdd(JSC::ExecState&amp;, IDBObjectStore&amp;, IDBKey*, SerializedScriptValue&amp;, IndexedDB::ObjectStoreOverwriteMode);
</span><span class="cx">     Ref&lt;IDBRequest&gt; requestGetRecord(JSC::ExecState&amp;, IDBObjectStore&amp;, const IDBGetRecordData&amp;);
</span><del>-    Ref&lt;IDBRequest&gt; requestGetAllObjectStoreRecords(JSC::ExecState&amp;, IDBObjectStore&amp;, const IDBKeyRangeData&amp;, IndexedDB::GetAllType, Optional&lt;uint32_t&gt; count);
-    Ref&lt;IDBRequest&gt; requestGetAllIndexRecords(JSC::ExecState&amp;, IDBIndex&amp;, const IDBKeyRangeData&amp;, IndexedDB::GetAllType, Optional&lt;uint32_t&gt; count);
</del><ins>+    Ref&lt;IDBRequest&gt; requestGetAllObjectStoreRecords(JSC::ExecState&amp;, IDBObjectStore&amp;, const IDBKeyRangeData&amp;, IndexedDB::GetAllType, std::optional&lt;uint32_t&gt; count);
+    Ref&lt;IDBRequest&gt; requestGetAllIndexRecords(JSC::ExecState&amp;, IDBIndex&amp;, const IDBKeyRangeData&amp;, IndexedDB::GetAllType, std::optional&lt;uint32_t&gt; count);
</ins><span class="cx">     Ref&lt;IDBRequest&gt; requestDeleteRecord(JSC::ExecState&amp;, IDBObjectStore&amp;, const IDBKeyRangeData&amp;);
</span><span class="cx">     Ref&lt;IDBRequest&gt; requestClearObjectStore(JSC::ExecState&amp;, IDBObjectStore&amp;);
</span><span class="cx">     Ref&lt;IDBRequest&gt; requestCount(JSC::ExecState&amp;, IDBObjectStore&amp;, const IDBKeyRangeData&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBVersionChangeEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx">     if (newVersion)
</span><span class="cx">         m_newVersion = newVersion;
</span><span class="cx">     else
</span><del>-        m_newVersion = Nullopt;
</del><ins>+        m_newVersion = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> IDBVersionChangeEvent::IDBVersionChangeEvent(const AtomicString&amp; name, const Init&amp; init, IsTrusted isTrusted)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBVersionChangeEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> 
</span><span class="cx">     struct Init : EventInit {
</span><span class="cx">         uint64_t oldVersion { 0 };
</span><del>-        Optional&lt;uint64_t&gt; newVersion;
</del><ins>+        std::optional&lt;uint64_t&gt; newVersion;
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     static Ref&lt;IDBVersionChangeEvent&gt; create(const AtomicString&amp; type, const Init&amp; initializer, IsTrusted isTrusted = IsTrusted::No)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx">     bool isVersionChangeEvent() const final { return true; }
</span><span class="cx"> 
</span><span class="cx">     uint64_t oldVersion() const { return m_oldVersion; }
</span><del>-    Optional&lt;uint64_t&gt; newVersion() const { return m_newVersion; }
</del><ins>+    std::optional&lt;uint64_t&gt; newVersion() const { return m_newVersion; }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     IDBVersionChangeEvent(const IDBResourceIdentifier&amp; requestIdentifier, uint64_t oldVersion, uint64_t newVersion, const AtomicString&amp; eventType);
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> 
</span><span class="cx">     IDBResourceIdentifier m_requestIdentifier;
</span><span class="cx">     uint64_t m_oldVersion;
</span><del>-    Optional&lt;uint64_t&gt; m_newVersion;
</del><ins>+    std::optional&lt;uint64_t&gt; m_newVersion;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverIDBSerializationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> enum class KeyPathType { Null, String, Array };
</span><span class="cx"> 
</span><del>-RefPtr&lt;SharedBuffer&gt; serializeIDBKeyPath(const Optional&lt;IDBKeyPath&gt;&amp; keyPath)
</del><ins>+RefPtr&lt;SharedBuffer&gt; serializeIDBKeyPath(const std::optional&lt;IDBKeyPath&gt;&amp; keyPath)
</ins><span class="cx"> {
</span><span class="cx">     auto encoder = KeyedEncoder::encoder();
</span><span class="cx"> 
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     return encoder-&gt;finishEncoding();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool deserializeIDBKeyPath(const uint8_t* data, size_t size, Optional&lt;IDBKeyPath&gt;&amp; result)
</del><ins>+bool deserializeIDBKeyPath(const uint8_t* data, size_t size, std::optional&lt;IDBKeyPath&gt;&amp; result)
</ins><span class="cx"> {
</span><span class="cx">     if (!data || !size)
</span><span class="cx">         return false;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverIDBSerializationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/IDBSerialization.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/IDBSerialization.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/server/IDBSerialization.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -34,8 +34,8 @@
</span><span class="cx"> 
</span><span class="cx"> class IDBKeyData;
</span><span class="cx"> 
</span><del>-RefPtr&lt;SharedBuffer&gt; serializeIDBKeyPath(const Optional&lt;IDBKeyPath&gt;&amp;);
-bool deserializeIDBKeyPath(const uint8_t* buffer, size_t bufferSize, Optional&lt;IDBKeyPath&gt;&amp;);
</del><ins>+RefPtr&lt;SharedBuffer&gt; serializeIDBKeyPath(const std::optional&lt;IDBKeyPath&gt;&amp;);
+bool deserializeIDBKeyPath(const uint8_t* buffer, size_t bufferSize, std::optional&lt;IDBKeyPath&gt;&amp;);
</ins><span class="cx"> 
</span><span class="cx"> RefPtr&lt;SharedBuffer&gt; serializeIDBKeyData(const IDBKeyData&amp;);
</span><span class="cx"> bool deserializeIDBKeyData(const uint8_t* buffer, size_t bufferSize, IDBKeyData&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverMemoryIndexcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndex.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndex.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndex.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx">     return count;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MemoryIndex::getAllRecords(const IDBKeyRangeData&amp; keyRangeData, Optional&lt;uint32_t&gt; count, IndexedDB::GetAllType type, IDBGetAllResult&amp; result) const
</del><ins>+void MemoryIndex::getAllRecords(const IDBKeyRangeData&amp; keyRangeData, std::optional&lt;uint32_t&gt; count, IndexedDB::GetAllType type, IDBGetAllResult&amp; result) const
</ins><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;MemoryIndex::getAllRecords&quot;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverMemoryIndexh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndex.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndex.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndex.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> 
</span><span class="cx">     IDBGetResult getResultForKeyRange(IndexedDB::IndexRecordType, const IDBKeyRangeData&amp;) const;
</span><span class="cx">     uint64_t countForKeyRange(const IDBKeyRangeData&amp;);
</span><del>-    void getAllRecords(const IDBKeyRangeData&amp;, Optional&lt;uint32_t&gt; count, IndexedDB::GetAllType, IDBGetAllResult&amp;) const;
</del><ins>+    void getAllRecords(const IDBKeyRangeData&amp;, std::optional&lt;uint32_t&gt; count, IndexedDB::GetAllType, IDBGetAllResult&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">     IDBError putIndexKey(const IDBKeyData&amp;, const IndexKey&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverMemoryObjectStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -408,7 +408,7 @@
</span><span class="cx">     return m_keyValueStore-&gt;get(key);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MemoryObjectStore::getAllRecords(const IDBKeyRangeData&amp; keyRangeData, Optional&lt;uint32_t&gt; count, IndexedDB::GetAllType type, IDBGetAllResult&amp; result) const
</del><ins>+void MemoryObjectStore::getAllRecords(const IDBKeyRangeData&amp; keyRangeData, std::optional&lt;uint32_t&gt; count, IndexedDB::GetAllType type, IDBGetAllResult&amp; result) const
</ins><span class="cx"> {
</span><span class="cx">     result = { type };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverMemoryObjectStoreh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">     IDBGetResult indexValueForKeyRange(uint64_t indexIdentifier, IndexedDB::IndexRecordType, const IDBKeyRangeData&amp;) const;
</span><span class="cx">     uint64_t countForKeyRange(uint64_t indexIdentifier, const IDBKeyRangeData&amp;) const;
</span><span class="cx"> 
</span><del>-    void getAllRecords(const IDBKeyRangeData&amp;, Optional&lt;uint32_t&gt; count, IndexedDB::GetAllType, IDBGetAllResult&amp;) const;
</del><ins>+    void getAllRecords(const IDBKeyRangeData&amp;, std::optional&lt;uint32_t&gt; count, IndexedDB::GetAllType, IDBGetAllResult&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">     const IDBObjectStoreInfo&amp; info() const { return m_info; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverMemoryObjectStoreCursorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> 
</span><span class="cx"> void MemoryObjectStoreCursor::objectStoreCleared()
</span><span class="cx"> {
</span><del>-    m_iterator = Nullopt;
</del><ins>+    m_iterator = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MemoryObjectStoreCursor::keyDeleted(const IDBKeyData&amp; key)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">     if (m_currentPositionKey != key)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_iterator = Nullopt;
</del><ins>+    m_iterator = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MemoryObjectStoreCursor::keyAdded(std::set&lt;IDBKeyData&gt;::iterator iterator)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx"> 
</span><span class="cx"> void MemoryObjectStoreCursor::setFirstInRemainingRange(std::set&lt;IDBKeyData&gt;&amp; set)
</span><span class="cx"> {
</span><del>-    m_iterator = Nullopt;
</del><ins>+    m_iterator = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (m_info.isDirectionForward()) {
</span><span class="cx">         setForwardIteratorFromRemainingRange(set);
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> void MemoryObjectStoreCursor::setForwardIteratorFromRemainingRange(std::set&lt;IDBKeyData&gt;&amp; set)
</span><span class="cx"> {
</span><span class="cx">     if (!set.size()) {
</span><del>-        m_iterator = Nullopt;
</del><ins>+        m_iterator = std::nullopt;
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -102,12 +102,12 @@
</span><span class="cx">     if (m_remainingRange.isExactlyOneKey()) {
</span><span class="cx">         m_iterator = set.find(m_remainingRange.lowerKey);
</span><span class="cx">         if (*m_iterator == set.end())
</span><del>-            m_iterator = Nullopt;
</del><ins>+            m_iterator = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_iterator = Nullopt;
</del><ins>+    m_iterator = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto lowest = set.lower_bound(m_remainingRange.lowerKey);
</span><span class="cx">     if (lowest == set.end())
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx"> void MemoryObjectStoreCursor::setReverseIteratorFromRemainingRange(std::set&lt;IDBKeyData&gt;&amp; set)
</span><span class="cx"> {
</span><span class="cx">     if (!set.size()) {
</span><del>-        m_iterator = Nullopt;
</del><ins>+        m_iterator = std::nullopt;
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx">     if (m_remainingRange.isExactlyOneKey()) {
</span><span class="cx">         m_iterator = set.find(m_remainingRange.lowerKey);
</span><span class="cx">         if (*m_iterator == set.end())
</span><del>-            m_iterator = Nullopt;
</del><ins>+            m_iterator = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -148,12 +148,12 @@
</span><span class="cx">     if (!m_remainingRange.upperKey.isValid()) {
</span><span class="cx">         m_iterator = --set.end();
</span><span class="cx">         if (!m_remainingRange.containsKey(**m_iterator))
</span><del>-            m_iterator = Nullopt;
</del><ins>+            m_iterator = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_iterator = Nullopt;
</del><ins>+    m_iterator = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // This is one record past the actual key we're looking for.
</span><span class="cx">     auto highest = set.upper_bound(m_remainingRange.upperKey);
</span><span class="lines">@@ -248,7 +248,7 @@
</span><span class="cx">         ++*m_iterator;
</span><span class="cx"> 
</span><span class="cx">         if (*m_iterator == set.end() || !m_info.range().containsKey(**m_iterator)) {
</span><del>-            m_iterator = Nullopt;
</del><ins>+            m_iterator = std::nullopt;
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -300,7 +300,7 @@
</span><span class="cx"> 
</span><span class="cx">     while (count) {
</span><span class="cx">         if (*m_iterator == set.begin()) {
</span><del>-            m_iterator = Nullopt;
</del><ins>+            m_iterator = std::nullopt;
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -308,7 +308,7 @@
</span><span class="cx">         --*m_iterator;
</span><span class="cx"> 
</span><span class="cx">         if (!m_info.range().containsKey(**m_iterator)) {
</span><del>-            m_iterator = Nullopt;
</del><ins>+            m_iterator = std::nullopt;
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverMemoryObjectStoreCursorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> 
</span><span class="cx">     IDBKeyRangeData m_remainingRange;
</span><span class="cx"> 
</span><del>-    WTF::Optional&lt;std::set&lt;IDBKeyData&gt;::iterator&gt; m_iterator;
</del><ins>+    std::optional&lt;std::set&lt;IDBKeyData&gt;::iterator&gt; m_iterator;
</ins><span class="cx"> 
</span><span class="cx">     IDBKeyData m_currentPositionKey;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverSQLiteIDBBackingStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -602,7 +602,7 @@
</span><span class="cx">             Vector&lt;char&gt; keyPathBuffer;
</span><span class="cx">             sql.getColumnBlobAsVector(2, keyPathBuffer);
</span><span class="cx"> 
</span><del>-            Optional&lt;IDBKeyPath&gt; objectStoreKeyPath;
</del><ins>+            std::optional&lt;IDBKeyPath&gt; objectStoreKeyPath;
</ins><span class="cx">             if (!deserializeIDBKeyPath(reinterpret_cast&lt;const uint8_t*&gt;(keyPathBuffer.data()), keyPathBuffer.size(), objectStoreKeyPath)) {
</span><span class="cx">                 LOG_ERROR(&quot;Unable to extract key path from database&quot;);
</span><span class="cx">                 return nullptr;
</span><span class="lines">@@ -635,7 +635,7 @@
</span><span class="cx">             Vector&lt;char&gt; keyPathBuffer;
</span><span class="cx">             sql.getColumnBlobAsVector(3, keyPathBuffer);
</span><span class="cx"> 
</span><del>-            Optional&lt;IDBKeyPath&gt; indexKeyPath;
</del><ins>+            std::optional&lt;IDBKeyPath&gt; indexKeyPath;
</ins><span class="cx">             if (!deserializeIDBKeyPath(reinterpret_cast&lt;const uint8_t*&gt;(keyPathBuffer.data()), keyPathBuffer.size(), indexKeyPath)) {
</span><span class="cx">                 LOG_ERROR(&quot;Unable to extract key path from database&quot;);
</span><span class="cx">                 return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedIDBDatabaseInfocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IDBObjectStoreInfo IDBDatabaseInfo::createNewObjectStore(const String&amp; name, Optional&lt;IDBKeyPath&gt;&amp;&amp; keyPath, bool autoIncrement)
</del><ins>+IDBObjectStoreInfo IDBDatabaseInfo::createNewObjectStore(const String&amp; name, std::optional&lt;IDBKeyPath&gt;&amp;&amp; keyPath, bool autoIncrement)
</ins><span class="cx"> {
</span><span class="cx">     IDBObjectStoreInfo info(++m_maxObjectStoreID, name, WTFMove(keyPath), autoIncrement);
</span><span class="cx">     m_objectStoreMap.set(info.identifier(), info);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedIDBDatabaseInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">     uint64_t version() const { return m_version; }
</span><span class="cx"> 
</span><span class="cx">     bool hasObjectStore(const String&amp; name) const;
</span><del>-    IDBObjectStoreInfo createNewObjectStore(const String&amp; name, Optional&lt;IDBKeyPath&gt;&amp;&amp;, bool autoIncrement);
</del><ins>+    IDBObjectStoreInfo createNewObjectStore(const String&amp; name, std::optional&lt;IDBKeyPath&gt;&amp;&amp;, bool autoIncrement);
</ins><span class="cx">     void addExistingObjectStore(const IDBObjectStoreInfo&amp;);
</span><span class="cx">     IDBObjectStoreInfo* infoForExistingObjectStore(uint64_t objectStoreIdentifier);
</span><span class="cx">     IDBObjectStoreInfo* infoForExistingObjectStore(const String&amp; objectStoreName);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedIDBGetAllRecordsDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> struct IDBGetAllRecordsData {
</span><span class="cx">     IDBKeyRangeData keyRangeData;
</span><span class="cx">     IndexedDB::GetAllType getAllType;
</span><del>-    Optional&lt;uint32_t&gt; count;
</del><ins>+    std::optional&lt;uint32_t&gt; count;
</ins><span class="cx">     uint64_t objectStoreIdentifier;
</span><span class="cx">     uint64_t indexIdentifier;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedIDBObjectStoreInfocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IDBObjectStoreInfo::IDBObjectStoreInfo(uint64_t identifier, const String&amp; name, Optional&lt;IDBKeyPath&gt;&amp;&amp; keyPath, bool autoIncrement)
</del><ins>+IDBObjectStoreInfo::IDBObjectStoreInfo(uint64_t identifier, const String&amp; name, std::optional&lt;IDBKeyPath&gt;&amp;&amp; keyPath, bool autoIncrement)
</ins><span class="cx">     : m_identifier(identifier)
</span><span class="cx">     , m_name(name)
</span><span class="cx">     , m_keyPath(WTFMove(keyPath))
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedIDBObjectStoreInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -37,11 +37,11 @@
</span><span class="cx"> class IDBObjectStoreInfo {
</span><span class="cx"> public:
</span><span class="cx">     WEBCORE_EXPORT IDBObjectStoreInfo();
</span><del>-    IDBObjectStoreInfo(uint64_t identifier, const String&amp; name, Optional&lt;IDBKeyPath&gt;&amp;&amp;, bool autoIncrement);
</del><ins>+    IDBObjectStoreInfo(uint64_t identifier, const String&amp; name, std::optional&lt;IDBKeyPath&gt;&amp;&amp;, bool autoIncrement);
</ins><span class="cx"> 
</span><span class="cx">     uint64_t identifier() const { return m_identifier; }
</span><span class="cx">     const String&amp; name() const { return m_name; }
</span><del>-    const Optional&lt;IDBKeyPath&gt;&amp; keyPath() const { return m_keyPath; }
</del><ins>+    const std::optional&lt;IDBKeyPath&gt;&amp; keyPath() const { return m_keyPath; }
</ins><span class="cx">     bool autoIncrement() const { return m_autoIncrement; }
</span><span class="cx">     uint64_t maxIndexID() const { return m_maxIndexID; }
</span><span class="cx"> 
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> private:
</span><span class="cx">     uint64_t m_identifier { 0 };
</span><span class="cx">     String m_name;
</span><del>-    Optional&lt;IDBKeyPath&gt; m_keyPath;
</del><ins>+    std::optional&lt;IDBKeyPath&gt; m_keyPath;
</ins><span class="cx">     bool m_autoIncrement { false };
</span><span class="cx">     uint64_t m_maxIndexID { 0 };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsMediaControlsHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx">     return page-&gt;group().captionPreferences().sortedTrackListForMenu(&amp;trackList);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String MediaControlsHost::displayNameForTrack(const Optional&lt;TextOrAudioTrack&gt;&amp; track)
</del><ins>+String MediaControlsHost::displayNameForTrack(const std::optional&lt;TextOrAudioTrack&gt;&amp; track)
</ins><span class="cx"> {
</span><span class="cx">     if (!track)
</span><span class="cx">         return emptyString();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsMediaControlsHosth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">     Vector&lt;RefPtr&lt;AudioTrack&gt;&gt; sortedTrackListForMenu(AudioTrackList&amp;);
</span><span class="cx"> 
</span><span class="cx">     using TextOrAudioTrack = WTF::Variant&lt;RefPtr&lt;TextTrack&gt;, RefPtr&lt;AudioTrack&gt;&gt;;
</span><del>-    String displayNameForTrack(const Optional&lt;TextOrAudioTrack&gt;&amp;);
</del><ins>+    String displayNameForTrack(const std::optional&lt;TextOrAudioTrack&gt;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     TextTrack* captionMenuOffItem();
</span><span class="cx">     TextTrack* captionMenuAutomaticItem();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -542,7 +542,7 @@
</span><span class="cx">     onReadyStateChange(oldState, state);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;void&gt; MediaSource::endOfStream(Optional&lt;EndOfStreamError&gt; error)
</del><ins>+ExceptionOr&lt;void&gt; MediaSource::endOfStream(std::optional&lt;EndOfStreamError&gt; error)
</ins><span class="cx"> {
</span><span class="cx">     // 2.2 https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#widl-MediaSource-endOfStream-void-EndOfStreamError-error
</span><span class="cx">     // 1. If the readyState attribute is not in the &quot;open&quot; state then throw an
</span><span class="lines">@@ -561,7 +561,7 @@
</span><span class="cx">     return { };
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaSource::streamEndedWithError(Optional&lt;EndOfStreamError&gt; error)
</del><ins>+void MediaSource::streamEndedWithError(std::optional&lt;EndOfStreamError&gt; error)
</ins><span class="cx"> {
</span><span class="cx">     LOG(MediaSource, &quot;MediaSource::streamEndedWithError(%p)&quot;, this);
</span><span class="cx">     if (isClosed())
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceMediaSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/MediaSource.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx">     void sourceBufferDidChangeActiveState(SourceBuffer&amp;, bool);
</span><span class="cx"> 
</span><span class="cx">     enum class EndOfStreamError { Network, Decode };
</span><del>-    void streamEndedWithError(Optional&lt;EndOfStreamError&gt;);
</del><ins>+    void streamEndedWithError(std::optional&lt;EndOfStreamError&gt;);
</ins><span class="cx"> 
</span><span class="cx">     MediaTime duration() const final;
</span><span class="cx">     void durationChanged(const MediaTime&amp;) final;
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     ExceptionOr&lt;void&gt; setDurationInternal(const MediaTime&amp;);
</span><span class="cx">     MediaTime currentTime() const;
</span><span class="cx">     const AtomicString&amp; readyState() const { return m_readyState; }
</span><del>-    ExceptionOr&lt;void&gt; endOfStream(Optional&lt;EndOfStreamError&gt;);
</del><ins>+    ExceptionOr&lt;void&gt; endOfStream(std::optional&lt;EndOfStreamError&gt;);
</ins><span class="cx"> 
</span><span class="cx">     HTMLMediaElement* mediaElement() const { return m_mediaElement; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx">     Ref&lt;MediaStreamTrackPrivate&gt; m_private;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;MediaConstraints&gt; m_constraints;
</span><del>-    Optional&lt;DOMPromise&lt;void&gt;&gt; m_promise;
</del><ins>+    std::optional&lt;DOMPromise&lt;void&gt;&gt; m_promise;
</ins><span class="cx">     WeakPtrFactory&lt;MediaStreamTrack&gt; m_weakPtrFactory;
</span><span class="cx"> 
</span><span class="cx">     bool m_ended { false };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamPeerConnectionBackendcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_offerAnswerPromise);
</span><span class="cx">     m_offerAnswerPromise-&gt;resolve(RTCSessionDescription::create(RTCSessionDescription::SdpType::Offer, WTFMove(sdp)));
</span><del>-    m_offerAnswerPromise = Nullopt;
</del><ins>+    m_offerAnswerPromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PeerConnectionBackend::createOfferFailed(Exception&amp;&amp; exception)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_offerAnswerPromise);
</span><span class="cx">     m_offerAnswerPromise-&gt;reject(WTFMove(exception));
</span><del>-    m_offerAnswerPromise = Nullopt;
</del><ins>+    m_offerAnswerPromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PeerConnectionBackend::createAnswer(RTCAnswerOptions&amp;&amp; options, PeerConnection::SessionDescriptionPromise&amp;&amp; promise)
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_offerAnswerPromise);
</span><span class="cx">     m_offerAnswerPromise-&gt;resolve(RTCSessionDescription::create(RTCSessionDescription::SdpType::Answer, WTFMove(sdp)));
</span><del>-    m_offerAnswerPromise = Nullopt;
</del><ins>+    m_offerAnswerPromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PeerConnectionBackend::createAnswerFailed(Exception&amp;&amp; exception)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_offerAnswerPromise);
</span><span class="cx">     m_offerAnswerPromise-&gt;reject(WTFMove(exception));
</span><del>-    m_offerAnswerPromise = Nullopt;
</del><ins>+    m_offerAnswerPromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline bool isLocalDescriptionTypeValidForState(RTCSessionDescription::SdpType type, PeerConnectionStates::SignalingState state)
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx">     ASSERT(m_setDescriptionPromise);
</span><span class="cx"> 
</span><span class="cx">     m_setDescriptionPromise-&gt;resolve();
</span><del>-    m_setDescriptionPromise = Nullopt;
</del><ins>+    m_setDescriptionPromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PeerConnectionBackend::setLocalDescriptionFailed(Exception&amp;&amp; exception)
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx">     ASSERT(m_setDescriptionPromise);
</span><span class="cx"> 
</span><span class="cx">     m_setDescriptionPromise-&gt;reject(WTFMove(exception));
</span><del>-    m_setDescriptionPromise = Nullopt;
</del><ins>+    m_setDescriptionPromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline bool isRemoteDescriptionTypeValidForState(RTCSessionDescription::SdpType type, PeerConnectionStates::SignalingState state)
</span><span class="lines">@@ -208,7 +208,7 @@
</span><span class="cx">     ASSERT(m_setDescriptionPromise);
</span><span class="cx"> 
</span><span class="cx">     m_setDescriptionPromise-&gt;resolve();
</span><del>-    m_setDescriptionPromise = Nullopt;
</del><ins>+    m_setDescriptionPromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PeerConnectionBackend::setRemoteDescriptionFailed(Exception&amp;&amp; exception)
</span><span class="lines">@@ -221,7 +221,7 @@
</span><span class="cx">     ASSERT(m_setDescriptionPromise);
</span><span class="cx"> 
</span><span class="cx">     m_setDescriptionPromise-&gt;reject(WTFMove(exception));
</span><del>-    m_setDescriptionPromise = Nullopt;
</del><ins>+    m_setDescriptionPromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PeerConnectionBackend::addIceCandidate(RTCIceCandidate&amp; iceCandidate, PeerConnection::VoidPromise&amp;&amp; promise)
</span><span class="lines">@@ -247,7 +247,7 @@
</span><span class="cx">     ASSERT(m_addIceCandidatePromise);
</span><span class="cx"> 
</span><span class="cx">     m_addIceCandidatePromise-&gt;resolve();
</span><del>-    m_addIceCandidatePromise = Nullopt;
</del><ins>+    m_addIceCandidatePromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PeerConnectionBackend::addIceCandidateFailed(Exception&amp;&amp; exception)
</span><span class="lines">@@ -259,7 +259,7 @@
</span><span class="cx">     ASSERT(m_addIceCandidatePromise);
</span><span class="cx"> 
</span><span class="cx">     m_addIceCandidatePromise-&gt;reject(WTFMove(exception));
</span><del>-    m_addIceCandidatePromise = Nullopt;
</del><ins>+    m_addIceCandidatePromise = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PeerConnectionBackend::fireICECandidateEvent(RefPtr&lt;RTCIceCandidate&gt;&amp;&amp; candidate)
</span><span class="lines">@@ -289,9 +289,9 @@
</span><span class="cx"> 
</span><span class="cx"> void PeerConnectionBackend::stop()
</span><span class="cx"> {
</span><del>-    m_offerAnswerPromise = Nullopt;
-    m_setDescriptionPromise = Nullopt;
-    m_addIceCandidatePromise = Nullopt;
</del><ins>+    m_offerAnswerPromise = std::nullopt;
+    m_setDescriptionPromise = std::nullopt;
+    m_addIceCandidatePromise = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     doStop();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamPeerConnectionBackendh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -139,9 +139,9 @@
</span><span class="cx">     RTCPeerConnection&amp; m_peerConnection;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Optional&lt;PeerConnection::SessionDescriptionPromise&gt; m_offerAnswerPromise;
-    Optional&lt;PeerConnection::VoidPromise&gt; m_setDescriptionPromise;
-    Optional&lt;PeerConnection::VoidPromise&gt; m_addIceCandidatePromise;
</del><ins>+    std::optional&lt;PeerConnection::SessionDescriptionPromise&gt; m_offerAnswerPromise;
+    std::optional&lt;PeerConnection::VoidPromise&gt; m_setDescriptionPromise;
+    std::optional&lt;PeerConnection::VoidPromise&gt; m_addIceCandidatePromise;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCDTMFSendercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx">     return m_handler-&gt;currentToneBuffer();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;void&gt; RTCDTMFSender::insertDTMF(const String&amp; tones, Optional&lt;int&gt; duration, Optional&lt;int&gt; interToneGap)
</del><ins>+ExceptionOr&lt;void&gt; RTCDTMFSender::insertDTMF(const String&amp; tones, std::optional&lt;int&gt; duration, std::optional&lt;int&gt; interToneGap)
</ins><span class="cx"> {
</span><span class="cx">     if (!canInsertDTMF())
</span><span class="cx">         return Exception { NOT_SUPPORTED_ERR };
</span><span class="lines">@@ -96,8 +96,8 @@
</span><span class="cx">     if (interToneGap &amp;&amp; interToneGap.value() &lt; minInterToneGapMs)
</span><span class="cx">         return Exception { SYNTAX_ERR };
</span><span class="cx"> 
</span><del>-    m_duration = duration.valueOr(defaultToneDurationMs);
-    m_interToneGap = interToneGap.valueOr(defaultInterToneGapMs);
</del><ins>+    m_duration = duration.value_or(defaultToneDurationMs);
+    m_interToneGap = interToneGap.value_or(defaultInterToneGapMs);
</ins><span class="cx"> 
</span><span class="cx">     if (!m_handler-&gt;insertDTMF(tones, m_duration, m_interToneGap))
</span><span class="cx">         return Exception { SYNTAX_ERR };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCDTMFSenderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">     long duration() const { return m_duration; }
</span><span class="cx">     long interToneGap() const { return m_interToneGap; }
</span><span class="cx"> 
</span><del>-    ExceptionOr&lt;void&gt; insertDTMF(const String&amp; tones, Optional&lt;int&gt; duration, Optional&lt;int&gt; interToneGap);
</del><ins>+    ExceptionOr&lt;void&gt; insertDTMF(const String&amp; tones, std::optional&lt;int&gt; duration, std::optional&lt;int&gt; interToneGap);
</ins><span class="cx"> 
</span><span class="cx">     using RefCounted::ref;
</span><span class="cx">     using RefCounted::deref;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCIceCandidatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">     String sdpMid;
</span><span class="cx">     dictionary.getWithUndefinedOrNullCheck(&quot;sdpMid&quot;, sdpMid);
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned short&gt; sdpMLineIndex;
</del><ins>+    std::optional&lt;unsigned short&gt; sdpMLineIndex;
</ins><span class="cx">     String sdpMLineIndexString;
</span><span class="cx"> 
</span><span class="cx">     if (dictionary.getWithUndefinedOrNullCheck(&quot;sdpMLineIndex&quot;, sdpMLineIndexString)) {
</span><span class="lines">@@ -66,12 +66,12 @@
</span><span class="cx">     return adoptRef(*new RTCIceCandidate(candidate, sdpMid, sdpMLineIndex));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;RTCIceCandidate&gt; RTCIceCandidate::create(const String&amp; candidate, const String&amp; sdpMid, Optional&lt;unsigned short&gt; sdpMLineIndex)
</del><ins>+Ref&lt;RTCIceCandidate&gt; RTCIceCandidate::create(const String&amp; candidate, const String&amp; sdpMid, std::optional&lt;unsigned short&gt; sdpMLineIndex)
</ins><span class="cx"> {
</span><span class="cx">     return adoptRef(*new RTCIceCandidate(candidate, sdpMid, sdpMLineIndex));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RTCIceCandidate::RTCIceCandidate(const String&amp; candidate, const String&amp; sdpMid, Optional&lt;unsigned short&gt; sdpMLineIndex)
</del><ins>+RTCIceCandidate::RTCIceCandidate(const String&amp; candidate, const String&amp; sdpMid, std::optional&lt;unsigned short&gt; sdpMLineIndex)
</ins><span class="cx">     : m_candidate(candidate)
</span><span class="cx">     , m_sdpMid(sdpMid)
</span><span class="cx">     , m_sdpMLineIndex(sdpMLineIndex)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCIceCandidateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCIceCandidate.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCIceCandidate.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediastream/RTCIceCandidate.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,18 +44,18 @@
</span><span class="cx"> class RTCIceCandidate : public RefCounted&lt;RTCIceCandidate&gt;, public ScriptWrappable {
</span><span class="cx"> public:
</span><span class="cx">     static ExceptionOr&lt;Ref&lt;RTCIceCandidate&gt;&gt; create(const Dictionary&amp;);
</span><del>-    static Ref&lt;RTCIceCandidate&gt; create(const String&amp; candidate, const String&amp; sdpMid, Optional&lt;unsigned short&gt; sdpMLineIndex);
</del><ins>+    static Ref&lt;RTCIceCandidate&gt; create(const String&amp; candidate, const String&amp; sdpMid, std::optional&lt;unsigned short&gt; sdpMLineIndex);
</ins><span class="cx"> 
</span><span class="cx">     const String&amp; candidate() const { return m_candidate; }
</span><span class="cx">     const String&amp; sdpMid() const { return m_sdpMid; }
</span><del>-    Optional&lt;unsigned short&gt; sdpMLineIndex() const { return m_sdpMLineIndex; }
</del><ins>+    std::optional&lt;unsigned short&gt; sdpMLineIndex() const { return m_sdpMLineIndex; }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit RTCIceCandidate(const String&amp; candidate, const String&amp; sdpMid, Optional&lt;unsigned short&gt; sdpMLineIndex);
</del><ins>+    explicit RTCIceCandidate(const String&amp; candidate, const String&amp; sdpMid, std::optional&lt;unsigned short&gt; sdpMLineIndex);
</ins><span class="cx"> 
</span><span class="cx">     String m_candidate;
</span><span class="cx">     String m_sdpMid;
</span><del>-    Optional&lt;unsigned short&gt; m_sdpMLineIndex;
</del><ins>+    std::optional&lt;unsigned short&gt; m_sdpMLineIndex;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamSDPProcessorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -327,15 +327,15 @@
</span><span class="cx">     return configuration;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;IceCandidate&gt; iceCandidateFromJSON(const String&amp; json)
</del><ins>+static std::optional&lt;IceCandidate&gt; iceCandidateFromJSON(const String&amp; json)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;InspectorValue&gt; value;
</span><span class="cx">     if (!InspectorValue::parseJSON(json, value))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;InspectorObject&gt; candidateObject;
</span><span class="cx">     if (!value-&gt;asObject(candidateObject))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return createCandidate(*candidateObject);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesproximityDeviceProximityEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/proximity/DeviceProximityEvent.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/proximity/DeviceProximityEvent.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/proximity/DeviceProximityEvent.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -40,9 +40,9 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     struct Init : EventInit {
</span><del>-        Optional&lt;double&gt; value;
-        Optional&lt;double&gt; min;
-        Optional&lt;double&gt; max;
</del><ins>+        std::optional&lt;double&gt; value;
+        std::optional&lt;double&gt; min;
+        std::optional&lt;double&gt; max;
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     static Ref&lt;DeviceProximityEvent&gt; create(const AtomicString&amp; type, const Init&amp; initializer, IsTrusted isTrusted = IsTrusted::No)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsReadableStreamSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamSource.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/ReadableStreamSource.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamSource.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -63,8 +63,8 @@
</span><span class="cx">     virtual void doCancel() = 0;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Optional&lt;DOMPromise&lt;void&gt;&gt; m_promise;
-    Optional&lt;ReadableStreamDefaultController&gt; m_controller;
</del><ins>+    std::optional&lt;DOMPromise&lt;void&gt;&gt; m_promise;
+    std::optional&lt;ReadableStreamDefaultController&gt; m_controller;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> inline void ReadableStreamSource::start(ReadableStreamDefaultController&amp;&amp; controller, DOMPromise&lt;void&gt;&amp;&amp; promise)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> inline void ReadableStreamSource::startFinished()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_promise);
</span><del>-    std::exchange(m_promise, Nullopt).value().resolve();
</del><ins>+    std::exchange(m_promise, std::nullopt).value().resolve();
</ins><span class="cx">     setInactive();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx"> inline void ReadableStreamSource::pullFinished()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_promise);
</span><del>-    std::exchange(m_promise, Nullopt).value().resolve();
</del><ins>+    std::exchange(m_promise, std::nullopt).value().resolve();
</ins><span class="cx">     setInactive();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx"> inline void ReadableStreamSource::clean()
</span><span class="cx"> {
</span><span class="cx">     if (m_promise) {
</span><del>-        m_promise = Nullopt;
</del><ins>+        m_promise = std::nullopt;
</ins><span class="cx">         setInactive();
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -437,7 +437,7 @@
</span><span class="cx">     return output(0)-&gt;numberOfChannels();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;void&gt; AudioBufferSourceNode::start(double when, double grainOffset, Optional&lt;double&gt; optionalGrainDuration)
</del><ins>+ExceptionOr&lt;void&gt; AudioBufferSourceNode::start(double when, double grainOffset, std::optional&lt;double&gt; optionalGrainDuration)
</ins><span class="cx"> {
</span><span class="cx">     double grainDuration = 0;
</span><span class="cx">     if (optionalGrainDuration)
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     unsigned numberOfChannels();
</span><span class="cx"> 
</span><span class="cx">     // Play-state
</span><del>-    ExceptionOr&lt;void&gt; start(double when, double grainOffset, Optional&lt;double&gt; grainDuration);
</del><ins>+    ExceptionOr&lt;void&gt; start(double when, double grainOffset, std::optional&lt;double&gt; grainDuration);
</ins><span class="cx"> 
</span><span class="cx">     // Note: the attribute was originally exposed as .looping, but to be more consistent in naming with &lt;audio&gt;
</span><span class="cx">     // and with how it's described in the specification, the proper attribute name is .loop
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebdatabaseSQLResultSeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webdatabase/SQLResultSet.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webdatabase/SQLResultSet.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/webdatabase/SQLResultSet.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     SQLResultSet();
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;SQLResultSetRowList&gt; m_rows;
</span><del>-    Optional&lt;int64_t&gt; m_insertId;
</del><ins>+    std::optional&lt;int64_t&gt; m_insertId;
</ins><span class="cx">     int m_rowsAffected { 0 };
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -378,7 +378,7 @@
</span><span class="cx">     return { };
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;void&gt; WebSocket::close(Optional&lt;unsigned short&gt; optionalCode, const String&amp; reason)
</del><ins>+ExceptionOr&lt;void&gt; WebSocket::close(std::optional&lt;unsigned short&gt; optionalCode, const String&amp; reason)
</ins><span class="cx"> {
</span><span class="cx">     int code = optionalCode ? optionalCode.value() : static_cast&lt;int&gt;(WebSocketChannel::CloseEventCodeNotSpecified);
</span><span class="cx">     if (code == WebSocketChannel::CloseEventCodeNotSpecified)
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocket.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx">     ExceptionOr&lt;void&gt; send(JSC::ArrayBufferView&amp;);
</span><span class="cx">     ExceptionOr&lt;void&gt; send(Blob&amp;);
</span><span class="cx"> 
</span><del>-    ExceptionOr&lt;void&gt; close(Optional&lt;unsigned short&gt; code, const String&amp; reason);
</del><ins>+    ExceptionOr&lt;void&gt; close(std::optional&lt;unsigned short&gt; code, const String&amp; reason);
</ins><span class="cx"> 
</span><span class="cx">     const URL&amp; url() const;
</span><span class="cx">     State readyState() const;
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketChannelcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -307,7 +307,7 @@
</span><span class="cx">     deref();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebSocketChannel::didReceiveSocketStreamData(SocketStreamHandle&amp; handle, const char* data, Optional&lt;size_t&gt; len)
</del><ins>+void WebSocketChannel::didReceiveSocketStreamData(SocketStreamHandle&amp; handle, const char* data, std::optional&lt;size_t&gt; len)
</ins><span class="cx"> {
</span><span class="cx">     if (len)
</span><span class="cx">         LOG(Network, &quot;WebSocketChannel %p didReceiveSocketStreamData() Received %zu bytes&quot;, this, len.value());
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketChannelh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocketChannel.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocketChannel.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketChannel.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">     // SocketStreamHandleClient functions.
</span><span class="cx">     void didOpenSocketStream(SocketStreamHandle&amp;) final;
</span><span class="cx">     void didCloseSocketStream(SocketStreamHandle&amp;) final;
</span><del>-    void didReceiveSocketStreamData(SocketStreamHandle&amp;, const char*, Optional&lt;size_t&gt;) final;
</del><ins>+    void didReceiveSocketStreamData(SocketStreamHandle&amp;, const char*, std::optional&lt;size_t&gt;) final;
</ins><span class="cx">     void didUpdateBufferedAmount(SocketStreamHandle&amp;, size_t bufferedAmount) final;
</span><span class="cx">     void didFailSocketStream(SocketStreamHandle&amp;, const SocketStreamError&amp;) final;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsgenericIDLTypesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/generic/IDLTypes.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/generic/IDLTypes.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/generic/IDLTypes.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,8 +44,8 @@
</span><span class="cx"> struct IDLType {
</span><span class="cx">     using ImplementationType = T;
</span><span class="cx"> 
</span><del>-    using NullableType = Optional&lt;ImplementationType&gt;;
-    static NullableType nullValue() { return Nullopt; }
</del><ins>+    using NullableType = std::optional&lt;ImplementationType&gt;;
+    static NullableType nullValue() { return std::nullopt; }
</ins><span class="cx">     static bool isNullValue(const NullableType&amp; value) { return !value; }
</span><span class="cx">     static ImplementationType extractValueFromNullable(const NullableType&amp; value) { return value.value(); }
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsCachedModuleScripth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/CachedModuleScript.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/CachedModuleScript.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/CachedModuleScript.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     void notifyLoadFailed(LoadableScript::Error&amp;&amp;);
</span><span class="cx">     void notifyLoadWasCanceled();
</span><span class="cx"> 
</span><del>-    const Optional&lt;LoadableScript::Error&gt;&amp; error() const { return m_error; }
</del><ins>+    const std::optional&lt;LoadableScript::Error&gt;&amp; error() const { return m_error; }
</ins><span class="cx">     bool wasCanceled() const { return m_wasCanceled; }
</span><span class="cx">     bool isLoaded() const { return m_isLoaded; }
</span><span class="cx"> 
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">     HashCountedSet&lt;CachedModuleScriptClient*&gt; m_clients;
</span><span class="cx">     String m_nonce;
</span><span class="cx">     String m_crossOriginMode;
</span><del>-    Optional&lt;LoadableScript::Error&gt; m_error;
</del><ins>+    std::optional&lt;LoadableScript::Error&gt; m_error;
</ins><span class="cx">     bool m_wasCanceled { false };
</span><span class="cx">     bool m_isLoaded { false };
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsDictionaryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/Dictionary.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/Dictionary.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/Dictionary.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">     template&lt;typename Result&gt; bool get(const char* propertyName, Result&amp;) const;
</span><span class="cx">     template&lt;typename Result&gt; bool get(const String&amp; propertyName, Result&amp;) const;
</span><span class="cx"> 
</span><del>-    template&lt;typename Result&gt; Optional&lt;Result&gt; get(const char* propertyName) const;
</del><ins>+    template&lt;typename Result&gt; std::optional&lt;Result&gt; get(const char* propertyName) const;
</ins><span class="cx"> 
</span><span class="cx">     template&lt;typename T&gt; RefPtr&lt;EventListener&gt; getEventListener(const char* propertyName, T* target) const;
</span><span class="cx">     template&lt;typename T&gt; RefPtr&lt;EventListener&gt; getEventListener(const String&amp; propertyName, T* target) const;
</span><span class="lines">@@ -79,11 +79,11 @@
</span><span class="cx">     return get(propertyName.utf8().data(), result);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;typename Result&gt; Optional&lt;Result&gt; Dictionary::get(const char* propertyName) const
</del><ins>+template&lt;typename Result&gt; std::optional&lt;Result&gt; Dictionary::get(const char* propertyName) const
</ins><span class="cx"> {
</span><span class="cx">     Result result;
</span><span class="cx">     if (!get(propertyName, result))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsIDBBindingUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -412,7 +412,7 @@
</span><span class="cx">     outKey = IndexKey(WTFMove(keyDatas));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue toJS(ExecState&amp; state, JSDOMGlobalObject&amp; globalObject, const Optional&lt;IDBKeyPath&gt;&amp; keyPath)
</del><ins>+JSValue toJS(ExecState&amp; state, JSDOMGlobalObject&amp; globalObject, const std::optional&lt;IDBKeyPath&gt;&amp; keyPath)
</ins><span class="cx"> {
</span><span class="cx">     if (!keyPath)
</span><span class="cx">         return jsNull();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsIDBBindingUtilitiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> class ThreadSafeDataBuffer;
</span><span class="cx"> 
</span><span class="cx"> // FIXME: Remove this once we support returning union types.
</span><del>-JSC::JSValue toJS(JSC::ExecState&amp;, JSDOMGlobalObject&amp;, const Optional&lt;IDBKeyPath&gt;&amp;);
</del><ins>+JSC::JSValue toJS(JSC::ExecState&amp;, JSDOMGlobalObject&amp;, const std::optional&lt;IDBKeyPath&gt;&amp;);
</ins><span class="cx"> 
</span><span class="cx"> RefPtr&lt;IDBKey&gt; maybeCreateIDBKeyFromScriptValueAndKeyPath(JSC::ExecState&amp;, const JSC::JSValue&amp;, const IDBKeyPath&amp;);
</span><span class="cx"> bool canInjectIDBKeyIntoScriptValue(JSC::ExecState&amp;, const JSC::JSValue&amp;, const IDBKeyPath&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCryptoKeySerializationJWKcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -177,7 +177,7 @@
</span><span class="cx">     return WTFMove(rsaKeyParameters);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;CryptoAlgorithmPair&gt; JSCryptoKeySerializationJWK::reconcileAlgorithm(CryptoAlgorithm* suggestedAlgorithm, CryptoAlgorithmParametersDeprecated* suggestedParameters) const
</del><ins>+std::optional&lt;CryptoAlgorithmPair&gt; JSCryptoKeySerializationJWK::reconcileAlgorithm(CryptoAlgorithm* suggestedAlgorithm, CryptoAlgorithmParametersDeprecated* suggestedParameters) const
</ins><span class="cx"> {
</span><span class="cx">     VM&amp; vm = m_exec-&gt;vm();
</span><span class="cx">     auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="lines">@@ -234,7 +234,7 @@
</span><span class="cx">         parameters = adoptRef(*new CryptoAlgorithmParametersDeprecated);
</span><span class="cx">     } else {
</span><span class="cx">         throwTypeError(m_exec, scope, &quot;Unsupported JWK algorithm &quot; + m_jwkAlgorithmName);
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!suggestedAlgorithm)
</span><span class="lines">@@ -244,11 +244,11 @@
</span><span class="cx">         return CryptoAlgorithmPair { suggestedAlgorithm, suggestedParameters };
</span><span class="cx"> 
</span><span class="cx">     if (algorithm-&gt;identifier() != suggestedAlgorithm-&gt;identifier())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (algorithm-&gt;identifier() == CryptoAlgorithmIdentifier::HMAC) {
</span><span class="cx">         if (downcast&lt;CryptoAlgorithmHmacParamsDeprecated&gt;(*parameters).hash != downcast&lt;CryptoAlgorithmHmacParamsDeprecated&gt;(*suggestedParameters).hash)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         return CryptoAlgorithmPair { suggestedAlgorithm, suggestedParameters };
</span><span class="cx">     }
</span><span class="cx">     if (algorithm-&gt;identifier() == CryptoAlgorithmIdentifier::RSASSA_PKCS1_v1_5
</span><span class="lines">@@ -258,7 +258,7 @@
</span><span class="cx">         ASSERT(rsaKeyParameters.hasHash);
</span><span class="cx">         if (suggestedRSAKeyParameters.hasHash) {
</span><span class="cx">             if (suggestedRSAKeyParameters.hash != rsaKeyParameters.hash)
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             return CryptoAlgorithmPair { suggestedAlgorithm, suggestedParameters };
</span><span class="cx">         }
</span><span class="cx">         suggestedRSAKeyParameters.hasHash = true;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCryptoKeySerializationJWKh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">     static String serialize(JSC::ExecState* exec, const CryptoKey&amp;);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Optional&lt;CryptoAlgorithmPair&gt; reconcileAlgorithm(CryptoAlgorithm*, CryptoAlgorithmParametersDeprecated*) const override;
</del><ins>+    std::optional&lt;CryptoAlgorithmPair&gt; reconcileAlgorithm(CryptoAlgorithm*, CryptoAlgorithmParametersDeprecated*) const override;
</ins><span class="cx"> 
</span><span class="cx">     void reconcileUsages(CryptoKeyUsageBitmap&amp;) const override;
</span><span class="cx">     void reconcileExtractable(bool&amp;) const override;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMConverth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMConvert.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMConvert.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSDOMConvert.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> template&lt;typename T&gt; T convertDictionary(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> 
</span><span class="cx"> // Specialized by generated code for IDL enumeration conversion.
</span><del>-template&lt;typename T&gt; Optional&lt;T&gt; parseEnumeration(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;typename T&gt; std::optional&lt;T&gt; parseEnumeration(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;typename T&gt; T convertEnumeration(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;typename T&gt; const char* expectedEnumerationValues();
</span><span class="cx"> 
</span><span class="lines">@@ -1026,7 +1026,7 @@
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ReturnType, typename T&gt;
</span><span class="cx"> struct ConditionalConverter&lt;ReturnType, T, true&gt; {
</span><del>-    static Optional&lt;ReturnType&gt; convert(JSC::ExecState&amp; state, JSC::JSValue value)
</del><ins>+    static std::optional&lt;ReturnType&gt; convert(JSC::ExecState&amp; state, JSC::JSValue value)
</ins><span class="cx">     {
</span><span class="cx">         return ReturnType(Converter&lt;T&gt;::convert(state, value));
</span><span class="cx">     }
</span><span class="lines">@@ -1034,9 +1034,9 @@
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ReturnType, typename T&gt;
</span><span class="cx"> struct ConditionalConverter&lt;ReturnType, T, false&gt; {
</span><del>-    static Optional&lt;ReturnType&gt; convert(JSC::ExecState&amp;, JSC::JSValue)
</del><ins>+    static std::optional&lt;ReturnType&gt; convert(JSC::ExecState&amp;, JSC::JSValue)
</ins><span class="cx">     {
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -1134,7 +1134,7 @@
</span><span class="cx">         //     2. If types includes object, then return the IDL value that is a reference to the object V.
</span><span class="cx">         //         (FIXME: Add support for object and step 4.2)
</span><span class="cx">         if (brigand::any&lt;TypeList, IsIDLInterface&lt;brigand::_1&gt;&gt;::value) {
</span><del>-            Optional&lt;ReturnType&gt; returnValue;
</del><ins>+            std::optional&lt;ReturnType&gt; returnValue;
</ins><span class="cx">             brigand::for_each&lt;InterfaceTypeList&gt;([&amp;](auto&amp;&amp; type) {
</span><span class="cx">                 if (returnValue)
</span><span class="cx">                     return;
</span><span class="lines">@@ -1257,7 +1257,7 @@
</span><span class="cx">     {
</span><span class="cx">         auto index = variant.index();
</span><span class="cx"> 
</span><del>-        Optional&lt;JSC::JSValue&gt; returnValue;
</del><ins>+        std::optional&lt;JSC::JSValue&gt; returnValue;
</ins><span class="cx">         brigand::for_each&lt;Sequence&gt;([&amp;](auto&amp;&amp; type) {
</span><span class="cx">             using I = typename WTF::RemoveCVAndReference&lt;decltype(type)&gt;::type::type;
</span><span class="cx">             if (I::value == index) {
</span><span class="lines">@@ -1302,13 +1302,13 @@
</span><span class="cx">     struct VariadicConverterBase {
</span><span class="cx">         using Item = typename IDLType::ImplementationType;
</span><span class="cx"> 
</span><del>-        static Optional&lt;Item&gt; convert(JSC::ExecState&amp; state, JSC::JSValue value)
</del><ins>+        static std::optional&lt;Item&gt; convert(JSC::ExecState&amp; state, JSC::JSValue value)
</ins><span class="cx">         {
</span><span class="cx">             auto&amp; vm = state.vm();
</span><span class="cx">             auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx"> 
</span><span class="cx">             auto result = Converter&lt;IDLType&gt;::convert(state, value);
</span><del>-            RETURN_IF_EXCEPTION(scope, Nullopt);
</del><ins>+            RETURN_IF_EXCEPTION(scope, std::nullopt);
</ins><span class="cx"> 
</span><span class="cx">             return WTFMove(result);
</span><span class="cx">         }
</span><span class="lines">@@ -1318,12 +1318,12 @@
</span><span class="cx">     struct VariadicConverterBase&lt;IDLInterface&lt;T&gt;&gt; {
</span><span class="cx">         using Item = std::reference_wrapper&lt;T&gt;;
</span><span class="cx"> 
</span><del>-        static Optional&lt;Item&gt; convert(JSC::ExecState&amp; state, JSC::JSValue value)
</del><ins>+        static std::optional&lt;Item&gt; convert(JSC::ExecState&amp; state, JSC::JSValue value)
</ins><span class="cx">         {
</span><span class="cx">             auto* result = Converter&lt;IDLInterface&lt;T&gt;&gt;::convert(state, value);
</span><span class="cx">             if (!result)
</span><del>-                return Nullopt;
-            return Optional&lt;Item&gt;(*result);
</del><ins>+                return std::nullopt;
+            return std::optional&lt;Item&gt;(*result);
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="lines">@@ -1334,7 +1334,7 @@
</span><span class="cx"> 
</span><span class="cx">         struct Result {
</span><span class="cx">             size_t argumentIndex;
</span><del>-            Optional&lt;Container&gt; arguments;
</del><ins>+            std::optional&lt;Container&gt; arguments;
</ins><span class="cx">         };
</span><span class="cx">     };
</span><span class="cx"> }
</span><span class="lines">@@ -1343,7 +1343,7 @@
</span><span class="cx"> {
</span><span class="cx">     size_t length = state.argumentCount();
</span><span class="cx">     if (startIndex &gt; length)
</span><del>-        return { 0, Nullopt };
</del><ins>+        return { 0, std::nullopt };
</ins><span class="cx"> 
</span><span class="cx">     typename Detail::VariadicConverter&lt;IDLType&gt;::Container result;
</span><span class="cx">     result.reserveInitialCapacity(length - startIndex);
</span><span class="lines">@@ -1351,7 +1351,7 @@
</span><span class="cx">     for (size_t i = startIndex; i &lt; length; ++i) {
</span><span class="cx">         auto value = Detail::VariadicConverter&lt;IDLType&gt;::convert(state, state.uncheckedArgument(i));
</span><span class="cx">         if (!value)
</span><del>-            return { i, Nullopt };
</del><ins>+            return { i, std::nullopt };
</ins><span class="cx">         result.uncheckedAppend(WTFMove(*value));
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMIterator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMIterator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSDOMIterator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx"> 
</span><span class="cx">     static void destroy(JSC::JSCell*);
</span><span class="cx"> 
</span><del>-    Optional&lt;typename DOMWrapped::Iterator&gt; m_iterator;
</del><ins>+    std::optional&lt;typename DOMWrapped::Iterator&gt; m_iterator;
</ins><span class="cx">     IterationKind m_kind;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -236,7 +236,7 @@
</span><span class="cx">         auto iteratorValue = m_iterator-&gt;next();
</span><span class="cx">         if (iteratorValue)
</span><span class="cx">             return createIteratorResultObject(&amp;state, asJS(state, iteratorValue), false);
</span><del>-        m_iterator = Nullopt;
</del><ins>+        m_iterator = std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     return createIteratorResultObject(&amp;state, JSC::jsUndefined(), true);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMPromiseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMPromise.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMPromise.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSDOMPromise.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -206,12 +206,21 @@
</span><span class="cx"> template&lt;typename Value&gt; class DOMPromise {
</span><span class="cx"> public:
</span><span class="cx">     DOMPromise(Ref&lt;DeferredPromise&gt;&amp;&amp; genericPromise) : m_promiseDeferred(WTFMove(genericPromise)) { }
</span><del>-
</del><span class="cx">     DOMPromise(DOMPromise&amp;&amp; promise) : m_promiseDeferred(WTFMove(promise.m_promiseDeferred)) { }
</span><ins>+    DOMPromise(const DOMPromise&amp; other) : m_promiseDeferred(other.m_promiseDeferred.copyRef()) { }
</ins><span class="cx"> 
</span><del>-    DOMPromise(const DOMPromise&amp;) = default;
-    DOMPromise&amp; operator=(DOMPromise const&amp;) = default;
</del><ins>+    DOMPromise&amp; operator=(const DOMPromise&amp; other)
+    {
+        m_promiseDeferred = other.copyRef();
+        return *this;
+    }
</ins><span class="cx"> 
</span><ins>+    DOMPromise&amp; operator=(DOMPromise&amp;&amp; other)
+    {
+        m_promiseDeferred = WTFMove(other.m_promiseDeferred);
+        return *this;
+    }
+
</ins><span class="cx">     template&lt;typename T = Value&gt;
</span><span class="cx">     typename std::enable_if&lt;!std::is_void&lt;T&gt;::value, void&gt;::type resolve(typename PromiseResultInspector&lt;Value&gt;::Type value) { m_promiseDeferred-&gt;resolve(value); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx"> {
</span><span class="cx">     // (1) First, indexed properties.
</span><span class="cx">     // Hand off all indexed access to getOwnPropertySlotByIndex, which supports the indexed getter.
</span><del>-    if (Optional&lt;unsigned&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;unsigned&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return getOwnPropertySlotByIndex(object, state, index.value(), slot);
</span><span class="cx"> 
</span><span class="cx">     auto* thisObject = jsCast&lt;JSDOMWindow*&gt;(object);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDictionaryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDictionary.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDictionary.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSDictionary.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -105,10 +105,10 @@
</span><span class="cx">     GetPropertyResult tryGetProperty(const char* propertyName, JSC::JSValue&amp;) const;
</span><span class="cx"> 
</span><span class="cx">     template &lt;typename T&gt;
</span><del>-    static void convertValue(JSC::ExecState* execState, JSC::JSValue value, Optional&lt;T&gt;&amp; result)
</del><ins>+    static void convertValue(JSC::ExecState* execState, JSC::JSValue value, std::optional&lt;T&gt;&amp; result)
</ins><span class="cx">     {
</span><span class="cx">         if (value.isUndefinedOrNull()) {
</span><del>-            result = Nullopt;
</del><ins>+            result = std::nullopt;
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSFileCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSFileCustom.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSFileCustom.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSFileCustom.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> 
</span><span class="cx">     String normalizedType;
</span><del>-    Optional&lt;int64_t&gt; lastModified;
</del><ins>+    std::optional&lt;int64_t&gt; lastModified;
</ins><span class="cx"> 
</span><span class="cx">     arg = exec.argument(2);
</span><span class="cx">     if (!arg.isUndefinedOrNull()) {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLAllCollectionCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">         // Support for document.all(&lt;index&gt;) etc.
</span><span class="cx">         String string = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
</span><span class="cx">         RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><del>-        if (Optional&lt;uint32_t&gt; index = parseIndex(*string.impl()))
</del><ins>+        if (std::optional&lt;uint32_t&gt; index = parseIndex(*string.impl()))
</ins><span class="cx">             return JSValue::encode(toJS(exec, jsCollection-&gt;globalObject(), collection.item(index.value())));
</span><span class="cx"> 
</span><span class="cx">         // Support for document.images('&lt;name&gt;') etc.
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     // The second arg, if set, is the index of the item we want
</span><span class="cx">     String string = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
</span><span class="cx">     RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(*exec-&gt;argument(1).toWTFString(exec).impl())) {
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(*exec-&gt;argument(1).toWTFString(exec).impl())) {
</ins><span class="cx">         if (auto* item = collection.namedItemWithIndex(string, index.value()))
</span><span class="cx">             return JSValue::encode(toJS(exec, jsCollection-&gt;globalObject(), *item));
</span><span class="cx">     }
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">         return throwException(&amp;state, scope, createNotEnoughArgumentsError(&amp;state));
</span><span class="cx"> 
</span><span class="cx">     String argument = state.uncheckedArgument(0).toWTFString(&amp;state);
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(*argument.impl()))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(*argument.impl()))
</ins><span class="cx">         return toJS(&amp;state, globalObject(), wrapped().item(index.value()));
</span><span class="cx">     return namedItems(state, this, Identifier::fromString(&amp;state, argument));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLCanvasElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx">     auto type = convert&lt;IDLNullable&lt;IDLDOMString&gt;&gt;(state, state.argument(0));
</span><span class="cx">     RETURN_IF_EXCEPTION(scope, JSC::JSValue());
</span><span class="cx"> 
</span><del>-    Optional&lt;double&gt; quality;
</del><ins>+    std::optional&lt;double&gt; quality;
</ins><span class="cx">     auto qualityValue = state.argument(1);
</span><span class="cx">     if (qualityValue.isNumber())
</span><span class="cx">         quality = qualityValue.toNumber(&amp;state);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSImageConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSImageConstructor.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSImageConstructor.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSImageConstructor.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,8 +58,8 @@
</span><span class="cx">     // added to the window object. This is done to ensure that JSDocument::visit
</span><span class="cx">     // will be called, which will cause the image element to be marked if necessary.
</span><span class="cx">     toJS(state, jsConstructor-&gt;globalObject(), *document);
</span><del>-    Optional&lt;unsigned&gt; width;
-    Optional&lt;unsigned&gt; height;
</del><ins>+    std::optional&lt;unsigned&gt; width;
+    std::optional&lt;unsigned&gt; height;
</ins><span class="cx">     if (state-&gt;argumentCount() &gt; 0) {
</span><span class="cx">         width = state-&gt;uncheckedArgument(0).toUInt32(state);
</span><span class="cx">         if (state-&gt;argumentCount() &gt; 1)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMediaDevicesCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSMediaDevicesCustom.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMediaDevicesCustom.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSMediaDevicesCustom.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;StringConstraint&gt; createStringConstraint(const Dictionary&amp; mediaTrackConstraintSet, const String&amp; name, MediaConstraintType type, ConstraintSetType constraintSetType)
</del><ins>+static std::optional&lt;StringConstraint&gt; createStringConstraint(const Dictionary&amp; mediaTrackConstraintSet, const String&amp; name, MediaConstraintType type, ConstraintSetType constraintSetType)
</ins><span class="cx"> {
</span><span class="cx">     auto constraint = StringConstraint(name, type);
</span><span class="cx"> 
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (constraint.isEmpty()) {
</span><span class="cx">             LOG(Media, &quot;createStringConstraint() - ignoring string constraint '%s' with dictionary value since it has no valid or supported key/value pairs.&quot;, name.utf8().data());
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">         
</span><span class="cx">         return WTFMove(constraint);
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (constraint.isEmpty()) {
</span><span class="cx">             LOG(Media, &quot;createStringConstraint() - ignoring string constraint '%s' with array value since it is empty.&quot;, name.utf8().data());
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         return WTFMove(constraint);
</span><span class="lines">@@ -117,10 +117,10 @@
</span><span class="cx"> 
</span><span class="cx">     // Invalid constraint value.
</span><span class="cx">     LOG(Media, &quot;createStringConstraint() - ignoring string constraint '%s' since it has neither a dictionary nor sequence nor scalar value.&quot;, name.utf8().data());
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;BooleanConstraint&gt; createBooleanConstraint(const Dictionary&amp; mediaTrackConstraintSet, const String&amp; name, MediaConstraintType type, ConstraintSetType constraintSetType)
</del><ins>+static std::optional&lt;BooleanConstraint&gt; createBooleanConstraint(const Dictionary&amp; mediaTrackConstraintSet, const String&amp; name, MediaConstraintType type, ConstraintSetType constraintSetType)
</ins><span class="cx"> {
</span><span class="cx">     auto constraint = BooleanConstraint(name, type);
</span><span class="cx"> 
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (constraint.isEmpty()) {
</span><span class="cx">             LOG(Media, &quot;createBooleanConstraint() - ignoring boolean constraint '%s' with dictionary value since it has no valid or supported key/value pairs.&quot;, name.utf8().data());
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         return WTFMove(constraint);
</span><span class="lines">@@ -156,10 +156,10 @@
</span><span class="cx"> 
</span><span class="cx">     // Invalid constraint value.
</span><span class="cx">     LOG(Media, &quot;createBooleanConstraint() - ignoring boolean constraint '%s' since it has neither a dictionary nor scalar value.&quot;, name.utf8().data());
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;DoubleConstraint&gt; createDoubleConstraint(const Dictionary&amp; mediaTrackConstraintSet, const String&amp; name, MediaConstraintType type, ConstraintSetType constraintSetType)
</del><ins>+static std::optional&lt;DoubleConstraint&gt; createDoubleConstraint(const Dictionary&amp; mediaTrackConstraintSet, const String&amp; name, MediaConstraintType type, ConstraintSetType constraintSetType)
</ins><span class="cx"> {
</span><span class="cx">     auto constraint = DoubleConstraint(name, type);
</span><span class="cx"> 
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (constraint.isEmpty()) {
</span><span class="cx">             LOG(Media, &quot;createDoubleConstraint() - ignoring double constraint '%s' with dictionary value since it has no valid or supported key/value pairs.&quot;, name.utf8().data());
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         return WTFMove(constraint);
</span><span class="lines">@@ -203,10 +203,10 @@
</span><span class="cx"> 
</span><span class="cx">     // Invalid constraint value.
</span><span class="cx">     LOG(Media, &quot;createDoubleConstraint() - ignoring double constraint '%s' since it has neither a dictionary nor scalar value.&quot;, name.utf8().data());
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;IntConstraint&gt; createIntConstraint(const Dictionary&amp; mediaTrackConstraintSet, const String&amp; name, MediaConstraintType type, ConstraintSetType constraintSetType)
</del><ins>+static std::optional&lt;IntConstraint&gt; createIntConstraint(const Dictionary&amp; mediaTrackConstraintSet, const String&amp; name, MediaConstraintType type, ConstraintSetType constraintSetType)
</ins><span class="cx"> {
</span><span class="cx">     auto constraint = IntConstraint(name, type);
</span><span class="cx"> 
</span><span class="lines">@@ -231,7 +231,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (constraint.isEmpty()) {
</span><span class="cx">             LOG(Media, &quot;createIntConstraint() - ignoring long constraint '%s' with dictionary value since it has no valid or supported key/value pairs.&quot;, name.utf8().data());
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         return WTFMove(constraint);
</span><span class="lines">@@ -250,7 +250,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Invalid constraint value.
</span><span class="cx">     LOG(Media, &quot;createIntConstraint() - ignoring long constraint '%s' since it has neither a dictionary nor scalar value.&quot;, name.utf8().data());
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void parseMediaTrackConstraintSetForKey(const Dictionary&amp; mediaTrackConstraintSet, const String&amp; name, MediaTrackConstraintSetMap&amp; map, ConstraintSetType constraintSetType)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSWebKitSubtleCryptoCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -476,7 +476,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(keySerialization);
</span><span class="cx"> 
</span><del>-    Optional&lt;CryptoAlgorithmPair&gt; reconciledResult = keySerialization-&gt;reconcileAlgorithm(algorithm.get(), parameters.get());
</del><ins>+    std::optional&lt;CryptoAlgorithmPair&gt; reconciledResult = keySerialization-&gt;reconcileAlgorithm(algorithm.get(), parameters.get());
</ins><span class="cx">     if (!reconciledResult) {
</span><span class="cx">         if (!scope.exception())
</span><span class="cx">             throwTypeError(&amp;state, scope, ASCIILiteral(&quot;Algorithm specified in key is not compatible with one passed to importKey as argument&quot;));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsScriptControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/ScriptController.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/ScriptController.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/js/ScriptController.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -383,7 +383,7 @@
</span><span class="cx">             if (symbol-&gt;privateName() == moduleLoaderAlreadyReportedErrorSymbol) {
</span><span class="cx">                 moduleScript-&gt;notifyLoadFailed(LoadableScript::Error {
</span><span class="cx">                     LoadableScript::ErrorType::CachedScript,
</span><del>-                    Nullopt
</del><ins>+                    std::nullopt
</ins><span class="cx">                 });
</span><span class="cx">                 return JSValue::encode(jsUndefined());
</span><span class="cx">             }
</span><span class="lines">@@ -637,7 +637,7 @@
</span><span class="cx"> 
</span><span class="cx"> JSValue ScriptController::executeScriptInWorld(DOMWrapperWorld&amp; world, const String&amp; script, bool forceUserGesture)
</span><span class="cx"> {
</span><del>-    UserGestureIndicator gestureIndicator(forceUserGesture ? Optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : Nullopt);
</del><ins>+    UserGestureIndicator gestureIndicator(forceUserGesture ? std::optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : std::nullopt);
</ins><span class="cx">     ScriptSourceCode sourceCode(script, m_frame.document()-&gt;url());
</span><span class="cx"> 
</span><span class="cx">     if (!canExecuteScripts(AboutToExecuteScript) || isPaused())
</span><span class="lines">@@ -663,7 +663,7 @@
</span><span class="cx"> 
</span><span class="cx"> JSValue ScriptController::executeScript(const String&amp; script, bool forceUserGesture, ExceptionDetails* exceptionDetails)
</span><span class="cx"> {
</span><del>-    UserGestureIndicator gestureIndicator(forceUserGesture ? Optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : Nullopt);
</del><ins>+    UserGestureIndicator gestureIndicator(forceUserGesture ? std::optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : std::nullopt);
</ins><span class="cx">     return executeScript(ScriptSourceCode(script, m_frame.document()-&gt;url()), exceptionDetails);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -407,7 +407,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     if ($indexedGetterFunction) {
</span><del>-        push(@getOwnPropertySlotImpl, &quot;    Optional&lt;uint32_t&gt; optionalIndex = parseIndex(propertyName);\n&quot;);
</del><ins>+        push(@getOwnPropertySlotImpl, &quot;    std::optional&lt;uint32_t&gt; optionalIndex = parseIndex(propertyName);\n&quot;);
</ins><span class="cx"> 
</span><span class="cx">         # If the item function returns a string then we let the TreatReturnedNullStringAs handle the cases
</span><span class="cx">         # where the index is out of range.
</span><span class="lines">@@ -1000,7 +1000,7 @@
</span><span class="cx">     # FIXME: Change to take VM&amp; instead of ExecState&amp;.
</span><span class="cx">     # FIXME: Consider using toStringOrNull to make exception checking faster.
</span><span class="cx">     # FIXME: Consider finding a more efficient way to match against all the strings quickly.
</span><del>-    $result .= &quot;template&lt;&gt; Optional&lt;$className&gt; parseEnumeration&lt;$className&gt;(ExecState&amp; state, JSValue value)\n&quot;;
</del><ins>+    $result .= &quot;template&lt;&gt; std::optional&lt;$className&gt; parseEnumeration&lt;$className&gt;(ExecState&amp; state, JSValue value)\n&quot;;
</ins><span class="cx">     $result .= &quot;{\n&quot;;
</span><span class="cx">     $result .= &quot;    auto stringValue = value.toWTFString(&amp;state);\n&quot;;
</span><span class="cx">     foreach my $value (@{$enumeration-&gt;values}) {
</span><span class="lines">@@ -1012,7 +1012,7 @@
</span><span class="cx">         }
</span><span class="cx">         $result .= &quot;        return ${className}::${enumerationValueName};\n&quot;;
</span><span class="cx">     }
</span><del>-    $result .= &quot;    return Nullopt;\n&quot;;
</del><ins>+    $result .= &quot;    return std::nullopt;\n&quot;;
</ins><span class="cx">     $result .= &quot;}\n\n&quot;;
</span><span class="cx"> 
</span><span class="cx">     $result .= &quot;template&lt;&gt; $className convertEnumeration&lt;$className&gt;(ExecState&amp; state, JSValue value)\n&quot;;
</span><span class="lines">@@ -1063,7 +1063,7 @@
</span><span class="cx">     my $result = &quot;&quot;;
</span><span class="cx">     $result .= &quot;#if ${conditionalString}\n\n&quot; if $conditionalString;
</span><span class="cx">     $result .= &quot;template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, $className);\n\n&quot;;
</span><del>-    $result .= &quot;template&lt;&gt; Optional&lt;$className&gt; parseEnumeration&lt;$className&gt;(JSC::ExecState&amp;, JSC::JSValue);\n&quot;;
</del><ins>+    $result .= &quot;template&lt;&gt; std::optional&lt;$className&gt; parseEnumeration&lt;$className&gt;(JSC::ExecState&amp;, JSC::JSValue);\n&quot;;
</ins><span class="cx">     $result .= &quot;template&lt;&gt; $className convertEnumeration&lt;$className&gt;(JSC::ExecState&amp;, JSC::JSValue);\n&quot;;
</span><span class="cx">     $result .= &quot;template&lt;&gt; const char* expectedEnumerationValues&lt;$className&gt;();\n\n&quot;;
</span><span class="cx">     $result .= &quot;#endif\n\n&quot; if $conditionalString;
</span><span class="lines">@@ -1118,7 +1118,7 @@
</span><span class="cx">     }
</span><span class="cx">     if ($defaultValue eq &quot;null&quot;) {
</span><span class="cx">         if ($type-&gt;isUnion) {
</span><del>-            return &quot;Nullopt&quot; if $type-&gt;isNullable;
</del><ins>+            return &quot;std::nullopt&quot; if $type-&gt;isNullable;
</ins><span class="cx"> 
</span><span class="cx">             my $IDLType = GetIDLType($interface, $type);
</span><span class="cx">             return &quot;convert&lt;${IDLType}&gt;(state, jsNull());&quot;;
</span><span class="lines">@@ -1126,7 +1126,7 @@
</span><span class="cx">         return &quot;jsNull()&quot; if $type-&gt;name eq &quot;any&quot;;
</span><span class="cx">         return &quot;nullptr&quot; if $codeGenerator-&gt;IsWrapperType($type) || $codeGenerator-&gt;IsTypedArrayType($type);
</span><span class="cx">         return &quot;String()&quot; if $codeGenerator-&gt;IsStringType($type);
</span><del>-        return &quot;Nullopt&quot;;
</del><ins>+        return &quot;std::nullopt&quot;;
</ins><span class="cx">     }
</span><span class="cx">     if ($defaultValue eq &quot;[]&quot;) {
</span><span class="cx">         my $nativeType = GetNativeType($interface, $type);
</span><span class="lines">@@ -3423,7 +3423,7 @@
</span><span class="cx">             push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
</span><span class="cx">             push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><span class="cx">             if ($interface-&gt;extendedAttributes-&gt;{CustomIndexedSetter}) {
</span><del>-                push(@implContent, &quot;    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {\n&quot;);
</del><ins>+                push(@implContent, &quot;    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {\n&quot;);
</ins><span class="cx">                 push(@implContent, &quot;        thisObject-&gt;indexSetter(state, index.value(), value);\n&quot;);
</span><span class="cx">                 push(@implContent, &quot;        return true;\n&quot;);
</span><span class="cx">                 push(@implContent, &quot;    }\n&quot;);
</span><span class="lines">@@ -4418,7 +4418,7 @@
</span><span class="cx">             my $argumentLookupMethod = $argument-&gt;isOptional ? &quot;argument&quot; : &quot;uncheckedArgument&quot;;
</span><span class="cx"> 
</span><span class="cx">             if ($argument-&gt;isOptional &amp;&amp; !defined($argument-&gt;default)) {
</span><del>-                $nativeType = &quot;Optional&lt;$className&gt;&quot;;
</del><ins>+                $nativeType = &quot;std::optional&lt;$className&gt;&quot;;
</ins><span class="cx">                 $optionalValue = $name;
</span><span class="cx">                 $defineOptionalValue = $name;
</span><span class="cx">             }
</span><span class="lines">@@ -4473,8 +4473,8 @@
</span><span class="cx">                 $outer = &quot;state-&gt;$argumentLookupMethod($argumentIndex).isUndefined() ? $defaultValue : &quot;;
</span><span class="cx">                 $inner = &quot;state-&gt;uncheckedArgument($argumentIndex)&quot;;
</span><span class="cx">             } elsif ($argument-&gt;isOptional &amp;&amp; !defined($argument-&gt;default)) {
</span><del>-                # Use WTF::Optional&lt;&gt;() for optional arguments that are missing or undefined and that do not have a default value in the IDL.
-                $outer = &quot;state-&gt;$argumentLookupMethod($argumentIndex).isUndefined() ? Optional&lt;$nativeType&gt;() : &quot;;
</del><ins>+                # Use std::optional&lt;&gt;() for optional arguments that are missing or undefined and that do not have a default value in the IDL.
+                $outer = &quot;state-&gt;$argumentLookupMethod($argumentIndex).isUndefined() ? std::optional&lt;$nativeType&gt;() : &quot;;
</ins><span class="cx">                 $inner = &quot;state-&gt;uncheckedArgument($argumentIndex)&quot;;
</span><span class="cx">             } elsif (($argument-&gt;type-&gt;name eq &quot;EventListener&quot; || $argument-&gt;type-&gt;name eq &quot;XPathNSResolver&quot;) &amp;&amp; ($argument-&gt;isOptional || $type-&gt;isNullable)) {
</span><span class="cx">                 $outer = &quot;&quot;;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSFloat64Arraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSFloat64Array.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSFloat64Array.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSFloat64Array.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -174,7 +174,7 @@
</span><span class="cx"> {
</span><span class="cx">     JSFloat64Array* thisObject = jsCast&lt;JSFloat64Array*&gt;(object);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    Optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</del><ins>+    std::optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</ins><span class="cx">     if (index &amp;&amp; index.value() &lt; static_cast&lt;Float64Array*&gt;(thisObject-&gt;impl())-&gt;length()) {
</span><span class="cx">         slot.setValue(thisObject, thisObject-&gt;getByIndex(exec, index.value()));
</span><span class="cx">         return true;
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx"> {
</span><span class="cx">     JSFloat64Array* thisObject = jsCast&lt;JSFloat64Array*&gt;(object);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    Optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</del><ins>+    std::optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</ins><span class="cx">     if (index &amp;&amp; index.value() &lt; static_cast&lt;Float64Array*&gt;(thisObject-&gt;impl())-&gt;length()) {
</span><span class="cx">         descriptor.setDescriptor(thisObject-&gt;getByIndex(exec, index.value()), DontDelete);
</span><span class="cx">         return true;
</span><span class="lines">@@ -215,7 +215,7 @@
</span><span class="cx"> {
</span><span class="cx">     JSFloat64Array* thisObject = jsCast&lt;JSFloat64Array*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName)) {
</ins><span class="cx">         thisObject-&gt;indexSetter(exec, index.value(), value);
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> {
</span><span class="cx">     auto* thisObject = jsCast&lt;JSTestEventTarget*&gt;(object);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    Optional&lt;uint32_t&gt; optionalIndex = parseIndex(propertyName);
</del><ins>+    std::optional&lt;uint32_t&gt; optionalIndex = parseIndex(propertyName);
</ins><span class="cx">     if (optionalIndex &amp;&amp; optionalIndex.value() &lt; thisObject-&gt;wrapped().length()) {
</span><span class="cx">         unsigned index = optionalIndex.value();
</span><span class="cx">         unsigned attributes = ReadOnly;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::EnumType&gt; parseEnumeration&lt;TestObj::EnumType&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::EnumType&gt; parseEnumeration&lt;TestObj::EnumType&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue.isEmpty())
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx">         return TestObj::EnumType::EnumValue2;
</span><span class="cx">     if (stringValue == &quot;EnumValue3&quot;)
</span><span class="cx">         return TestObj::EnumType::EnumValue3;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestObj::EnumType convertEnumeration&lt;TestObj::EnumType&gt;(ExecState&amp; state, JSValue value)
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::Optional&gt; parseEnumeration&lt;TestObj::Optional&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::Optional&gt; parseEnumeration&lt;TestObj::Optional&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue.isEmpty())
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx">         return TestObj::Optional::OptionalValue2;
</span><span class="cx">     if (stringValue == &quot;OptionalValue3&quot;)
</span><span class="cx">         return TestObj::Optional::OptionalValue3;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestObj::Optional convertEnumeration&lt;TestObj::Optional&gt;(ExecState&amp; state, JSValue value)
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;AlternateEnumName&gt; parseEnumeration&lt;AlternateEnumName&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;AlternateEnumName&gt; parseEnumeration&lt;AlternateEnumName&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;enumValue1&quot;)
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx">         return AlternateEnumName::EnumValue1;
</span><span class="cx">     if (stringValue == &quot;EnumValue2&quot;)
</span><span class="cx">         return AlternateEnumName::EnumValue2;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; AlternateEnumName convertEnumeration&lt;AlternateEnumName&gt;(ExecState&amp; state, JSValue value)
</span><span class="lines">@@ -234,12 +234,12 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::EnumA&gt; parseEnumeration&lt;TestObj::EnumA&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::EnumA&gt; parseEnumeration&lt;TestObj::EnumA&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;A&quot;)
</span><span class="cx">         return TestObj::EnumA::A;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestObj::EnumA convertEnumeration&lt;TestObj::EnumA&gt;(ExecState&amp; state, JSValue value)
</span><span class="lines">@@ -273,12 +273,12 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::EnumB&gt; parseEnumeration&lt;TestObj::EnumB&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::EnumB&gt; parseEnumeration&lt;TestObj::EnumB&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;B&quot;)
</span><span class="cx">         return TestObj::EnumB::B;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestObj::EnumB convertEnumeration&lt;TestObj::EnumB&gt;(ExecState&amp; state, JSValue value)
</span><span class="lines">@@ -312,12 +312,12 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::EnumC&gt; parseEnumeration&lt;TestObj::EnumC&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::EnumC&gt; parseEnumeration&lt;TestObj::EnumC&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;C&quot;)
</span><span class="cx">         return TestObj::EnumC::C;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestObj::EnumC convertEnumeration&lt;TestObj::EnumC&gt;(ExecState&amp; state, JSValue value)
</span><span class="lines">@@ -351,7 +351,7 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::Kind&gt; parseEnumeration&lt;TestObj::Kind&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::Kind&gt; parseEnumeration&lt;TestObj::Kind&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;quick&quot;)
</span><span class="lines">@@ -358,7 +358,7 @@
</span><span class="cx">         return TestObj::Kind::Quick;
</span><span class="cx">     if (stringValue == &quot;dead&quot;)
</span><span class="cx">         return TestObj::Kind::Dead;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestObj::Kind convertEnumeration&lt;TestObj::Kind&gt;(ExecState&amp; state, JSValue value)
</span><span class="lines">@@ -390,7 +390,7 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::Size&gt; parseEnumeration&lt;TestObj::Size&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::Size&gt; parseEnumeration&lt;TestObj::Size&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;small&quot;)
</span><span class="lines">@@ -397,7 +397,7 @@
</span><span class="cx">         return TestObj::Size::Small;
</span><span class="cx">     if (stringValue == &quot;much-much-larger&quot;)
</span><span class="cx">         return TestObj::Size::MuchMuchLarger;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestObj::Size convertEnumeration&lt;TestObj::Size&gt;(ExecState&amp; state, JSValue value)
</span><span class="lines">@@ -429,7 +429,7 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::Confidence&gt; parseEnumeration&lt;TestObj::Confidence&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::Confidence&gt; parseEnumeration&lt;TestObj::Confidence&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;high&quot;)
</span><span class="lines">@@ -436,7 +436,7 @@
</span><span class="cx">         return TestObj::Confidence::High;
</span><span class="cx">     if (stringValue == &quot;kinda-low&quot;)
</span><span class="cx">         return TestObj::Confidence::KindaLow;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestObj::Confidence convertEnumeration&lt;TestObj::Confidence&gt;(ExecState&amp; state, JSValue value)
</span><span class="lines">@@ -554,7 +554,7 @@
</span><span class="cx">         result.nullableIntegerWithDefault = convert&lt;IDLNullable&lt;IDLLong&gt;&gt;(state, nullableIntegerWithDefaultValue);
</span><span class="cx">         RETURN_IF_EXCEPTION(throwScope, { });
</span><span class="cx">     } else
</span><del>-        result.nullableIntegerWithDefault = Nullopt;
</del><ins>+        result.nullableIntegerWithDefault = std::nullopt;
</ins><span class="cx">     JSValue nullableNodeValue = isNullOrUndefined ? jsUndefined() : object-&gt;get(&amp;state, Identifier::fromString(&amp;state, &quot;nullableNode&quot;));
</span><span class="cx">     if (!nullableNodeValue.isUndefined()) {
</span><span class="cx">         result.nullableNode = convert&lt;IDLNullable&lt;IDLInterface&lt;Node&gt;&gt;&gt;(state, nullableNodeValue);
</span><span class="lines">@@ -572,7 +572,7 @@
</span><span class="cx">         result.nullableUnionMember = convert&lt;IDLNullable&lt;IDLUnion&lt;IDLLong, IDLInterface&lt;Node&gt;&gt;&gt;&gt;(state, nullableUnionMemberValue);
</span><span class="cx">         RETURN_IF_EXCEPTION(throwScope, { });
</span><span class="cx">     } else
</span><del>-        result.nullableUnionMember = Nullopt;
</del><ins>+        result.nullableUnionMember = std::nullopt;
</ins><span class="cx">     JSValue restrictedDoubleValue = isNullOrUndefined ? jsUndefined() : object-&gt;get(&amp;state, Identifier::fromString(&amp;state, &quot;restrictedDouble&quot;));
</span><span class="cx">     if (!restrictedDoubleValue.isUndefined()) {
</span><span class="cx">         result.restrictedDouble = convert&lt;IDLDouble&gt;(state, restrictedDoubleValue);
</span><span class="lines">@@ -1816,7 +1816,7 @@
</span><span class="cx"> {
</span><span class="cx">     auto* thisObject = jsCast&lt;JSTestObj*&gt;(object);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    Optional&lt;uint32_t&gt; optionalIndex = parseIndex(propertyName);
</del><ins>+    std::optional&lt;uint32_t&gt; optionalIndex = parseIndex(propertyName);
</ins><span class="cx">     if (optionalIndex) {
</span><span class="cx">         unsigned index = optionalIndex.value();
</span><span class="cx">         unsigned attributes = ReadOnly;
</span><span class="lines">@@ -5369,7 +5369,7 @@
</span><span class="cx">     UNUSED_PARAM(throwScope);
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><span class="cx">     auto enumArgValue = state-&gt;argument(0);
</span><del>-    Optional&lt;TestObj::EnumType&gt; enumArg;
</del><ins>+    std::optional&lt;TestObj::EnumType&gt; enumArg;
</ins><span class="cx">     if (!enumArgValue.isUndefined()) {
</span><span class="cx">         enumArg = parseEnumeration&lt;TestObj::EnumType&gt;(*state, enumArgValue);
</span><span class="cx">         RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="lines">@@ -5991,7 +5991,7 @@
</span><span class="cx">     UNUSED_PARAM(state);
</span><span class="cx">     UNUSED_PARAM(throwScope);
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    auto opt = state-&gt;argument(0).isUndefined() ? Optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</del><ins>+    auto opt = state-&gt;argument(0).isUndefined() ? std::optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.methodWithOptionalArg(WTFMove(opt));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -6031,7 +6031,7 @@
</span><span class="cx">         return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
</span><span class="cx">     auto nonOpt = convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</span><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><del>-    auto opt = state-&gt;argument(1).isUndefined() ? Optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Normal);
</del><ins>+    auto opt = state-&gt;argument(1).isUndefined() ? std::optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.methodWithNonOptionalArgAndOptionalArg(WTFMove(nonOpt), WTFMove(opt));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -6053,9 +6053,9 @@
</span><span class="cx">         return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
</span><span class="cx">     auto nonOpt = convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</span><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><del>-    auto opt1 = state-&gt;argument(1).isUndefined() ? Optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Normal);
</del><ins>+    auto opt1 = state-&gt;argument(1).isUndefined() ? std::optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><del>-    auto opt2 = state-&gt;argument(2).isUndefined() ? Optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(2), IntegerConversionConfiguration::Normal);
</del><ins>+    auto opt2 = state-&gt;argument(2).isUndefined() ? std::optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(2), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.methodWithNonOptionalArgAndTwoOptionalArgs(WTFMove(nonOpt), WTFMove(opt1), WTFMove(opt2));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -6307,7 +6307,7 @@
</span><span class="cx">     UNUSED_PARAM(state);
</span><span class="cx">     UNUSED_PARAM(throwScope);
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    auto number = state-&gt;argument(0).isUndefined() ? Optional&lt;int64_t&gt;() : convert&lt;IDLLongLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</del><ins>+    auto number = state-&gt;argument(0).isUndefined() ? std::optional&lt;int64_t&gt;() : convert&lt;IDLLongLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.methodWithOptionalLongLong(WTFMove(number));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -6343,7 +6343,7 @@
</span><span class="cx">     UNUSED_PARAM(state);
</span><span class="cx">     UNUSED_PARAM(throwScope);
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    auto number = state-&gt;argument(0).isUndefined() ? Optional&lt;uint64_t&gt;() : convert&lt;IDLUnsignedLongLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</del><ins>+    auto number = state-&gt;argument(0).isUndefined() ? std::optional&lt;uint64_t&gt;() : convert&lt;IDLUnsignedLongLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.methodWithOptionalUnsignedLongLong(WTFMove(number));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -6379,7 +6379,7 @@
</span><span class="cx">     UNUSED_PARAM(state);
</span><span class="cx">     UNUSED_PARAM(throwScope);
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    auto array = state-&gt;argument(0).isUndefined() ? Optional&lt;Vector&lt;String&gt;&gt;() : convert&lt;IDLSequence&lt;IDLDOMString&gt;&gt;(*state, state-&gt;uncheckedArgument(0));
</del><ins>+    auto array = state-&gt;argument(0).isUndefined() ? std::optional&lt;Vector&lt;String&gt;&gt;() : convert&lt;IDLSequence&lt;IDLDOMString&gt;&gt;(*state, state-&gt;uncheckedArgument(0));
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.methodWithOptionalSequence(WTFMove(array));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -6415,7 +6415,7 @@
</span><span class="cx">     UNUSED_PARAM(state);
</span><span class="cx">     UNUSED_PARAM(throwScope);
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    auto b = state-&gt;argument(0).isUndefined() ? Optional&lt;bool&gt;() : convert&lt;IDLBoolean&gt;(*state, state-&gt;uncheckedArgument(0));
</del><ins>+    auto b = state-&gt;argument(0).isUndefined() ? std::optional&lt;bool&gt;() : convert&lt;IDLBoolean&gt;(*state, state-&gt;uncheckedArgument(0));
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.methodWithOptionalBoolean(WTFMove(b));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -6528,7 +6528,7 @@
</span><span class="cx">     UNUSED_PARAM(state);
</span><span class="cx">     UNUSED_PARAM(throwScope);
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    auto record = state-&gt;argument(0).isUndefined() ? Nullopt : convert&lt;IDLNullable&lt;IDLRecord&lt;IDLDOMString, IDLLong&gt;&gt;&gt;(*state, state-&gt;uncheckedArgument(0));
</del><ins>+    auto record = state-&gt;argument(0).isUndefined() ? std::nullopt : convert&lt;IDLNullable&lt;IDLRecord&lt;IDLDOMString, IDLLong&gt;&gt;&gt;(*state, state-&gt;uncheckedArgument(0));
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.methodWithOptionalRecord(WTFMove(record));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -6789,7 +6789,7 @@
</span><span class="cx">         return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
</span><span class="cx">     auto objArg = convert&lt;IDLNullable&lt;IDLInterface&lt;TestObj&gt;&gt;&gt;(*state, state-&gt;uncheckedArgument(0), [](JSC::ExecState&amp; state, JSC::ThrowScope&amp; scope) { throwArgumentTypeError(state, scope, 0, &quot;objArg&quot;, &quot;TestObject&quot;, &quot;overloadedMethod&quot;, &quot;TestObj&quot;); });
</span><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><del>-    auto longArg = state-&gt;argument(1).isUndefined() ? Optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Normal);
</del><ins>+    auto longArg = state-&gt;argument(1).isUndefined() ? std::optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.overloadedMethod(WTFMove(objArg), WTFMove(longArg));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -7098,7 +7098,7 @@
</span><span class="cx">         return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
</span><span class="cx">     auto objArg = convert&lt;IDLNullable&lt;IDLInterface&lt;TestObj&gt;&gt;&gt;(*state, state-&gt;uncheckedArgument(0), [](JSC::ExecState&amp; state, JSC::ThrowScope&amp; scope) { throwArgumentTypeError(state, scope, 0, &quot;objArg&quot;, &quot;TestObject&quot;, &quot;overloadedMethodWithOptionalParameter&quot;, &quot;TestObj&quot;); });
</span><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><del>-    auto longArg = state-&gt;argument(1).isUndefined() ? Optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Normal);
</del><ins>+    auto longArg = state-&gt;argument(1).isUndefined() ? std::optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.overloadedMethodWithOptionalParameter(WTFMove(objArg), WTFMove(longArg));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -7505,7 +7505,7 @@
</span><span class="cx">     VM&amp; vm = state-&gt;vm();
</span><span class="cx">     auto throwScope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">     UNUSED_PARAM(throwScope);
</span><del>-    auto arg = state-&gt;argument(0).isUndefined() ? Optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</del><ins>+    auto arg = state-&gt;argument(0).isUndefined() ? std::optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     return JSValue::encode(toJS&lt;IDLLong&gt;(TestObj::classMethodWithOptional(WTFMove(arg))));
</span><span class="cx"> }
</span><span class="lines">@@ -8060,7 +8060,7 @@
</span><span class="cx">     UNUSED_PARAM(state);
</span><span class="cx">     UNUSED_PARAM(throwScope);
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    auto a = state-&gt;argument(0).isUndefined() ? Optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</del><ins>+    auto a = state-&gt;argument(0).isUndefined() ? std::optional&lt;int32_t&gt;() : convert&lt;IDLLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Normal);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.testPromiseFunctionWithOptionalIntArgument(WTFMove(a), WTFMove(promise));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -103,19 +103,19 @@
</span><span class="cx"> };
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestObj::EnumType);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::EnumType&gt; parseEnumeration&lt;TestObj::EnumType&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::EnumType&gt; parseEnumeration&lt;TestObj::EnumType&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestObj::EnumType convertEnumeration&lt;TestObj::EnumType&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestObj::EnumType&gt;();
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestObj::Optional);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::Optional&gt; parseEnumeration&lt;TestObj::Optional&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::Optional&gt; parseEnumeration&lt;TestObj::Optional&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestObj::Optional convertEnumeration&lt;TestObj::Optional&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestObj::Optional&gt;();
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, AlternateEnumName);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;AlternateEnumName&gt; parseEnumeration&lt;AlternateEnumName&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;AlternateEnumName&gt; parseEnumeration&lt;AlternateEnumName&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; AlternateEnumName convertEnumeration&lt;AlternateEnumName&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;AlternateEnumName&gt;();
</span><span class="cx"> 
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestObj::EnumA);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::EnumA&gt; parseEnumeration&lt;TestObj::EnumA&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::EnumA&gt; parseEnumeration&lt;TestObj::EnumA&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestObj::EnumA convertEnumeration&lt;TestObj::EnumA&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestObj::EnumA&gt;();
</span><span class="cx"> 
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestObj::EnumB);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::EnumB&gt; parseEnumeration&lt;TestObj::EnumB&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::EnumB&gt; parseEnumeration&lt;TestObj::EnumB&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestObj::EnumB convertEnumeration&lt;TestObj::EnumB&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestObj::EnumB&gt;();
</span><span class="cx"> 
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestObj::EnumC);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::EnumC&gt; parseEnumeration&lt;TestObj::EnumC&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::EnumC&gt; parseEnumeration&lt;TestObj::EnumC&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestObj::EnumC convertEnumeration&lt;TestObj::EnumC&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestObj::EnumC&gt;();
</span><span class="cx"> 
</span><span class="lines">@@ -151,19 +151,19 @@
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestObj::Kind);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::Kind&gt; parseEnumeration&lt;TestObj::Kind&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::Kind&gt; parseEnumeration&lt;TestObj::Kind&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestObj::Kind convertEnumeration&lt;TestObj::Kind&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestObj::Kind&gt;();
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestObj::Size);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::Size&gt; parseEnumeration&lt;TestObj::Size&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::Size&gt; parseEnumeration&lt;TestObj::Size&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestObj::Size convertEnumeration&lt;TestObj::Size&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestObj::Size&gt;();
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestObj::Confidence);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestObj::Confidence&gt; parseEnumeration&lt;TestObj::Confidence&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestObj::Confidence&gt; parseEnumeration&lt;TestObj::Confidence&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestObj::Confidence convertEnumeration&lt;TestObj::Confidence&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestObj::Confidence&gt;();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStandaloneDictionarycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt; parseEnumeration&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt; parseEnumeration&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;enumValue1&quot;)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">         return TestStandaloneDictionary::EnumInStandaloneDictionaryFile::EnumValue1;
</span><span class="cx">     if (stringValue == &quot;enumValue2&quot;)
</span><span class="cx">         return TestStandaloneDictionary::EnumInStandaloneDictionaryFile::EnumValue2;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestStandaloneDictionary::EnumInStandaloneDictionaryFile convertEnumeration&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt;(ExecState&amp; state, JSValue value)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStandaloneDictionaryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestStandaloneDictionary::EnumInStandaloneDictionaryFile);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt; parseEnumeration&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt; parseEnumeration&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestStandaloneDictionary::EnumInStandaloneDictionaryFile convertEnumeration&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestStandaloneDictionary::EnumInStandaloneDictionaryFile&gt;();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStandaloneEnumerationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     return jsStringWithCache(&amp;state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestStandaloneEnumeration&gt; parseEnumeration&lt;TestStandaloneEnumeration&gt;(ExecState&amp; state, JSValue value)
</del><ins>+template&lt;&gt; std::optional&lt;TestStandaloneEnumeration&gt; parseEnumeration&lt;TestStandaloneEnumeration&gt;(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;enumValue1&quot;)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">         return TestStandaloneEnumeration::EnumValue1;
</span><span class="cx">     if (stringValue == &quot;enumValue2&quot;)
</span><span class="cx">         return TestStandaloneEnumeration::EnumValue2;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; TestStandaloneEnumeration convertEnumeration&lt;TestStandaloneEnumeration&gt;(ExecState&amp; state, JSValue value)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStandaloneEnumerationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneEnumeration.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneEnumeration.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneEnumeration.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; JSC::JSString* convertEnumerationToJS(JSC::ExecState&amp;, TestStandaloneEnumeration);
</span><span class="cx"> 
</span><del>-template&lt;&gt; Optional&lt;TestStandaloneEnumeration&gt; parseEnumeration&lt;TestStandaloneEnumeration&gt;(JSC::ExecState&amp;, JSC::JSValue);
</del><ins>+template&lt;&gt; std::optional&lt;TestStandaloneEnumeration&gt; parseEnumeration&lt;TestStandaloneEnumeration&gt;(JSC::ExecState&amp;, JSC::JSValue);
</ins><span class="cx"> template&lt;&gt; TestStandaloneEnumeration convertEnumeration&lt;TestStandaloneEnumeration&gt;(JSC::ExecState&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;&gt; const char* expectedEnumerationValues&lt;TestStandaloneEnumeration&gt;();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -528,7 +528,7 @@
</span><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     auto color = state-&gt;argument(3).isUndefined() ? String() : convert&lt;IDLDOMString&gt;(*state, state-&gt;uncheckedArgument(3), StringConversionConfiguration::Normal);
</span><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><del>-    auto alpha = state-&gt;argument(4).isUndefined() ? Optional&lt;float&gt;() : convert&lt;IDLUnrestrictedFloat&gt;(*state, state-&gt;uncheckedArgument(4));
</del><ins>+    auto alpha = state-&gt;argument(4).isUndefined() ? std::optional&lt;float&gt;() : convert&lt;IDLUnrestrictedFloat&gt;(*state, state-&gt;uncheckedArgument(4));
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.setShadow(WTFMove(width), WTFMove(height), WTFMove(blur), WTFMove(color), WTFMove(alpha));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -669,7 +669,7 @@
</span><span class="cx">         return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
</span><span class="cx">     auto arg1 = convert&lt;IDLUnsignedLongLong&gt;(*state, state-&gt;uncheckedArgument(0), IntegerConversionConfiguration::Clamp);
</span><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><del>-    auto arg2 = state-&gt;argument(1).isUndefined() ? Optional&lt;uint64_t&gt;() : convert&lt;IDLUnsignedLongLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Clamp);
</del><ins>+    auto arg2 = state-&gt;argument(1).isUndefined() ? std::optional&lt;uint64_t&gt;() : convert&lt;IDLUnsignedLongLong&gt;(*state, state-&gt;uncheckedArgument(1), IntegerConversionConfiguration::Clamp);
</ins><span class="cx">     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
</span><span class="cx">     impl.funcWithClamp(WTFMove(arg1), WTFMove(arg2));
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span></span></pre></div>
<a id="trunkSourceWebCorebridgeruntime_arraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bridge/runtime_array.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bridge/runtime_array.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/bridge/runtime_array.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    Optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</del><ins>+    std::optional&lt;uint32_t&gt; index = parseIndex(propertyName);
</ins><span class="cx">     if (index &amp;&amp; index.value() &lt; thisObject-&gt;getLength()) {
</span><span class="cx">         slot.setValue(thisObject, DontDelete | DontEnum,
</span><span class="cx">             thisObject-&gt;getConcreteArray()-&gt;valueAt(exec, index.value()));
</span><span class="lines">@@ -125,7 +125,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</del><ins>+    if (std::optional&lt;uint32_t&gt; index = parseIndex(propertyName))
</ins><span class="cx">         return thisObject-&gt;getConcreteArray()-&gt;setValueAt(exec, index.value(), value);
</span><span class="cx">     
</span><span class="cx">     return JSObject::put(thisObject, exec, propertyName, value, slot);
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoAlgorithmRegistrycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoAlgorithmRegistry.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoAlgorithmRegistry.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/CryptoAlgorithmRegistry.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -47,10 +47,10 @@
</span><span class="cx">     platformRegisterAlgorithms();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;CryptoAlgorithmIdentifier&gt; CryptoAlgorithmRegistry::identifier(const String&amp; name)
</del><ins>+std::optional&lt;CryptoAlgorithmIdentifier&gt; CryptoAlgorithmRegistry::identifier(const String&amp; name)
</ins><span class="cx"> {
</span><span class="cx">     if (name.isEmpty())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     std::lock_guard&lt;StaticLock&gt; lock(registryMutex);
</span><span class="cx"> 
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">     // FIXME: How is it helpful to call isolatedCopy on the argument to find?
</span><span class="cx">     auto identifier = m_identifiers.find(name.isolatedCopy());
</span><span class="cx">     if (identifier == m_identifiers.end())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return identifier-&gt;value;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoAlgorithmRegistryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoAlgorithmRegistry.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoAlgorithmRegistry.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/CryptoAlgorithmRegistry.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static CryptoAlgorithmRegistry&amp; singleton();
</span><span class="cx"> 
</span><del>-    Optional&lt;CryptoAlgorithmIdentifier&gt; identifier(const String&amp;);
</del><ins>+    std::optional&lt;CryptoAlgorithmIdentifier&gt; identifier(const String&amp;);
</ins><span class="cx">     String name(CryptoAlgorithmIdentifier);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;CryptoAlgorithm&gt; create(CryptoAlgorithmIdentifier);
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeySerializationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoKeySerialization.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKeySerialization.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/CryptoKeySerialization.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">     virtual ~CryptoKeySerialization() { }
</span><span class="cx"> 
</span><span class="cx">     // Returns false if suggested algorithm was not compatible with one stored in the serialization.
</span><del>-    virtual Optional&lt;CryptoAlgorithmPair&gt; reconcileAlgorithm(CryptoAlgorithm*, CryptoAlgorithmParametersDeprecated*) const = 0;
</del><ins>+    virtual std::optional&lt;CryptoAlgorithmPair&gt; reconcileAlgorithm(CryptoAlgorithm*, CryptoAlgorithmParametersDeprecated*) const = 0;
</ins><span class="cx"> 
</span><span class="cx">     virtual void reconcileUsages(CryptoKeyUsageBitmap&amp;) const = 0;
</span><span class="cx">     virtual void reconcileExtractable(bool&amp;) const = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoJsonWebKeyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/JsonWebKey.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/JsonWebKey.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/JsonWebKey.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -35,27 +35,27 @@
</span><span class="cx"> 
</span><span class="cx"> struct JsonWebKey {
</span><span class="cx">     String kty;
</span><del>-    Optional&lt;String&gt; use;
</del><ins>+    std::optional&lt;String&gt; use;
</ins><span class="cx">     // FIXME: Consider merging key_ops and usages.
</span><del>-    Optional&lt;Vector&lt;CryptoKeyUsage&gt;&gt; key_ops;
</del><ins>+    std::optional&lt;Vector&lt;CryptoKeyUsage&gt;&gt; key_ops;
</ins><span class="cx">     CryptoKeyUsageBitmap usages;
</span><del>-    Optional&lt;String&gt; alg;
</del><ins>+    std::optional&lt;String&gt; alg;
</ins><span class="cx"> 
</span><del>-    Optional&lt;bool&gt; ext;
</del><ins>+    std::optional&lt;bool&gt; ext;
</ins><span class="cx"> 
</span><del>-    Optional&lt;String&gt; crv;
-    Optional&lt;String&gt; x;
-    Optional&lt;String&gt; y;
-    Optional&lt;String&gt; d;
-    Optional&lt;String&gt; n;
-    Optional&lt;String&gt; e;
-    Optional&lt;String&gt; p;
-    Optional&lt;String&gt; q;
-    Optional&lt;String&gt; dp;
-    Optional&lt;String&gt; dq;
-    Optional&lt;String&gt; qi;
-    Optional&lt;Vector&lt;RsaOtherPrimesInfo&gt;&gt; oth;
-    Optional&lt;String&gt; k;
</del><ins>+    std::optional&lt;String&gt; crv;
+    std::optional&lt;String&gt; x;
+    std::optional&lt;String&gt; y;
+    std::optional&lt;String&gt; d;
+    std::optional&lt;String&gt; n;
+    std::optional&lt;String&gt; e;
+    std::optional&lt;String&gt; p;
+    std::optional&lt;String&gt; q;
+    std::optional&lt;String&gt; dp;
+    std::optional&lt;String&gt; dq;
+    std::optional&lt;String&gt; qi;
+    std::optional&lt;Vector&lt;RsaOtherPrimesInfo&gt;&gt; oth;
+    std::optional&lt;String&gt; k;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_CBCcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx">         result = CryptoKeyAES::importRaw(parameters-&gt;identifier, WTFMove(WTF::get&lt;Vector&lt;uint8_t&gt;&gt;(data)), extractable, usages);
</span><span class="cx">         break;
</span><span class="cx">     case SubtleCrypto::KeyFormat::Jwk: {
</span><del>-        auto checkAlgCallback = [](size_t length, const Optional&lt;String&gt;&amp; alg) -&gt; bool {
</del><ins>+        auto checkAlgCallback = [](size_t length, const std::optional&lt;String&gt;&amp; alg) -&gt; bool {
</ins><span class="cx">             switch (length) {
</span><span class="cx">             case CryptoKeyAES::s_length128:
</span><span class="cx">                 return !alg || alg.value() == ALG128;
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_KWcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">         result = CryptoKeyAES::importRaw(parameters-&gt;identifier, WTFMove(WTF::get&lt;Vector&lt;uint8_t&gt;&gt;(data)), extractable, usages);
</span><span class="cx">         break;
</span><span class="cx">     case SubtleCrypto::KeyFormat::Jwk: {
</span><del>-        result = CryptoKeyAES::importJwk(parameters-&gt;identifier, WTFMove(WTF::get&lt;JsonWebKey&gt;(data)), extractable, usages, [](size_t length, const Optional&lt;String&gt;&amp; alg) -&gt; bool {
</del><ins>+        result = CryptoKeyAES::importJwk(parameters-&gt;identifier, WTFMove(WTF::get&lt;JsonWebKey&gt;(data)), extractable, usages, [](size_t length, const std::optional&lt;String&gt;&amp; alg) -&gt; bool {
</ins><span class="cx">             switch (length) {
</span><span class="cx">             case CryptoKeyAES::s_length128:
</span><span class="cx">                 return !alg || alg.value() == ALG128;
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmHMACcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto result = CryptoKeyHMAC::generate(hmacParameters.length.valueOr(0), hmacParameters.hashIdentifier, extractable, usages);
</del><ins>+    auto result = CryptoKeyHMAC::generate(hmacParameters.length.value_or(0), hmacParameters.hashIdentifier, extractable, usages);
</ins><span class="cx">     if (!result) {
</span><span class="cx">         exceptionCallback(OperationError);
</span><span class="cx">         return;
</span><span class="lines">@@ -106,10 +106,10 @@
</span><span class="cx">     RefPtr&lt;CryptoKeyHMAC&gt; result;
</span><span class="cx">     switch (format) {
</span><span class="cx">     case SubtleCrypto::KeyFormat::Raw:
</span><del>-        result = CryptoKeyHMAC::importRaw(hmacParameters.length.valueOr(0), hmacParameters.hashIdentifier, WTFMove(WTF::get&lt;Vector&lt;uint8_t&gt;&gt;(data)), extractable, usages);
</del><ins>+        result = CryptoKeyHMAC::importRaw(hmacParameters.length.value_or(0), hmacParameters.hashIdentifier, WTFMove(WTF::get&lt;Vector&lt;uint8_t&gt;&gt;(data)), extractable, usages);
</ins><span class="cx">         break;
</span><span class="cx">     case SubtleCrypto::KeyFormat::Jwk: {
</span><del>-        auto checkAlgCallback = [](CryptoAlgorithmIdentifier hash, const Optional&lt;String&gt;&amp; alg) -&gt; bool {
</del><ins>+        auto checkAlgCallback = [](CryptoAlgorithmIdentifier hash, const std::optional&lt;String&gt;&amp; alg) -&gt; bool {
</ins><span class="cx">             switch (hash) {
</span><span class="cx">             case CryptoAlgorithmIdentifier::SHA_1:
</span><span class="cx">                 return !alg || alg.value() == ALG1;
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx">             }
</span><span class="cx">             return false;
</span><span class="cx">         };
</span><del>-        result = CryptoKeyHMAC::importJwk(hmacParameters.length.valueOr(0), hmacParameters.hashIdentifier, WTFMove(WTF::get&lt;JsonWebKey&gt;(data)), extractable, usages, WTFMove(checkAlgCallback));
</del><ins>+        result = CryptoKeyHMAC::importJwk(hmacParameters.length.value_or(0), hmacParameters.hashIdentifier, WTFMove(WTF::get&lt;JsonWebKey&gt;(data)), extractable, usages, WTFMove(checkAlgCallback));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     default:
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSAES_PKCS1_v1_5cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx">             exceptionCallback(DataError);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        result = CryptoKeyRSA::importJwk(parameters-&gt;identifier, Nullopt, WTFMove(key), extractable, usages);
</del><ins>+        result = CryptoKeyRSA::importJwk(parameters-&gt;identifier, std::nullopt, WTFMove(key), extractable, usages);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     default:
</span></span></pre></div>
<a id="trunkSourceWebCorecryptogcryptCryptoAlgorithmHMACGCryptcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;Vector&lt;uint8_t&gt;&gt; calculateSignature(int algorithm, const Vector&lt;uint8_t&gt;&amp; key, const CryptoOperationData&amp; data)
</del><ins>+static std::optional&lt;Vector&lt;uint8_t&gt;&gt; calculateSignature(int algorithm, const Vector&lt;uint8_t&gt;&amp; key, const CryptoOperationData&amp; data)
</ins><span class="cx"> {
</span><span class="cx">     size_t digestLength = gcry_mac_get_algo_maclen(algorithm);
</span><span class="cx">     const void* keyData = key.data() ? key.data() : reinterpret_cast&lt;const uint8_t*&gt;(&quot;&quot;);
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">         gcry_mac_close(hd);
</span><span class="cx"> 
</span><span class="cx">     if (!result)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return WTFMove(signature);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeyAESh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyAES.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeyAES.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyAES.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> 
</span><span class="cx">     static RefPtr&lt;CryptoKeyAES&gt; generate(CryptoAlgorithmIdentifier, size_t lengthBits, bool extractable, CryptoKeyUsageBitmap);
</span><span class="cx">     static RefPtr&lt;CryptoKeyAES&gt; importRaw(CryptoAlgorithmIdentifier, Vector&lt;uint8_t&gt;&amp;&amp; keyData, bool extractable, CryptoKeyUsageBitmap);
</span><del>-    using CheckAlgCallback = WTF::Function&lt;bool(size_t, const Optional&lt;String&gt;&amp;)&gt;;
</del><ins>+    using CheckAlgCallback = WTF::Function&lt;bool(size_t, const std::optional&lt;String&gt;&amp;)&gt;;
</ins><span class="cx">     static RefPtr&lt;CryptoKeyAES&gt; importJwk(CryptoAlgorithmIdentifier, JsonWebKey&amp;&amp;, bool extractable, CryptoKeyUsageBitmap, CheckAlgCallback&amp;&amp;);
</span><span class="cx"> 
</span><span class="cx">     CryptoKeyClass keyClass() const final { return CryptoKeyClass::AES; }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeyHMACh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> 
</span><span class="cx">     static RefPtr&lt;CryptoKeyHMAC&gt; generate(size_t lengthBits, CryptoAlgorithmIdentifier hash, bool extractable, CryptoKeyUsageBitmap);
</span><span class="cx">     static RefPtr&lt;CryptoKeyHMAC&gt; importRaw(size_t lengthBits, CryptoAlgorithmIdentifier hash, Vector&lt;uint8_t&gt;&amp;&amp; keyData, bool extractable, CryptoKeyUsageBitmap);
</span><del>-    using CheckAlgCallback = WTF::Function&lt;bool(CryptoAlgorithmIdentifier, const Optional&lt;String&gt;&amp;)&gt;;
</del><ins>+    using CheckAlgCallback = WTF::Function&lt;bool(CryptoAlgorithmIdentifier, const std::optional&lt;String&gt;&amp;)&gt;;
</ins><span class="cx">     static RefPtr&lt;CryptoKeyHMAC&gt; importJwk(size_t lengthBits, CryptoAlgorithmIdentifier hash, JsonWebKey&amp;&amp;, bool extractable, CryptoKeyUsageBitmap, CheckAlgCallback&amp;&amp;);
</span><span class="cx"> 
</span><span class="cx">     CryptoKeyClass keyClass() const final { return CryptoKeyClass::HMAC; }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeyRSAcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-RefPtr&lt;CryptoKeyRSA&gt; CryptoKeyRSA::importJwk(CryptoAlgorithmIdentifier algorithm, Optional&lt;CryptoAlgorithmIdentifier&gt; hash, JsonWebKey&amp;&amp; keyData, bool extractable, CryptoKeyUsageBitmap usages)
</del><ins>+RefPtr&lt;CryptoKeyRSA&gt; CryptoKeyRSA::importJwk(CryptoAlgorithmIdentifier algorithm, std::optional&lt;CryptoAlgorithmIdentifier&gt; hash, JsonWebKey&amp;&amp; keyData, bool extractable, CryptoKeyUsageBitmap usages)
</ins><span class="cx"> {
</span><span class="cx">     if (keyData.kty != &quot;RSA&quot;)
</span><span class="cx">         return nullptr;
</span><span class="lines">@@ -57,8 +57,8 @@
</span><span class="cx">     if (!keyData.d) {
</span><span class="cx">         // import public key
</span><span class="cx">         auto publicKeyComponents = CryptoKeyDataRSAComponents::createPublic(WTFMove(modulus), WTFMove(exponent));
</span><del>-        // Notice: CryptoAlgorithmIdentifier::SHA_1 is just a placeholder. It should not have any effect if hash is Nullopt.
-        return CryptoKeyRSA::create(algorithm, hash.valueOr(CryptoAlgorithmIdentifier::SHA_1), !!hash, *publicKeyComponents, extractable, usages);
</del><ins>+        // Notice: CryptoAlgorithmIdentifier::SHA_1 is just a placeholder. It should not have any effect if hash is std::nullopt.
+        return CryptoKeyRSA::create(algorithm, hash.value_or(CryptoAlgorithmIdentifier::SHA_1), !!hash, *publicKeyComponents, extractable, usages);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // import private key
</span><span class="lines">@@ -67,8 +67,8 @@
</span><span class="cx">         return nullptr;
</span><span class="cx">     if (!keyData.p &amp;&amp; !keyData.q &amp;&amp; !keyData.dp &amp;&amp; !keyData.dp &amp;&amp; !keyData.qi) {
</span><span class="cx">         auto privateKeyComponents = CryptoKeyDataRSAComponents::createPrivate(WTFMove(modulus), WTFMove(exponent), WTFMove(privateExponent));
</span><del>-        // Notice: CryptoAlgorithmIdentifier::SHA_1 is just a placeholder. It should not have any effect if hash is Nullopt.
-        return CryptoKeyRSA::create(algorithm, hash.valueOr(CryptoAlgorithmIdentifier::SHA_1), !!hash, *privateKeyComponents, extractable, usages);
</del><ins>+        // Notice: CryptoAlgorithmIdentifier::SHA_1 is just a placeholder. It should not have any effect if hash is std::nullopt.
+        return CryptoKeyRSA::create(algorithm, hash.value_or(CryptoAlgorithmIdentifier::SHA_1), !!hash, *privateKeyComponents, extractable, usages);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!keyData.p || !keyData.q || !keyData.dp || !keyData.dq || !keyData.qi)
</span><span class="lines">@@ -87,8 +87,8 @@
</span><span class="cx">         return nullptr;
</span><span class="cx">     if (!keyData.oth) {
</span><span class="cx">         auto privateKeyComponents = CryptoKeyDataRSAComponents::createPrivateWithAdditionalData(WTFMove(modulus), WTFMove(exponent), WTFMove(privateExponent), WTFMove(firstPrimeInfo), WTFMove(secondPrimeInfo), { });
</span><del>-        // Notice: CryptoAlgorithmIdentifier::SHA_1 is just a placeholder. It should not have any effect if hash is Nullopt.
-        return CryptoKeyRSA::create(algorithm, hash.valueOr(CryptoAlgorithmIdentifier::SHA_1), !!hash, *privateKeyComponents, extractable, usages);
</del><ins>+        // Notice: CryptoAlgorithmIdentifier::SHA_1 is just a placeholder. It should not have any effect if hash is std::nullopt.
+        return CryptoKeyRSA::create(algorithm, hash.value_or(CryptoAlgorithmIdentifier::SHA_1), !!hash, *privateKeyComponents, extractable, usages);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;CryptoKeyDataRSAComponents::PrimeInfo&gt; otherPrimeInfos;
</span><span class="lines">@@ -104,8 +104,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     auto privateKeyComponents = CryptoKeyDataRSAComponents::createPrivateWithAdditionalData(WTFMove(modulus), WTFMove(exponent), WTFMove(privateExponent), WTFMove(firstPrimeInfo), WTFMove(secondPrimeInfo), WTFMove(otherPrimeInfos));
</span><del>-    // Notice: CryptoAlgorithmIdentifier::SHA_1 is just a placeholder. It should not have any effect if hash is Nullopt.
-    return CryptoKeyRSA::create(algorithm, hash.valueOr(CryptoAlgorithmIdentifier::SHA_1), !!hash, *privateKeyComponents, extractable, usages);
</del><ins>+    // Notice: CryptoAlgorithmIdentifier::SHA_1 is just a placeholder. It should not have any effect if hash is std::nullopt.
+    return CryptoKeyRSA::create(algorithm, hash.value_or(CryptoAlgorithmIdentifier::SHA_1), !!hash, *privateKeyComponents, extractable, usages);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JsonWebKey CryptoKeyRSA::exportJwk() const
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeyRSAh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx">     using KeyPairCallback = WTF::Function&lt;void(CryptoKeyPair&amp;)&gt;;
</span><span class="cx">     using VoidCallback = WTF::Function&lt;void()&gt;;
</span><span class="cx">     static void generatePair(CryptoAlgorithmIdentifier, CryptoAlgorithmIdentifier hash, bool hasHash, unsigned modulusLength, const Vector&lt;uint8_t&gt;&amp; publicExponent, bool extractable, CryptoKeyUsageBitmap, KeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ScriptExecutionContext*);
</span><del>-    static RefPtr&lt;CryptoKeyRSA&gt; importJwk(CryptoAlgorithmIdentifier, Optional&lt;CryptoAlgorithmIdentifier&gt; hash, JsonWebKey&amp;&amp;, bool extractable, CryptoKeyUsageBitmap);
</del><ins>+    static RefPtr&lt;CryptoKeyRSA&gt; importJwk(CryptoAlgorithmIdentifier, std::optional&lt;CryptoAlgorithmIdentifier&gt; hash, JsonWebKey&amp;&amp;, bool extractable, CryptoKeyUsageBitmap);
</ins><span class="cx"> 
</span><span class="cx">     PlatformRSAKey platformKey() const { return m_platformKey; }
</span><span class="cx">     JsonWebKey exportJwk() const;
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeySerializationRawcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;CryptoAlgorithmPair&gt; CryptoKeySerializationRaw::reconcileAlgorithm(CryptoAlgorithm* algorithm, CryptoAlgorithmParametersDeprecated* parameters) const
</del><ins>+std::optional&lt;CryptoAlgorithmPair&gt; CryptoKeySerializationRaw::reconcileAlgorithm(CryptoAlgorithm* algorithm, CryptoAlgorithmParametersDeprecated* parameters) const
</ins><span class="cx"> {
</span><span class="cx">     return CryptoAlgorithmPair { algorithm, parameters };
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeySerializationRawh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> private:
</span><span class="cx">     CryptoKeySerializationRaw(const CryptoOperationData&amp;);
</span><span class="cx"> 
</span><del>-    Optional&lt;CryptoAlgorithmPair&gt; reconcileAlgorithm(CryptoAlgorithm*, CryptoAlgorithmParametersDeprecated*) const override;
</del><ins>+    std::optional&lt;CryptoAlgorithmPair&gt; reconcileAlgorithm(CryptoAlgorithm*, CryptoAlgorithmParametersDeprecated*) const override;
</ins><span class="cx"> 
</span><span class="cx">     void reconcileUsages(CryptoKeyUsageBitmap&amp;) const override;
</span><span class="cx">     void reconcileExtractable(bool&amp;) const override;
</span></span></pre></div>
<a id="trunkSourceWebCorecryptomacCryptoAlgorithmHMACMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHMACMac.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHMACMac.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHMACMac.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-static Optional&lt;CCHmacAlgorithm&gt; commonCryptoHMACAlgorithm(CryptoAlgorithmIdentifier hashFunction)
</del><ins>+static std::optional&lt;CCHmacAlgorithm&gt; commonCryptoHMACAlgorithm(CryptoAlgorithmIdentifier hashFunction)
</ins><span class="cx"> {
</span><span class="cx">     switch (hashFunction) {
</span><span class="cx">     case CryptoAlgorithmIdentifier::SHA_1:
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     case CryptoAlgorithmIdentifier::SHA_512:
</span><span class="cx">         return kCCHmacAlgSHA512;
</span><span class="cx">     default:
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecryptomacCryptoAlgorithmRSASSA_PKCS1_v1_5Maccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-inline Optional&lt;CryptoDigest::Algorithm&gt; cryptoDigestAlgorithm(CryptoAlgorithmIdentifier hashFunction)
</del><ins>+inline std::optional&lt;CryptoDigest::Algorithm&gt; cryptoDigestAlgorithm(CryptoAlgorithmIdentifier hashFunction)
</ins><span class="cx"> {
</span><span class="cx">     switch (hashFunction) {
</span><span class="cx">     case CryptoAlgorithmIdentifier::SHA_1:
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     case CryptoAlgorithmIdentifier::SHA_512:
</span><span class="cx">         return CryptoDigest::Algorithm::SHA_512;
</span><span class="cx">     default:
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmHmacKeyParamsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParams.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParams.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParams.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx">     // FIXME: Consider merging hash and hashIdentifier.
</span><span class="cx">     JSC::JSValue hash;
</span><span class="cx">     CryptoAlgorithmIdentifier hashIdentifier;
</span><del>-    Optional&lt;unsigned long&gt; length;
</del><ins>+    std::optional&lt;unsigned long&gt; length;
</ins><span class="cx"> 
</span><span class="cx">     Class parametersClass() const final { return Class::HmacKeyParams; }
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaOaepParamsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParams.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParams.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParams.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> class CryptoAlgorithmRsaOaepParams final : public CryptoAlgorithmParameters {
</span><span class="cx"> public:
</span><span class="cx">     // Use labelVector() instead of label. The label will be gone once labelVector() is called.
</span><del>-    Optional&lt;BufferSource::VariantType&gt; label;
</del><ins>+    std::optional&lt;BufferSource::VariantType&gt; label;
</ins><span class="cx"> 
</span><span class="cx">     Class parametersClass() const final { return Class::RsaOaepParams; }
</span><span class="cx"> 
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">             return m_labelVector;
</span><span class="cx"> 
</span><span class="cx">         m_labelBuffer = WTFMove(*label);
</span><del>-        label = Nullopt;
</del><ins>+        label = std::nullopt;
</ins><span class="cx">         if (!m_labelBuffer.length())
</span><span class="cx">             return m_labelVector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFace.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFace.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/CSSFontFace.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -124,10 +124,10 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FontTraitsMask&gt; CSSFontFace::calculateStyleMask(CSSValue&amp; style)
</del><ins>+std::optional&lt;FontTraitsMask&gt; CSSFontFace::calculateStyleMask(CSSValue&amp; style)
</ins><span class="cx"> {
</span><span class="cx">     if (!is&lt;CSSPrimitiveValue&gt;(style))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     switch (downcast&lt;CSSPrimitiveValue&gt;(style).valueID()) {
</span><span class="cx">     case CSSValueNormal:
</span><span class="lines">@@ -159,10 +159,10 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FontTraitsMask&gt; CSSFontFace::calculateWeightMask(CSSValue&amp; weight)
</del><ins>+std::optional&lt;FontTraitsMask&gt; CSSFontFace::calculateWeightMask(CSSValue&amp; weight)
</ins><span class="cx"> {
</span><span class="cx">     if (!is&lt;CSSPrimitiveValue&gt;(weight))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     switch (downcast&lt;CSSPrimitiveValue&gt;(weight).valueID()) {
</span><span class="cx">     case CSSValueBold:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFace.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFace.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/CSSFontFace.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -87,8 +87,8 @@
</span><span class="cx">     Status status() const { return m_status; }
</span><span class="cx">     StyleRuleFontFace* cssConnection() const { return m_cssConnection.get(); }
</span><span class="cx"> 
</span><del>-    static Optional&lt;FontTraitsMask&gt; calculateStyleMask(CSSValue&amp; style);
-    static Optional&lt;FontTraitsMask&gt; calculateWeightMask(CSSValue&amp; weight);
</del><ins>+    static std::optional&lt;FontTraitsMask&gt; calculateStyleMask(CSSValue&amp; style);
+    static std::optional&lt;FontTraitsMask&gt; calculateWeightMask(CSSValue&amp; weight);
</ins><span class="cx"> 
</span><span class="cx">     class Client;
</span><span class="cx">     void addClient(Client&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFaceSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFaceSet.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFaceSet.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/CSSFontFaceSet.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -284,7 +284,7 @@
</span><span class="cx">     return m_faces[i];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;FontTraitsMask&gt; computeFontTraitsMask(MutableStyleProperties&amp; style)
</del><ins>+static std::optional&lt;FontTraitsMask&gt; computeFontTraitsMask(MutableStyleProperties&amp; style)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;CSSValue&gt; styleValue = style.getPropertyCSSValue(CSSPropertyFontStyle).get();
</span><span class="cx">     if (!styleValue)
</span><span class="lines">@@ -294,7 +294,7 @@
</span><span class="cx">     if (auto styleMaskOptional = CSSFontFace::calculateStyleMask(*styleValue))
</span><span class="cx">         styleMask = styleMaskOptional.value();
</span><span class="cx">     else
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;CSSValue&gt; weightValue = style.getPropertyCSSValue(CSSPropertyFontWeight).get();
</span><span class="cx">     if (!weightValue)
</span><span class="lines">@@ -304,7 +304,7 @@
</span><span class="cx">     if (auto weightMaskOptional = CSSFontFace::calculateWeightMask(*weightValue))
</span><span class="cx">         weightMask = weightMaskOptional.value();
</span><span class="cx">     else
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return static_cast&lt;FontTraitsMask&gt;(static_cast&lt;unsigned&gt;(styleMask) | static_cast&lt;unsigned&gt;(weightMask));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPrimitiveValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPrimitiveValue.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPrimitiveValue.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/CSSPrimitiveValue.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -836,7 +836,7 @@
</span><span class="cx"> 
</span><span class="cx"> double CSSPrimitiveValue::doubleValue(UnitTypes unitType) const
</span><span class="cx"> {
</span><del>-    return doubleValueInternal(unitType).valueOr(0);
</del><ins>+    return doubleValueInternal(unitType).value_or(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> double CSSPrimitiveValue::doubleValue() const
</span><span class="lines">@@ -871,10 +871,10 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;double&gt; CSSPrimitiveValue::doubleValueInternal(UnitTypes requestedUnitType) const
</del><ins>+std::optional&lt;double&gt; CSSPrimitiveValue::doubleValueInternal(UnitTypes requestedUnitType) const
</ins><span class="cx"> {
</span><span class="cx">     if (!isValidCSSUnitTypeForDoubleConversion(static_cast&lt;UnitTypes&gt;(m_primitiveUnitType)) || !isValidCSSUnitTypeForDoubleConversion(requestedUnitType))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     UnitTypes sourceUnitType = static_cast&lt;UnitTypes&gt;(primitiveType());
</span><span class="cx">     if (requestedUnitType == sourceUnitType || requestedUnitType == CSS_DIMENSION)
</span><span class="lines">@@ -889,13 +889,13 @@
</span><span class="cx"> 
</span><span class="cx">     // Cannot convert between unrelated unit categories if one of them is not UNumber.
</span><span class="cx">     if (sourceCategory != targetCategory &amp;&amp; sourceCategory != UNumber &amp;&amp; targetCategory != UNumber)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (targetCategory == UNumber) {
</span><span class="cx">         // We interpret conversion to CSS_NUMBER as conversion to a canonical unit in this value's category.
</span><span class="cx">         targetUnitType = canonicalUnitTypeForCategory(sourceCategory);
</span><span class="cx">         if (targetUnitType == CSS_UNKNOWN)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (sourceUnitType == CSS_NUMBER) {
</span><span class="lines">@@ -902,7 +902,7 @@
</span><span class="cx">         // We interpret conversion from CSS_NUMBER in the same way as CSSParser::validUnit() while using non-strict mode.
</span><span class="cx">         sourceUnitType = canonicalUnitTypeForCategory(targetCategory);
</span><span class="cx">         if (sourceUnitType == CSS_UNKNOWN)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     double convertedValue = doubleValue();
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPrimitiveValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPrimitiveValue.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPrimitiveValue.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/CSSPrimitiveValue.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -360,7 +360,7 @@
</span><span class="cx">     void init(RefPtr&lt;DashboardRegion&gt;&amp;&amp;); // FIXME: Dashboard region should not be a primitive value.
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    Optional&lt;double&gt; doubleValueInternal(UnitTypes targetUnitType) const;
</del><ins>+    std::optional&lt;double&gt; doubleValueInternal(UnitTypes targetUnitType) const;
</ins><span class="cx"> 
</span><span class="cx">     double computeLengthDouble(const CSSToLengthConversionData&amp;) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> // function in css/StyleBuilderConverter.h should be used.
</span><span class="cx"> //
</span><span class="cx"> // * ConditionalConverter=XXX:
</span><del>-// Similar to Converter=XXX but the converter function returns a WTF::Optional&lt;&gt;
</del><ins>+// Similar to Converter=XXX but the converter function returns a std::optional&lt;&gt;
</ins><span class="cx"> // to indicate if the property setter should be called or not.
</span><span class="cx"> //
</span><span class="cx"> // * Custom=[Initial|Value|Inherit|All]:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSSegmentedFontFacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSSegmentedFontFace.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSSegmentedFontFace.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/CSSSegmentedFontFace.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">         return m_result &amp;&amp; m_result.value() &amp;&amp; m_result.value()-&gt;isLoading();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    mutable Optional&lt;RefPtr&lt;Font&gt;&gt; m_result; // Caches nullptr too
</del><ins>+    mutable std::optional&lt;RefPtr&lt;Font&gt;&gt; m_result; // Caches nullptr too
</ins><span class="cx">     mutable Ref&lt;CSSFontFace&gt; m_fontFace;
</span><span class="cx">     FontDescription m_fontDescription;
</span><span class="cx">     bool m_syntheticBold;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSStyleSheetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSStyleSheet.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSStyleSheet.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/CSSStyleSheet.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     return adoptRef(*new CSSStyleSheet(WTFMove(sheet), ownerRule));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;CSSStyleSheet&gt; CSSStyleSheet::create(Ref&lt;StyleSheetContents&gt;&amp;&amp; sheet, Node&amp; ownerNode, const Optional&lt;bool&gt;&amp; isCleanOrigin)
</del><ins>+Ref&lt;CSSStyleSheet&gt; CSSStyleSheet::create(Ref&lt;StyleSheetContents&gt;&amp;&amp; sheet, Node&amp; ownerNode, const std::optional&lt;bool&gt;&amp; isCleanOrigin)
</ins><span class="cx"> {
</span><span class="cx">     return adoptRef(*new CSSStyleSheet(WTFMove(sheet), ownerNode, TextPosition::minimumPosition(), false, isCleanOrigin));
</span><span class="cx"> }
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">     m_contents-&gt;registerClient(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-CSSStyleSheet::CSSStyleSheet(Ref&lt;StyleSheetContents&gt;&amp;&amp; contents, Node&amp; ownerNode, const TextPosition&amp; startPosition, bool isInlineStylesheet, const Optional&lt;bool&gt;&amp; isOriginClean)
</del><ins>+CSSStyleSheet::CSSStyleSheet(Ref&lt;StyleSheetContents&gt;&amp;&amp; contents, Node&amp; ownerNode, const TextPosition&amp; startPosition, bool isInlineStylesheet, const std::optional&lt;bool&gt;&amp; isOriginClean)
</ins><span class="cx">     : m_contents(WTFMove(contents))
</span><span class="cx">     , m_isInlineStylesheet(isInlineStylesheet)
</span><span class="cx">     , m_isDisabled(false)
</span><span class="lines">@@ -325,7 +325,7 @@
</span><span class="cx">     return { };
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;int&gt; CSSStyleSheet::addRule(const String&amp; selector, const String&amp; style, Optional&lt;unsigned&gt; index)
</del><ins>+ExceptionOr&lt;int&gt; CSSStyleSheet::addRule(const String&amp; selector, const String&amp; style, std::optional&lt;unsigned&gt; index)
</ins><span class="cx"> {
</span><span class="cx">     StringBuilder text;
</span><span class="cx">     text.append(selector);
</span><span class="lines">@@ -334,7 +334,7 @@
</span><span class="cx">     if (!style.isEmpty())
</span><span class="cx">         text.append(' ');
</span><span class="cx">     text.append('}');
</span><del>-    auto insertRuleResult = insertRule(text.toString(), index.valueOr(length()));
</del><ins>+    auto insertRuleResult = insertRule(text.toString(), index.value_or(length()));
</ins><span class="cx">     if (insertRuleResult.hasException())
</span><span class="cx">         return insertRuleResult.releaseException();
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSStyleSheeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSStyleSheet.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSStyleSheet.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/CSSStyleSheet.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> class CSSStyleSheet final : public StyleSheet {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;CSSStyleSheet&gt; create(Ref&lt;StyleSheetContents&gt;&amp;&amp;, CSSImportRule* ownerRule = 0);
</span><del>-    static Ref&lt;CSSStyleSheet&gt; create(Ref&lt;StyleSheetContents&gt;&amp;&amp;, Node&amp; ownerNode, const Optional&lt;bool&gt;&amp; isOriginClean = Nullopt);
</del><ins>+    static Ref&lt;CSSStyleSheet&gt; create(Ref&lt;StyleSheetContents&gt;&amp;&amp;, Node&amp; ownerNode, const std::optional&lt;bool&gt;&amp; isOriginClean = std::nullopt);
</ins><span class="cx">     static Ref&lt;CSSStyleSheet&gt; createInline(Ref&lt;StyleSheetContents&gt;&amp;&amp;, Element&amp; owner, const TextPosition&amp; startPosition);
</span><span class="cx"> 
</span><span class="cx">     virtual ~CSSStyleSheet();
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     WEBCORE_EXPORT ExceptionOr&lt;void&gt; deleteRule(unsigned index);
</span><span class="cx">     
</span><span class="cx">     WEBCORE_EXPORT RefPtr&lt;CSSRuleList&gt; rules();
</span><del>-    WEBCORE_EXPORT ExceptionOr&lt;int&gt; addRule(const String&amp; selector, const String&amp; style, Optional&lt;unsigned&gt; index);
</del><ins>+    WEBCORE_EXPORT ExceptionOr&lt;int&gt; addRule(const String&amp; selector, const String&amp; style, std::optional&lt;unsigned&gt; index);
</ins><span class="cx">     ExceptionOr&lt;void&gt; removeRule(unsigned index) { return deleteRule(index); }
</span><span class="cx">     
</span><span class="cx">     // For CSSRuleList.
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx"> private:
</span><span class="cx">     CSSStyleSheet(Ref&lt;StyleSheetContents&gt;&amp;&amp;, CSSImportRule* ownerRule);
</span><span class="cx">     CSSStyleSheet(Ref&lt;StyleSheetContents&gt;&amp;&amp;, Node* ownerNode, const TextPosition&amp; startPosition, bool isInlineStylesheet);
</span><del>-    CSSStyleSheet(Ref&lt;StyleSheetContents&gt;&amp;&amp;, Node&amp; ownerNode, const TextPosition&amp; startPosition, bool isInlineStylesheet, const Optional&lt;bool&gt;&amp;);
</del><ins>+    CSSStyleSheet(Ref&lt;StyleSheetContents&gt;&amp;&amp;, Node&amp; ownerNode, const TextPosition&amp; startPosition, bool isInlineStylesheet, const std::optional&lt;bool&gt;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     bool isCSSStyleSheet() const final { return true; }
</span><span class="cx">     String type() const final { return ASCIILiteral(&quot;text/css&quot;); }
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">     bool m_isInlineStylesheet;
</span><span class="cx">     bool m_isDisabled;
</span><span class="cx">     bool m_mutatedRules;
</span><del>-    Optional&lt;bool&gt; m_isOriginClean;
</del><ins>+    std::optional&lt;bool&gt; m_isOriginClean;
</ins><span class="cx">     String m_title;
</span><span class="cx">     RefPtr&lt;MediaQuerySet&gt; m_mediaQueries;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFace.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFace.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/FontFace.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -374,12 +374,12 @@
</span><span class="cx">         break;
</span><span class="cx">     case CSSFontFace::Status::Success:
</span><span class="cx">         if (m_promise)
</span><del>-            std::exchange(m_promise, Nullopt)-&gt;resolve(*this);
</del><ins>+            std::exchange(m_promise, std::nullopt)-&gt;resolve(*this);
</ins><span class="cx">         deref();
</span><span class="cx">         return;
</span><span class="cx">     case CSSFontFace::Status::Failure:
</span><span class="cx">         if (m_promise)
</span><del>-            std::exchange(m_promise, Nullopt)-&gt;reject(NETWORK_ERR);
</del><ins>+            std::exchange(m_promise, std::nullopt)-&gt;reject(NETWORK_ERR);
</ins><span class="cx">         deref();
</span><span class="cx">         return;
</span><span class="cx">     case CSSFontFace::Status::Pending:
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFace.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFace.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/FontFace.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     LoadStatus status() const;
</span><span class="cx"> 
</span><span class="cx">     typedef DOMPromise&lt;FontFace&amp;&gt; Promise;
</span><del>-    Optional&lt;Promise&gt;&amp; promise() { return m_promise; }
</del><ins>+    std::optional&lt;Promise&gt;&amp; promise() { return m_promise; }
</ins><span class="cx">     void registerLoaded(Promise&amp;&amp;);
</span><span class="cx"> 
</span><span class="cx">     void adopt(CSSFontFace&amp;);
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> 
</span><span class="cx">     WeakPtrFactory&lt;FontFace&gt; m_weakPtrFactory;
</span><span class="cx">     Ref&lt;CSSFontFace&gt; m_backing;
</span><del>-    Optional&lt;Promise&gt; m_promise;
</del><ins>+    std::optional&lt;Promise&gt; m_promise;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFaceSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFaceSet.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFaceSet.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/FontFaceSet.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -204,7 +204,7 @@
</span><span class="cx"> void FontFaceSet::completedLoading()
</span><span class="cx"> {
</span><span class="cx">     if (m_promise)
</span><del>-        std::exchange(m_promise, Nullopt)-&gt;resolve(*this);
</del><ins>+        std::exchange(m_promise, std::nullopt)-&gt;resolve(*this);
</ins><span class="cx">     m_isReady = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFaceSeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFaceSet.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFaceSet.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/FontFaceSet.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;CSSFontFaceSet&gt; m_backing;
</span><span class="cx">     HashMap&lt;RefPtr&lt;FontFace&gt;, Vector&lt;Ref&lt;PendingPromise&gt;&gt;&gt; m_pendingPromises;
</span><del>-    Optional&lt;ReadyPromise&gt; m_promise;
</del><ins>+    std::optional&lt;ReadyPromise&gt; m_promise;
</ins><span class="cx">     bool m_isReady { true };
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssMediaQueryEvaluatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/MediaQueryEvaluator.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -214,10 +214,10 @@
</span><span class="cx">     return compareValue(width * aspectRatio.denominatorValue(), height * aspectRatio.numeratorValue(), op);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;double&gt; doubleValue(CSSValue* value)
</del><ins>+static std::optional&lt;double&gt; doubleValue(CSSValue* value)
</ins><span class="cx"> {
</span><span class="cx">     if (!is&lt;CSSPrimitiveValue&gt;(value) || !downcast&lt;CSSPrimitiveValue&gt;(*value).isNumber())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return downcast&lt;CSSPrimitiveValue&gt;(*value).doubleValue(CSSPrimitiveValue::CSS_NUMBER);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -101,13 +101,13 @@
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="cx">     static GridTrackSize convertGridTrackSize(StyleResolver&amp;, const CSSValue&amp;);
</span><span class="cx">     static Vector&lt;GridTrackSize&gt; convertGridTrackSizeList(StyleResolver&amp;, const CSSValue&amp;);
</span><del>-    static Optional&lt;GridPosition&gt; convertGridPosition(StyleResolver&amp;, const CSSValue&amp;);
</del><ins>+    static std::optional&lt;GridPosition&gt; convertGridPosition(StyleResolver&amp;, const CSSValue&amp;);
</ins><span class="cx">     static GridAutoFlow convertGridAutoFlow(StyleResolver&amp;, const CSSValue&amp;);
</span><span class="cx"> #endif // ENABLE(CSS_GRID_LAYOUT)
</span><del>-    static Optional&lt;Length&gt; convertWordSpacing(StyleResolver&amp;, const CSSValue&amp;);
-    static Optional&lt;float&gt; convertPerspective(StyleResolver&amp;, const CSSValue&amp;);
-    static Optional&lt;Length&gt; convertMarqueeIncrement(StyleResolver&amp;, const CSSValue&amp;);
-    static Optional&lt;FilterOperations&gt; convertFilterOperations(StyleResolver&amp;, const CSSValue&amp;);
</del><ins>+    static std::optional&lt;Length&gt; convertWordSpacing(StyleResolver&amp;, const CSSValue&amp;);
+    static std::optional&lt;float&gt; convertPerspective(StyleResolver&amp;, const CSSValue&amp;);
+    static std::optional&lt;Length&gt; convertMarqueeIncrement(StyleResolver&amp;, const CSSValue&amp;);
+    static std::optional&lt;FilterOperations&gt; convertFilterOperations(StyleResolver&amp;, const CSSValue&amp;);
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     static bool convertTouchCallout(StyleResolver&amp;, const CSSValue&amp;);
</span><span class="cx"> #endif
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx">     static StyleContentAlignmentData convertContentAlignmentData(StyleResolver&amp;, const CSSValue&amp;);
</span><span class="cx">     static EGlyphOrientation convertGlyphOrientation(StyleResolver&amp;, const CSSValue&amp;);
</span><span class="cx">     static EGlyphOrientation convertGlyphOrientationOrAuto(StyleResolver&amp;, const CSSValue&amp;);
</span><del>-    static Optional&lt;Length&gt; convertLineHeight(StyleResolver&amp;, const CSSValue&amp;, float multiplier = 1.f);
</del><ins>+    static std::optional&lt;Length&gt; convertLineHeight(StyleResolver&amp;, const CSSValue&amp;, float multiplier = 1.f);
</ins><span class="cx">     static FontSynthesis convertFontSynthesis(StyleResolver&amp;, const CSSValue&amp;);
</span><span class="cx">     
</span><span class="cx">     static BreakBetween convertPageBreakBetween(StyleResolver&amp;, const CSSValue&amp;);
</span><span class="lines">@@ -1084,12 +1084,12 @@
</span><span class="cx">     return createGridTrackSize(value, styleResolver);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;GridPosition&gt; StyleBuilderConverter::convertGridPosition(StyleResolver&amp;, const CSSValue&amp; value)
</del><ins>+inline std::optional&lt;GridPosition&gt; StyleBuilderConverter::convertGridPosition(StyleResolver&amp;, const CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     GridPosition gridPosition;
</span><span class="cx">     if (createGridPosition(value, gridPosition))
</span><span class="cx">         return gridPosition;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline GridAutoFlow StyleBuilderConverter::convertGridAutoFlow(StyleResolver&amp;, const CSSValue&amp; value)
</span><span class="lines">@@ -1137,9 +1137,9 @@
</span><span class="cx">     return styleResolver.state().cssToLengthConversionData();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;Length&gt; StyleBuilderConverter::convertWordSpacing(StyleResolver&amp; styleResolver, const CSSValue&amp; value)
</del><ins>+inline std::optional&lt;Length&gt; StyleBuilderConverter::convertWordSpacing(StyleResolver&amp; styleResolver, const CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    Optional&lt;Length&gt; wordSpacing;
</del><ins>+    std::optional&lt;Length&gt; wordSpacing;
</ins><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><span class="cx">     if (primitiveValue.valueID() == CSSValueNormal)
</span><span class="cx">         wordSpacing = RenderStyle::initialWordSpacing();
</span><span class="lines">@@ -1153,7 +1153,7 @@
</span><span class="cx">     return wordSpacing;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;float&gt; StyleBuilderConverter::convertPerspective(StyleResolver&amp; styleResolver, const CSSValue&amp; value)
</del><ins>+inline std::optional&lt;float&gt; StyleBuilderConverter::convertPerspective(StyleResolver&amp; styleResolver, const CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><span class="cx">     if (primitiveValue.valueID() == CSSValueNone)
</span><span class="lines">@@ -1167,12 +1167,12 @@
</span><span class="cx">     else
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx"> 
</span><del>-    return perspective &lt; 0 ? Optional&lt;float&gt;(Nullopt) : Optional&lt;float&gt;(perspective);
</del><ins>+    return perspective &lt; 0 ? std::optional&lt;float&gt;(std::nullopt) : std::optional&lt;float&gt;(perspective);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;Length&gt; StyleBuilderConverter::convertMarqueeIncrement(StyleResolver&amp; styleResolver, const CSSValue&amp; value)
</del><ins>+inline std::optional&lt;Length&gt; StyleBuilderConverter::convertMarqueeIncrement(StyleResolver&amp; styleResolver, const CSSValue&amp; value)
</ins><span class="cx"> {
</span><del>-    Optional&lt;Length&gt; marqueeLength;
</del><ins>+    std::optional&lt;Length&gt; marqueeLength;
</ins><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><span class="cx">     switch (primitiveValue.valueID()) {
</span><span class="cx">     case CSSValueSmall:
</span><span class="lines">@@ -1196,12 +1196,12 @@
</span><span class="cx">     return marqueeLength;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;FilterOperations&gt; StyleBuilderConverter::convertFilterOperations(StyleResolver&amp; styleResolver, const CSSValue&amp; value)
</del><ins>+inline std::optional&lt;FilterOperations&gt; StyleBuilderConverter::convertFilterOperations(StyleResolver&amp; styleResolver, const CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     FilterOperations operations;
</span><span class="cx">     if (styleResolver.createFilterOperations(value, operations))
</span><span class="cx">         return operations;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline FontFeatureSettings StyleBuilderConverter::convertFontFeatureSettings(StyleResolver&amp;, const CSSValue&amp; value)
</span><span class="lines">@@ -1404,7 +1404,7 @@
</span><span class="cx">     return convertGlyphOrientation(styleResolver, value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;Length&gt; StyleBuilderConverter::convertLineHeight(StyleResolver&amp; styleResolver, const CSSValue&amp; value, float multiplier)
</del><ins>+inline std::optional&lt;Length&gt; StyleBuilderConverter::convertLineHeight(StyleResolver&amp; styleResolver, const CSSValue&amp; value, float multiplier)
</ins><span class="cx"> {
</span><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><span class="cx">     if (primitiveValue.valueID() == CSSValueNormal)
</span><span class="lines">@@ -1424,7 +1424,7 @@
</span><span class="cx">         // FIXME: number and percentage values should produce the same type of Length (ie. Fixed or Percent).
</span><span class="cx">         return Length(primitiveValue.doubleValue() * multiplier * 100.0, Percent);
</span><span class="cx">     }
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline FontSynthesis StyleBuilderConverter::convertFontSynthesis(StyleResolver&amp;, const CSSValue&amp; value)
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderCustomh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderCustom.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderCustom.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/StyleBuilderCustom.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -630,7 +630,7 @@
</span><span class="cx"> inline void StyleBuilderCustom::applyValueLineHeight(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     float multiplier = styleResolver.style()-&gt;textSizeAdjust().isPercentage() ? styleResolver.style()-&gt;textSizeAdjust().multiplier() : 1.f;
</span><del>-    Optional&lt;Length&gt; lineHeight = StyleBuilderConverter::convertLineHeight(styleResolver, value, multiplier);
</del><ins>+    std::optional&lt;Length&gt; lineHeight = StyleBuilderConverter::convertLineHeight(styleResolver, value, multiplier);
</ins><span class="cx">     if (!lineHeight)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleRuleImportcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleRuleImport.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleRuleImport.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/StyleRuleImport.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Skip Content Security Policy check when stylesheet is in a user agent shadow tree.
</span><span class="cx">     // See &lt;https://bugs.webkit.org/show_bug.cgi?id=146663&gt;.
</span><del>-    CachedResourceRequest request(absURL, CachedResourceLoader::defaultCachedResourceOptions(), Nullopt, String(m_parentStyleSheet-&gt;charset()));
</del><ins>+    CachedResourceRequest request(absURL, CachedResourceLoader::defaultCachedResourceOptions(), std::nullopt, String(m_parentStyleSheet-&gt;charset()));
</ins><span class="cx">     request.setInitiator(cachedResourceRequestInitiators().css);
</span><span class="cx">     if (m_cachedSheet)
</span><span class="cx">         m_cachedSheet-&gt;removeClient(m_styleSheetClient);
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParser.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -4985,12 +4985,12 @@
</span><span class="cx">     return m_context.springTimingFunctionEnabled;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;double&gt; CSSParser::parseCubicBezierTimingFunctionValue(CSSParserValueList&amp; args)
</del><ins>+std::optional&lt;double&gt; CSSParser::parseCubicBezierTimingFunctionValue(CSSParserValueList&amp; args)
</ins><span class="cx"> {
</span><span class="cx">     ValueWithCalculation argumentWithCalculation(*args.current());
</span><span class="cx">     if (!validateUnit(argumentWithCalculation, FNumber))
</span><del>-        return Nullopt;
-    Optional&lt;double&gt; result = parsedDouble(argumentWithCalculation);
</del><ins>+        return std::nullopt;
+    std::optional&lt;double&gt; result = parsedDouble(argumentWithCalculation);
</ins><span class="cx">     CSSParserValue* nextValue = args.next();
</span><span class="cx">     if (!nextValue) {
</span><span class="cx">         // The last number in the function has no comma after it, so we're done.
</span><span class="lines">@@ -4997,17 +4997,17 @@
</span><span class="cx">         return result;
</span><span class="cx">     }
</span><span class="cx">     if (!isComma(nextValue))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     args.next();
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;double&gt; CSSParser::parseSpringTimingFunctionValue(CSSParserValueList&amp; args)
</del><ins>+std::optional&lt;double&gt; CSSParser::parseSpringTimingFunctionValue(CSSParserValueList&amp; args)
</ins><span class="cx"> {
</span><span class="cx">     ValueWithCalculation argumentWithCalculation(*args.current());
</span><span class="cx">     if (!validateUnit(argumentWithCalculation, FNumber))
</span><del>-        return Nullopt;
-    Optional&lt;double&gt; result = parsedDouble(argumentWithCalculation);
</del><ins>+        return std::nullopt;
+    std::optional&lt;double&gt; result = parsedDouble(argumentWithCalculation);
</ins><span class="cx">     args.next();
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="lines">@@ -7671,11 +7671,11 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;std::pair&lt;std::array&lt;double, 4&gt;, ColorSpace&gt;&gt; CSSParser::parseColorFunctionParameters(CSSParserValue&amp; value)
</del><ins>+std::optional&lt;std::pair&lt;std::array&lt;double, 4&gt;, ColorSpace&gt;&gt; CSSParser::parseColorFunctionParameters(CSSParserValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     CSSParserValueList* args = value.function-&gt;args.get();
</span><span class="cx">     if (!args-&gt;size())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     ColorSpace colorSpace;
</span><span class="cx">     switch (args-&gt;current()-&gt;id) {
</span><span class="lines">@@ -7686,7 +7686,7 @@
</span><span class="cx">         colorSpace = ColorSpaceDisplayP3;
</span><span class="cx">         break;
</span><span class="cx">     default:
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     std::array&lt;double, 4&gt; colorValues = { { 0, 0, 0, 1 } };
</span><span class="lines">@@ -7696,7 +7696,7 @@
</span><span class="cx">         if (valueOrNull) {
</span><span class="cx">             ValueWithCalculation argumentWithCalculation(*valueOrNull);
</span><span class="cx">             if (!validateUnit(argumentWithCalculation, FNumber))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             colorValues[i] = std::max(0.0, std::min(1.0, parsedDouble(argumentWithCalculation)));
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -7706,13 +7706,13 @@
</span><span class="cx">         return { { colorValues, colorSpace } };
</span><span class="cx"> 
</span><span class="cx">     if (!isForwardSlashOperator(*slashOrNull))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // Handle alpha.
</span><span class="cx"> 
</span><span class="cx">     ValueWithCalculation argumentWithCalculation(*args-&gt;next());
</span><span class="cx">     if (!validateUnit(argumentWithCalculation, FNumber | FPercent))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     colorValues[3] = std::max(0.0, std::min(1.0, parseColorDouble(argumentWithCalculation)));
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Support the comma-separated list of fallback color values.
</span><span class="lines">@@ -7720,7 +7720,7 @@
</span><span class="cx"> 
</span><span class="cx">     auto commaOrNull = args-&gt;next();
</span><span class="cx">     if (commaOrNull &amp;&amp; !isComma(commaOrNull))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return { { colorValues, colorSpace } };
</span><span class="cx"> }
</span><span class="lines">@@ -7814,7 +7814,7 @@
</span><span class="cx">     } else if (value.unit == CSSParserValue::Function
</span><span class="cx">         &amp;&amp; value.function-&gt;args
</span><span class="cx">         &amp;&amp; equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;color(&quot;)) {
</span><del>-        Optional&lt;std::pair&lt;std::array&lt;double, 4&gt;, ColorSpace&gt;&gt; colorData = parseColorFunctionParameters(value);
</del><ins>+        std::optional&lt;std::pair&lt;std::array&lt;double, 4&gt;, ColorSpace&gt;&gt; colorData = parseColorFunctionParameters(value);
</ins><span class="cx">         if (!colorData)
</span><span class="cx">             return Color();
</span><span class="cx">         return Color(colorData.value().first[0], colorData.value().first[1], colorData.value().first[2], colorData.value().first[3], colorData.value().second);
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParser.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParser.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/css/parser/CSSParser.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -175,7 +175,7 @@
</span><span class="cx">         SourceSize(MediaQueryExpression&amp;&amp;, Ref&lt;CSSValue&gt;&amp;&amp;);
</span><span class="cx">     };
</span><span class="cx">     Vector&lt;SourceSize&gt; parseSizesAttribute(StringView);
</span><del>-    Optional&lt;SourceSize&gt; sourceSize(MediaQueryExpression&amp;&amp;, CSSParserValue&amp;);
</del><ins>+    std::optional&lt;SourceSize&gt; sourceSize(MediaQueryExpression&amp;&amp;, CSSParserValue&amp;);
</ins><span class="cx"> 
</span><span class="cx">     bool parseFillImage(CSSParserValueList&amp;, RefPtr&lt;CSSValue&gt;&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -214,8 +214,8 @@
</span><span class="cx">     static std::unique_ptr&lt;Vector&lt;double&gt;&gt; parseKeyframeKeyList(const String&amp;);
</span><span class="cx"> 
</span><span class="cx">     bool parseTransformOriginShorthand(RefPtr&lt;CSSPrimitiveValue&gt;&amp;, RefPtr&lt;CSSPrimitiveValue&gt;&amp;, RefPtr&lt;CSSValue&gt;&amp;);
</span><del>-    Optional&lt;double&gt; parseCubicBezierTimingFunctionValue(CSSParserValueList&amp;);
-    Optional&lt;double&gt; parseSpringTimingFunctionValue(CSSParserValueList&amp;);
</del><ins>+    std::optional&lt;double&gt; parseCubicBezierTimingFunctionValue(CSSParserValueList&amp;);
+    std::optional&lt;double&gt; parseSpringTimingFunctionValue(CSSParserValueList&amp;);
</ins><span class="cx">     bool parseAnimationProperty(CSSPropertyID, RefPtr&lt;CSSValue&gt;&amp;, AnimationParseContext&amp;);
</span><span class="cx">     bool parseTransitionShorthand(CSSPropertyID, bool important);
</span><span class="cx">     bool parseAnimationShorthand(CSSPropertyID, bool important);
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool parseRGBParameters(CSSParserValue&amp;, int* colorValues, bool parseAlpha);
</span><span class="cx">     bool parseHSLParameters(CSSParserValue&amp;, double* colorValues, bool parseAlpha);
</span><del>-    Optional&lt;std::pair&lt;std::array&lt;double, 4&gt;, ColorSpace&gt;&gt; parseColorFunctionParameters(CSSParserValue&amp;);
</del><ins>+    std::optional&lt;std::pair&lt;std::array&lt;double, 4&gt;, ColorSpace&gt;&gt; parseColorFunctionParameters(CSSParserValue&amp;);
</ins><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; parseColor(CSSParserValue* = nullptr);
</span><span class="cx">     Color parseColorFromValue(CSSParserValue&amp;);
</span><span class="cx">     void parseSelector(const String&amp;, CSSSelectorList&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorecssjitSelectorCompilercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/cssjit/SelectorCompiler.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/cssjit/SelectorCompiler.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/cssjit/SelectorCompiler.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -326,8 +326,8 @@
</span><span class="cx">     void generateElementHasFocusWithin(Assembler::JumpList&amp; failureCases);
</span><span class="cx"> 
</span><span class="cx">     // Helpers.
</span><del>-    void generateAddStyleRelationIfResolvingStyle(Assembler::RegisterID element, Style::Relation::Type, Optional&lt;Assembler::RegisterID&gt; value = { });
-    void generateAddStyleRelation(Assembler::RegisterID checkingContext, Assembler::RegisterID element, Style::Relation::Type, Optional&lt;Assembler::RegisterID&gt; value = { });
</del><ins>+    void generateAddStyleRelationIfResolvingStyle(Assembler::RegisterID element, Style::Relation::Type, std::optional&lt;Assembler::RegisterID&gt; value = { });
+    void generateAddStyleRelation(Assembler::RegisterID checkingContext, Assembler::RegisterID element, Style::Relation::Type, std::optional&lt;Assembler::RegisterID&gt; value = { });
</ins><span class="cx">     Assembler::Jump branchOnResolvingModeWithCheckingContext(Assembler::RelationalCondition, SelectorChecker::Mode, Assembler::RegisterID checkingContext);
</span><span class="cx">     Assembler::Jump branchOnResolvingMode(Assembler::RelationalCondition, SelectorChecker::Mode, Assembler::RegisterID checkingContext);
</span><span class="cx">     void generateElementIsFirstLink(Assembler::JumpList&amp; failureCases, Assembler::RegisterID element);
</span><span class="lines">@@ -2170,7 +2170,7 @@
</span><span class="cx">     localFailureCases.linkTo(loopStart, &amp;m_assembler);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SelectorCodeGenerator::generateAddStyleRelationIfResolvingStyle(Assembler::RegisterID element, Style::Relation::Type relationType, Optional&lt;Assembler::RegisterID&gt; value)
</del><ins>+void SelectorCodeGenerator::generateAddStyleRelationIfResolvingStyle(Assembler::RegisterID element, Style::Relation::Type relationType, std::optional&lt;Assembler::RegisterID&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     if (m_selectorContext == SelectorContext::QuerySelector)
</span><span class="cx">         return;
</span><span class="lines">@@ -2188,7 +2188,7 @@
</span><span class="cx">     checkingContext-&gt;styleRelations.append({ *element, Style::Relation::AffectedByActive, 1 });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SelectorCodeGenerator::generateAddStyleRelation(Assembler::RegisterID checkingContext, Assembler::RegisterID element, Style::Relation::Type relationType, Optional&lt;Assembler::RegisterID&gt; value)
</del><ins>+void SelectorCodeGenerator::generateAddStyleRelation(Assembler::RegisterID checkingContext, Assembler::RegisterID element, Style::Relation::Type relationType, std::optional&lt;Assembler::RegisterID&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_selectorContext != SelectorContext::QuerySelector);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomCustomElementReactionQueuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/CustomElementReactionQueue.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/CustomElementReactionQueue.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/CustomElementReactionQueue.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">     Type m_type;
</span><span class="cx">     RefPtr&lt;Document&gt; m_oldDocument;
</span><span class="cx">     RefPtr&lt;Document&gt; m_newDocument;
</span><del>-    Optional&lt;QualifiedName&gt; m_attributeName;
</del><ins>+    std::optional&lt;QualifiedName&gt; m_attributeName;
</ins><span class="cx">     AtomicString m_oldValue;
</span><span class="cx">     AtomicString m_newValue;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/Document.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -4343,7 +4343,7 @@
</span><span class="cx"> String Document::lastModified()
</span><span class="cx"> {
</span><span class="cx">     using namespace std::chrono;
</span><del>-    Optional&lt;system_clock::time_point&gt; dateTime;
</del><ins>+    std::optional&lt;system_clock::time_point&gt; dateTime;
</ins><span class="cx">     if (m_frame &amp;&amp; loader())
</span><span class="cx">         dateTime = loader()-&gt;response().lastModified();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -687,7 +687,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Element::scrollBy(const ScrollToOptions&amp; options)
</span><span class="cx"> {
</span><del>-    return scrollBy(options.left.valueOr(0), options.top.valueOr(0));
</del><ins>+    return scrollBy(options.left.value_or(0), options.top.value_or(0));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline double normalizeNonFiniteValue(double f)
</span><span class="lines">@@ -3000,7 +3000,7 @@
</span><span class="cx"> 
</span><span class="cx"> int Element::getIntegralAttribute(const QualifiedName&amp; attributeName) const
</span><span class="cx"> {
</span><del>-    return parseHTMLInteger(getAttribute(attributeName)).valueOr(0);
</del><ins>+    return parseHTMLInteger(getAttribute(attributeName)).value_or(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Element::setIntegralAttribute(const QualifiedName&amp; attributeName, int value)
</span><span class="lines">@@ -3010,7 +3010,7 @@
</span><span class="cx"> 
</span><span class="cx"> unsigned Element::getUnsignedIntegralAttribute(const QualifiedName&amp; attributeName) const
</span><span class="cx"> {
</span><del>-    return parseHTMLNonNegativeInteger(getAttribute(attributeName)).valueOr(0);
</del><ins>+    return parseHTMLNonNegativeInteger(getAttribute(attributeName)).value_or(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Element::setUnsignedIntegralAttribute(const QualifiedName&amp; attributeName, unsigned value)
</span><span class="lines">@@ -3498,10 +3498,10 @@
</span><span class="cx">     ASSERT(hasCustomStyleResolveCallbacks());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ElementStyle&gt; Element::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle*)
</del><ins>+std::optional&lt;ElementStyle&gt; Element::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle*)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(hasCustomStyleResolveCallbacks());
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Element::cloneAttributesFromElement(const Element&amp; other)
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/Element.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -519,7 +519,7 @@
</span><span class="cx">     virtual void didAttachRenderers();
</span><span class="cx">     virtual void willDetachRenderers();
</span><span class="cx">     virtual void didDetachRenderers();
</span><del>-    virtual Optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle);
</del><ins>+    virtual std::optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle);
</ins><span class="cx"> 
</span><span class="cx">     LayoutRect absoluteEventHandlerBounds(bool&amp; includesFixedPositionElements) override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementIteratorAssertionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ElementIteratorAssertions.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ElementIteratorAssertions.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/ElementIteratorAssertions.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> private:
</span><span class="cx">     const Document* m_document;
</span><span class="cx">     uint64_t m_initialDOMTreeVersion;
</span><del>-    Optional&lt;NoEventDispatchAssertion&gt; m_eventDispatchAssertion;
</del><ins>+    std::optional&lt;NoEventDispatchAssertion&gt; m_eventDispatchAssertion;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> // FIXME: No real point in doing these as inlines; they are for debugging and we usually turn off inlining in debug builds.
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> 
</span><span class="cx"> inline void ElementIteratorAssertions::dropEventDispatchAssertion()
</span><span class="cx"> {
</span><del>-    m_eventDispatchAssertion = Nullopt;
</del><ins>+    m_eventDispatchAssertion = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void ElementIteratorAssertions::clear()
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_document = nullptr;
</span><span class="cx">     m_initialDOMTreeVersion = 0;
</span><del>-    m_eventDispatchAssertion = Nullopt;
</del><ins>+    m_eventDispatchAssertion = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoredomExceptionOrh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ExceptionOr.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ExceptionOr.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/ExceptionOr.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx">     Exception&amp;&amp; releaseException();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Optional&lt;Exception&gt; m_exception;
</del><ins>+    std::optional&lt;Exception&gt; m_exception;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> ExceptionOr&lt;void&gt; isolatedCopy(ExceptionOr&lt;void&gt;&amp;&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoredomInlineStyleSheetOwnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;InlineStyleSheetCacheKey&gt; makeInlineStyleSheetCacheKey(const String&amp; text, const Element&amp; element)
</del><ins>+static std::optional&lt;InlineStyleSheetCacheKey&gt; makeInlineStyleSheetCacheKey(const String&amp; text, const Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     // Only cache for shadow trees. Main document inline stylesheets are generally unique and can't be shared between documents.
</span><span class="cx">     // FIXME: This could be relaxed when a stylesheet does not contain document-relative URLs (or #urls).
</span></span></pre></div>
<a id="trunkSourceWebCoredomKeyboardEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/KeyboardEvent.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/KeyboardEvent.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/KeyboardEvent.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> 
</span><span class="cx">         // Legacy.
</span><span class="cx">         String keyIdentifier;
</span><del>-        Optional&lt;unsigned&gt; keyLocation;
</del><ins>+        std::optional&lt;unsigned&gt; keyLocation;
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     static Ref&lt;KeyboardEvent&gt; create(const AtomicString&amp; type, const Init&amp; initializer, IsTrusted isTrusted = IsTrusted::No)
</span></span></pre></div>
<a id="trunkSourceWebCoredomLoadableClassicScriptcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/LoadableClassicScript.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/LoadableClassicScript.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/LoadableClassicScript.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -51,15 +51,15 @@
</span><span class="cx">     return m_cachedScript-&gt;isLoaded();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LoadableScript::Error&gt; LoadableClassicScript::error() const
</del><ins>+std::optional&lt;LoadableScript::Error&gt; LoadableClassicScript::error() const
</ins><span class="cx"> {
</span><span class="cx">     if (m_error)
</span><span class="cx">         return m_error;
</span><span class="cx"> 
</span><span class="cx">     if (m_cachedScript-&gt;errorOccurred())
</span><del>-        return Error { ErrorType::CachedScript, Nullopt };
</del><ins>+        return Error { ErrorType::CachedScript, std::nullopt };
</ins><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool LoadableClassicScript::wasCanceled() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomLoadableClassicScripth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/LoadableClassicScript.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/LoadableClassicScript.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/LoadableClassicScript.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> 
</span><span class="cx">     static Ref&lt;LoadableClassicScript&gt; create(CachedResourceHandle&lt;CachedScript&gt;&amp;&amp;);
</span><span class="cx">     bool isLoaded() const final;
</span><del>-    Optional&lt;Error&gt; error() const final;
</del><ins>+    std::optional&lt;Error&gt; error() const final;
</ins><span class="cx">     bool wasCanceled() const final;
</span><span class="cx"> 
</span><span class="cx">     CachedScript&amp; cachedScript() { return *m_cachedScript; }
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     void notifyFinished(CachedResource&amp;) final;
</span><span class="cx"> 
</span><span class="cx">     CachedResourceHandle&lt;CachedScript&gt; m_cachedScript;
</span><del>-    Optional&lt;Error&gt; m_error { Nullopt };
</del><ins>+    std::optional&lt;Error&gt; m_error { std::nullopt };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomLoadableModuleScriptcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/LoadableModuleScript.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/LoadableModuleScript.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/LoadableModuleScript.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">     return m_moduleScript-&gt;isLoaded();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LoadableScript::Error&gt; LoadableModuleScript::error() const
</del><ins>+std::optional&lt;LoadableScript::Error&gt; LoadableModuleScript::error() const
</ins><span class="cx"> {
</span><span class="cx">     return m_moduleScript-&gt;error();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomLoadableModuleScripth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/LoadableModuleScript.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/LoadableModuleScript.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/LoadableModuleScript.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">     static Ref&lt;LoadableModuleScript&gt; create(CachedModuleScript&amp;);
</span><span class="cx"> 
</span><span class="cx">     bool isLoaded() const final;
</span><del>-    Optional&lt;Error&gt; error() const final;
</del><ins>+    std::optional&lt;Error&gt; error() const final;
</ins><span class="cx">     bool wasCanceled() const final;
</span><span class="cx"> 
</span><span class="cx">     CachedModuleScript&amp; moduleScript() { return m_moduleScript.get(); }
</span></span></pre></div>
<a id="trunkSourceWebCoredomLoadableScripth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/LoadableScript.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/LoadableScript.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/LoadableScript.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -51,13 +51,13 @@
</span><span class="cx"> 
</span><span class="cx">     struct Error {
</span><span class="cx">         ErrorType type;
</span><del>-        Optional&lt;ConsoleMessage&gt; consoleMessage;
</del><ins>+        std::optional&lt;ConsoleMessage&gt; consoleMessage;
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     virtual ~LoadableScript() { }
</span><span class="cx"> 
</span><span class="cx">     virtual bool isLoaded() const = 0;
</span><del>-    virtual Optional&lt;Error&gt; error() const = 0;
</del><ins>+    virtual std::optional&lt;Error&gt; error() const = 0;
</ins><span class="cx">     virtual bool wasCanceled() const = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual void execute(ScriptElement&amp;) = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessageEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessageEvent.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessageEvent.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/MessageEvent.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline MessageEvent::MessageEvent(RefPtr&lt;SerializedScriptValue&gt;&amp;&amp; data, const String&amp; origin, const String&amp; lastEventId, Optional&lt;MessageEventSource&gt;&amp;&amp; source, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp; ports)
</del><ins>+inline MessageEvent::MessageEvent(RefPtr&lt;SerializedScriptValue&gt;&amp;&amp; data, const String&amp; origin, const String&amp; lastEventId, std::optional&lt;MessageEventSource&gt;&amp;&amp; source, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp; ports)
</ins><span class="cx">     : Event(eventNames().messageEvent, false, false)
</span><span class="cx">     , m_dataType(DataTypeSerializedScriptValue)
</span><span class="cx">     , m_dataAsSerializedScriptValue(WTFMove(data))
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;MessageEvent&gt; MessageEvent::create(Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp; ports, RefPtr&lt;SerializedScriptValue&gt;&amp;&amp; data, const String&amp; origin, const String&amp; lastEventId, Optional&lt;MessageEventSource&gt;&amp;&amp; source)
</del><ins>+Ref&lt;MessageEvent&gt; MessageEvent::create(Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp; ports, RefPtr&lt;SerializedScriptValue&gt;&amp;&amp; data, const String&amp; origin, const String&amp; lastEventId, std::optional&lt;MessageEventSource&gt;&amp;&amp; source)
</ins><span class="cx"> {
</span><span class="cx">     return adoptRef(*new MessageEvent(WTFMove(data), origin, lastEventId, WTFMove(source), WTFMove(ports)));
</span><span class="cx"> }
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MessageEvent::initMessageEvent(ExecState&amp; state, const AtomicString&amp; type, bool canBubble, bool cancelable, JSValue data, const String&amp; origin, const String&amp; lastEventId, Optional&lt;MessageEventSource&gt;&amp;&amp; source, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp; ports)
</del><ins>+void MessageEvent::initMessageEvent(ExecState&amp; state, const AtomicString&amp; type, bool canBubble, bool cancelable, JSValue data, const String&amp; origin, const String&amp; lastEventId, std::optional&lt;MessageEventSource&gt;&amp;&amp; source, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp; ports)
</ins><span class="cx"> {
</span><span class="cx">     if (dispatched())
</span><span class="cx">         return;
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">     m_ports = WTFMove(ports);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MessageEvent::initMessageEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, PassRefPtr&lt;SerializedScriptValue&gt; data, const String&amp; origin, const String&amp; lastEventId, Optional&lt;MessageEventSource&gt;&amp;&amp; source, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp; ports)
</del><ins>+void MessageEvent::initMessageEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, PassRefPtr&lt;SerializedScriptValue&gt; data, const String&amp; origin, const String&amp; lastEventId, std::optional&lt;MessageEventSource&gt;&amp;&amp; source, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp; ports)
</ins><span class="cx"> {
</span><span class="cx">     if (dispatched())
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessageEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessageEvent.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessageEvent.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/MessageEvent.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> 
</span><span class="cx"> class MessageEvent final : public Event {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;MessageEvent&gt; create(Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp;, RefPtr&lt;SerializedScriptValue&gt;&amp;&amp;, const String&amp; origin = { }, const String&amp; lastEventId = { }, Optional&lt;MessageEventSource&gt;&amp;&amp; source = Nullopt);
</del><ins>+    static Ref&lt;MessageEvent&gt; create(Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp;, RefPtr&lt;SerializedScriptValue&gt;&amp;&amp;, const String&amp; origin = { }, const String&amp; lastEventId = { }, std::optional&lt;MessageEventSource&gt;&amp;&amp; source = std::nullopt);
</ins><span class="cx">     static Ref&lt;MessageEvent&gt; create(const AtomicString&amp; type, RefPtr&lt;SerializedScriptValue&gt;&amp;&amp;, const String&amp; origin, const String&amp; lastEventId);
</span><span class="cx">     static Ref&lt;MessageEvent&gt; create(const String&amp; data, const String&amp; origin = { });
</span><span class="cx">     static Ref&lt;MessageEvent&gt; create(Ref&lt;Blob&gt;&amp;&amp; data, const String&amp; origin);
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">         JSC::JSValue data;
</span><span class="cx">         String origin;
</span><span class="cx">         String lastEventId;
</span><del>-        Optional&lt;MessageEventSource&gt; source;
</del><ins>+        std::optional&lt;MessageEventSource&gt; source;
</ins><span class="cx">         Vector&lt;RefPtr&lt;MessagePort&gt;&gt; ports;
</span><span class="cx">     };
</span><span class="cx">     static Ref&lt;MessageEvent&gt; create(JSC::ExecState&amp;, const AtomicString&amp; type, Init&amp;&amp;, IsTrusted = IsTrusted::No);
</span><span class="lines">@@ -60,8 +60,8 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~MessageEvent();
</span><span class="cx"> 
</span><del>-    void initMessageEvent(JSC::ExecState&amp;, const AtomicString&amp; type, bool canBubble, bool cancelable, JSC::JSValue data, const String&amp; origin, const String&amp; lastEventId, Optional&lt;MessageEventSource&gt;&amp;&amp;, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp;);
-    void initMessageEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, PassRefPtr&lt;SerializedScriptValue&gt; data, const String&amp; origin, const String&amp; lastEventId, Optional&lt;MessageEventSource&gt;&amp;&amp;, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp;);
</del><ins>+    void initMessageEvent(JSC::ExecState&amp;, const AtomicString&amp; type, bool canBubble, bool cancelable, JSC::JSValue data, const String&amp; origin, const String&amp; lastEventId, std::optional&lt;MessageEventSource&gt;&amp;&amp;, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp;);
+    void initMessageEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, PassRefPtr&lt;SerializedScriptValue&gt; data, const String&amp; origin, const String&amp; lastEventId, std::optional&lt;MessageEventSource&gt;&amp;&amp;, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     const String&amp; origin() const { return m_origin; }
</span><span class="cx">     const String&amp; lastEventId() const { return m_lastEventId; }
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx"> private:
</span><span class="cx">     MessageEvent();
</span><span class="cx">     MessageEvent(JSC::ExecState&amp;, const AtomicString&amp;, Init&amp;&amp;, IsTrusted);
</span><del>-    MessageEvent(RefPtr&lt;SerializedScriptValue&gt;&amp;&amp; data, const String&amp; origin, const String&amp; lastEventId, Optional&lt;MessageEventSource&gt;&amp;&amp;, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp;);
</del><ins>+    MessageEvent(RefPtr&lt;SerializedScriptValue&gt;&amp;&amp; data, const String&amp; origin, const String&amp; lastEventId, std::optional&lt;MessageEventSource&gt;&amp;&amp;, Vector&lt;RefPtr&lt;MessagePort&gt;&gt;&amp;&amp;);
</ins><span class="cx">     MessageEvent(const AtomicString&amp; type, RefPtr&lt;SerializedScriptValue&gt;&amp;&amp; data, const String&amp; origin, const String&amp; lastEventId);
</span><span class="cx">     MessageEvent(const String&amp; data, const String&amp; origin);
</span><span class="cx">     MessageEvent(Ref&lt;Blob&gt;&amp;&amp; data, const String&amp; origin);
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx">     RefPtr&lt;ArrayBuffer&gt; m_dataAsArrayBuffer;
</span><span class="cx">     String m_origin;
</span><span class="cx">     String m_lastEventId;
</span><del>-    Optional&lt;MessageEventSource&gt; m_source;
</del><ins>+    std::optional&lt;MessageEventSource&gt; m_source;
</ins><span class="cx">     Vector&lt;RefPtr&lt;MessagePort&gt;&gt; m_ports;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomMutationObservercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MutationObserver.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MutationObserver.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/MutationObserver.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -80,9 +80,9 @@
</span><span class="cx">         options |= ChildList;
</span><span class="cx">     if (init.subtree)
</span><span class="cx">         options |= Subtree;
</span><del>-    if (init.attributeOldValue.valueOr(false))
</del><ins>+    if (init.attributeOldValue.value_or(false))
</ins><span class="cx">         options |= AttributeOldValue;
</span><del>-    if (init.characterDataOldValue.valueOr(false))
</del><ins>+    if (init.characterDataOldValue.value_or(false))
</ins><span class="cx">         options |= CharacterDataOldValue;
</span><span class="cx"> 
</span><span class="cx">     HashSet&lt;AtomicString&gt; attributeFilter;
</span></span></pre></div>
<a id="trunkSourceWebCoredomMutationObserverh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MutationObserver.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MutationObserver.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/MutationObserver.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -73,12 +73,12 @@
</span><span class="cx"> 
</span><span class="cx">     struct Init {
</span><span class="cx">         bool childList;
</span><del>-        Optional&lt;bool&gt; attributes;
-        Optional&lt;bool&gt; characterData;
</del><ins>+        std::optional&lt;bool&gt; attributes;
+        std::optional&lt;bool&gt; characterData;
</ins><span class="cx">         bool subtree;
</span><del>-        Optional&lt;bool&gt; attributeOldValue;
-        Optional&lt;bool&gt; characterDataOldValue;
-        Optional&lt;Vector&lt;String&gt;&gt; attributeFilter;
</del><ins>+        std::optional&lt;bool&gt; attributeOldValue;
+        std::optional&lt;bool&gt; characterDataOldValue;
+        std::optional&lt;Vector&lt;String&gt;&gt; attributeFilter;
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     ExceptionOr&lt;void&gt; observe(Node&amp;, const Init&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoredomProcessingInstructioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ProcessingInstruction.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ProcessingInstruction.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/ProcessingInstruction.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx"> #endif
</span><span class="cx">             {
</span><span class="cx">                 String charset = attrs.get(&quot;charset&quot;);
</span><del>-                CachedResourceRequest request(document().completeURL(href), CachedResourceLoader::defaultCachedResourceOptions(), Nullopt, charset.isEmpty() ? document().charset() : WTFMove(charset));
</del><ins>+                CachedResourceRequest request(document().completeURL(href), CachedResourceLoader::defaultCachedResourceOptions(), std::nullopt, charset.isEmpty() ? document().charset() : WTFMove(charset));
</ins><span class="cx"> 
</span><span class="cx">                 m_cachedSheet = document().cachedResourceLoader().requestCSSStyleSheet(WTFMove(request));
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkSourceWebCoredomPseudoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/PseudoElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/PseudoElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/PseudoElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -77,11 +77,11 @@
</span><span class="cx">     m_hostElement = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ElementStyle&gt; PseudoElement::resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle*)
</del><ins>+std::optional&lt;ElementStyle&gt; PseudoElement::resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle*)
</ins><span class="cx"> {
</span><span class="cx">     auto* style = m_hostElement-&gt;renderer()-&gt;getCachedPseudoStyle(m_pseudoId, &amp;parentStyle);
</span><span class="cx">     if (!style)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return ElementStyle(RenderStyle::clonePtr(*style));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomPseudoElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/PseudoElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/PseudoElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/PseudoElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     Element* hostElement() const { return m_hostElement; }
</span><span class="cx">     void clearHostElement();
</span><span class="cx"> 
</span><del>-    Optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</del><ins>+    std::optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</ins><span class="cx">     void didAttachRenderers() override;
</span><span class="cx">     void didRecalcStyle(Style::Change) override;
</span><span class="cx">     bool rendererIsNeeded(const RenderStyle&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangeBoundaryPointh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/RangeBoundaryPoint.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/RangeBoundaryPoint.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/RangeBoundaryPoint.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     RefPtr&lt;Node&gt; m_containerNode;
</span><del>-    mutable Optional&lt;unsigned&gt; m_offsetInContainer { 0 };
</del><ins>+    mutable std::optional&lt;unsigned&gt; m_offsetInContainer { 0 };
</ins><span class="cx">     RefPtr&lt;Node&gt; m_childBeforeBoundary;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">     ASSERT(child.parentNode());
</span><span class="cx">     m_childBeforeBoundary = child.previousSibling();
</span><span class="cx">     m_containerNode = child.parentNode();
</span><del>-    m_offsetInContainer = m_childBeforeBoundary ? Nullopt : Optional&lt;unsigned&gt;(0);
</del><ins>+    m_offsetInContainer = m_childBeforeBoundary ? std::nullopt : std::optional&lt;unsigned&gt;(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void RangeBoundaryPoint::setToAfterChild(Node&amp; child)
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">     ASSERT(child.parentNode());
</span><span class="cx">     m_childBeforeBoundary = &amp;child;
</span><span class="cx">     m_containerNode = child.parentNode();
</span><del>-    m_offsetInContainer = m_childBeforeBoundary ? Nullopt : Optional&lt;unsigned&gt;(0);
</del><ins>+    m_offsetInContainer = m_childBeforeBoundary ? std::nullopt : std::optional&lt;unsigned&gt;(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void RangeBoundaryPoint::setToStartOfNode(Ref&lt;Node&gt;&amp;&amp; container)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">         m_childBeforeBoundary = nullptr;
</span><span class="cx">     } else {
</span><span class="cx">         m_childBeforeBoundary = m_containerNode-&gt;lastChild();
</span><del>-        m_offsetInContainer = m_childBeforeBoundary ? Nullopt : Optional&lt;unsigned&gt;(0);
</del><ins>+        m_offsetInContainer = m_childBeforeBoundary ? std::nullopt : std::optional&lt;unsigned&gt;(0);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -177,7 +177,7 @@
</span><span class="cx"> 
</span><span class="cx"> inline void RangeBoundaryPoint::invalidateOffset() const
</span><span class="cx"> {
</span><del>-    m_offsetInContainer = Nullopt;
</del><ins>+    m_offsetInContainer = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline bool operator==(const RangeBoundaryPoint&amp; a, const RangeBoundaryPoint&amp; b)
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/ScriptElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx">     m_element.dispatchEvent(Event::create(eventNames().errorEvent, false, false));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ScriptElement::ScriptType&gt; ScriptElement::determineScriptType(LegacyTypeSupport supportLegacyTypes) const
</del><ins>+std::optional&lt;ScriptElement::ScriptType&gt; ScriptElement::determineScriptType(LegacyTypeSupport supportLegacyTypes) const
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: isLegacySupportedJavaScriptLanguage() is not valid HTML5. It is used here to maintain backwards compatibility with existing layout tests. The specific violations are:
</span><span class="cx">     // - Allowing type=javascript. type= should only support MIME types, such as text/javascript.
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx">             return ScriptType::Classic;
</span><span class="cx">         if (isLegacySupportedJavaScriptLanguage(language))
</span><span class="cx">             return ScriptType::Classic;
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     if (MIMETypeRegistry::isSupportedJavaScriptMIMEType(type.stripWhiteSpace()))
</span><span class="cx">         return ScriptType::Classic;
</span><span class="lines">@@ -168,16 +168,16 @@
</span><span class="cx">     // Once &quot;defer&quot; is implemented, we can reconsider enabling modules in XHTML.
</span><span class="cx">     // https://bugs.webkit.org/show_bug.cgi?id=123387
</span><span class="cx">     if (!m_element.document().isHTMLDocument())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto* settings = m_element.document().settings();
</span><span class="cx">     if (!settings || !settings-&gt;es6ModulesEnabled())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     // https://html.spec.whatwg.org/multipage/scripting.html#attr-script-type
</span><span class="cx">     // Setting the attribute to an ASCII case-insensitive match for the string &quot;module&quot; means that the script is a module script.
</span><span class="cx">     if (equalLettersIgnoringASCIICase(type, &quot;module&quot;))
</span><span class="cx">         return ScriptType::Module;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // http://dev.w3.org/html5/spec/Overview.html#prepare-a-script
</span><span class="lines">@@ -204,7 +204,7 @@
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     ScriptType scriptType = ScriptType::Classic;
</span><del>-    if (Optional&lt;ScriptType&gt; result = determineScriptType(supportLegacyTypes))
</del><ins>+    if (std::optional&lt;ScriptType&gt; result = determineScriptType(supportLegacyTypes))
</ins><span class="cx">         scriptType = result.value();
</span><span class="cx">     else
</span><span class="cx">         return false;
</span><span class="lines">@@ -438,8 +438,8 @@
</span><span class="cx"> 
</span><span class="cx"> void ScriptElement::executeScriptAndDispatchEvent(LoadableScript&amp; loadableScript)
</span><span class="cx"> {
</span><del>-    if (Optional&lt;LoadableScript::Error&gt; error = loadableScript.error()) {
-        if (Optional&lt;LoadableScript::ConsoleMessage&gt; message = error-&gt;consoleMessage)
</del><ins>+    if (std::optional&lt;LoadableScript::Error&gt; error = loadableScript.error()) {
+        if (std::optional&lt;LoadableScript::ConsoleMessage&gt; message = error-&gt;consoleMessage)
</ins><span class="cx">             m_element.document().addConsoleMessage(message-&gt;source, message-&gt;level, message-&gt;message);
</span><span class="cx">         dispatchErrorEvent();
</span><span class="cx">     } else if (!loadableScript.wasCanceled()) {
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/ScriptElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> private:
</span><span class="cx">     void executeScriptAndDispatchEvent(LoadableScript&amp;);
</span><span class="cx"> 
</span><del>-    Optional&lt;ScriptType&gt; determineScriptType(LegacyTypeSupport) const;
</del><ins>+    std::optional&lt;ScriptType&gt; determineScriptType(LegacyTypeSupport) const;
</ins><span class="cx">     bool ignoresLoadRequest() const;
</span><span class="cx">     bool isScriptForEventSupported() const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomTextDecodercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TextDecoder.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TextDecoder.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/TextDecoder.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -95,9 +95,9 @@
</span><span class="cx">     return 2;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;String&gt; TextDecoder::decode(Optional&lt;BufferSource::VariantType&gt; input, DecodeOptions options)
</del><ins>+ExceptionOr&lt;String&gt; TextDecoder::decode(std::optional&lt;BufferSource::VariantType&gt; input, DecodeOptions options)
</ins><span class="cx"> {
</span><del>-    Optional&lt;BufferSource&gt; inputBuffer;
</del><ins>+    std::optional&lt;BufferSource&gt; inputBuffer;
</ins><span class="cx">     const uint8_t* data = nullptr;
</span><span class="cx">     size_t length = 0;
</span><span class="cx">     if (input) {
</span></span></pre></div>
<a id="trunkSourceWebCoredomTextDecoderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TextDecoder.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TextDecoder.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/TextDecoder.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">     String encoding() const;
</span><span class="cx">     bool fatal() const { return m_options.fatal; }
</span><span class="cx">     bool ignoreBOM() const { return m_options.ignoreBOM; }
</span><del>-    ExceptionOr&lt;String&gt; decode(Optional&lt;BufferSource::VariantType&gt;, DecodeOptions);
</del><ins>+    ExceptionOr&lt;String&gt; decode(std::optional&lt;BufferSource::VariantType&gt;, DecodeOptions);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     String prependBOMIfNecessary(const String&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoredomUserGestureIndicatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/UserGestureIndicator.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/UserGestureIndicator.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/UserGestureIndicator.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">         observer(*this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-UserGestureIndicator::UserGestureIndicator(Optional&lt;ProcessingUserGestureState&gt; state, Document* document)
</del><ins>+UserGestureIndicator::UserGestureIndicator(std::optional&lt;ProcessingUserGestureState&gt; state, Document* document)
</ins><span class="cx">     : m_previousToken(currentToken())
</span><span class="cx"> {
</span><span class="cx">     // Silently ignore UserGestureIndicators on non main threads.
</span></span></pre></div>
<a id="trunkSourceWebCoredomUserGestureIndicatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/UserGestureIndicator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/UserGestureIndicator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/dom/UserGestureIndicator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     WEBCORE_EXPORT static bool processingUserGestureForMedia();
</span><span class="cx"> 
</span><span class="cx">     // If a document is provided, its last known user gesture timestamp is updated.
</span><del>-    WEBCORE_EXPORT explicit UserGestureIndicator(Optional&lt;ProcessingUserGestureState&gt;, Document* = nullptr);
</del><ins>+    WEBCORE_EXPORT explicit UserGestureIndicator(std::optional&lt;ProcessingUserGestureState&gt;, Document* = nullptr);
</ins><span class="cx">     WEBCORE_EXPORT explicit UserGestureIndicator(RefPtr&lt;UserGestureToken&gt;);
</span><span class="cx">     WEBCORE_EXPORT ~UserGestureIndicator();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1535,11 +1535,11 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;VisibleSelection&gt; CompositeEditCommand::shouldBreakOutOfEmptyListItem() const
</del><ins>+std::optional&lt;VisibleSelection&gt; CompositeEditCommand::shouldBreakOutOfEmptyListItem() const
</ins><span class="cx"> {
</span><span class="cx">     auto emptyListItem = enclosingEmptyListItem(endingSelection().visibleStart());
</span><span class="cx">     if (!emptyListItem)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto listNode = emptyListItem-&gt;parentNode();
</span><span class="cx">     // FIXME: Can't we do something better when the immediate parent wasn't a list node?
</span><span class="lines">@@ -1547,7 +1547,7 @@
</span><span class="cx">         || (!listNode-&gt;hasTagName(ulTag) &amp;&amp; !listNode-&gt;hasTagName(olTag))
</span><span class="cx">         || !listNode-&gt;hasEditableStyle()
</span><span class="cx">         || listNode == emptyListItem-&gt;rootEditableElement())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return VisibleSelection(endingSelection().start().previous(BackwardDeletion), endingSelection().end());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/CompositeEditCommand.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -200,7 +200,7 @@
</span><span class="cx">     void cloneParagraphUnderNewElement(const Position&amp; start, const Position&amp; end, Node* outerNode, Element* blockElement);
</span><span class="cx">     void cleanupAfterDeletion(VisiblePosition destination = VisiblePosition());
</span><span class="cx">     
</span><del>-    Optional&lt;VisibleSelection&gt; shouldBreakOutOfEmptyListItem() const;
</del><ins>+    std::optional&lt;VisibleSelection&gt; shouldBreakOutOfEmptyListItem() const;
</ins><span class="cx">     bool breakOutOfEmptyListItem();
</span><span class="cx">     bool breakOutOfEmptyMailBlockquotedParagraph();
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/File.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/File.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/fileapi/File.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">     String m_path;
</span><span class="cx">     String m_name;
</span><span class="cx"> 
</span><del>-    Optional&lt;int64_t&gt; m_overrideLastModifiedDate;
</del><ins>+    std::optional&lt;int64_t&gt; m_overrideLastModifiedDate;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehistoryCachedFrameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/history/CachedFrame.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/history/CachedFrame.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/history/CachedFrame.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">     std::unique_ptr&lt;CachedFramePlatformData&gt; m_cachedFramePlatformData;
</span><span class="cx">     bool m_isMainFrame;
</span><span class="cx">     bool m_isComposited;
</span><del>-    Optional&lt;HasInsecureContent&gt; m_hasInsecureContent;
</del><ins>+    std::optional&lt;HasInsecureContent&gt; m_hasInsecureContent;
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;std::unique_ptr&lt;CachedFrame&gt;&gt; m_childFrames;
</span><span class="cx"> };
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     WEBCORE_EXPORT CachedFramePlatformData* cachedFramePlatformData();
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void setHasInsecureContent(HasInsecureContent);
</span><del>-    Optional&lt;HasInsecureContent&gt; hasInsecureContent() const { return m_hasInsecureContent; }
</del><ins>+    std::optional&lt;HasInsecureContent&gt; hasInsecureContent() const { return m_hasInsecureContent; }
</ins><span class="cx"> 
</span><span class="cx">     using CachedFrameBase::document;
</span><span class="cx">     using CachedFrameBase::view;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlDOMTokenListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/DOMTokenList.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/DOMTokenList.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/DOMTokenList.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx">     return removeInternal(&amp;token.string(), 1);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;bool&gt; DOMTokenList::toggle(const AtomicString&amp; token, Optional&lt;bool&gt; force)
</del><ins>+ExceptionOr&lt;bool&gt; DOMTokenList::toggle(const AtomicString&amp; token, std::optional&lt;bool&gt; force)
</ins><span class="cx"> {
</span><span class="cx">     auto result = validateToken(token);
</span><span class="cx">     if (result.hasException())
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx">     auto&amp; tokens = this-&gt;tokens();
</span><span class="cx"> 
</span><span class="cx">     if (tokens.contains(token)) {
</span><del>-        if (!force.valueOr(false)) {
</del><ins>+        if (!force.value_or(false)) {
</ins><span class="cx">             tokens.removeFirst(token);
</span><span class="cx">             updateAssociatedAttributeFromTokens();
</span><span class="cx">             return false;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlDOMTokenListh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/DOMTokenList.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/DOMTokenList.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/DOMTokenList.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">     ExceptionOr&lt;void&gt; add(const AtomicString&amp;);
</span><span class="cx">     ExceptionOr&lt;void&gt; remove(const Vector&lt;String&gt;&amp;);
</span><span class="cx">     ExceptionOr&lt;void&gt; remove(const AtomicString&amp;);
</span><del>-    WEBCORE_EXPORT ExceptionOr&lt;bool&gt; toggle(const AtomicString&amp;, Optional&lt;bool&gt; force);
</del><ins>+    WEBCORE_EXPORT ExceptionOr&lt;bool&gt; toggle(const AtomicString&amp;, std::optional&lt;bool&gt; force);
</ins><span class="cx">     ExceptionOr&lt;void&gt; replace(const AtomicString&amp; token, const AtomicString&amp; newToken);
</span><span class="cx">     ExceptionOr&lt;bool&gt; supports(StringView token);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -395,7 +395,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ShouldSendReferrer shouldSendReferrer = hasRel(Relation::NoReferrer) ? NeverSendReferrer : MaybeSendReferrer;
</span><del>-    auto newFrameOpenerPolicy = hasRel(Relation::NoOpener) ? makeOptional(NewFrameOpenerPolicy::Suppress) : Nullopt;
</del><ins>+    auto newFrameOpenerPolicy = hasRel(Relation::NoOpener) ? std::make_optional(NewFrameOpenerPolicy::Suppress) : std::nullopt;
</ins><span class="cx">     frame-&gt;loader().urlSelected(completedURL, target(), &amp;event, LockHistory::No, LockBackForwardList::No, shouldSendReferrer, document().shouldOpenExternalURLsPolicyToPropagate(), newFrameOpenerPolicy, downloadAttribute);
</span><span class="cx"> 
</span><span class="cx">     sendPings(completedURL);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLCanvasElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLCanvasElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -458,7 +458,7 @@
</span><span class="cx">     return mimeType.convertToASCIILowercase();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;String&gt; HTMLCanvasElement::toDataURL(const String&amp; mimeType, Optional&lt;double&gt; quality)
</del><ins>+ExceptionOr&lt;String&gt; HTMLCanvasElement::toDataURL(const String&amp; mimeType, std::optional&lt;double&gt; quality)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_originClean)
</span><span class="cx">         return Exception { SECURITY_ERR };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLCanvasElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLCanvasElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLCanvasElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLCanvasElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -92,8 +92,8 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     static String toEncodingMimeType(const String&amp; mimeType);
</span><del>-    WEBCORE_EXPORT ExceptionOr&lt;String&gt; toDataURL(const String&amp; mimeType, Optional&lt;double&gt; quality);
-    ExceptionOr&lt;String&gt; toDataURL(const String&amp; mimeType) { return toDataURL(mimeType, Nullopt); }
</del><ins>+    WEBCORE_EXPORT ExceptionOr&lt;String&gt; toDataURL(const String&amp; mimeType, std::optional&lt;double&gt; quality);
+    ExceptionOr&lt;String&gt; toDataURL(const String&amp; mimeType) { return toDataURL(mimeType, std::nullopt); }
</ins><span class="cx"> 
</span><span class="cx">     // Used for rendering
</span><span class="cx">     void didDraw(const FloatRect&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> 
</span><span class="cx"> unsigned HTMLElement::parseBorderWidthAttribute(const AtomicString&amp; value) const
</span><span class="cx"> {
</span><del>-    if (Optional&lt;unsigned&gt; borderWidth = parseHTMLNonNegativeInteger(value))
</del><ins>+    if (std::optional&lt;unsigned&gt; borderWidth = parseHTMLNonNegativeInteger(value))
</ins><span class="cx">         return borderWidth.value();
</span><span class="cx"> 
</span><span class="cx">     return hasTagName(tableTag) ? 1 : 0;
</span><span class="lines">@@ -424,7 +424,7 @@
</span><span class="cx">     if (name == tabindexAttr) {
</span><span class="cx">         if (value.isEmpty())
</span><span class="cx">             clearTabIndexExplicitlyIfNeeded();
</span><del>-        else if (Optional&lt;int&gt; tabIndex = parseHTMLInteger(value))
</del><ins>+        else if (std::optional&lt;int&gt; tabIndex = parseHTMLInteger(value))
</ins><span class="cx">             setTabIndexExplicitly(tabIndex.value());
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">     setPictureElement(nullptr);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;HTMLImageElement&gt; HTMLImageElement::createForJSConstructor(Document&amp; document, Optional&lt;unsigned&gt; width, Optional&lt;unsigned&gt; height)
</del><ins>+Ref&lt;HTMLImageElement&gt; HTMLImageElement::createForJSConstructor(Document&amp; document, std::optional&lt;unsigned&gt; width, std::optional&lt;unsigned&gt; height)
</ins><span class="cx"> {
</span><span class="cx">     auto image = adoptRef(*new HTMLImageElement(imgTag, document));
</span><span class="cx">     if (width)
</span><span class="lines">@@ -380,7 +380,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!renderer()) {
</span><span class="cx">         // check the attribute first for an explicit pixel value
</span><del>-        Optional&lt;unsigned&gt; width = parseHTMLNonNegativeInteger(attributeWithoutSynchronization(widthAttr));
</del><ins>+        std::optional&lt;unsigned&gt; width = parseHTMLNonNegativeInteger(attributeWithoutSynchronization(widthAttr));
</ins><span class="cx">         if (width)
</span><span class="cx">             return width.value();
</span><span class="cx"> 
</span><span class="lines">@@ -405,7 +405,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!renderer()) {
</span><span class="cx">         // check the attribute first for an explicit pixel value
</span><del>-        Optional&lt;unsigned&gt; height = parseHTMLNonNegativeInteger(attributeWithoutSynchronization(heightAttr));
</del><ins>+        std::optional&lt;unsigned&gt; height = parseHTMLNonNegativeInteger(attributeWithoutSynchronization(heightAttr));
</ins><span class="cx">         if (height)
</span><span class="cx">             return height.value();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLImageElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;HTMLImageElement&gt; create(Document&amp;);
</span><span class="cx">     static Ref&lt;HTMLImageElement&gt; create(const QualifiedName&amp;, Document&amp;, HTMLFormElement*);
</span><del>-    static Ref&lt;HTMLImageElement&gt; createForJSConstructor(Document&amp;, Optional&lt;unsigned&gt; width, Optional&lt;unsigned&gt; height);
</del><ins>+    static Ref&lt;HTMLImageElement&gt; createForJSConstructor(Document&amp;, std::optional&lt;unsigned&gt; width, std::optional&lt;unsigned&gt; height);
</ins><span class="cx"> 
</span><span class="cx">     virtual ~HTMLImageElement();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -381,7 +381,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DATALIST_ELEMENT)
</span><del>-Optional&lt;Decimal&gt; HTMLInputElement::findClosestTickMarkValue(const Decimal&amp; value)
</del><ins>+std::optional&lt;Decimal&gt; HTMLInputElement::findClosestTickMarkValue(const Decimal&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     return m_inputType-&gt;findClosestTickMarkValue(value);
</span><span class="cx"> }
</span><span class="lines">@@ -1775,7 +1775,7 @@
</span><span class="cx"> void HTMLInputElement::maxLengthAttributeChanged(const AtomicString&amp; newValue)
</span><span class="cx"> {
</span><span class="cx">     unsigned oldEffectiveMaxLength = effectiveMaxLength();
</span><del>-    internalSetMaxLength(parseHTMLNonNegativeInteger(newValue).valueOr(-1));
</del><ins>+    internalSetMaxLength(parseHTMLNonNegativeInteger(newValue).value_or(-1));
</ins><span class="cx">     if (oldEffectiveMaxLength != effectiveMaxLength())
</span><span class="cx">         updateValueIfNeeded();
</span><span class="cx"> 
</span><span class="lines">@@ -1787,7 +1787,7 @@
</span><span class="cx"> void HTMLInputElement::minLengthAttributeChanged(const AtomicString&amp; newValue)
</span><span class="cx"> {
</span><span class="cx">     int oldMinLength = minLength();
</span><del>-    internalSetMinLength(parseHTMLNonNegativeInteger(newValue).valueOr(-1));
</del><ins>+    internalSetMinLength(parseHTMLNonNegativeInteger(newValue).value_or(-1));
</ins><span class="cx">     if (oldMinLength != minLength())
</span><span class="cx">         updateValueIfNeeded();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLInputElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx">     StepRange createStepRange(AnyStepHandling) const;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DATALIST_ELEMENT)
</span><del>-    Optional&lt;Decimal&gt; findClosestTickMarkValue(const Decimal&amp;);
</del><ins>+    std::optional&lt;Decimal&gt; findClosestTickMarkValue(const Decimal&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT ExceptionOr&lt;void&gt; stepUp(int = 1);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLLinkElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLLinkElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLLinkElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLLinkElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -251,7 +251,7 @@
</span><span class="cx"> 
</span><span class="cx">         bool mediaQueryMatches = true;
</span><span class="cx">         if (!m_media.isEmpty()) {
</span><del>-            Optional&lt;RenderStyle&gt; documentStyle;
</del><ins>+            std::optional&lt;RenderStyle&gt; documentStyle;
</ins><span class="cx">             if (document().hasLivingRenderTree())
</span><span class="cx">                 documentStyle = Style::resolveForDocument(document());
</span><span class="cx">             auto media = MediaQuerySet::create(m_media);
</span><span class="lines">@@ -264,7 +264,7 @@
</span><span class="cx">         addPendingSheet(isActive ? ActiveSheet : InactiveSheet);
</span><span class="cx"> 
</span><span class="cx">         // Load stylesheets that are not needed for the rendering immediately with low priority.
</span><del>-        Optional&lt;ResourceLoadPriority&gt; priority;
</del><ins>+        std::optional&lt;ResourceLoadPriority&gt; priority;
</ins><span class="cx">         if (!isActive)
</span><span class="cx">             priority = ResourceLoadPriority::VeryLow;
</span><span class="cx">         CachedResourceRequest request(url, CachedResourceLoader::defaultCachedResourceOptions(), priority, WTFMove(charset));
</span><span class="lines">@@ -343,7 +343,7 @@
</span><span class="cx"> void HTMLLinkElement::initializeStyleSheet(Ref&lt;StyleSheetContents&gt;&amp;&amp; styleSheet, const CachedCSSStyleSheet&amp; cachedStyleSheet)
</span><span class="cx"> {
</span><span class="cx">     // FIXME: originClean should be turned to false except if fetch mode is CORS.
</span><del>-    Optional&lt;bool&gt; originClean;
</del><ins>+    std::optional&lt;bool&gt; originClean;
</ins><span class="cx">     if (cachedStyleSheet.options().mode == FetchOptions::Mode::Cors)
</span><span class="cx">         originClean = cachedStyleSheet.isCORSSameOrigin();
</span><span class="cx"> 
</span><span class="lines">@@ -513,7 +513,7 @@
</span><span class="cx">     return attributeWithoutSynchronization(typeAttr);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LinkIconType&gt; HTMLLinkElement::iconType() const
</del><ins>+std::optional&lt;LinkIconType&gt; HTMLLinkElement::iconType() const
</ins><span class="cx"> {
</span><span class="cx">     return m_relAttribute.iconType;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLLinkElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLLinkElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLLinkElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLLinkElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> 
</span><span class="cx">     const AtomicString&amp; type() const;
</span><span class="cx"> 
</span><del>-    Optional&lt;LinkIconType&gt; iconType() const;
</del><ins>+    std::optional&lt;LinkIconType&gt; iconType() const;
</ins><span class="cx"> 
</span><span class="cx">     CSSStyleSheet* sheet() const { return m_sheet.get(); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOListElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOListElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOListElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLOListElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     bool isPresentationAttribute(const QualifiedName&amp;) const final;
</span><span class="cx">     void collectStyleForPresentationAttribute(const QualifiedName&amp;, const AtomicString&amp;, MutableStyleProperties&amp;) final;
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; m_start;
</del><ins>+    std::optional&lt;int&gt; m_start;
</ins><span class="cx">     unsigned m_itemCount;
</span><span class="cx"> 
</span><span class="cx">     bool m_isReversed : 1;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionsCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionsCollection.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionsCollection.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLOptionsCollection.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx">     return adoptRef(*new HTMLOptionsCollection(select));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;void&gt; HTMLOptionsCollection::add(const OptionOrOptGroupElement&amp; element, const Optional&lt;HTMLElementOrInt&gt;&amp; before)
</del><ins>+ExceptionOr&lt;void&gt; HTMLOptionsCollection::add(const OptionOrOptGroupElement&amp; element, const std::optional&lt;HTMLElementOrInt&gt;&amp; before)
</ins><span class="cx"> {
</span><span class="cx">     return selectElement().add(element, before);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionsCollectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionsCollection.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionsCollection.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLOptionsCollection.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> 
</span><span class="cx">     using OptionOrOptGroupElement = Variant&lt;RefPtr&lt;HTMLOptionElement&gt;, RefPtr&lt;HTMLOptGroupElement&gt;&gt;;
</span><span class="cx">     using HTMLElementOrInt = Variant&lt;RefPtr&lt;HTMLElement&gt;, int&gt;;
</span><del>-    WEBCORE_EXPORT ExceptionOr&lt;void&gt; add(const OptionOrOptGroupElement&amp;, const Optional&lt;HTMLElementOrInt&gt;&amp; before);
</del><ins>+    WEBCORE_EXPORT ExceptionOr&lt;void&gt; add(const OptionOrOptGroupElement&amp;, const std::optional&lt;HTMLElementOrInt&gt;&amp; before);
</ins><span class="cx">     WEBCORE_EXPORT void remove(int index);
</span><span class="cx">     void remove(HTMLOptionElement&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -218,7 +218,7 @@
</span><span class="cx">     return lastSelectedListIndex();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;void&gt; HTMLSelectElement::add(const OptionOrOptGroupElement&amp; element, const Optional&lt;HTMLElementOrInt&gt;&amp; before)
</del><ins>+ExceptionOr&lt;void&gt; HTMLSelectElement::add(const OptionOrOptGroupElement&amp; element, const std::optional&lt;HTMLElementOrInt&gt;&amp; before)
</ins><span class="cx"> {
</span><span class="cx">     HTMLElement* beforeElement = nullptr;
</span><span class="cx">     if (before) {
</span><span class="lines">@@ -458,7 +458,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (diff &lt; 0) { // Add dummy elements.
</span><span class="cx">         do {
</span><del>-            auto result = add(HTMLOptionElement::create(document()).ptr(), Nullopt);
</del><ins>+            auto result = add(HTMLOptionElement::create(document()).ptr(), std::nullopt);
</ins><span class="cx">             if (result.hasException())
</span><span class="cx">                 return result;
</span><span class="cx">         } while (++diff);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLSelectElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> 
</span><span class="cx">     using OptionOrOptGroupElement = Variant&lt;RefPtr&lt;HTMLOptionElement&gt;, RefPtr&lt;HTMLOptGroupElement&gt;&gt;;
</span><span class="cx">     using HTMLElementOrInt = Variant&lt;RefPtr&lt;HTMLElement&gt;, int&gt;;
</span><del>-    WEBCORE_EXPORT ExceptionOr&lt;void&gt; add(const OptionOrOptGroupElement&amp;, const Optional&lt;HTMLElementOrInt&gt;&amp; before);
</del><ins>+    WEBCORE_EXPORT ExceptionOr&lt;void&gt; add(const OptionOrOptGroupElement&amp;, const std::optional&lt;HTMLElementOrInt&gt;&amp; before);
</ins><span class="cx"> 
</span><span class="cx">     using Node::remove;
</span><span class="cx">     ExceptionOr&lt;void&gt; remove(HTMLOptionElement&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -203,13 +203,13 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLTextAreaElement::maxLengthAttributeChanged(const AtomicString&amp; newValue)
</span><span class="cx"> {
</span><del>-    internalSetMaxLength(parseHTMLNonNegativeInteger(newValue).valueOr(-1));
</del><ins>+    internalSetMaxLength(parseHTMLNonNegativeInteger(newValue).value_or(-1));
</ins><span class="cx">     updateValidity();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTextAreaElement::minLengthAttributeChanged(const AtomicString&amp; newValue)
</span><span class="cx"> {
</span><del>-    internalSetMinLength(parseHTMLNonNegativeInteger(newValue).valueOr(-1));
</del><ins>+    internalSetMinLength(parseHTMLNonNegativeInteger(newValue).value_or(-1));
</ins><span class="cx">     updateValidity();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlImageInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ImageInputType.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ImageInputType.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/ImageInputType.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -179,7 +179,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!element-&gt;renderer()) {
</span><span class="cx">         // Check the attribute first for an explicit pixel value.
</span><del>-        if (Optional&lt;unsigned&gt; height = parseHTMLNonNegativeInteger(element-&gt;attributeWithoutSynchronization(heightAttr)))
</del><ins>+        if (std::optional&lt;unsigned&gt; height = parseHTMLNonNegativeInteger(element-&gt;attributeWithoutSynchronization(heightAttr)))
</ins><span class="cx">             return height.value();
</span><span class="cx"> 
</span><span class="cx">         // If the image is available, use its height.
</span><span class="lines">@@ -200,7 +200,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!element-&gt;renderer()) {
</span><span class="cx">         // Check the attribute first for an explicit pixel value.
</span><del>-        if (Optional&lt;unsigned&gt; width = parseHTMLNonNegativeInteger(element-&gt;attributeWithoutSynchronization(widthAttr)))
</del><ins>+        if (std::optional&lt;unsigned&gt; width = parseHTMLNonNegativeInteger(element-&gt;attributeWithoutSynchronization(widthAttr)))
</ins><span class="cx">             return width.value();
</span><span class="cx"> 
</span><span class="cx">         // If the image is available, use its width.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/InputType.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/InputType.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/InputType.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -955,10 +955,10 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;Decimal&gt; InputType::findClosestTickMarkValue(const Decimal&amp;)
</del><ins>+std::optional&lt;Decimal&gt; InputType::findClosestTickMarkValue(const Decimal&amp;)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlInputTypeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/InputType.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/InputType.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/InputType.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -295,7 +295,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DATALIST_ELEMENT)
</span><span class="cx">     virtual void listAttributeTargetChanged();
</span><del>-    virtual Optional&lt;Decimal&gt; findClosestTickMarkValue(const Decimal&amp;);
</del><ins>+    virtual std::optional&lt;Decimal&gt; findClosestTickMarkValue(const Decimal&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlLinkIconCollectorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/LinkIconCollector.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/LinkIconCollector.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/LinkIconCollector.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">         // This icon size parsing is a little wonky - it only parses the first
</span><span class="cx">         // part of the size, &quot;60x70&quot; becomes &quot;60&quot;. This is for compatibility reasons
</span><span class="cx">         // and is probably good enough for now.
</span><del>-        Optional&lt;unsigned&gt; iconSize;
</del><ins>+        std::optional&lt;unsigned&gt; iconSize;
</ins><span class="cx"> 
</span><span class="cx">         if (linkElement.sizes().length()) {
</span><span class="cx">             bool ok;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlLinkRelAttributeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/LinkRelAttribute.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/LinkRelAttribute.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/LinkRelAttribute.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> struct LinkRelAttribute {
</span><span class="cx">     bool isStyleSheet { false };
</span><del>-    Optional&lt;LinkIconType&gt; iconType;
</del><ins>+    std::optional&lt;LinkIconType&gt; iconType;
</ins><span class="cx">     bool isAlternate { false };
</span><span class="cx">     bool isDNSPrefetch { false };
</span><span class="cx">     bool isLinkPreload { false };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlRangeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/RangeInputType.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/RangeInputType.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/RangeInputType.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -381,11 +381,11 @@
</span><span class="cx">     std::sort(m_tickMarkValues.begin(), m_tickMarkValues.end());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;Decimal&gt; RangeInputType::findClosestTickMarkValue(const Decimal&amp; value)
</del><ins>+std::optional&lt;Decimal&gt; RangeInputType::findClosestTickMarkValue(const Decimal&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     updateTickMarkValues();
</span><span class="cx">     if (!m_tickMarkValues.size())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     size_t left = 0;
</span><span class="cx">     size_t right = m_tickMarkValues.size();
</span><span class="lines">@@ -408,8 +408,8 @@
</span><span class="cx">             right = middle;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;Decimal&gt; closestLeft = middle ? makeOptional(m_tickMarkValues[middle - 1]) : Nullopt;
-    Optional&lt;Decimal&gt; closestRight = middle != m_tickMarkValues.size() ? makeOptional(m_tickMarkValues[middle]) : Nullopt;
</del><ins>+    std::optional&lt;Decimal&gt; closestLeft = middle ? std::make_optional(m_tickMarkValues[middle - 1]) : std::nullopt;
+    std::optional&lt;Decimal&gt; closestRight = middle != m_tickMarkValues.size() ? std::make_optional(m_tickMarkValues[middle]) : std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (!closestLeft)
</span><span class="cx">         return closestRight;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlRangeInputTypeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/RangeInputType.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/RangeInputType.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/RangeInputType.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx"> #if ENABLE(DATALIST_ELEMENT)
</span><span class="cx">     void listAttributeTargetChanged() final;
</span><span class="cx">     void updateTickMarkValues();
</span><del>-    Optional&lt;Decimal&gt; findClosestTickMarkValue(const Decimal&amp;) final;
</del><ins>+    std::optional&lt;Decimal&gt; findClosestTickMarkValue(const Decimal&amp;) final;
</ins><span class="cx"> 
</span><span class="cx">     bool m_tickMarkValuesDirty { true };
</span><span class="cx">     Vector&lt;Decimal&gt; m_tickMarkValues;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -386,7 +386,7 @@
</span><span class="cx">         return;
</span><span class="cx">     m_path.transform(state().transform);
</span><span class="cx">     m_stateStack.removeLast();
</span><del>-    if (Optional&lt;AffineTransform&gt; inverse = state().transform.inverse())
</del><ins>+    if (std::optional&lt;AffineTransform&gt; inverse = state().transform.inverse())
</ins><span class="cx">         m_path.transform(inverse.value());
</span><span class="cx">     GraphicsContext* c = drawingContext();
</span><span class="cx">     if (!c)
</span><span class="lines">@@ -832,7 +832,7 @@
</span><span class="cx">     modifiableState().hasInvertibleTransform = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::setStrokeColor(const String&amp; color, Optional&lt;float&gt; alpha)
</del><ins>+void CanvasRenderingContext2D::setStrokeColor(const String&amp; color, std::optional&lt;float&gt; alpha)
</ins><span class="cx"> {
</span><span class="cx">     if (alpha) {
</span><span class="cx">         setStrokeStyle(CanvasStyle::createFromStringWithOverrideAlpha(color, alpha.value()));
</span><span class="lines">@@ -868,7 +868,7 @@
</span><span class="cx">     setStrokeStyle(CanvasStyle(c, m, y, k, a));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::setFillColor(const String&amp; color, Optional&lt;float&gt; alpha)
</del><ins>+void CanvasRenderingContext2D::setFillColor(const String&amp; color, std::optional&lt;float&gt; alpha)
</ins><span class="cx"> {
</span><span class="cx">     if (alpha) {
</span><span class="cx">         setFillStyle(CanvasStyle::createFromStringWithOverrideAlpha(color, alpha.value()));
</span><span class="lines">@@ -1114,7 +1114,7 @@
</span><span class="cx">     if (!state().hasInvertibleTransform)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    FloatPoint transformedPoint = state().transform.inverse().valueOr(AffineTransform()).mapPoint(FloatPoint(x, y));
</del><ins>+    FloatPoint transformedPoint = state().transform.inverse().value_or(AffineTransform()).mapPoint(FloatPoint(x, y));
</ins><span class="cx"> 
</span><span class="cx">     if (!std::isfinite(transformedPoint.x()) || !std::isfinite(transformedPoint.y()))
</span><span class="cx">         return false;
</span><span class="lines">@@ -1130,7 +1130,7 @@
</span><span class="cx">     if (!state().hasInvertibleTransform)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    FloatPoint transformedPoint = state().transform.inverse().valueOr(AffineTransform()).mapPoint(FloatPoint(x, y));
</del><ins>+    FloatPoint transformedPoint = state().transform.inverse().value_or(AffineTransform()).mapPoint(FloatPoint(x, y));
</ins><span class="cx">     if (!std::isfinite(transformedPoint.x()) || !std::isfinite(transformedPoint.y()))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -1249,7 +1249,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::setShadow(float width, float height, float blur, const String&amp; colorString, Optional&lt;float&gt; alpha)
</del><ins>+void CanvasRenderingContext2D::setShadow(float width, float height, float blur, const String&amp; colorString, std::optional&lt;float&gt; alpha)
</ins><span class="cx"> {
</span><span class="cx">     Color color = parseColorOrCurrentColor(colorString, &amp;canvas());
</span><span class="cx">     if (!colorString.isNull() &amp;&amp; !color.isValid())
</span><span class="lines">@@ -2257,12 +2257,12 @@
</span><span class="cx">     modifiableState().direction = direction;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::fillText(const String&amp; text, float x, float y, Optional&lt;float&gt; maxWidth)
</del><ins>+void CanvasRenderingContext2D::fillText(const String&amp; text, float x, float y, std::optional&lt;float&gt; maxWidth)
</ins><span class="cx"> {
</span><span class="cx">     drawTextInternal(text, x, y, true, maxWidth);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::strokeText(const String&amp; text, float x, float y, Optional&lt;float&gt; maxWidth)
</del><ins>+void CanvasRenderingContext2D::strokeText(const String&amp; text, float x, float y, std::optional&lt;float&gt; maxWidth)
</ins><span class="cx"> {
</span><span class="cx">     drawTextInternal(text, x, y, false, maxWidth);
</span><span class="cx"> }
</span><span class="lines">@@ -2310,7 +2310,7 @@
</span><span class="cx">     return metrics;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::drawTextInternal(const String&amp; text, float x, float y, bool fill, Optional&lt;float&gt; maxWidth)
</del><ins>+void CanvasRenderingContext2D::drawTextInternal(const String&amp; text, float x, float y, bool fill, std::optional&lt;float&gt; maxWidth)
</ins><span class="cx"> {
</span><span class="cx">     const auto&amp; fontProxy = this-&gt;fontProxy();
</span><span class="cx">     const FontMetrics&amp; fontMetrics = fontProxy.fontMetrics();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -117,12 +117,12 @@
</span><span class="cx">     void setTransform(float m11, float m12, float m21, float m22, float dx, float dy);
</span><span class="cx">     void resetTransform();
</span><span class="cx"> 
</span><del>-    void setStrokeColor(const String&amp; color, Optional&lt;float&gt; alpha = Nullopt);
</del><ins>+    void setStrokeColor(const String&amp; color, std::optional&lt;float&gt; alpha = std::nullopt);
</ins><span class="cx">     void setStrokeColor(float grayLevel, float alpha = 1.0);
</span><span class="cx">     void setStrokeColor(float r, float g, float b, float a);
</span><span class="cx">     void setStrokeColor(float c, float m, float y, float k, float a);
</span><span class="cx"> 
</span><del>-    void setFillColor(const String&amp; color, Optional&lt;float&gt; alpha = Nullopt);
</del><ins>+    void setFillColor(const String&amp; color, std::optional&lt;float&gt; alpha = std::nullopt);
</ins><span class="cx">     void setFillColor(float grayLevel, float alpha = 1.0f);
</span><span class="cx">     void setFillColor(float r, float g, float b, float a);
</span><span class="cx">     void setFillColor(float c, float m, float y, float k, float a);
</span><span class="lines">@@ -149,7 +149,7 @@
</span><span class="cx">     void fillRect(float x, float y, float width, float height);
</span><span class="cx">     void strokeRect(float x, float y, float width, float height);
</span><span class="cx"> 
</span><del>-    void setShadow(float width, float height, float blur, const String&amp; color = String(), Optional&lt;float&gt; alpha = Nullopt);
</del><ins>+    void setShadow(float width, float height, float blur, const String&amp; color = String(), std::optional&lt;float&gt; alpha = std::nullopt);
</ins><span class="cx">     void setShadow(float width, float height, float blur, float grayLevel, float alpha = 1.0);
</span><span class="cx">     void setShadow(float width, float height, float blur, float r, float g, float b, float a);
</span><span class="cx">     void setShadow(float width, float height, float blur, float c, float m, float y, float k, float a);
</span><span class="lines">@@ -214,8 +214,8 @@
</span><span class="cx">     String direction() const;
</span><span class="cx">     void setDirection(const String&amp;);
</span><span class="cx"> 
</span><del>-    void fillText(const String&amp; text, float x, float y, Optional&lt;float&gt; maxWidth = Nullopt);
-    void strokeText(const String&amp; text, float x, float y, Optional&lt;float&gt; maxWidth = Nullopt);
</del><ins>+    void fillText(const String&amp; text, float x, float y, std::optional&lt;float&gt; maxWidth = std::nullopt);
+    void strokeText(const String&amp; text, float x, float y, std::optional&lt;float&gt; maxWidth = std::nullopt);
</ins><span class="cx">     Ref&lt;TextMetrics&gt; measureText(const String&amp; text);
</span><span class="cx"> 
</span><span class="cx">     LineCap getLineCap() const { return state().lineCap; }
</span><span class="lines">@@ -331,7 +331,7 @@
</span><span class="cx">     void applyStrokePattern();
</span><span class="cx">     void applyFillPattern();
</span><span class="cx"> 
</span><del>-    void drawTextInternal(const String&amp; text, float x, float y, bool fill, Optional&lt;float&gt; maxWidth = Nullopt);
</del><ins>+    void drawTextInternal(const String&amp; text, float x, float y, bool fill, std::optional&lt;float&gt; maxWidth = std::nullopt);
</ins><span class="cx"> 
</span><span class="cx">     // The relationship between FontCascade and CanvasRenderingContext2D::FontProxy must hold certain invariants.
</span><span class="cx">     // Therefore, all font operations must pass through the State.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGL2RenderingContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -88,12 +88,12 @@
</span><span class="cx">     m_context-&gt;getExtensions().ensureEnabled(&quot;GL_EXT_frag_depth&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline static Optional&lt;unsigned&gt; arrayBufferViewElementSize(const ArrayBufferView&amp; data)
</del><ins>+inline static std::optional&lt;unsigned&gt; arrayBufferViewElementSize(const ArrayBufferView&amp; data)
</ins><span class="cx"> {
</span><span class="cx">     switch (data.getType()) {
</span><span class="cx">     case JSC::NotTypedArray:
</span><span class="cx">     case JSC::TypeDataView:
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     case JSC::TypeInt8:
</span><span class="cx">     case JSC::TypeUint8:
</span><span class="cx">     case JSC::TypeUint8Clamped:
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1109,7 +1109,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderingContextBase::bufferData(GC3Denum target, Optional&lt;BufferDataSource&gt;&amp;&amp; data, GC3Denum usage)
</del><ins>+void WebGLRenderingContextBase::bufferData(GC3Denum target, std::optional&lt;BufferDataSource&gt;&amp;&amp; data, GC3Denum usage)
</ins><span class="cx"> {
</span><span class="cx">     if (isContextLostOrPending())
</span><span class="cx">         return;
</span><span class="lines">@@ -1136,7 +1136,7 @@
</span><span class="cx">     }, data.value());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderingContextBase::bufferSubData(GC3Denum target, long long offset, Optional&lt;BufferDataSource&gt;&amp;&amp; data)
</del><ins>+void WebGLRenderingContextBase::bufferSubData(GC3Denum target, long long offset, std::optional&lt;BufferDataSource&gt;&amp;&amp; data)
</ins><span class="cx"> {
</span><span class="cx">     if (isContextLostOrPending())
</span><span class="cx">         return;
</span><span class="lines">@@ -3448,7 +3448,7 @@
</span><span class="cx">         m_context-&gt;pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;void&gt; WebGLRenderingContextBase::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Optional&lt;TexImageSource&gt;&amp;&amp; source)
</del><ins>+ExceptionOr&lt;void&gt; WebGLRenderingContextBase::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, std::optional&lt;TexImageSource&gt;&amp;&amp; source)
</ins><span class="cx"> {
</span><span class="cx">     if (!source) {
</span><span class="cx">         synthesizeGLError(GraphicsContext3D::INVALID_VALUE, &quot;texSubImage2D&quot;, &quot;source is null&quot;);
</span><span class="lines">@@ -3575,7 +3575,7 @@
</span><span class="cx">     return WTF::visit(visitor, source.value());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebGLRenderingContextBase::validateArrayBufferType(const char* functionName, GC3Denum type, Optional&lt;JSC::TypedArrayType&gt; arrayType)
</del><ins>+bool WebGLRenderingContextBase::validateArrayBufferType(const char* functionName, GC3Denum type, std::optional&lt;JSC::TypedArrayType&gt; arrayType)
</ins><span class="cx"> {
</span><span class="cx"> #define TYPE_VALIDATION_CASE(arrayTypeMacro) if (arrayType &amp;&amp; arrayType.value() != JSC::arrayTypeMacro) { \
</span><span class="cx">             synthesizeGLError(GraphicsContext3D::INVALID_OPERATION, functionName, &quot;ArrayBufferView not &quot; #arrayTypeMacro); \
</span><span class="lines">@@ -3636,7 +3636,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     if (!validateSettableTexInternalFormat(functionName, internalFormat))
</span><span class="cx">         return false;
</span><del>-    if (!validateArrayBufferType(functionName, type, pixels ? Optional&lt;JSC::TypedArrayType&gt;(pixels-&gt;getType()) : Nullopt))
</del><ins>+    if (!validateArrayBufferType(functionName, type, pixels ? std::optional&lt;JSC::TypedArrayType&gt;(pixels-&gt;getType()) : std::nullopt))
</ins><span class="cx">         return false;
</span><span class="cx">     
</span><span class="cx">     unsigned totalBytesRequired;
</span><span class="lines">@@ -3982,7 +3982,7 @@
</span><span class="cx">         || internalFormat == GraphicsContext3D::RGBA8;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ExceptionOr&lt;void&gt; WebGLRenderingContextBase::texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Denum format, GC3Denum type, Optional&lt;TexImageSource&gt; source)
</del><ins>+ExceptionOr&lt;void&gt; WebGLRenderingContextBase::texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Denum format, GC3Denum type, std::optional&lt;TexImageSource&gt; source)
</ins><span class="cx"> {
</span><span class="cx">     if (!source) {
</span><span class="cx">         synthesizeGLError(GraphicsContext3D::INVALID_VALUE, &quot;texImage2D&quot;, &quot;source is null&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -136,8 +136,8 @@
</span><span class="cx"> 
</span><span class="cx">     using BufferDataSource = WTF::Variant&lt;RefPtr&lt;ArrayBuffer&gt;, RefPtr&lt;ArrayBufferView&gt;&gt;;
</span><span class="cx">     void bufferData(GC3Denum target, long long size, GC3Denum usage);
</span><del>-    void bufferData(GC3Denum target, Optional&lt;BufferDataSource&gt;&amp;&amp;, GC3Denum usage);
-    void bufferSubData(GC3Denum target, long long offset, Optional&lt;BufferDataSource&gt;&amp;&amp;);
</del><ins>+    void bufferData(GC3Denum target, std::optional&lt;BufferDataSource&gt;&amp;&amp;, GC3Denum usage);
+    void bufferSubData(GC3Denum target, long long offset, std::optional&lt;BufferDataSource&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     GC3Denum checkFramebufferStatus(GC3Denum target);
</span><span class="cx">     virtual void clear(GC3Dbitfield mask) = 0;
</span><span class="lines">@@ -241,13 +241,13 @@
</span><span class="cx">     void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Denum format, GC3Denum type, RefPtr&lt;ArrayBufferView&gt;&amp;&amp;);
</span><span class="cx"> 
</span><span class="cx">     using TexImageSource = WTF::Variant&lt;RefPtr&lt;ImageData&gt;, RefPtr&lt;HTMLImageElement&gt;, RefPtr&lt;HTMLCanvasElement&gt;, RefPtr&lt;HTMLVideoElement&gt;&gt;;
</span><del>-    ExceptionOr&lt;void&gt; texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Denum format, GC3Denum type, Optional&lt;TexImageSource&gt;);
</del><ins>+    ExceptionOr&lt;void&gt; texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Denum format, GC3Denum type, std::optional&lt;TexImageSource&gt;);
</ins><span class="cx"> 
</span><span class="cx">     void texParameterf(GC3Denum target, GC3Denum pname, GC3Dfloat param);
</span><span class="cx">     void texParameteri(GC3Denum target, GC3Denum pname, GC3Dint param);
</span><span class="cx"> 
</span><span class="cx">     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, RefPtr&lt;ArrayBufferView&gt;&amp;&amp;);
</span><del>-    ExceptionOr&lt;void&gt; texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Optional&lt;TexImageSource&gt;&amp;&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, std::optional&lt;TexImageSource&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void uniform1f(const WebGLUniformLocation*, GC3Dfloat x);
</span><span class="cx">     void uniform1fv(const WebGLUniformLocation*, Float32Array&amp; v);
</span><span class="lines">@@ -800,7 +800,7 @@
</span><span class="cx">     bool supportsDrawBuffers();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    bool validateArrayBufferType(const char* functionName, GC3Denum type, Optional&lt;JSC::TypedArrayType&gt;);
</del><ins>+    bool validateArrayBufferType(const char* functionName, GC3Denum type, std::optional&lt;JSC::TypedArrayType&gt;);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLConstructionSitecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -701,10 +701,10 @@
</span><span class="cx">     return HTMLStackItem::create(createHTMLElement(fakeToken), WTFMove(fakeToken), item.namespaceURI());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;unsigned&gt; HTMLConstructionSite::indexOfFirstUnopenFormattingElement() const
</del><ins>+std::optional&lt;unsigned&gt; HTMLConstructionSite::indexOfFirstUnopenFormattingElement() const
</ins><span class="cx"> {
</span><span class="cx">     if (m_activeFormattingElements.isEmpty())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     unsigned index = m_activeFormattingElements.size();
</span><span class="cx">     do {
</span><span class="cx">         --index;
</span><span class="lines">@@ -711,7 +711,7 @@
</span><span class="cx">         const auto&amp; entry = m_activeFormattingElements.at(index);
</span><span class="cx">         if (entry.isMarker() || m_openElements.contains(entry.element())) {
</span><span class="cx">             unsigned firstUnopenElementIndex = index + 1;
</span><del>-            return firstUnopenElementIndex &lt; m_activeFormattingElements.size() ? firstUnopenElementIndex : Optional&lt;unsigned&gt;(Nullopt);
</del><ins>+            return firstUnopenElementIndex &lt; m_activeFormattingElements.size() ? firstUnopenElementIndex : std::optional&lt;unsigned&gt;(std::nullopt);
</ins><span class="cx">         }
</span><span class="cx">     } while (index);
</span><span class="cx"> 
</span><span class="lines">@@ -720,7 +720,7 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLConstructionSite::reconstructTheActiveFormattingElements()
</span><span class="cx"> {
</span><del>-    Optional&lt;unsigned&gt; firstUnopenElementIndex = indexOfFirstUnopenFormattingElement();
</del><ins>+    std::optional&lt;unsigned&gt; firstUnopenElementIndex = indexOfFirstUnopenFormattingElement();
</ins><span class="cx">     if (!firstUnopenElementIndex)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLConstructionSiteh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLConstructionSite.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLConstructionSite.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/parser/HTMLConstructionSite.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx">     bool shouldFosterParent() const;
</span><span class="cx">     void fosterParent(Ref&lt;Node&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned&gt; indexOfFirstUnopenFormattingElement() const;
</del><ins>+    std::optional&lt;unsigned&gt; indexOfFirstUnopenFormattingElement() const;
</ins><span class="cx">     void reconstructTheActiveFormattingElements();
</span><span class="cx"> 
</span><span class="cx">     void generateImpliedEndTags();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLParserIdiomscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -154,13 +154,13 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template &lt;typename CharacterType&gt;
</span><del>-static Optional&lt;int&gt; parseHTMLIntegerInternal(const CharacterType* position, const CharacterType* end)
</del><ins>+static std::optional&lt;int&gt; parseHTMLIntegerInternal(const CharacterType* position, const CharacterType* end)
</ins><span class="cx"> {
</span><span class="cx">     while (position &lt; end &amp;&amp; isHTMLSpace(*position))
</span><span class="cx">         ++position;
</span><span class="cx"> 
</span><span class="cx">     if (position == end)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     bool isNegative = false;
</span><span class="cx">     if (*position == '-') {
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx">         ++position;
</span><span class="cx"> 
</span><span class="cx">     if (position == end || !isASCIIDigit(*position))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     constexpr int intMax = std::numeric_limits&lt;int&gt;::max();
</span><span class="cx">     constexpr int base = 10;
</span><span class="lines">@@ -181,7 +181,7 @@
</span><span class="cx">         int digitValue = *position - '0';
</span><span class="cx"> 
</span><span class="cx">         if (result &gt; maxMultiplier || (result == maxMultiplier &amp;&amp; digitValue &gt; (intMax % base) + isNegative))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         result = base * result + digitValue;
</span><span class="cx">         ++position;
</span><span class="lines">@@ -191,11 +191,11 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-integers
</span><del>-Optional&lt;int&gt; parseHTMLInteger(StringView input)
</del><ins>+std::optional&lt;int&gt; parseHTMLInteger(StringView input)
</ins><span class="cx"> {
</span><span class="cx">     unsigned length = input.length();
</span><span class="cx">     if (!length)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (LIKELY(input.is8Bit())) {
</span><span class="cx">         auto* start = input.characters8();
</span><span class="lines">@@ -207,36 +207,36 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-non-negative-integers
</span><del>-Optional&lt;unsigned&gt; parseHTMLNonNegativeInteger(StringView input)
</del><ins>+std::optional&lt;unsigned&gt; parseHTMLNonNegativeInteger(StringView input)
</ins><span class="cx"> {
</span><del>-    Optional&lt;int&gt; signedValue = parseHTMLInteger(input);
</del><ins>+    std::optional&lt;int&gt; signedValue = parseHTMLInteger(input);
</ins><span class="cx">     if (!signedValue || signedValue.value() &lt; 0)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return static_cast&lt;unsigned&gt;(signedValue.value());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template &lt;typename CharacterType&gt;
</span><del>-static Optional&lt;int&gt; parseValidHTMLNonNegativeIntegerInternal(const CharacterType* position, const CharacterType* end)
</del><ins>+static std::optional&lt;int&gt; parseValidHTMLNonNegativeIntegerInternal(const CharacterType* position, const CharacterType* end)
</ins><span class="cx"> {
</span><span class="cx">     // A string is a valid non-negative integer if it consists of one or more ASCII digits.
</span><span class="cx">     for (auto* c = position; c &lt; end; ++c) {
</span><span class="cx">         if (!isASCIIDigit(*c))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; signedValue = parseHTMLIntegerInternal(position, end);
</del><ins>+    std::optional&lt;int&gt; signedValue = parseHTMLIntegerInternal(position, end);
</ins><span class="cx">     if (!signedValue || signedValue.value() &lt; 0)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return signedValue;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/#valid-non-negative-integer
</span><del>-Optional&lt;int&gt; parseValidHTMLNonNegativeInteger(StringView input)
</del><ins>+std::optional&lt;int&gt; parseValidHTMLNonNegativeInteger(StringView input)
</ins><span class="cx"> {
</span><span class="cx">     if (input.isEmpty())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (LIKELY(input.is8Bit())) {
</span><span class="cx">         auto* start = input.characters8();
</span><span class="lines">@@ -248,7 +248,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template &lt;typename CharacterType&gt;
</span><del>-static Optional&lt;double&gt; parseValidHTMLFloatingPointNumberInternal(const CharacterType* position, size_t length)
</del><ins>+static std::optional&lt;double&gt; parseValidHTMLFloatingPointNumberInternal(const CharacterType* position, size_t length)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(length &gt; 0);
</span><span class="cx"> 
</span><span class="lines">@@ -255,18 +255,18 @@
</span><span class="cx">     // parseDouble() allows the string to start with a '+' or to end with a '.' but those
</span><span class="cx">     // are not valid floating point numbers as per HTML.
</span><span class="cx">     if (*position == '+' || *(position + length - 1) == '.')
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     size_t parsedLength = 0;
</span><span class="cx">     double number = parseDouble(position, length, parsedLength);
</span><del>-    return parsedLength == length &amp;&amp; std::isfinite(number) ? number : Optional&lt;double&gt;();
</del><ins>+    return parsedLength == length &amp;&amp; std::isfinite(number) ? number : std::optional&lt;double&gt;();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/#valid-floating-point-number
</span><del>-Optional&lt;double&gt; parseValidHTMLFloatingPointNumber(StringView input)
</del><ins>+std::optional&lt;double&gt; parseValidHTMLFloatingPointNumber(StringView input)
</ins><span class="cx"> {
</span><span class="cx">     if (input.isEmpty())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (LIKELY(input.is8Bit())) {
</span><span class="cx">         auto* start = input.characters8();
</span><span class="lines">@@ -363,7 +363,7 @@
</span><span class="cx">     while (position &lt; end &amp;&amp; isASCIIDigit(*position))
</span><span class="cx">         ++position;
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned&gt; number = parseHTMLNonNegativeInteger(StringView(numberStart, position - numberStart));
</del><ins>+    std::optional&lt;unsigned&gt; number = parseHTMLNonNegativeInteger(StringView(numberStart, position - numberStart));
</ins><span class="cx">     if (!number)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLParserIdiomsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLParserIdioms.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLParserIdioms.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/parser/HTMLParserIdioms.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -62,16 +62,16 @@
</span><span class="cx"> double parseToDoubleForNumberType(const String&amp;, double fallbackValue);
</span><span class="cx"> 
</span><span class="cx"> // http://www.whatwg.org/specs/web-apps/current-work/#rules-for-parsing-integers
</span><del>-WEBCORE_EXPORT Optional&lt;int&gt; parseHTMLInteger(StringView);
</del><ins>+WEBCORE_EXPORT std::optional&lt;int&gt; parseHTMLInteger(StringView);
</ins><span class="cx"> 
</span><span class="cx"> // http://www.whatwg.org/specs/web-apps/current-work/#rules-for-parsing-non-negative-integers
</span><del>-WEBCORE_EXPORT Optional&lt;unsigned&gt; parseHTMLNonNegativeInteger(StringView);
</del><ins>+WEBCORE_EXPORT std::optional&lt;unsigned&gt; parseHTMLNonNegativeInteger(StringView);
</ins><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/#valid-non-negative-integer
</span><del>-Optional&lt;int&gt; parseValidHTMLNonNegativeInteger(StringView);
</del><ins>+std::optional&lt;int&gt; parseValidHTMLNonNegativeInteger(StringView);
</ins><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/#valid-floating-point-number
</span><del>-Optional&lt;double&gt; parseValidHTMLFloatingPointNumber(StringView);
</del><ins>+std::optional&lt;double&gt; parseValidHTMLFloatingPointNumber(StringView);
</ins><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-floating-point-number-values
</span><span class="cx"> Vector&lt;double&gt; parseHTMLListOfOfFloatingPointNumberValues(StringView);
</span><span class="lines">@@ -153,7 +153,7 @@
</span><span class="cx"> inline unsigned limitToOnlyHTMLNonNegative(StringView stringValue, unsigned defaultValue = 0)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(defaultValue &lt;= maxHTMLNonNegativeInteger);
</span><del>-    unsigned value = parseHTMLNonNegativeInteger(stringValue).valueOr(defaultValue);
</del><ins>+    unsigned value = parseHTMLNonNegativeInteger(stringValue).value_or(defaultValue);
</ins><span class="cx">     ASSERT(value &lt;= maxHTMLNonNegativeInteger);
</span><span class="cx">     return value;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLSrcsetParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLSrcsetParser.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLSrcsetParser.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/parser/HTMLSrcsetParser.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">         if (descriptorChar == 'x') {
</span><span class="cx">             if (result.hasDensity() || result.hasHeight() || result.hasWidth())
</span><span class="cx">                 return false;
</span><del>-            Optional&lt;double&gt; density = parseValidHTMLFloatingPointNumber(descriptor);
</del><ins>+            std::optional&lt;double&gt; density = parseValidHTMLFloatingPointNumber(descriptor);
</ins><span class="cx">             if (!density || density.value() &lt; 0)
</span><span class="cx">                 return false;
</span><span class="cx">             result.setDensity(density.value());
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx">         } else if (descriptorChar == 'w') {
</span><span class="cx">             if (result.hasDensity() || result.hasWidth())
</span><span class="cx">                 return false;
</span><del>-            Optional&lt;int&gt; resourceWidth = parseValidHTMLNonNegativeInteger(descriptor);
</del><ins>+            std::optional&lt;int&gt; resourceWidth = parseValidHTMLNonNegativeInteger(descriptor);
</ins><span class="cx">             if (!resourceWidth || resourceWidth.value() &lt;= 0)
</span><span class="cx">                 return false;
</span><span class="cx">             result.setResourceWidth(resourceWidth.value());
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx">             // The value of the 'h' descriptor is not used.
</span><span class="cx">             if (result.hasDensity() || result.hasHeight())
</span><span class="cx">                 return false;
</span><del>-            Optional&lt;int&gt; resourceHeight = parseValidHTMLNonNegativeInteger(descriptor);
</del><ins>+            std::optional&lt;int&gt; resourceHeight = parseValidHTMLNonNegativeInteger(descriptor);
</ins><span class="cx">             if (!resourceHeight || resourceHeight.value() &lt;= 0)
</span><span class="cx">                 return false;
</span><span class="cx">             result.setResourceHeight(resourceHeight.value());
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowSliderThumbElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -298,7 +298,7 @@
</span><span class="cx"> #if ENABLE(DATALIST_ELEMENT)
</span><span class="cx">     const LayoutUnit snappingThreshold = renderer()-&gt;theme().sliderTickSnappingThreshold();
</span><span class="cx">     if (snappingThreshold &gt; 0) {
</span><del>-        if (Optional&lt;Decimal&gt; closest = input-&gt;findClosestTickMarkValue(value)) {
</del><ins>+        if (std::optional&lt;Decimal&gt; closest = input-&gt;findClosestTickMarkValue(value)) {
</ins><span class="cx">             double closestFraction = stepRange.proportionFromValue(*closest).toDouble();
</span><span class="cx">             double closestRatio = isVertical || !isLeftToRightDirection ? 1.0 - closestFraction : closestFraction;
</span><span class="cx">             LayoutUnit closestPosition = trackLength * closestRatio;
</span><span class="lines">@@ -582,7 +582,7 @@
</span><span class="cx">     return downcast&lt;HTMLInputElement&gt;(shadowHost());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ElementStyle&gt; SliderThumbElement::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle* hostStyle)
</del><ins>+std::optional&lt;ElementStyle&gt; SliderThumbElement::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle* hostStyle)
</ins><span class="cx"> {
</span><span class="cx">     // This doesn't actually compute style. This is just a hack to pick shadow pseudo id when host style is known.
</span><span class="cx"> 
</span><span class="lines">@@ -590,7 +590,7 @@
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; mediaSliderThumbShadowPseudoId(&quot;-webkit-media-slider-thumb&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx"> 
</span><span class="cx">     if (!hostStyle)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     switch (hostStyle-&gt;appearance()) {
</span><span class="cx">     case MediaSliderPart:
</span><span class="lines">@@ -605,7 +605,7 @@
</span><span class="cx">         m_shadowPseudoId = sliderThumbShadowPseudoId;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; SliderThumbElement::shadowPseudoId() const
</span><span class="lines">@@ -636,7 +636,7 @@
</span><span class="cx">     return createRenderer&lt;RenderSliderContainer&gt;(*this, WTFMove(style));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ElementStyle&gt; SliderContainerElement::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle* hostStyle)
</del><ins>+std::optional&lt;ElementStyle&gt; SliderContainerElement::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle* hostStyle)
</ins><span class="cx"> {
</span><span class="cx">     // This doesn't actually compute style. This is just a hack to pick shadow pseudo id when host style is known.
</span><span class="cx"> 
</span><span class="lines">@@ -644,7 +644,7 @@
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; sliderContainer(&quot;-webkit-slider-container&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx"> 
</span><span class="cx">     if (!hostStyle)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     switch (hostStyle-&gt;appearance()) {
</span><span class="cx">     case MediaSliderPart:
</span><span class="lines">@@ -659,7 +659,7 @@
</span><span class="cx">         m_shadowPseudoId = sliderContainer;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; SliderContainerElement::shadowPseudoId() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowSliderThumbElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/SliderThumbElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/SliderThumbElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/shadow/SliderThumbElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     void willDetachRenderers() override;
</span><span class="cx"> 
</span><del>-    Optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp;, const RenderStyle*) override;
</del><ins>+    std::optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp;, const RenderStyle*) override;
</ins><span class="cx">     const AtomicString&amp; shadowPseudoId() const override;
</span><span class="cx"> 
</span><span class="cx">     void startDragging();
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx"> private:
</span><span class="cx">     SliderContainerElement(Document&amp;);
</span><span class="cx">     RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) override;
</span><del>-    Optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp;, const RenderStyle*) override;
</del><ins>+    std::optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp;, const RenderStyle*) override;
</ins><span class="cx">     const AtomicString&amp; shadowPseudoId() const override;
</span><span class="cx"> 
</span><span class="cx">     AtomicString m_shadowPseudoId;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowTextControlInnerElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     return adoptRef(*new TextControlInnerElement(document));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ElementStyle&gt; TextControlInnerElement::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle* shadowHostStyle)
</del><ins>+std::optional&lt;ElementStyle&gt; TextControlInnerElement::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle* shadowHostStyle)
</ins><span class="cx"> {
</span><span class="cx">     auto innerContainerStyle = RenderStyle::createPtr();
</span><span class="cx">     innerContainerStyle-&gt;inheritFrom(shadowHostStyle);
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">     return downcast&lt;RenderTextControlInnerBlock&gt;(HTMLDivElement::renderer());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ElementStyle&gt; TextControlInnerTextElement::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle* shadowHostStyle)
</del><ins>+std::optional&lt;ElementStyle&gt; TextControlInnerTextElement::resolveCustomStyle(const RenderStyle&amp;, const RenderStyle* shadowHostStyle)
</ins><span class="cx"> {
</span><span class="cx">     auto style = downcast&lt;HTMLTextFormControlElement&gt;(*shadowHost()).createInnerTextStyle(*shadowHostStyle);
</span><span class="cx">     return ElementStyle(std::make_unique&lt;RenderStyle&gt;(WTFMove(style)));
</span><span class="lines">@@ -149,7 +149,7 @@
</span><span class="cx">     setHasCustomStyleResolveCallbacks();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ElementStyle&gt; TextControlPlaceholderElement::resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle)
</del><ins>+std::optional&lt;ElementStyle&gt; TextControlPlaceholderElement::resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle)
</ins><span class="cx"> {
</span><span class="cx">     auto style = resolveStyle(&amp;parentStyle);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowTextControlInnerElementsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/TextControlInnerElements.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/TextControlInnerElements.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/shadow/TextControlInnerElements.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     TextControlInnerElement(Document&amp;);
</span><del>-    Optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</del><ins>+    std::optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     bool isMouseFocusable() const override { return false; }
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> private:
</span><span class="cx">     TextControlInnerTextElement(Document&amp;);
</span><span class="cx">     RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) override;
</span><del>-    Optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</del><ins>+    std::optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</ins><span class="cx">     bool isMouseFocusable() const override { return false; }
</span><span class="cx">     bool isTextControlInnerTextElement() const override { return true; }
</span><span class="cx"> };
</span><span class="lines">@@ -76,7 +76,7 @@
</span><span class="cx"> private:
</span><span class="cx">     TextControlPlaceholderElement(Document&amp;);
</span><span class="cx">     
</span><del>-    Optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</del><ins>+    std::optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class SearchFieldResultsButtonElement final : public HTMLDivElement {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTrackEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TrackEvent.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TrackEvent.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/html/track/TrackEvent.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">     using TrackEventTrack = Variant&lt;RefPtr&lt;VideoTrack&gt;, RefPtr&lt;AudioTrack&gt;, RefPtr&lt;TextTrack&gt;&gt;;
</span><span class="cx"> 
</span><span class="cx">     struct Init : public EventInit {
</span><del>-        Optional&lt;TrackEventTrack&gt; track;
</del><ins>+        std::optional&lt;TrackEventTrack&gt; track;
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     static Ref&lt;TrackEvent&gt; create(const AtomicString&amp; type, const Init&amp; initializer, IsTrusted isTrusted = IsTrusted::No)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto result = idbFactory-&gt;open(*context(), databaseName, Nullopt);
</del><ins>+    auto result = idbFactory-&gt;open(*context(), databaseName, std::nullopt);
</ins><span class="cx">     if (result.hasException()) {
</span><span class="cx">         requestCallback().sendFailure(&quot;Could not open database.&quot;);
</span><span class="cx">         return;
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-static RefPtr&lt;KeyPath&gt; keyPathFromIDBKeyPath(const Optional&lt;IDBKeyPath&gt;&amp; idbKeyPath)
</del><ins>+static RefPtr&lt;KeyPath&gt; keyPathFromIDBKeyPath(const std::optional&lt;IDBKeyPath&gt;&amp; idbKeyPath)
</ins><span class="cx"> {
</span><span class="cx">     if (!idbKeyPath)
</span><span class="cx">         return KeyPath::create().setType(KeyPath::Type::Null).release();
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorInstrumentationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -633,7 +633,7 @@
</span><span class="cx">         consoleAgent-&gt;didFailLoading(identifier, error); // This should come AFTER resource notification, front-end relies on this.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorInstrumentation::didFinishXHRLoadingImpl(InstrumentingAgents&amp; instrumentingAgents, ThreadableLoaderClient* client, unsigned long identifier, Optional&lt;String&gt; decodedText, const String&amp; url, const String&amp; sendURL, unsigned sendLineNumber, unsigned sendColumnNumber)
</del><ins>+void InspectorInstrumentation::didFinishXHRLoadingImpl(InstrumentingAgents&amp; instrumentingAgents, ThreadableLoaderClient* client, unsigned long identifier, std::optional&lt;String&gt; decodedText, const String&amp; url, const String&amp; sendURL, unsigned sendLineNumber, unsigned sendColumnNumber)
</ins><span class="cx"> {
</span><span class="cx">     if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
</span><span class="cx">         consoleAgent-&gt;didFinishXHRLoading(identifier, url, sendURL, sendLineNumber, sendColumnNumber);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorInstrumentationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorInstrumentation.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx">     static void didReceiveData(Frame*, unsigned long identifier, const char* data, int dataLength, int encodedDataLength);
</span><span class="cx">     static void didFinishLoading(Frame*, DocumentLoader*, unsigned long identifier, double finishTime);
</span><span class="cx">     static void didFailLoading(Frame*, DocumentLoader*, unsigned long identifier, const ResourceError&amp;);
</span><del>-    static void didFinishXHRLoading(ScriptExecutionContext*, ThreadableLoaderClient*, unsigned long identifier, Optional&lt;String&gt; decodedText, const String&amp; url, const String&amp; sendURL, unsigned sendLineNumber, unsigned sendColumnNumber);
</del><ins>+    static void didFinishXHRLoading(ScriptExecutionContext*, ThreadableLoaderClient*, unsigned long identifier, std::optional&lt;String&gt; decodedText, const String&amp; url, const String&amp; sendURL, unsigned sendLineNumber, unsigned sendColumnNumber);
</ins><span class="cx">     static void didReceiveXHRResponse(ScriptExecutionContext*, unsigned long identifier);
</span><span class="cx">     static void willLoadXHRSynchronously(ScriptExecutionContext*);
</span><span class="cx">     static void didLoadXHRSynchronously(ScriptExecutionContext*);
</span><span class="lines">@@ -339,7 +339,7 @@
</span><span class="cx">     static void didFailLoadingImpl(InstrumentingAgents&amp;, unsigned long identifier, DocumentLoader*, const ResourceError&amp;);
</span><span class="cx">     static void willLoadXHRImpl(InstrumentingAgents&amp;, ThreadableLoaderClient*, const String&amp;, const URL&amp;, bool, RefPtr&lt;FormData&gt;&amp;&amp;, const HTTPHeaderMap&amp;, bool);
</span><span class="cx">     static void didFailXHRLoadingImpl(InstrumentingAgents&amp;, ThreadableLoaderClient*);
</span><del>-    static void didFinishXHRLoadingImpl(InstrumentingAgents&amp;, ThreadableLoaderClient*, unsigned long identifier, Optional&lt;String&gt; decodedText, const String&amp; url, const String&amp; sendURL, unsigned sendLineNumber, unsigned sendColumnNumber);
</del><ins>+    static void didFinishXHRLoadingImpl(InstrumentingAgents&amp;, ThreadableLoaderClient*, unsigned long identifier, std::optional&lt;String&gt; decodedText, const String&amp; url, const String&amp; sendURL, unsigned sendLineNumber, unsigned sendColumnNumber);
</ins><span class="cx">     static void didReceiveXHRResponseImpl(InstrumentingAgents&amp;, unsigned long identifier);
</span><span class="cx">     static void willLoadXHRSynchronouslyImpl(InstrumentingAgents&amp;);
</span><span class="cx">     static void didLoadXHRSynchronouslyImpl(InstrumentingAgents&amp;);
</span><span class="lines">@@ -914,7 +914,7 @@
</span><span class="cx">         didFailLoadingImpl(*instrumentingAgents, identifier, loader, error);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorInstrumentation::didFinishXHRLoading(ScriptExecutionContext* context, ThreadableLoaderClient* client, unsigned long identifier, Optional&lt;String&gt; decodedText, const String&amp; url, const String&amp; sendURL, unsigned sendLineNumber, unsigned sendColumnNumber)
</del><ins>+inline void InspectorInstrumentation::didFinishXHRLoading(ScriptExecutionContext* context, ThreadableLoaderClient* client, unsigned long identifier, std::optional&lt;String&gt; decodedText, const String&amp; url, const String&amp; sendURL, unsigned sendLineNumber, unsigned sendColumnNumber)
</ins><span class="cx"> {
</span><span class="cx">     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForContext(context))
</span><span class="cx">         didFinishXHRLoadingImpl(*instrumentingAgents, client, identifier, decodedText, url, sendURL, sendLineNumber, sendColumnNumber);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorStyleSheetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -926,7 +926,7 @@
</span><span class="cx">     StringBuilder styleSheetText;
</span><span class="cx">     styleSheetText.append(text.releaseReturnValue());
</span><span class="cx"> 
</span><del>-    auto addRuleResult = m_pageStyleSheet-&gt;addRule(selector, emptyString(), Nullopt);
</del><ins>+    auto addRuleResult = m_pageStyleSheet-&gt;addRule(selector, emptyString(), std::nullopt);
</ins><span class="cx">     if (addRuleResult.hasException())
</span><span class="cx">         return addRuleResult.releaseException();
</span><span class="cx">     ASSERT(m_pageStyleSheet-&gt;length());
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorTimelineAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Optional&lt;Protocol::Timeline::Instrument&gt; instrumentType = Protocol::InspectorHelpers::parseEnumValueFromString&lt;Protocol::Timeline::Instrument&gt;(enumValueString);
</del><ins>+        std::optional&lt;Protocol::Timeline::Instrument&gt; instrumentType = Protocol::InspectorHelpers::parseEnumValueFromString&lt;Protocol::Timeline::Instrument&gt;(enumValueString);
</ins><span class="cx">         if (!instrumentType) {
</span><span class="cx">             errorString = makeString(&quot;Unexpected enum value: &quot;, enumValueString);
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderDocumentLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/DocumentLoader.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1715,7 +1715,7 @@
</span><span class="cx">     Vector&lt;LinkIcon&gt; icons = LinkIconCollector { *document }.iconsOfTypes({ LinkIconType::Favicon, LinkIconType::TouchIcon, LinkIconType::TouchPrecomposedIcon });
</span><span class="cx"> 
</span><span class="cx">     if (icons.isEmpty())
</span><del>-        icons.append({ m_frame-&gt;document()-&gt;completeURL(ASCIILiteral(&quot;/favicon.ico&quot;)), LinkIconType::Favicon, String(), Nullopt });
</del><ins>+        icons.append({ m_frame-&gt;document()-&gt;completeURL(ASCIILiteral(&quot;/favicon.ico&quot;)), LinkIconType::Favicon, String(), std::nullopt });
</ins><span class="cx"> 
</span><span class="cx">     for (auto&amp; icon : icons) {
</span><span class="cx">         auto result = m_iconsPendingLoadDecision.add(nextIconCallbackID++, icon);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderDocumentThreadableLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx"> void DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight(ResourceRequest&amp;&amp; request)
</span><span class="cx"> {
</span><span class="cx">     if (m_async) {
</span><del>-        m_preflightChecker = CrossOriginPreflightChecker(*this, WTFMove(request));
</del><ins>+        m_preflightChecker.emplace(*this, WTFMove(request));
</ins><span class="cx">         m_preflightChecker-&gt;startPreflight();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx">         resource-&gt;removeClient(*this);
</span><span class="cx">     }
</span><span class="cx">     if (m_preflightChecker)
</span><del>-        m_preflightChecker = Nullopt;
</del><ins>+        m_preflightChecker = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline void reportContentSecurityPolicyError(ThreadableLoaderClient&amp; client, const URL&amp; url)
</span><span class="lines">@@ -349,7 +349,7 @@
</span><span class="cx">     ResourceRequest actualRequest(WTFMove(request));
</span><span class="cx">     updateRequestForAccessControl(actualRequest, securityOrigin(), m_options.allowCredentials);
</span><span class="cx"> 
</span><del>-    m_preflightChecker = Nullopt;
</del><ins>+    m_preflightChecker = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // It should be ok to skip the security check since we already asked about the preflight request.
</span><span class="cx">     loadRequest(WTFMove(actualRequest), SkipSecurityCheck);
</span><span class="lines">@@ -357,7 +357,7 @@
</span><span class="cx"> 
</span><span class="cx"> void DocumentThreadableLoader::preflightFailure(unsigned long identifier, const ResourceError&amp; error)
</span><span class="cx"> {
</span><del>-    m_preflightChecker = Nullopt;
</del><ins>+    m_preflightChecker = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     InspectorInstrumentation::didFailLoading(m_document.frame(), m_document.frame()-&gt;loader().documentLoader(), identifier, error);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderDocumentThreadableLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/DocumentThreadableLoader.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/DocumentThreadableLoader.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/DocumentThreadableLoader.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -117,8 +117,8 @@
</span><span class="cx">         bool m_simpleRequest;
</span><span class="cx">         bool m_async;
</span><span class="cx">         std::unique_ptr&lt;ContentSecurityPolicy&gt; m_contentSecurityPolicy;
</span><del>-        Optional&lt;CrossOriginPreflightChecker&gt; m_preflightChecker;
-        Optional&lt;HTTPHeaderMap&gt; m_originalHeaders;
</del><ins>+        std::optional&lt;CrossOriginPreflightChecker&gt; m_preflightChecker;
+        std::optional&lt;HTTPHeaderMap&gt; m_originalHeaders;
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderEmptyClientscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/EmptyClients.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/EmptyClients.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/EmptyClients.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -64,9 +64,9 @@
</span><span class="cx">     bool showPaymentUI(const URL&amp;, const Vector&lt;URL&gt;&amp;, const PaymentRequest&amp;) override { return false; }
</span><span class="cx">     void completeMerchantValidation(const PaymentMerchantSession&amp;) override { }
</span><span class="cx"> 
</span><del>-    void completeShippingMethodSelection(PaymentAuthorizationStatus, Optional&lt;PaymentRequest::TotalAndLineItems&gt;) override { }
-    void completeShippingContactSelection(PaymentAuthorizationStatus, const Vector&lt;PaymentRequest::ShippingMethod&gt;&amp;, Optional&lt;PaymentRequest::TotalAndLineItems&gt;) override { }
-    void completePaymentMethodSelection(Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;) override { }
</del><ins>+    void completeShippingMethodSelection(PaymentAuthorizationStatus, std::optional&lt;PaymentRequest::TotalAndLineItems&gt;) override { }
+    void completeShippingContactSelection(PaymentAuthorizationStatus, const Vector&lt;PaymentRequest::ShippingMethod&gt;&amp;, std::optional&lt;PaymentRequest::TotalAndLineItems&gt;) override { }
+    void completePaymentMethodSelection(std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;) override { }
</ins><span class="cx">     void completePaymentSession(PaymentAuthorizationStatus) override { }
</span><span class="cx">     void abortPaymentSession() override { }
</span><span class="cx">     void paymentCoordinatorDestroyed() override { }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderEmptyClientsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/EmptyClients.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/EmptyClients.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/EmptyClients.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -296,7 +296,7 @@
</span><span class="cx">     void dispatchDidReceiveIcon() override { }
</span><span class="cx">     void dispatchDidStartProvisionalLoad() override { }
</span><span class="cx">     void dispatchDidReceiveTitle(const StringWithDirection&amp;) override { }
</span><del>-    void dispatchDidCommitLoad(Optional&lt;HasInsecureContent&gt;) override { }
</del><ins>+    void dispatchDidCommitLoad(std::optional&lt;HasInsecureContent&gt;) override { }
</ins><span class="cx">     void dispatchDidFailProvisionalLoad(const ResourceError&amp;) override { }
</span><span class="cx">     void dispatchDidFailLoad(const ResourceError&amp;) override { }
</span><span class="cx">     void dispatchDidFinishDocumentLoad() override { }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -342,9 +342,9 @@
</span><span class="cx">     urlSelected(request, nullptr);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameLoader::urlSelected(const URL&amp; url, const String&amp; passedTarget, Event* triggeringEvent, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, Optional&lt;NewFrameOpenerPolicy&gt; openerPolicy, const AtomicString&amp; downloadAttribute)
</del><ins>+void FrameLoader::urlSelected(const URL&amp; url, const String&amp; passedTarget, Event* triggeringEvent, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, std::optional&lt;NewFrameOpenerPolicy&gt; openerPolicy, const AtomicString&amp; downloadAttribute)
</ins><span class="cx"> {
</span><del>-    NewFrameOpenerPolicy newFrameOpenerPolicy = openerPolicy.valueOr(shouldSendReferrer == NeverSendReferrer ? NewFrameOpenerPolicy::Suppress : NewFrameOpenerPolicy::Allow);
</del><ins>+    NewFrameOpenerPolicy newFrameOpenerPolicy = openerPolicy.value_or(shouldSendReferrer == NeverSendReferrer ? NewFrameOpenerPolicy::Suppress : NewFrameOpenerPolicy::Allow);
</ins><span class="cx">     urlSelected(FrameLoadRequest(m_frame.document()-&gt;securityOrigin(), ResourceRequest(url), passedTarget, lockHistory, lockBackForwardList, shouldSendReferrer, AllowNavigationToInvalidURL::Yes, newFrameOpenerPolicy, DoNotReplaceDocumentIfJavaScriptURL, shouldOpenExternalURLsPolicy, downloadAttribute), triggeringEvent);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -628,7 +628,7 @@
</span><span class="cx"> 
</span><span class="cx"> void FrameLoader::receivedFirstData()
</span><span class="cx"> {
</span><del>-    dispatchDidCommitLoad(Nullopt);
</del><ins>+    dispatchDidCommitLoad(std::nullopt);
</ins><span class="cx">     dispatchDidClearWindowObjectsInAllWorlds();
</span><span class="cx">     dispatchGlobalObjectAvailableInAllWorlds();
</span><span class="cx"> 
</span><span class="lines">@@ -1814,7 +1814,7 @@
</span><span class="cx">         requestFromDelegate(mainResourceRequest, mainResourceIdentifier, mainResouceError);
</span><span class="cx">         notifier().dispatchDidReceiveResponse(cachedPage-&gt;documentLoader(), mainResourceIdentifier, cachedPage-&gt;documentLoader()-&gt;response());
</span><span class="cx"> 
</span><del>-        Optional&lt;HasInsecureContent&gt; hasInsecureContent = cachedPage-&gt;cachedMainFrame()-&gt;hasInsecureContent();
</del><ins>+        std::optional&lt;HasInsecureContent&gt; hasInsecureContent = cachedPage-&gt;cachedMainFrame()-&gt;hasInsecureContent();
</ins><span class="cx"> 
</span><span class="cx">         // FIXME: This API should be turned around so that we ground CachedPage into the Page.
</span><span class="cx">         cachedPage-&gt;restore(*m_frame.page());
</span><span class="lines">@@ -2097,7 +2097,7 @@
</span><span class="cx">     ASSERT(view);
</span><span class="cx">     view-&gt;setWasScrolledByUser(false);
</span><span class="cx"> 
</span><del>-    Optional&lt;IntRect&gt; previousViewFrameRect = m_frame.view() ?  m_frame.view()-&gt;frameRect() : Optional&lt;IntRect&gt;(Nullopt);
</del><ins>+    std::optional&lt;IntRect&gt; previousViewFrameRect = m_frame.view() ?  m_frame.view()-&gt;frameRect() : std::optional&lt;IntRect&gt;(std::nullopt);
</ins><span class="cx">     m_frame.setView(view);
</span><span class="cx"> 
</span><span class="cx">     // Use the previous ScrollView's frame rect.
</span><span class="lines">@@ -3529,7 +3529,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameLoader::dispatchDidCommitLoad(Optional&lt;HasInsecureContent&gt; initialHasInsecureContent)
</del><ins>+void FrameLoader::dispatchDidCommitLoad(std::optional&lt;HasInsecureContent&gt; initialHasInsecureContent)
</ins><span class="cx"> {
</span><span class="cx">     if (m_stateMachine.creatingInitialEmptyDocument())
</span><span class="cx">         return;
</span><span class="lines">@@ -3593,8 +3593,8 @@
</span><span class="cx"> 
</span><span class="cx"> void FrameLoader::clearTestingOverrides()
</span><span class="cx"> {
</span><del>-    m_overrideCachePolicyForTesting = Nullopt;
-    m_overrideResourceLoadPriorityForTesting = Nullopt;
</del><ins>+    m_overrideCachePolicyForTesting = std::nullopt;
+    m_overrideResourceLoadPriorityForTesting = std::nullopt;
</ins><span class="cx">     m_isStrictRawResourceValidationPolicyDisabledForTesting = false;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/FrameLoader.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx">     unsigned long loadResourceSynchronously(const ResourceRequest&amp;, StoredCredentials, ClientCredentialPolicy, ResourceError&amp;, ResourceResponse&amp;, RefPtr&lt;SharedBuffer&gt;&amp; data);
</span><span class="cx"> 
</span><span class="cx">     void changeLocation(const FrameLoadRequest&amp;);
</span><del>-    WEBCORE_EXPORT void urlSelected(const URL&amp;, const String&amp; target, Event*, LockHistory, LockBackForwardList, ShouldSendReferrer, ShouldOpenExternalURLsPolicy, Optional&lt;NewFrameOpenerPolicy&gt; = Nullopt, const AtomicString&amp; downloadAttribute = nullAtom);
</del><ins>+    WEBCORE_EXPORT void urlSelected(const URL&amp;, const String&amp; target, Event*, LockHistory, LockBackForwardList, ShouldSendReferrer, ShouldOpenExternalURLsPolicy, std::optional&lt;NewFrameOpenerPolicy&gt; = std::nullopt, const AtomicString&amp; downloadAttribute = nullAtom);
</ins><span class="cx">     void submitForm(PassRefPtr&lt;FormSubmission&gt;);
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void reload(bool endToEndReload = false, bool contentBlockersEnabled = true);
</span><span class="lines">@@ -350,7 +350,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool shouldReloadToHandleUnreachableURL(DocumentLoader*);
</span><span class="cx"> 
</span><del>-    void dispatchDidCommitLoad(Optional&lt;HasInsecureContent&gt; initialHasInsecureContent);
</del><ins>+    void dispatchDidCommitLoad(std::optional&lt;HasInsecureContent&gt; initialHasInsecureContent);
</ins><span class="cx"> 
</span><span class="cx">     void urlSelected(const FrameLoadRequest&amp;, Event*);
</span><span class="cx"> 
</span><span class="lines">@@ -452,8 +452,8 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;FrameNetworkingContext&gt; m_networkingContext;
</span><span class="cx"> 
</span><del>-    Optional&lt;ResourceRequestCachePolicy&gt; m_overrideCachePolicyForTesting;
-    Optional&lt;ResourceLoadPriority&gt; m_overrideResourceLoadPriorityForTesting;
</del><ins>+    std::optional&lt;ResourceRequestCachePolicy&gt; m_overrideCachePolicyForTesting;
+    std::optional&lt;ResourceLoadPriority&gt; m_overrideResourceLoadPriorityForTesting;
</ins><span class="cx">     bool m_isStrictRawResourceValidationPolicyDisabledForTesting { false };
</span><span class="cx"> 
</span><span class="cx">     URL m_previousURL;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoaderClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoaderClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoaderClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/FrameLoaderClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx">     virtual void dispatchDidReceiveIcon() = 0;
</span><span class="cx">     virtual void dispatchDidStartProvisionalLoad() = 0;
</span><span class="cx">     virtual void dispatchDidReceiveTitle(const StringWithDirection&amp;) = 0;
</span><del>-    virtual void dispatchDidCommitLoad(Optional&lt;HasInsecureContent&gt;) = 0;
</del><ins>+    virtual void dispatchDidCommitLoad(std::optional&lt;HasInsecureContent&gt;) = 0;
</ins><span class="cx">     virtual void dispatchDidFailProvisionalLoad(const ResourceError&amp;) = 0;
</span><span class="cx">     virtual void dispatchDidFailLoad(const ResourceError&amp;) = 0;
</span><span class="cx">     virtual void dispatchDidFinishDocumentLoad() = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderLinkLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/LinkLoader.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/LinkLoader.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/LinkLoader.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     m_cachedLinkResource = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;CachedResource::Type&gt; LinkLoader::resourceTypeFromAsAttribute(const String&amp; as)
</del><ins>+std::optional&lt;CachedResource::Type&gt; LinkLoader::resourceTypeFromAsAttribute(const String&amp; as)
</ins><span class="cx"> {
</span><span class="cx">     if (as.isEmpty())
</span><span class="cx">         return CachedResource::RawResource;
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx">     if (equalLettersIgnoringASCIICase(as, &quot;track&quot;))
</span><span class="cx">         return CachedResource::TextTrackResource;
</span><span class="cx"> #endif
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static std::unique_ptr&lt;LinkPreloadResourceClient&gt; createLinkPreloadResourceClient(CachedResource&amp; resource, LinkLoader&amp; loader, CachedResource::Type type)
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx">         if (!m_client.shouldLoadLink())
</span><span class="cx">             return false;
</span><span class="cx"> 
</span><del>-        Optional&lt;ResourceLoadPriority&gt; priority;
</del><ins>+        std::optional&lt;ResourceLoadPriority&gt; priority;
</ins><span class="cx">         CachedResource::Type type = CachedResource::LinkPrefetch;
</span><span class="cx">         if (relAttribute.isLinkSubresource) {
</span><span class="cx">             // We only make one request to the cached resource loader if multiple rel types are specified;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderLinkLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/LinkLoader.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/LinkLoader.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/LinkLoader.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">     virtual ~LinkLoader();
</span><span class="cx"> 
</span><span class="cx">     bool loadLink(const LinkRelAttribute&amp;, const URL&amp;, const String&amp; as, const String&amp; crossOrigin, Document&amp;);
</span><del>-    static Optional&lt;CachedResource::Type&gt; resourceTypeFromAsAttribute(const String&amp; as);
</del><ins>+    static std::optional&lt;CachedResource::Type&gt; resourceTypeFromAsAttribute(const String&amp; as);
</ins><span class="cx"> 
</span><span class="cx">     WeakPtr&lt;LinkLoader&gt; createWeakPtr() { return m_weakPtrFactory.createWeakPtr(); }
</span><span class="cx">     void triggerEvents(const CachedResource&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderSubresourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/SubresourceLoader.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/SubresourceLoader.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/SubresourceLoader.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx">     , m_resource(&amp;resource)
</span><span class="cx">     , m_loadingMultipartContent(false)
</span><span class="cx">     , m_state(Uninitialized)
</span><del>-    , m_requestCountTracker(InPlace, frame.document()-&gt;cachedResourceLoader(), resource)
</del><ins>+    , m_requestCountTracker(std::in_place, frame.document()-&gt;cachedResourceLoader(), resource)
</ins><span class="cx"> {
</span><span class="cx"> #ifndef NDEBUG
</span><span class="cx">     subresourceLoaderCounter.increment();
</span><span class="lines">@@ -302,7 +302,7 @@
</span><span class="cx">         m_loadingMultipartContent = true;
</span><span class="cx"> 
</span><span class="cx">         // We don't count multiParts in a CachedResourceLoader's request count
</span><del>-        m_requestCountTracker = Nullopt;
</del><ins>+        m_requestCountTracker = std::nullopt;
</ins><span class="cx">         if (!m_resource-&gt;isImage()) {
</span><span class="cx">             cancel();
</span><span class="cx">             return;
</span><span class="lines">@@ -572,7 +572,7 @@
</span><span class="cx">     if (reachedTerminalState())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_requestCountTracker = Nullopt;
</del><ins>+    m_requestCountTracker = std::nullopt;
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     m_documentLoader-&gt;cachedResourceLoader().loadDone(m_resource, m_state != CancelledWhileInitializing);
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderSubresourceLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/SubresourceLoader.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/SubresourceLoader.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/SubresourceLoader.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx">     CachedResource* m_resource;
</span><span class="cx">     bool m_loadingMultipartContent;
</span><span class="cx">     SubresourceLoaderState m_state;
</span><del>-    Optional&lt;RequestCountTracker&gt; m_requestCountTracker;
</del><ins>+    std::optional&lt;RequestCountTracker&gt; m_requestCountTracker;
</ins><span class="cx">     RefPtr&lt;SecurityOrigin&gt; m_origin;
</span><span class="cx">     unsigned m_redirectCount { 0 };
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedResourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedResource.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedResource.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/cache/CachedResource.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -802,7 +802,7 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CachedResource::setLoadPriority(const Optional&lt;ResourceLoadPriority&gt;&amp; loadPriority)
</del><ins>+void CachedResource::setLoadPriority(const std::optional&lt;ResourceLoadPriority&gt;&amp; loadPriority)
</ins><span class="cx"> {
</span><span class="cx">     if (loadPriority)
</span><span class="cx">         m_loadPriority = loadPriority.value();
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedResourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedResource.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedResource.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/cache/CachedResource.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx">     Type type() const { return m_type; }
</span><span class="cx"> 
</span><span class="cx">     ResourceLoadPriority loadPriority() const { return m_loadPriority; }
</span><del>-    void setLoadPriority(const Optional&lt;ResourceLoadPriority&gt;&amp;);
</del><ins>+    void setLoadPriority(const std::optional&lt;ResourceLoadPriority&gt;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void addClient(CachedResourceClient&amp;);
</span><span class="cx">     WEBCORE_EXPORT void removeClient(CachedResourceClient&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedResourceRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-CachedResourceRequest::CachedResourceRequest(ResourceRequest&amp;&amp; resourceRequest, const ResourceLoaderOptions&amp; options, Optional&lt;ResourceLoadPriority&gt; priority, String&amp;&amp; charset)
</del><ins>+CachedResourceRequest::CachedResourceRequest(ResourceRequest&amp;&amp; resourceRequest, const ResourceLoaderOptions&amp; options, std::optional&lt;ResourceLoadPriority&gt; priority, String&amp;&amp; charset)
</ins><span class="cx">     : m_resourceRequest(WTFMove(resourceRequest))
</span><span class="cx">     , m_charset(WTFMove(charset))
</span><span class="cx">     , m_options(options)
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedResourceRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedResourceRequest.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedResourceRequest.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/loader/cache/CachedResourceRequest.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> 
</span><span class="cx"> class CachedResourceRequest {
</span><span class="cx"> public:
</span><del>-    CachedResourceRequest(ResourceRequest&amp;&amp;, const ResourceLoaderOptions&amp;, Optional&lt;ResourceLoadPriority&gt; = Nullopt, String&amp;&amp; charset = String());
</del><ins>+    CachedResourceRequest(ResourceRequest&amp;&amp;, const ResourceLoaderOptions&amp;, std::optional&lt;ResourceLoadPriority&gt; = std::nullopt, String&amp;&amp; charset = String());
</ins><span class="cx"> 
</span><span class="cx">     ResourceRequest&amp;&amp; releaseResourceRequest() { return WTFMove(m_resourceRequest); }
</span><span class="cx">     const ResourceRequest&amp; resourceRequest() const { return m_resourceRequest; }
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">     void setCharset(const String&amp; charset) { m_charset = charset; }
</span><span class="cx">     const ResourceLoaderOptions&amp; options() const { return m_options; }
</span><span class="cx">     void setOptions(const ResourceLoaderOptions&amp; options) { m_options = options; }
</span><del>-    const Optional&lt;ResourceLoadPriority&gt;&amp; priority() const { return m_priority; }
</del><ins>+    const std::optional&lt;ResourceLoadPriority&gt;&amp; priority() const { return m_priority; }
</ins><span class="cx">     void setInitiator(PassRefPtr&lt;Element&gt;);
</span><span class="cx">     void setInitiator(const AtomicString&amp; name);
</span><span class="cx">     const AtomicString&amp; initiatorName() const;
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">     ResourceRequest m_resourceRequest;
</span><span class="cx">     String m_charset;
</span><span class="cx">     ResourceLoaderOptions m_options;
</span><del>-    Optional&lt;ResourceLoadPriority&gt; m_priority;
</del><ins>+    std::optional&lt;ResourceLoadPriority&gt; m_priority;
</ins><span class="cx">     RefPtr&lt;Element&gt; m_initiatorElement;
</span><span class="cx">     AtomicString m_initiatorName;
</span><span class="cx">     RefPtr&lt;SecurityOrigin&gt; m_origin;
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -84,8 +84,8 @@
</span><span class="cx">         Stretched = 18
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    virtual Optional&lt;bool&gt; specifiedDisplayStyle() { return Nullopt; }
-    virtual Optional&lt;MathVariant&gt; specifiedMathVariant() { return Nullopt; }
</del><ins>+    virtual std::optional&lt;bool&gt; specifiedDisplayStyle() { return std::nullopt; }
+    virtual std::optional&lt;MathVariant&gt; specifiedMathVariant() { return std::nullopt; }
</ins><span class="cx"> 
</span><span class="cx">     virtual void updateSelectedChild() { }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLFractionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLFractionElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLFractionElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLFractionElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">     return m_lineThickness.value();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-MathMLFractionElement::FractionAlignment MathMLFractionElement::cachedFractionAlignment(const QualifiedName&amp; name, Optional&lt;FractionAlignment&gt;&amp; alignment)
</del><ins>+MathMLFractionElement::FractionAlignment MathMLFractionElement::cachedFractionAlignment(const QualifiedName&amp; name, std::optional&lt;FractionAlignment&gt;&amp; alignment)
</ins><span class="cx"> {
</span><span class="cx">     if (alignment)
</span><span class="cx">         return alignment.value();
</span><span class="lines">@@ -97,11 +97,11 @@
</span><span class="cx"> void MathMLFractionElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (name == linethicknessAttr)
</span><del>-        m_lineThickness = Nullopt;
</del><ins>+        m_lineThickness = std::nullopt;
</ins><span class="cx">     else if (name == numalignAttr)
</span><del>-        m_numeratorAlignment = Nullopt;
</del><ins>+        m_numeratorAlignment = std::nullopt;
</ins><span class="cx">     else if (name == denomalignAttr)
</span><del>-        m_denominatorAlignment = Nullopt;
</del><ins>+        m_denominatorAlignment = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     MathMLElement::parseAttribute(name, value);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLFractionElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLFractionElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLFractionElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLFractionElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -48,11 +48,11 @@
</span><span class="cx">     RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) final;
</span><span class="cx">     void parseAttribute(const QualifiedName&amp;, const AtomicString&amp;) final;
</span><span class="cx"> 
</span><del>-    FractionAlignment cachedFractionAlignment(const QualifiedName&amp;, Optional&lt;FractionAlignment&gt;&amp;);
</del><ins>+    FractionAlignment cachedFractionAlignment(const QualifiedName&amp;, std::optional&lt;FractionAlignment&gt;&amp;);
</ins><span class="cx"> 
</span><del>-    Optional&lt;Length&gt; m_lineThickness;
-    Optional&lt;FractionAlignment&gt; m_numeratorAlignment;
-    Optional&lt;FractionAlignment&gt; m_denominatorAlignment;
</del><ins>+    std::optional&lt;Length&gt; m_lineThickness;
+    std::optional&lt;FractionAlignment&gt; m_numeratorAlignment;
+    std::optional&lt;FractionAlignment&gt; m_denominatorAlignment;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLMathElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLMathElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLMathElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLMathElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">     return createRenderer&lt;RenderMathMLMath&gt;(*this, WTFMove(style));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;bool&gt; MathMLMathElement::specifiedDisplayStyle()
</del><ins>+std::optional&lt;bool&gt; MathMLMathElement::specifiedDisplayStyle()
</ins><span class="cx"> {
</span><span class="cx">     if (cachedBooleanAttribute(displaystyleAttr, m_displayStyle) == BooleanValue::Default) {
</span><span class="cx">         // The default displaystyle value of the &lt;math&gt; depends on the display attribute, so we parse it here.
</span><span class="lines">@@ -71,9 +71,9 @@
</span><span class="cx">     bool displayStyleAttribute = (name == displaystyleAttr || name == displayAttr);
</span><span class="cx">     bool mathVariantAttribute = name == mathvariantAttr;
</span><span class="cx">     if (displayStyleAttribute)
</span><del>-        m_displayStyle = Nullopt;
</del><ins>+        m_displayStyle = std::nullopt;
</ins><span class="cx">     if (mathVariantAttribute)
</span><del>-        m_mathVariant = Nullopt;
</del><ins>+        m_mathVariant = std::nullopt;
</ins><span class="cx">     if ((displayStyleAttribute || mathVariantAttribute) &amp;&amp; renderer())
</span><span class="cx">         MathMLStyle::resolveMathMLStyleTree(renderer());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLMathElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLMathElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLMathElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLMathElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool acceptsDisplayStyleAttribute() final { return true; }
</span><span class="cx">     bool acceptsMathVariantAttribute() final { return true; }
</span><del>-    Optional&lt;bool&gt; specifiedDisplayStyle() final;
</del><ins>+    std::optional&lt;bool&gt; specifiedDisplayStyle() final;
</ins><span class="cx"> 
</span><span class="cx">     RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) final;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLMencloseElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLMencloseElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLMencloseElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLMencloseElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx"> void MathMLMencloseElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (name == notationAttr)
</span><del>-        m_notationFlags = Nullopt;
</del><ins>+        m_notationFlags = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     MathMLRowElement::parseAttribute(name, value);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLMencloseElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLMencloseElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLMencloseElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLMencloseElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">     void clearNotations() { m_notationFlags = 0; }
</span><span class="cx">     void addNotation(MencloseNotationFlag notationFlag) { m_notationFlags.value() |= notationFlag; }
</span><span class="cx">     void addNotationFlags(StringView notation);
</span><del>-    Optional&lt;uint16_t&gt; m_notationFlags;
</del><ins>+    std::optional&lt;uint16_t&gt; m_notationFlags;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLOperatorDictionarycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLOperatorDictionary.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLOperatorDictionary.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLOperatorDictionary.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1107,10 +1107,10 @@
</span><span class="cx">     0x003D, 0x005E, 0x005F, 0x007E, 0x00AF, 0x02C6, 0x02C7, 0x02C9, 0x02CD, 0x02DC, 0x02F7, 0x0302, 0x0332, 0x203E, 0x20D0, 0x20D1, 0x20D6, 0x20D7, 0x20E1, 0x2190, 0x2192, 0x2194, 0x2198, 0x2199, 0x219C, 0x219D, 0x219E, 0x21A0, 0x21A2, 0x21A3, 0x21A4, 0x21A6, 0x21A9, 0x21AA, 0x21AB, 0x21AC, 0x21AD, 0x21B4, 0x21B9, 0x21BC, 0x21BD, 0x21C0, 0x21C1, 0x21C4, 0x21C6, 0x21C7, 0x21C9, 0x21CB, 0x21CC, 0x21D0, 0x21D2, 0x21D4, 0x21DA, 0x21DB, 0x21DC, 0x21DD, 0x21E0, 0x21E2, 0x21E4, 0x21E5, 0x21E6, 0x21E8, 0x21F0, 0x21F6, 0x21FD, 0x21FE, 0x21FF, 0x23B4, 0x23B5, 0x23DC, 0x23DD, 0x23DE, 0x23DF, 0x23E0, 0x23E1, 0x2500, 0x27F5, 0x27F6, 0x27F7, 0x27F8, 0x27F9, 0x27FA, 0x27FB, 0x27FC, 0x27FD, 0x27FE, 0x27FF, 0x290C, 0x290D, 0x290E, 0x290F, 0x2910, 0x294E, 0x2950, 0x2952, 0x2953, 0x2956, 0x2957, 0x295A, 0x295B, 0x295E, 0x295F, 0x2B45, 0x2B46, 0xFE35, 0xFE36, 0xFE37, 0xFE38, 0x1EEF0, 0x1EEF1
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-Optional&lt;Property&gt; MathMLOperatorDictionary::search(UChar32 character, Form form, bool explicitForm)
</del><ins>+std::optional&lt;Property&gt; MathMLOperatorDictionary::search(UChar32 character, Form form, bool explicitForm)
</ins><span class="cx"> {
</span><span class="cx">     if (!character)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // We try and find the default values from the operator dictionary.
</span><span class="cx">     if (auto* entry = tryBinarySearch&lt;const Entry, Key&gt;(dictionary, dictionarySize, Key(character, form), ExtractKey))
</span><span class="lines">@@ -1117,7 +1117,7 @@
</span><span class="cx">         return ExtractProperty(*entry);
</span><span class="cx"> 
</span><span class="cx">     if (explicitForm)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // If we did not find the desired operator form and if it was not set explicitely, we use the first one in the following order: Infix, Prefix, Postfix.
</span><span class="cx">     // This is to handle bad MathML markup without explicit &lt;mrow&gt; delimiters like &quot;&lt;mo&gt;(&lt;/mo&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mo&gt;)&lt;/mo&gt;&quot; where innerfences should not be considered infix.
</span><span class="lines">@@ -1130,7 +1130,7 @@
</span><span class="cx">         return ExtractProperty(*entry);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool MathMLOperatorDictionary::isVertical(UChar32 textContent)
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLOperatorDictionaryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLOperatorDictionary.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLOperatorDictionary.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLOperatorDictionary.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">     // Default operator properties are all set to &quot;false&quot;.
</span><span class="cx">     unsigned short flags { 0 };
</span><span class="cx"> };
</span><del>-Optional&lt;Property&gt; search(UChar32, Form, bool explicitForm);
</del><ins>+std::optional&lt;Property&gt; search(UChar32, Form, bool explicitForm);
</ins><span class="cx"> bool isVertical(UChar32);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLOperatorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLOperatorElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLOperatorElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLOperatorElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_properties.dirtyFlags &amp; flag);
</span><span class="cx"> 
</span><del>-    Optional&lt;BooleanValue&gt; property;
</del><ins>+    std::optional&lt;BooleanValue&gt; property;
</ins><span class="cx">     const auto&amp; name = propertyFlagToAttributeName(flag);
</span><span class="cx">     const BooleanValue&amp; value = cachedBooleanAttribute(name, property);
</span><span class="cx">     switch (value) {
</span><span class="lines">@@ -211,13 +211,13 @@
</span><span class="cx"> 
</span><span class="cx"> void MathMLOperatorElement::childrenChanged(const ChildChange&amp; change)
</span><span class="cx"> {
</span><del>-    m_operatorChar = Nullopt;
-    m_dictionaryProperty = Nullopt;
</del><ins>+    m_operatorChar = std::nullopt;
+    m_dictionaryProperty = std::nullopt;
</ins><span class="cx">     m_properties.dirtyFlags = MathMLOperatorDictionary::allFlags;
</span><span class="cx">     MathMLTokenElement::childrenChanged(change);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;MathMLOperatorDictionary::Flag&gt; attributeNameToPropertyFlag(const QualifiedName&amp; name)
</del><ins>+static std::optional&lt;MathMLOperatorDictionary::Flag&gt; attributeNameToPropertyFlag(const QualifiedName&amp; name)
</ins><span class="cx"> {
</span><span class="cx">     if (name == accentAttr)
</span><span class="cx">         return Accent;
</span><span class="lines">@@ -233,24 +233,24 @@
</span><span class="cx">         return Stretchy;
</span><span class="cx">     if (name == symmetricAttr)
</span><span class="cx">         return Symmetric;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MathMLOperatorElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (name == formAttr) {
</span><del>-        m_dictionaryProperty = Nullopt;
</del><ins>+        m_dictionaryProperty = std::nullopt;
</ins><span class="cx">         m_properties.dirtyFlags = MathMLOperatorDictionary::allFlags;
</span><span class="cx">     } else if (auto flag = attributeNameToPropertyFlag(name))
</span><span class="cx">         m_properties.dirtyFlags |= flag.value();
</span><span class="cx">     else if (name == lspaceAttr)
</span><del>-        m_leadingSpace = Nullopt;
</del><ins>+        m_leadingSpace = std::nullopt;
</ins><span class="cx">     else if (name == rspaceAttr)
</span><del>-        m_trailingSpace = Nullopt;
</del><ins>+        m_trailingSpace = std::nullopt;
</ins><span class="cx">     else if (name == minsizeAttr)
</span><del>-        m_minSize = Nullopt;
</del><ins>+        m_minSize = std::nullopt;
</ins><span class="cx">     else if (name == maxsizeAttr)
</span><del>-        m_maxSize = Nullopt;
</del><ins>+        m_maxSize = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if ((name == stretchyAttr || name == lspaceAttr || name == rspaceAttr || name == movablelimitsAttr) &amp;&amp; renderer()) {
</span><span class="cx">         downcast&lt;RenderMathMLOperator&gt;(*renderer()).updateFromElement();
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLOperatorElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLOperatorElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLOperatorElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLOperatorElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">     };
</span><span class="cx">     static OperatorChar parseOperatorChar(const String&amp;);
</span><span class="cx">     const OperatorChar&amp; operatorChar();
</span><del>-    void setOperatorFormDirty() { m_dictionaryProperty = Nullopt; }
</del><ins>+    void setOperatorFormDirty() { m_dictionaryProperty = std::nullopt; }
</ins><span class="cx">     MathMLOperatorDictionary::Form form() { return dictionaryProperty().form; }
</span><span class="cx">     bool hasProperty(MathMLOperatorDictionary::Flag);
</span><span class="cx">     Length defaultLeadingSpace();
</span><span class="lines">@@ -57,9 +57,9 @@
</span><span class="cx">     void childrenChanged(const ChildChange&amp;) final;
</span><span class="cx">     void parseAttribute(const QualifiedName&amp;, const AtomicString&amp;) final;
</span><span class="cx"> 
</span><del>-    Optional&lt;OperatorChar&gt; m_operatorChar;
</del><ins>+    std::optional&lt;OperatorChar&gt; m_operatorChar;
</ins><span class="cx"> 
</span><del>-    Optional&lt;MathMLOperatorDictionary::Property&gt; m_dictionaryProperty;
</del><ins>+    std::optional&lt;MathMLOperatorDictionary::Property&gt; m_dictionaryProperty;
</ins><span class="cx">     MathMLOperatorDictionary::Property computeDictionaryProperty();
</span><span class="cx">     const MathMLOperatorDictionary::Property&amp; dictionaryProperty();
</span><span class="cx"> 
</span><span class="lines">@@ -70,10 +70,10 @@
</span><span class="cx">     OperatorProperties m_properties;
</span><span class="cx">     void computeOperatorFlag(MathMLOperatorDictionary::Flag);
</span><span class="cx"> 
</span><del>-    Optional&lt;Length&gt; m_leadingSpace;
-    Optional&lt;Length&gt; m_trailingSpace;
-    Optional&lt;Length&gt; m_minSize;
-    Optional&lt;Length&gt; m_maxSize;
</del><ins>+    std::optional&lt;Length&gt; m_leadingSpace;
+    std::optional&lt;Length&gt; m_trailingSpace;
+    std::optional&lt;Length&gt; m_minSize;
+    std::optional&lt;Length&gt; m_maxSize;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLPaddedElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLPaddedElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLPaddedElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLPaddedElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -73,15 +73,15 @@
</span><span class="cx"> void MathMLPaddedElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (name == widthAttr)
</span><del>-        m_width = Nullopt;
</del><ins>+        m_width = std::nullopt;
</ins><span class="cx">     else if (name == heightAttr)
</span><del>-        m_height = Nullopt;
</del><ins>+        m_height = std::nullopt;
</ins><span class="cx">     else if (name == depthAttr)
</span><del>-        m_depth = Nullopt;
</del><ins>+        m_depth = std::nullopt;
</ins><span class="cx">     else if (name == lspaceAttr)
</span><del>-        m_lspace = Nullopt;
</del><ins>+        m_lspace = std::nullopt;
</ins><span class="cx">     else if (name == voffsetAttr)
</span><del>-        m_voffset = Nullopt;
</del><ins>+        m_voffset = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     MathMLElement::parseAttribute(name, value);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLPaddedElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLPaddedElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLPaddedElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLPaddedElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -45,11 +45,11 @@
</span><span class="cx">     RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) final;
</span><span class="cx">     void parseAttribute(const QualifiedName&amp;, const AtomicString&amp;) final;
</span><span class="cx"> 
</span><del>-    Optional&lt;Length&gt; m_width;
-    Optional&lt;Length&gt; m_height;
-    Optional&lt;Length&gt; m_depth;
-    Optional&lt;Length&gt; m_lspace;
-    Optional&lt;Length&gt; m_voffset;
</del><ins>+    std::optional&lt;Length&gt; m_width;
+    std::optional&lt;Length&gt; m_height;
+    std::optional&lt;Length&gt; m_depth;
+    std::optional&lt;Length&gt; m_lspace;
+    std::optional&lt;Length&gt; m_voffset;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLPresentationElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLPresentationElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLPresentationElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLPresentationElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx">         || htmlElement.hasTagName(HTMLNames::ulTag);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const MathMLElement::BooleanValue&amp; MathMLPresentationElement::cachedBooleanAttribute(const QualifiedName&amp; name, Optional&lt;BooleanValue&gt;&amp; attribute)
</del><ins>+const MathMLElement::BooleanValue&amp; MathMLPresentationElement::cachedBooleanAttribute(const QualifiedName&amp; name, std::optional&lt;BooleanValue&gt;&amp; attribute)
</ins><span class="cx"> {
</span><span class="cx">     if (attribute)
</span><span class="cx">         return attribute.value();
</span><span class="lines">@@ -306,7 +306,7 @@
</span><span class="cx">     return parseNamedSpace(stringView);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const MathMLElement::Length&amp; MathMLPresentationElement::cachedMathMLLength(const QualifiedName&amp; name, Optional&lt;Length&gt;&amp; length)
</del><ins>+const MathMLElement::Length&amp; MathMLPresentationElement::cachedMathMLLength(const QualifiedName&amp; name, std::optional&lt;Length&gt;&amp; length)
</ins><span class="cx"> {
</span><span class="cx">     if (length)
</span><span class="cx">         return length.value();
</span><span class="lines">@@ -319,10 +319,10 @@
</span><span class="cx">     return hasTagName(mtableTag);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;bool&gt; MathMLPresentationElement::specifiedDisplayStyle()
</del><ins>+std::optional&lt;bool&gt; MathMLPresentationElement::specifiedDisplayStyle()
</ins><span class="cx"> {
</span><span class="cx">     if (!acceptsDisplayStyleAttribute())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     const MathMLElement::BooleanValue&amp; specifiedDisplayStyle = cachedBooleanAttribute(displaystyleAttr, m_displayStyle);
</span><span class="cx">     return toOptionalBool(specifiedDisplayStyle);
</span><span class="cx"> }
</span><span class="lines">@@ -369,13 +369,13 @@
</span><span class="cx">     return MathVariant::None;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;MathMLElement::MathVariant&gt; MathMLPresentationElement::specifiedMathVariant()
</del><ins>+std::optional&lt;MathMLElement::MathVariant&gt; MathMLPresentationElement::specifiedMathVariant()
</ins><span class="cx"> {
</span><span class="cx">     if (!acceptsMathVariantAttribute())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (!m_mathVariant)
</span><span class="cx">         m_mathVariant = parseMathVariantAttribute(attributeWithoutSynchronization(mathvariantAttr));
</span><del>-    return m_mathVariant.value() == MathVariant::None ? Nullopt : m_mathVariant;
</del><ins>+    return m_mathVariant.value() == MathVariant::None ? std::nullopt : m_mathVariant;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MathMLPresentationElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="lines">@@ -383,9 +383,9 @@
</span><span class="cx">     bool displayStyleAttribute = name == displaystyleAttr &amp;&amp; acceptsDisplayStyleAttribute();
</span><span class="cx">     bool mathVariantAttribute = name == mathvariantAttr &amp;&amp; acceptsMathVariantAttribute();
</span><span class="cx">     if (displayStyleAttribute)
</span><del>-        m_displayStyle = Nullopt;
</del><ins>+        m_displayStyle = std::nullopt;
</ins><span class="cx">     if (mathVariantAttribute)
</span><del>-        m_mathVariant = Nullopt;
</del><ins>+        m_mathVariant = std::nullopt;
</ins><span class="cx">     if ((displayStyleAttribute || mathVariantAttribute) &amp;&amp; renderer())
</span><span class="cx">         MathMLStyle::resolveMathMLStyleTree(renderer());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLPresentationElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLPresentationElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLPresentationElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLPresentationElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,20 +44,20 @@
</span><span class="cx">     static bool isPhrasingContent(const Node&amp;);
</span><span class="cx">     static bool isFlowContent(const Node&amp;);
</span><span class="cx"> 
</span><del>-    static Optional&lt;bool&gt; toOptionalBool(const BooleanValue&amp; value) { return value == BooleanValue::Default ? Nullopt : Optional&lt;bool&gt;(value == BooleanValue::True); }
-    const BooleanValue&amp; cachedBooleanAttribute(const QualifiedName&amp;, Optional&lt;BooleanValue&gt;&amp;);
</del><ins>+    static std::optional&lt;bool&gt; toOptionalBool(const BooleanValue&amp; value) { return value == BooleanValue::Default ? std::nullopt : std::optional&lt;bool&gt;(value == BooleanValue::True); }
+    const BooleanValue&amp; cachedBooleanAttribute(const QualifiedName&amp;, std::optional&lt;BooleanValue&gt;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     static Length parseMathMLLength(const String&amp;);
</span><del>-    const Length&amp; cachedMathMLLength(const QualifiedName&amp;, Optional&lt;Length&gt;&amp;);
</del><ins>+    const Length&amp; cachedMathMLLength(const QualifiedName&amp;, std::optional&lt;Length&gt;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     virtual bool acceptsDisplayStyleAttribute();
</span><del>-    Optional&lt;bool&gt; specifiedDisplayStyle() override;
</del><ins>+    std::optional&lt;bool&gt; specifiedDisplayStyle() override;
</ins><span class="cx"> 
</span><span class="cx">     virtual bool acceptsMathVariantAttribute() { return false; }
</span><del>-    Optional&lt;MathVariant&gt; specifiedMathVariant() final;
</del><ins>+    std::optional&lt;MathVariant&gt; specifiedMathVariant() final;
</ins><span class="cx"> 
</span><del>-    Optional&lt;BooleanValue&gt; m_displayStyle;
-    Optional&lt;MathVariant&gt; m_mathVariant;
</del><ins>+    std::optional&lt;BooleanValue&gt; m_displayStyle;
+    std::optional&lt;MathVariant&gt; m_mathVariant;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLScriptsElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLScriptsElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLScriptsElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLScriptsElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,9 +58,9 @@
</span><span class="cx"> void MathMLScriptsElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (name == subscriptshiftAttr)
</span><del>-        m_subscriptShift = Nullopt;
</del><ins>+        m_subscriptShift = std::nullopt;
</ins><span class="cx">     else if (name == superscriptshiftAttr)
</span><del>-        m_superscriptShift = Nullopt;
</del><ins>+        m_superscriptShift = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     MathMLElement::parseAttribute(name, value);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLScriptsElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLScriptsElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLScriptsElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLScriptsElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,8 +44,8 @@
</span><span class="cx">     RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) override;
</span><span class="cx">     void parseAttribute(const QualifiedName&amp;, const AtomicString&amp;) override;
</span><span class="cx"> 
</span><del>-    Optional&lt;Length&gt; m_subscriptShift;
-    Optional&lt;Length&gt; m_superscriptShift;
</del><ins>+    std::optional&lt;Length&gt; m_subscriptShift;
+    std::optional&lt;Length&gt; m_superscriptShift;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLSpaceElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLSpaceElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLSpaceElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLSpaceElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -63,11 +63,11 @@
</span><span class="cx"> void MathMLSpaceElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (name == widthAttr)
</span><del>-        m_width = Nullopt;
</del><ins>+        m_width = std::nullopt;
</ins><span class="cx">     else if (name == heightAttr)
</span><del>-        m_height = Nullopt;
</del><ins>+        m_height = std::nullopt;
</ins><span class="cx">     else if (name == depthAttr)
</span><del>-        m_depth = Nullopt;
</del><ins>+        m_depth = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     MathMLPresentationElement::parseAttribute(name, value);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLSpaceElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLSpaceElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLSpaceElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLSpaceElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,9 +44,9 @@
</span><span class="cx"> 
</span><span class="cx">     bool acceptsDisplayStyleAttribute() final { return false; }
</span><span class="cx"> 
</span><del>-    Optional&lt;Length&gt; m_width;
-    Optional&lt;Length&gt; m_height;
-    Optional&lt;Length&gt; m_depth;
</del><ins>+    std::optional&lt;Length&gt; m_width;
+    std::optional&lt;Length&gt; m_height;
+    std::optional&lt;Length&gt; m_depth;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLTokenElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLTokenElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLTokenElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLTokenElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -77,15 +77,15 @@
</span><span class="cx">     return isPhrasingContent(child) &amp;&amp; StyledElement::childShouldCreateRenderer(child);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;UChar32&gt; MathMLTokenElement::convertToSingleCodePoint(StringView string)
</del><ins>+std::optional&lt;UChar32&gt; MathMLTokenElement::convertToSingleCodePoint(StringView string)
</ins><span class="cx"> {
</span><span class="cx">     auto codePoints = stripLeadingAndTrailingWhitespace(string).codePoints();
</span><span class="cx">     auto iterator = codePoints.begin();
</span><span class="cx">     if (iterator == codePoints.end())
</span><del>-        return Nullopt;
-    Optional&lt;UChar32&gt; character = *iterator;
</del><ins>+        return std::nullopt;
+    std::optional&lt;UChar32&gt; character = *iterator;
</ins><span class="cx">     ++iterator;
</span><del>-    return iterator == codePoints.end() ? character : Nullopt;
</del><ins>+    return iterator == codePoints.end() ? character : std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLTokenElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLTokenElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLTokenElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLTokenElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;MathMLTokenElement&gt; create(const QualifiedName&amp; tagName, Document&amp;);
</span><span class="cx"> 
</span><del>-    static Optional&lt;UChar32&gt; convertToSingleCodePoint(StringView);
</del><ins>+    static std::optional&lt;UChar32&gt; convertToSingleCodePoint(StringView);
</ins><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     MathMLTokenElement(const QualifiedName&amp; tagName, Document&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLUnderOverElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLUnderOverElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLUnderOverElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLUnderOverElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,9 +58,9 @@
</span><span class="cx"> void MathMLUnderOverElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (name == accentAttr)
</span><del>-        m_accent = Nullopt;
</del><ins>+        m_accent = std::nullopt;
</ins><span class="cx">     else if (name == accentunderAttr)
</span><del>-        m_accentUnder = Nullopt;
</del><ins>+        m_accentUnder = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     MathMLElement::parseAttribute(name, value);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLUnderOverElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLUnderOverElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLUnderOverElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/mathml/MathMLUnderOverElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -42,8 +42,8 @@
</span><span class="cx">     RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) final;
</span><span class="cx">     void parseAttribute(const QualifiedName&amp;, const AtomicString&amp;) final;
</span><span class="cx"> 
</span><del>-    Optional&lt;BooleanValue&gt; m_accent;
-    Optional&lt;BooleanValue&gt; m_accentUnder;
</del><ins>+    std::optional&lt;BooleanValue&gt; m_accent;
+    std::optional&lt;BooleanValue&gt; m_accentUnder;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageChromeClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ChromeClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ChromeClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/ChromeClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -390,7 +390,7 @@
</span><span class="cx">     virtual void notifyScrollerThumbIsVisibleInRect(const IntRect&amp;) { }
</span><span class="cx">     virtual void recommendedScrollbarStyleDidChange(ScrollbarStyle) { }
</span><span class="cx"> 
</span><del>-    virtual WTF::Optional&lt;ScrollbarOverlayStyle&gt; preferredScrollbarOverlayStyle() { return ScrollbarOverlayStyleDefault; }
</del><ins>+    virtual std::optional&lt;ScrollbarOverlayStyle&gt; preferredScrollbarOverlayStyle() { return ScrollbarOverlayStyleDefault; }
</ins><span class="cx"> 
</span><span class="cx">     virtual void wheelEventHandlersChanged(bool hasHandlers) = 0;
</span><span class="cx">         
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMTimercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMTimer.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMTimer.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/DOMTimer.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -426,11 +426,11 @@
</span><span class="cx">     return interval;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;std::chrono::milliseconds&gt; DOMTimer::alignedFireTime(std::chrono::milliseconds fireTime) const
</del><ins>+std::optional&lt;std::chrono::milliseconds&gt; DOMTimer::alignedFireTime(std::chrono::milliseconds fireTime) const
</ins><span class="cx"> {
</span><span class="cx">     auto alignmentInterval = scriptExecutionContext()-&gt;timerAlignmentInterval(m_nestingLevel &gt;= maxTimerNestingLevel);
</span><span class="cx">     if (alignmentInterval == 0ms)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     static const double randomizedProportion = randomNumber();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMTimerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMTimer.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMTimer.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/DOMTimer.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     // SuspendableTimer
</span><span class="cx">     void fired() override;
</span><span class="cx">     void didStop() override;
</span><del>-    Optional&lt;std::chrono::milliseconds&gt; alignedFireTime(std::chrono::milliseconds) const override;
</del><ins>+    std::optional&lt;std::chrono::milliseconds&gt; alignedFireTime(std::chrono::milliseconds) const override;
</ins><span class="cx"> 
</span><span class="cx">     // ActiveDOMObject API.
</span><span class="cx">     const char* activeDOMObjectName() const override;
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/DOMWindow.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1522,7 +1522,7 @@
</span><span class="cx"> 
</span><span class="cx"> void DOMWindow::scrollBy(const ScrollToOptions&amp; options) const
</span><span class="cx"> {
</span><del>-    return scrollBy(options.left.valueOr(0), options.top.valueOr(0));
</del><ins>+    return scrollBy(options.left.value_or(0), options.top.value_or(0));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DOMWindow::scrollBy(double x, double y) const
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/DOMWindow.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -370,7 +370,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool m_shouldPrintWhenFinishedLoading { false };
</span><span class="cx">     bool m_suspendedForDocumentSuspension { false };
</span><del>-    Optional&lt;bool&gt; m_canShowModalDialogOverride;
</del><ins>+    std::optional&lt;bool&gt; m_canShowModalDialogOverride;
</ins><span class="cx"> 
</span><span class="cx">     HashSet&lt;DOMWindowProperty*&gt; m_properties;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventSource.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventSource.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/EventSource.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -280,8 +280,8 @@
</span><span class="cx">             m_discardTrailingNewline = false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Optional&lt;unsigned&gt; lineLength;
-        Optional&lt;unsigned&gt; fieldLength;
</del><ins>+        std::optional&lt;unsigned&gt; lineLength;
+        std::optional&lt;unsigned&gt; fieldLength;
</ins><span class="cx">         for (unsigned i = position; !lineLength &amp;&amp; i &lt; size; ++i) {
</span><span class="cx">             switch (m_receiveBuffer[i]) {
</span><span class="cx">             case ':':
</span><span class="lines">@@ -317,7 +317,7 @@
</span><span class="cx">         m_receiveBuffer.remove(0, position);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void EventSource::parseEventStreamLine(unsigned position, Optional&lt;unsigned&gt; fieldLength, unsigned lineLength)
</del><ins>+void EventSource::parseEventStreamLine(unsigned position, std::optional&lt;unsigned&gt; fieldLength, unsigned lineLength)
</ins><span class="cx"> {
</span><span class="cx">     if (!lineLength) {
</span><span class="cx">         if (!m_data.isEmpty())
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventSource.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventSource.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/EventSource.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">     void scheduleReconnect();
</span><span class="cx">     void abortConnectionAttempt();
</span><span class="cx">     void parseEventStream();
</span><del>-    void parseEventStreamLine(unsigned position, Optional&lt;unsigned&gt; fieldLength, unsigned lineLength);
</del><ins>+    void parseEventStreamLine(unsigned position, std::optional&lt;unsigned&gt; fieldLength, unsigned lineLength);
</ins><span class="cx">     void dispatchMessageEvent();
</span><span class="cx"> 
</span><span class="cx">     bool responseIsValid(const ResourceResponse&amp;) const;
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/FrameView.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -449,7 +449,7 @@
</span><span class="cx"> void FrameView::recalculateScrollbarOverlayStyle()
</span><span class="cx"> {
</span><span class="cx">     ScrollbarOverlayStyle oldOverlayStyle = scrollbarOverlayStyle();
</span><del>-    WTF::Optional&lt;ScrollbarOverlayStyle&gt; clientOverlayStyle = frame().page() ? frame().page()-&gt;chrome().client().preferredScrollbarOverlayStyle() : ScrollbarOverlayStyleDefault;
</del><ins>+    std::optional&lt;ScrollbarOverlayStyle&gt; clientOverlayStyle = frame().page() ? frame().page()-&gt;chrome().client().preferredScrollbarOverlayStyle() : ScrollbarOverlayStyleDefault;
</ins><span class="cx">     if (clientOverlayStyle) {
</span><span class="cx">         if (clientOverlayStyle.value() != oldOverlayStyle)
</span><span class="cx">             setScrollbarOverlayStyle(clientOverlayStyle.value());
</span><span class="lines">@@ -1831,7 +1831,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameView::setLayoutViewportOverrideRect(Optional&lt;LayoutRect&gt; rect)
</del><ins>+void FrameView::setLayoutViewportOverrideRect(std::optional&lt;LayoutRect&gt; rect)
</ins><span class="cx"> {
</span><span class="cx">     if (rect == m_layoutViewportOverrideRect)
</span><span class="cx">         return;
</span><span class="lines">@@ -5156,7 +5156,7 @@
</span><span class="cx">         widget-&gt;notifyWidget(notification);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameView::setViewExposedRect(Optional&lt;FloatRect&gt; viewExposedRect)
</del><ins>+void FrameView::setViewExposedRect(std::optional&lt;FloatRect&gt; viewExposedRect)
</ins><span class="cx"> {
</span><span class="cx">     if (m_viewExposedRect == viewExposedRect)
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/FrameView.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -263,7 +263,7 @@
</span><span class="cx">     
</span><span class="cx">     // If set, overrides the default &quot;m_layoutViewportOrigin, size of initial containing block&quot; rect.
</span><span class="cx">     // Used with delegated scrolling (i.e. iOS).
</span><del>-    WEBCORE_EXPORT void setLayoutViewportOverrideRect(Optional&lt;LayoutRect&gt;);
</del><ins>+    WEBCORE_EXPORT void setLayoutViewportOverrideRect(std::optional&lt;LayoutRect&gt;);
</ins><span class="cx"> 
</span><span class="cx">     // These are in document coordinates, unaffected by zooming.
</span><span class="cx">     WEBCORE_EXPORT LayoutRect layoutViewportRect() const;
</span><span class="lines">@@ -569,8 +569,8 @@
</span><span class="cx">     // of the view is actually exposed on screen (taking into account
</span><span class="cx">     // clipping by other UI elements), whereas visibleContentRect is
</span><span class="cx">     // internal to WebCore and doesn't respect those things.
</span><del>-    WEBCORE_EXPORT void setViewExposedRect(Optional&lt;FloatRect&gt;);
-    Optional&lt;FloatRect&gt; viewExposedRect() const { return m_viewExposedRect; }
</del><ins>+    WEBCORE_EXPORT void setViewExposedRect(std::optional&lt;FloatRect&gt;);
+    std::optional&lt;FloatRect&gt; viewExposedRect() const { return m_viewExposedRect; }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">     void updateSnapOffsets() override;
</span><span class="lines">@@ -786,10 +786,10 @@
</span><span class="cx"> 
</span><span class="cx">     bool m_shouldUpdateWhileOffscreen;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; m_viewExposedRect;
</del><ins>+    std::optional&lt;FloatRect&gt; m_viewExposedRect;
</ins><span class="cx">     
</span><span class="cx">     LayoutPoint m_layoutViewportOrigin;
</span><del>-    Optional&lt;LayoutRect&gt; m_layoutViewportOverrideRect;
</del><ins>+    std::optional&lt;LayoutRect&gt; m_layoutViewportOverrideRect;
</ins><span class="cx"> 
</span><span class="cx">     unsigned m_deferSetNeedsLayoutCount;
</span><span class="cx">     bool m_setNeedsLayoutWasDeferred;
</span></span></pre></div>
<a id="trunkSourceWebCorepagePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Page.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Page.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/Page.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -553,7 +553,7 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;std::pair&lt;MediaCanStartListener&amp;, Document&amp;&gt;&gt;  Page::takeAnyMediaCanStartListener()
</del><ins>+inline std::optional&lt;std::pair&lt;MediaCanStartListener&amp;, Document&amp;&gt;&gt;  Page::takeAnyMediaCanStartListener()
</ins><span class="cx"> {
</span><span class="cx">     for (Frame* frame = &amp;mainFrame(); frame; frame = frame-&gt;tree().traverseNext()) {
</span><span class="cx">         if (!frame-&gt;document())
</span><span class="lines">@@ -561,7 +561,7 @@
</span><span class="cx">         if (MediaCanStartListener* listener = frame-&gt;document()-&gt;takeAnyMediaCanStartListener())
</span><span class="cx">             return { { *listener, *frame-&gt;document() } };
</span><span class="cx">     }
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Page::setCanStartMedia(bool canStartMedia)
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Page.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Page.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/Page.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -541,8 +541,8 @@
</span><span class="cx">     bool isResourceCachingDisabled() const { return m_resourceCachingDisabled; }
</span><span class="cx">     void setResourceCachingDisabled(bool disabled) { m_resourceCachingDisabled = disabled; }
</span><span class="cx"> 
</span><del>-    Optional&lt;EventThrottlingBehavior&gt; eventThrottlingBehaviorOverride() const { return m_eventThrottlingBehaviorOverride; }
-    void setEventThrottlingBehaviorOverride(Optional&lt;EventThrottlingBehavior&gt; throttling) { m_eventThrottlingBehaviorOverride = throttling; }
</del><ins>+    std::optional&lt;EventThrottlingBehavior&gt; eventThrottlingBehaviorOverride() const { return m_eventThrottlingBehaviorOverride; }
+    void setEventThrottlingBehaviorOverride(std::optional&lt;EventThrottlingBehavior&gt; throttling) { m_eventThrottlingBehaviorOverride = throttling; }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     WEBCORE_EXPORT void initGroup();
</span><span class="lines">@@ -562,7 +562,7 @@
</span><span class="cx"> 
</span><span class="cx">     unsigned findMatchesForText(const String&amp;, FindOptions, unsigned maxMatchCount, ShouldHighlightMatches, ShouldMarkMatches);
</span><span class="cx"> 
</span><del>-    Optional&lt;std::pair&lt;MediaCanStartListener&amp;, Document&amp;&gt;&gt; takeAnyMediaCanStartListener();
</del><ins>+    std::optional&lt;std::pair&lt;MediaCanStartListener&amp;, Document&amp;&gt;&gt; takeAnyMediaCanStartListener();
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;Ref&lt;PluginViewBase&gt;&gt; pluginViews();
</span><span class="cx"> 
</span><span class="lines">@@ -737,7 +737,7 @@
</span><span class="cx">     UserInterfaceLayoutDirection m_userInterfaceLayoutDirection { UserInterfaceLayoutDirection::LTR };
</span><span class="cx">     
</span><span class="cx">     // For testing.
</span><del>-    Optional&lt;EventThrottlingBehavior&gt; m_eventThrottlingBehaviorOverride;
</del><ins>+    std::optional&lt;EventThrottlingBehavior&gt; m_eventThrottlingBehaviorOverride;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> inline PageGroup&amp; Page::group()
</span></span></pre></div>
<a id="trunkSourceWebCorepageScrollToOptionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ScrollToOptions.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ScrollToOptions.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/ScrollToOptions.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -33,8 +33,8 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> struct ScrollToOptions {
</span><del>-    Optional&lt;double&gt; left;
-    Optional&lt;double&gt; top;
</del><ins>+    std::optional&lt;double&gt; left;
+    std::optional&lt;double&gt; top;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageSecurityOrigincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SecurityOrigin.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SecurityOrigin.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/SecurityOrigin.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">     m_domain = m_host;
</span><span class="cx"> 
</span><span class="cx">     if (m_port &amp;&amp; isDefaultPortForProtocol(m_port.value(), m_protocol))
</span><del>-        m_port = Nullopt;
</del><ins>+        m_port = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // By default, only local SecurityOrigins can load local resources.
</span><span class="cx">     m_canLoadLocalResources = isLocal();
</span><span class="lines">@@ -486,7 +486,7 @@
</span><span class="cx">     return SecurityOrigin::create(URL(URL(), originString));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;SecurityOrigin&gt; SecurityOrigin::create(const String&amp; protocol, const String&amp; host, Optional&lt;uint16_t&gt; port)
</del><ins>+Ref&lt;SecurityOrigin&gt; SecurityOrigin::create(const String&amp; protocol, const String&amp; host, std::optional&lt;uint16_t&gt; port)
</ins><span class="cx"> {
</span><span class="cx">     String decodedHost = decodeURLEscapeSequences(host);
</span><span class="cx">     auto origin = create(URL(URL(), protocol + &quot;://&quot; + host + &quot;/&quot;));
</span></span></pre></div>
<a id="trunkSourceWebCorepageSecurityOriginh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SecurityOrigin.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SecurityOrigin.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/SecurityOrigin.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">     static Ref&lt;SecurityOrigin&gt; createUnique();
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT static Ref&lt;SecurityOrigin&gt; createFromString(const String&amp;);
</span><del>-    WEBCORE_EXPORT static Ref&lt;SecurityOrigin&gt; create(const String&amp; protocol, const String&amp; host, Optional&lt;uint16_t&gt; port);
</del><ins>+    WEBCORE_EXPORT static Ref&lt;SecurityOrigin&gt; create(const String&amp; protocol, const String&amp; host, std::optional&lt;uint16_t&gt; port);
</ins><span class="cx"> 
</span><span class="cx">     // Some URL schemes use nested URLs for their security context. For example,
</span><span class="cx">     // filesystem URLs look like the following:
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx">     const String&amp; protocol() const { return m_protocol; }
</span><span class="cx">     const String&amp; host() const { return m_host; }
</span><span class="cx">     const String&amp; domain() const { return m_domain; }
</span><del>-    Optional&lt;uint16_t&gt; port() const { return m_port; }
</del><ins>+    std::optional&lt;uint16_t&gt; port() const { return m_port; }
</ins><span class="cx"> 
</span><span class="cx">     // Returns true if a given URL is secure, based either directly on its
</span><span class="cx">     // own protocol, or, when relevant, on the protocol of its &quot;inner URL&quot;
</span><span class="lines">@@ -218,7 +218,7 @@
</span><span class="cx">     String m_host;
</span><span class="cx">     String m_domain;
</span><span class="cx">     String m_filePath;
</span><del>-    Optional&lt;uint16_t&gt; m_port;
</del><ins>+    std::optional&lt;uint16_t&gt; m_port;
</ins><span class="cx">     bool m_isUnique { false };
</span><span class="cx">     bool m_universalAccess { false };
</span><span class="cx">     bool m_domainWasSetInDOM { false };
</span></span></pre></div>
<a id="trunkSourceWebCorepageSecurityOriginDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SecurityOriginData.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SecurityOriginData.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/SecurityOriginData.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> #if !LOG_DISABLED
</span><span class="cx"> String SecurityOriginData::debugString() const
</span><span class="cx"> {
</span><del>-    return makeString(protocol, &quot;://&quot;, host, &quot;:&quot;, String::number(port.valueOr(0)));
</del><ins>+    return makeString(protocol, &quot;://&quot;, host, &quot;:&quot;, String::number(port.value_or(0)));
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -92,27 +92,27 @@
</span><span class="cx">     stringBuilder.append(separatorCharacter);
</span><span class="cx">     stringBuilder.append(encodeForFileName(host));
</span><span class="cx">     stringBuilder.append(separatorCharacter);
</span><del>-    stringBuilder.appendNumber(port.valueOr(0));
</del><ins>+    stringBuilder.appendNumber(port.value_or(0));
</ins><span class="cx">     
</span><span class="cx">     return stringBuilder.toString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;SecurityOriginData&gt; SecurityOriginData::fromDatabaseIdentifier(const String&amp; databaseIdentifier)
</del><ins>+std::optional&lt;SecurityOriginData&gt; SecurityOriginData::fromDatabaseIdentifier(const String&amp; databaseIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     // Make sure there's a first separator
</span><span class="cx">     size_t separator1 = databaseIdentifier.find(separatorCharacter);
</span><span class="cx">     if (separator1 == notFound)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     // Make sure there's a second separator
</span><span class="cx">     size_t separator2 = databaseIdentifier.reverseFind(separatorCharacter);
</span><span class="cx">     if (separator2 == notFound)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     // Ensure there were at least 2 separator characters. Some hostnames on intranets have
</span><span class="cx">     // underscores in them, so we'll assume that any additional underscores are part of the host.
</span><span class="cx">     if (separator1 == separator2)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     // Make sure the port section is a valid port number or doesn't exist
</span><span class="cx">     bool portOkay;
</span><span class="lines">@@ -119,10 +119,10 @@
</span><span class="cx">     int port = databaseIdentifier.right(databaseIdentifier.length() - separator2 - 1).toInt(&amp;portOkay);
</span><span class="cx">     bool portAbsent = (separator2 == databaseIdentifier.length() - 1);
</span><span class="cx">     if (!(portOkay || portAbsent))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     if (port &lt; 0 || port &gt; std::numeric_limits&lt;uint16_t&gt;::max())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     return SecurityOriginData {databaseIdentifier.substring(0, separator1), databaseIdentifier.substring(separator1 + 1, separator2 - separator1 - 1), static_cast&lt;uint16_t&gt;(port)};
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageSecurityOriginDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SecurityOriginData.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SecurityOriginData.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/SecurityOriginData.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> struct SecurityOriginData {
</span><span class="cx">     SecurityOriginData() = default;
</span><del>-    SecurityOriginData(const String&amp; protocol, const String&amp; host, Optional&lt;uint16_t&gt; port)
</del><ins>+    SecurityOriginData(const String&amp; protocol, const String&amp; host, std::optional&lt;uint16_t&gt; port)
</ins><span class="cx">         : protocol(protocol)
</span><span class="cx">         , host(host)
</span><span class="cx">         , port(port)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> 
</span><span class="cx">     String protocol;
</span><span class="cx">     String host;
</span><del>-    Optional&lt;uint16_t&gt; port;
</del><ins>+    std::optional&lt;uint16_t&gt; port;
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT SecurityOriginData isolatedCopy() const;
</span><span class="cx"> 
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">     // Serialize the security origin to a string that could be used as part of
</span><span class="cx">     // file names. This format should be used in storage APIs only.
</span><span class="cx">     WEBCORE_EXPORT String databaseIdentifier() const;
</span><del>-    WEBCORE_EXPORT static Optional&lt;SecurityOriginData&gt; fromDatabaseIdentifier(const String&amp;);
</del><ins>+    WEBCORE_EXPORT static std::optional&lt;SecurityOriginData&gt; fromDatabaseIdentifier(const String&amp;);
</ins><span class="cx">     
</span><span class="cx">     template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
</span><span class="cx">     template&lt;class Decoder&gt; static bool decode(Decoder&amp;, SecurityOriginData&amp;);
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool isEmpty() const
</span><span class="cx">     {
</span><del>-        return protocol.isNull() &amp;&amp; host.isNull() &amp;&amp; port == Nullopt;
</del><ins>+        return protocol.isNull() &amp;&amp; host.isNull() &amp;&amp; port == std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     bool isHashTableDeletedValue() const
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">         unsigned hashCodes[3] = {
</span><span class="cx">             data.protocol.impl() ? data.protocol.impl()-&gt;hash() : 0,
</span><span class="cx">             data.host.impl() ? data.host.impl()-&gt;hash() : 0,
</span><del>-            data.port.valueOr(0)
</del><ins>+            data.port.value_or(0)
</ins><span class="cx">         };
</span><span class="cx">         return StringHasher::hashMemory&lt;sizeof(hashCodes)&gt;(hashCodes);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepageSecurityOriginHashh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SecurityOriginHash.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SecurityOriginHash.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/SecurityOriginHash.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx">         unsigned hashCodes[3] = {
</span><span class="cx">             origin-&gt;protocol().impl() ? origin-&gt;protocol().impl()-&gt;hash() : 0,
</span><span class="cx">             origin-&gt;host().impl() ? origin-&gt;host().impl()-&gt;hash() : 0,
</span><del>-            origin-&gt;port().valueOr(0)
</del><ins>+            origin-&gt;port().value_or(0)
</ins><span class="cx">         };
</span><span class="cx">         return StringHasher::hashMemory&lt;sizeof(hashCodes)&gt;(hashCodes);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepageWindowFeaturescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/WindowFeatures.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/WindowFeatures.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/WindowFeatures.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -36,8 +36,8 @@
</span><span class="cx"> static void setWindowFeature(WindowFeatures&amp;, StringView key, StringView value);
</span><span class="cx"> 
</span><span class="cx"> static DialogFeaturesMap parseDialogFeaturesMap(const String&amp;);
</span><del>-static Optional&lt;bool&gt; boolFeature(const DialogFeaturesMap&amp;, const char* key);
-static Optional&lt;float&gt; floatFeature(const DialogFeaturesMap&amp;, const char* key, float min, float max);
</del><ins>+static std::optional&lt;bool&gt; boolFeature(const DialogFeaturesMap&amp;, const char* key);
+static std::optional&lt;float&gt; floatFeature(const DialogFeaturesMap&amp;, const char* key, float min, float max);
</ins><span class="cx"> 
</span><span class="cx"> static bool isSeparator(UChar character)
</span><span class="cx"> {
</span><span class="lines">@@ -158,8 +158,8 @@
</span><span class="cx">     features.locationBarVisible = false;
</span><span class="cx">     features.dialog = true;
</span><span class="cx"> 
</span><del>-    float width = floatFeature(featuresMap, &quot;dialogwidth&quot;, 100, screenAvailableRect.width()).valueOr(620); // default here came from frame size of dialog in MacIE
-    float height = floatFeature(featuresMap, &quot;dialogheight&quot;, 100, screenAvailableRect.height()).valueOr(450); // default here came from frame size of dialog in MacIE
</del><ins>+    float width = floatFeature(featuresMap, &quot;dialogwidth&quot;, 100, screenAvailableRect.width()).value_or(620); // default here came from frame size of dialog in MacIE
+    float height = floatFeature(featuresMap, &quot;dialogheight&quot;, 100, screenAvailableRect.height()).value_or(450); // default here came from frame size of dialog in MacIE
</ins><span class="cx"> 
</span><span class="cx">     features.width = width;
</span><span class="cx">     features.height = height;
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx">     features.x = floatFeature(featuresMap, &quot;dialogleft&quot;, screenAvailableRect.x(), screenAvailableRect.maxX() - width);
</span><span class="cx">     features.y = floatFeature(featuresMap, &quot;dialogtop&quot;, screenAvailableRect.y(), screenAvailableRect.maxY() - height);
</span><span class="cx"> 
</span><del>-    if (boolFeature(featuresMap, &quot;center&quot;).valueOr(true)) {
</del><ins>+    if (boolFeature(featuresMap, &quot;center&quot;).value_or(true)) {
</ins><span class="cx">         if (!features.x)
</span><span class="cx">             features.x = screenAvailableRect.x() + (screenAvailableRect.width() - width) / 2;
</span><span class="cx">         if (!features.y)
</span><span class="lines">@@ -174,18 +174,18 @@
</span><span class="cx">             features.y = screenAvailableRect.y() + (screenAvailableRect.height() - height) / 2;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    features.resizable = boolFeature(featuresMap, &quot;resizable&quot;).valueOr(false);
-    features.scrollbarsVisible = boolFeature(featuresMap, &quot;scroll&quot;).valueOr(true);
-    features.statusBarVisible = boolFeature(featuresMap, &quot;status&quot;).valueOr(false);
</del><ins>+    features.resizable = boolFeature(featuresMap, &quot;resizable&quot;).value_or(false);
+    features.scrollbarsVisible = boolFeature(featuresMap, &quot;scroll&quot;).value_or(true);
+    features.statusBarVisible = boolFeature(featuresMap, &quot;status&quot;).value_or(false);
</ins><span class="cx"> 
</span><span class="cx">     return features;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;bool&gt; boolFeature(const DialogFeaturesMap&amp; features, const char* key)
</del><ins>+static std::optional&lt;bool&gt; boolFeature(const DialogFeaturesMap&amp; features, const char* key)
</ins><span class="cx"> {
</span><span class="cx">     auto it = features.find(key);
</span><span class="cx">     if (it == features.end())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto&amp; value = it-&gt;value;
</span><span class="cx">     return value.isNull()
</span><span class="lines">@@ -194,11 +194,11 @@
</span><span class="cx">         || equalLettersIgnoringASCIICase(value, &quot;on&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;float&gt; floatFeature(const DialogFeaturesMap&amp; features, const char* key, float min, float max)
</del><ins>+static std::optional&lt;float&gt; floatFeature(const DialogFeaturesMap&amp; features, const char* key, float min, float max)
</ins><span class="cx"> {
</span><span class="cx">     auto it = features.find(key);
</span><span class="cx">     if (it == features.end())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: The toDouble function does not offer a way to tell &quot;0q&quot; from string with no digits in it: Both
</span><span class="cx">     // return the number 0 and false for ok. But &quot;0q&quot; should yield the minimum rather than the default.
</span><span class="lines">@@ -205,7 +205,7 @@
</span><span class="cx">     bool ok;
</span><span class="cx">     double parsedNumber = it-&gt;value.toDouble(&amp;ok);
</span><span class="cx">     if ((!parsedNumber &amp;&amp; !ok) || std::isnan(parsedNumber))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (parsedNumber &lt; min || max &lt;= min)
</span><span class="cx">         return min;
</span><span class="cx">     if (parsedNumber &gt; max)
</span></span></pre></div>
<a id="trunkSourceWebCorepageWindowFeaturesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/WindowFeatures.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/WindowFeatures.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/WindowFeatures.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -38,10 +38,10 @@
</span><span class="cx"> class FloatRect;
</span><span class="cx"> 
</span><span class="cx"> struct WindowFeatures {
</span><del>-    Optional&lt;float&gt; x;
-    Optional&lt;float&gt; y;
-    Optional&lt;float&gt; width;
-    Optional&lt;float&gt; height;
</del><ins>+    std::optional&lt;float&gt; x;
+    std::optional&lt;float&gt; y;
+    std::optional&lt;float&gt; width;
+    std::optional&lt;float&gt; height;
</ins><span class="cx"> 
</span><span class="cx">     bool menuBarVisible { true };
</span><span class="cx">     bool statusBarVisible { true };
</span></span></pre></div>
<a id="trunkSourceWebCorepagecspContentSecurityPolicySourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/csp/ContentSecurityPolicySource.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/csp/ContentSecurityPolicySource.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/csp/ContentSecurityPolicySource.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-ContentSecurityPolicySource::ContentSecurityPolicySource(const ContentSecurityPolicy&amp; policy, const String&amp; scheme, const String&amp; host, Optional&lt;uint16_t&gt; port, const String&amp; path, bool hostHasWildcard, bool portHasWildcard)
</del><ins>+ContentSecurityPolicySource::ContentSecurityPolicySource(const ContentSecurityPolicy&amp; policy, const String&amp; scheme, const String&amp; host, std::optional&lt;uint16_t&gt; port, const String&amp; path, bool hostHasWildcard, bool portHasWildcard)
</ins><span class="cx">     : m_policy(policy)
</span><span class="cx">     , m_scheme(scheme)
</span><span class="cx">     , m_host(host)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">     if (m_portHasWildcard)
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    Optional&lt;uint16_t&gt; port = url.port();
</del><ins>+    std::optional&lt;uint16_t&gt; port = url.port();
</ins><span class="cx"> 
</span><span class="cx">     if (port == m_port)
</span><span class="cx">         return true;
</span></span></pre></div>
<a id="trunkSourceWebCorepagecspContentSecurityPolicySourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/csp/ContentSecurityPolicySource.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/csp/ContentSecurityPolicySource.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/csp/ContentSecurityPolicySource.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> class ContentSecurityPolicySource {
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    ContentSecurityPolicySource(const ContentSecurityPolicy&amp;, const String&amp; scheme, const String&amp; host, Optional&lt;uint16_t&gt; port, const String&amp; path, bool hostHasWildcard, bool portHasWildcard);
</del><ins>+    ContentSecurityPolicySource(const ContentSecurityPolicy&amp;, const String&amp; scheme, const String&amp; host, std::optional&lt;uint16_t&gt; port, const String&amp; path, bool hostHasWildcard, bool portHasWildcard);
</ins><span class="cx"> 
</span><span class="cx">     bool matches(const URL&amp;, bool didReceiveRedirectResponse = false) const;
</span><span class="cx"> 
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     const ContentSecurityPolicy&amp; m_policy;
</span><span class="cx">     String m_scheme;
</span><span class="cx">     String m_host;
</span><del>-    Optional&lt;uint16_t&gt; m_port;
</del><ins>+    std::optional&lt;uint16_t&gt; m_port;
</ins><span class="cx">     String m_path;
</span><span class="cx"> 
</span><span class="cx">     bool m_hostHasWildcard;
</span></span></pre></div>
<a id="trunkSourceWebCorepagecspContentSecurityPolicySourceListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx">         skipWhile&lt;UChar, isSourceCharacter&gt;(position, end);
</span><span class="cx"> 
</span><span class="cx">         String scheme, host, path;
</span><del>-        Optional&lt;uint16_t&gt; port;
</del><ins>+        std::optional&lt;uint16_t&gt; port;
</ins><span class="cx">         bool hostHasWildcard = false;
</span><span class="cx">         bool portHasWildcard = false;
</span><span class="cx"> 
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx"> //                   / ( [ scheme &quot;://&quot; ] host [ port ] [ path ] )
</span><span class="cx"> //                   / &quot;'self'&quot;
</span><span class="cx"> //
</span><del>-bool ContentSecurityPolicySourceList::parseSource(const UChar* begin, const UChar* end, String&amp; scheme, String&amp; host, Optional&lt;uint16_t&gt;&amp; port, String&amp; path, bool&amp; hostHasWildcard, bool&amp; portHasWildcard)
</del><ins>+bool ContentSecurityPolicySourceList::parseSource(const UChar* begin, const UChar* end, String&amp; scheme, String&amp; host, std::optional&lt;uint16_t&gt;&amp; port, String&amp; path, bool&amp; hostHasWildcard, bool&amp; portHasWildcard)
</ins><span class="cx"> {
</span><span class="cx">     if (begin == end)
</span><span class="cx">         return false;
</span><span class="lines">@@ -292,7 +292,7 @@
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     if (!beginPort)
</span><del>-        port = Nullopt;
</del><ins>+        port = std::nullopt;
</ins><span class="cx">     else {
</span><span class="cx">         if (!parsePort(beginPort, beginPath, port, portHasWildcard))
</span><span class="cx">             return false;
</span><span class="lines">@@ -394,7 +394,7 @@
</span><span class="cx"> 
</span><span class="cx"> // port              = &quot;:&quot; ( 1*DIGIT / &quot;*&quot; )
</span><span class="cx"> //
</span><del>-bool ContentSecurityPolicySourceList::parsePort(const UChar* begin, const UChar* end, Optional&lt;uint16_t&gt;&amp; port, bool&amp; portHasWildcard)
</del><ins>+bool ContentSecurityPolicySourceList::parsePort(const UChar* begin, const UChar* end, std::optional&lt;uint16_t&gt;&amp; port, bool&amp; portHasWildcard)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(begin &lt;= end);
</span><span class="cx">     ASSERT(!port);
</span><span class="lines">@@ -407,7 +407,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     
</span><span class="cx">     if (end - begin == 1 &amp;&amp; *begin == '*') {
</span><del>-        port = Nullopt;
</del><ins>+        port = std::nullopt;
</ins><span class="cx">         portHasWildcard = true;
</span><span class="cx">         return true;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepagecspContentSecurityPolicySourceListh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/csp/ContentSecurityPolicySourceList.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/csp/ContentSecurityPolicySourceList.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/csp/ContentSecurityPolicySourceList.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,10 +58,10 @@
</span><span class="cx"> private:
</span><span class="cx">     void parse(const UChar* begin, const UChar* end);
</span><span class="cx"> 
</span><del>-    bool parseSource(const UChar* begin, const UChar* end, String&amp; scheme, String&amp; host, Optional&lt;uint16_t&gt;&amp; port, String&amp; path, bool&amp; hostHasWildcard, bool&amp; portHasWildcard);
</del><ins>+    bool parseSource(const UChar* begin, const UChar* end, String&amp; scheme, String&amp; host, std::optional&lt;uint16_t&gt;&amp; port, String&amp; path, bool&amp; hostHasWildcard, bool&amp; portHasWildcard);
</ins><span class="cx">     bool parseScheme(const UChar* begin, const UChar* end, String&amp; scheme);
</span><span class="cx">     bool parseHost(const UChar* begin, const UChar* end, String&amp; host, bool&amp; hostHasWildcard);
</span><del>-    bool parsePort(const UChar* begin, const UChar* end, Optional&lt;uint16_t&gt;&amp; port, bool&amp; portHasWildcard);
</del><ins>+    bool parsePort(const UChar* begin, const UChar* end, std::optional&lt;uint16_t&gt;&amp; port, bool&amp; portHasWildcard);
</ins><span class="cx">     bool parsePath(const UChar* begin, const UChar* end, String&amp; path);
</span><span class="cx"> 
</span><span class="cx">     bool parseNonceSource(const UChar* begin, const UChar* end);
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingAsyncScrollingCoordinatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -220,7 +220,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool isProgrammaticScroll = frameView.inProgrammaticScroll();
</span><span class="cx">     if (isProgrammaticScroll || frameView.frame().document()-&gt;pageCacheState() != Document::NotInPageCache)
</span><del>-        updateScrollPositionAfterAsyncScroll(frameView.scrollLayerID(), scrollPosition, Nullopt, isProgrammaticScroll, ScrollingLayerPositionAction::Set);
</del><ins>+        updateScrollPositionAfterAsyncScroll(frameView.scrollLayerID(), scrollPosition, std::nullopt, isProgrammaticScroll, ScrollingLayerPositionAction::Set);
</ins><span class="cx"> 
</span><span class="cx">     // If this frame view's document is being put into the page cache, we don't want to update our
</span><span class="cx">     // main frame scroll position. Just let the FrameView think that we did.
</span><span class="lines">@@ -235,7 +235,7 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll(ScrollingNodeID nodeID, const FloatPoint&amp; scrollPosition, const Optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, bool programmaticScroll, ScrollingLayerPositionAction scrollingLayerPositionAction)
</del><ins>+void AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll(ScrollingNodeID nodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, bool programmaticScroll, ScrollingLayerPositionAction scrollingLayerPositionAction)
</ins><span class="cx"> {
</span><span class="cx">     ScheduledScrollUpdate scrollUpdate(nodeID, scrollPosition, layoutViewportOrigin, programmaticScroll, scrollingLayerPositionAction);
</span><span class="cx">     
</span><span class="lines">@@ -297,7 +297,7 @@
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll(ScrollingNodeID scrollingNodeID, const FloatPoint&amp; scrollPosition, Optional&lt;FloatPoint&gt; layoutViewportOrigin, bool programmaticScroll, ScrollingLayerPositionAction scrollingLayerPositionAction)
</del><ins>+void AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll(ScrollingNodeID scrollingNodeID, const FloatPoint&amp; scrollPosition, std::optional&lt;FloatPoint&gt; layoutViewportOrigin, bool programmaticScroll, ScrollingLayerPositionAction scrollingLayerPositionAction)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -349,13 +349,13 @@
</span><span class="cx">     bool oldProgrammaticScroll = frameView.inProgrammaticScroll();
</span><span class="cx">     frameView.setInProgrammaticScroll(programmaticScroll);
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; layoutViewportRect;
</del><ins>+    std::optional&lt;FloatRect&gt; layoutViewportRect;
</ins><span class="cx"> 
</span><span class="cx">     WTF::switchOn(layoutViewportOriginOrOverrideRect,
</span><del>-        [&amp;frameView](Optional&lt;FloatPoint&gt; origin) {
</del><ins>+        [&amp;frameView](std::optional&lt;FloatPoint&gt; origin) {
</ins><span class="cx">             if (origin)
</span><span class="cx">                 frameView.setBaseLayoutViewportOrigin(LayoutPoint(origin.value()), FrameView::TriggerLayoutOrNot::No);
</span><del>-        }, [&amp;frameView, &amp;layoutViewportRect, inStableState, visualViewportEnabled = visualViewportEnabled()](Optional&lt;FloatRect&gt; overrideRect) {
</del><ins>+        }, [&amp;frameView, &amp;layoutViewportRect, inStableState, visualViewportEnabled = visualViewportEnabled()](std::optional&lt;FloatRect&gt; overrideRect) {
</ins><span class="cx">             layoutViewportRect = overrideRect;
</span><span class="cx">             if (overrideRect &amp;&amp; inStableState) {
</span><span class="cx">                 if (visualViewportEnabled)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingAsyncScrollingCoordinatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> 
</span><span class="cx">     void scrollingStateTreePropertiesChanged();
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void scheduleUpdateScrollPositionAfterAsyncScroll(ScrollingNodeID, const FloatPoint&amp;, const Optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, bool programmaticScroll, ScrollingLayerPositionAction);
</del><ins>+    WEBCORE_EXPORT void scheduleUpdateScrollPositionAfterAsyncScroll(ScrollingNodeID, const FloatPoint&amp;, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, bool programmaticScroll, ScrollingLayerPositionAction);
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     WEBCORE_EXPORT void setActiveScrollSnapIndices(ScrollingNodeID, unsigned horizontalIndex, unsigned verticalIndex);
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx"> 
</span><span class="cx">     PassRefPtr&lt;ScrollingTree&gt; releaseScrollingTree() { return WTFMove(m_scrollingTree); }
</span><span class="cx"> 
</span><del>-    void updateScrollPositionAfterAsyncScroll(ScrollingNodeID, const FloatPoint&amp;, Optional&lt;FloatPoint&gt; layoutViewportOrigin, bool programmaticScroll, ScrollingLayerPositionAction);
</del><ins>+    void updateScrollPositionAfterAsyncScroll(ScrollingNodeID, const FloatPoint&amp;, std::optional&lt;FloatPoint&gt; layoutViewportOrigin, bool programmaticScroll, ScrollingLayerPositionAction);
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT String scrollingStateTreeAsText() const override;
</span><span class="cx">     WEBCORE_EXPORT void willCommitTree() override;
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx"> 
</span><span class="cx">     struct ScheduledScrollUpdate {
</span><span class="cx">         ScheduledScrollUpdate() = default;
</span><del>-        ScheduledScrollUpdate(ScrollingNodeID scrollingNodeID, FloatPoint point, Optional&lt;FloatPoint&gt; viewportOrigin, bool isProgrammatic, ScrollingLayerPositionAction udpateAction)
</del><ins>+        ScheduledScrollUpdate(ScrollingNodeID scrollingNodeID, FloatPoint point, std::optional&lt;FloatPoint&gt; viewportOrigin, bool isProgrammatic, ScrollingLayerPositionAction udpateAction)
</ins><span class="cx">             : nodeID(scrollingNodeID)
</span><span class="cx">             , scrollPosition(point)
</span><span class="cx">             , layoutViewportOrigin(viewportOrigin)
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> 
</span><span class="cx">         ScrollingNodeID nodeID { 0 };
</span><span class="cx">         FloatPoint scrollPosition;
</span><del>-        Optional&lt;FloatPoint&gt; layoutViewportOrigin;
</del><ins>+        std::optional&lt;FloatPoint&gt; layoutViewportOrigin;
</ins><span class="cx">         bool isProgrammaticScroll { false };
</span><span class="cx">         ScrollingLayerPositionAction updateLayerPositionAction { ScrollingLayerPositionAction::Sync };
</span><span class="cx">         
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingCoordinatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx">     // Should be called whenever the given frame view has been laid out.
</span><span class="cx">     virtual void frameViewLayoutUpdated(FrameView&amp;) { }
</span><span class="cx"> 
</span><del>-    using LayoutViewportOriginOrOverrideRect = WTF::Variant&lt;Optional&lt;FloatPoint&gt;, Optional&lt;FloatRect&gt;&gt;;
</del><ins>+    using LayoutViewportOriginOrOverrideRect = WTF::Variant&lt;std::optional&lt;FloatPoint&gt;, std::optional&lt;FloatRect&gt;&gt;;
</ins><span class="cx">     virtual void reconcileScrollingState(FrameView&amp;, const FloatPoint&amp;, const LayoutViewportOriginOrOverrideRect&amp;, bool /* programmaticScroll */, bool /* inStableState*/, ScrollingLayerPositionAction) { }
</span><span class="cx"> 
</span><span class="cx">     // Should be called whenever the slow repaint objects counter changes between zero and one.
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">     downcast&lt;ScrollingTreeOverflowScrollingNode&gt;(*node).updateLayersAfterDelegatedScroll(scrollPosition);
</span><span class="cx"> 
</span><span class="cx">     // Update GraphicsLayers and scroll state.
</span><del>-    scrollingTreeNodeDidScroll(nodeID, scrollPosition, Nullopt, inUserInteration ? ScrollingLayerPositionAction::Sync : ScrollingLayerPositionAction::Set);
</del><ins>+    scrollingTreeNodeDidScroll(nodeID, scrollPosition, std::nullopt, inUserInteration ? ScrollingLayerPositionAction::Sync : ScrollingLayerPositionAction::Set);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollingTree::commitTreeState(std::unique_ptr&lt;ScrollingStateTree&gt; scrollingStateTree)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTree.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTree.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTree.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Called after a scrolling tree node has handled a scroll and updated its layers.
</span><span class="cx">     // Updates FrameView/RenderLayer scrolling state and GraphicsLayers.
</span><del>-    virtual void scrollingTreeNodeDidScroll(ScrollingNodeID, const FloatPoint&amp; scrollPosition, const Optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync) = 0;
</del><ins>+    virtual void scrollingTreeNodeDidScroll(ScrollingNodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync) = 0;
</ins><span class="cx"> 
</span><span class="cx">     // Called for requested scroll position updates.
</span><span class="cx">     virtual void scrollingTreeNodeRequestsScroll(ScrollingNodeID, const FloatPoint&amp; /*scrollPosition*/, bool /*representsProgrammaticScroll*/) { }
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeScrollingNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx"> void ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&amp; scrollPosition)
</span><span class="cx"> {
</span><span class="cx">     setScrollLayerPosition(scrollPosition, { });
</span><del>-    scrollingTree().scrollingTreeNodeDidScroll(scrollingNodeID(), scrollPosition, Nullopt);
</del><ins>+    scrollingTree().scrollingTreeNodeDidScroll(scrollingNodeID(), scrollPosition, std::nullopt);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> FloatPoint ScrollingTreeScrollingNode::minimumScrollPosition() const
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingThreadedScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">     ScrollingTree::commitTreeState(WTFMove(scrollingStateTree));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ThreadedScrollingTree::scrollingTreeNodeDidScroll(ScrollingNodeID nodeID, const FloatPoint&amp; scrollPosition, const Optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction scrollingLayerPositionAction)
</del><ins>+void ThreadedScrollingTree::scrollingTreeNodeDidScroll(ScrollingNodeID nodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction scrollingLayerPositionAction)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_scrollingCoordinator)
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingThreadedScrollingTreeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> protected:
</span><span class="cx">     explicit ThreadedScrollingTree(AsyncScrollingCoordinator*);
</span><span class="cx"> 
</span><del>-    void scrollingTreeNodeDidScroll(ScrollingNodeID, const FloatPoint&amp; scrollPosition, const Optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync) override;
</del><ins>+    void scrollingTreeNodeDidScroll(ScrollingNodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync) override;
</ins><span class="cx">     void currentSnapPointIndicesDidChange(ScrollingNodeID, unsigned horizontal, unsigned vertical) override;
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     void handleWheelEventPhase(PlatformWheelEventPhase) override;
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingTreeFrameScrollingNodeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -109,13 +109,13 @@
</span><span class="cx"> {
</span><span class="cx">     if (shouldUpdateScrollLayerPositionSynchronously()) {
</span><span class="cx">         m_probableMainThreadScrollPosition = scrollPosition;
</span><del>-        scrollingTree().scrollingTreeNodeDidScroll(scrollingNodeID(), scrollPosition, Nullopt, ScrollingLayerPositionAction::Set);
</del><ins>+        scrollingTree().scrollingTreeNodeDidScroll(scrollingNodeID(), scrollPosition, std::nullopt, ScrollingLayerPositionAction::Set);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     FloatRect layoutViewport; // FIXME: implement for iOS WK1.
</span><span class="cx">     setScrollLayerPosition(scrollPosition, layoutViewport);
</span><del>-    scrollingTree().scrollingTreeNodeDidScroll(scrollingNodeID(), scrollPosition, Nullopt);
</del><ins>+    scrollingTree().scrollingTreeNodeDidScroll(scrollingNodeID(), scrollPosition, std::nullopt);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollingTreeFrameScrollingNodeIOS::setScrollLayerPosition(const FloatPoint&amp; scrollPosition, const FloatRect&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingTreeIOScpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollingTreeIOS::scrollingTreeNodeDidScroll(ScrollingNodeID nodeID, const FloatPoint&amp; scrollPosition, const Optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction scrollingLayerPositionAction)
</del><ins>+void ScrollingTreeIOS::scrollingTreeNodeDidScroll(ScrollingNodeID nodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction scrollingLayerPositionAction)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_scrollingCoordinator)
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingTreeIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> 
</span><span class="cx">     PassRefPtr&lt;ScrollingTreeNode&gt; createScrollingTreeNode(ScrollingNodeType, ScrollingNodeID) override;
</span><span class="cx"> 
</span><del>-    void scrollingTreeNodeDidScroll(ScrollingNodeID, const FloatPoint&amp; scrollPosition, const Optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync) override;
</del><ins>+    void scrollingTreeNodeDidScroll(ScrollingNodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync) override;
</ins><span class="cx"> 
</span><span class="cx">     void currentSnapPointIndicesDidChange(WebCore::ScrollingNodeID, unsigned horizontal, unsigned vertical) override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeFrameScrollingNodeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -388,7 +388,7 @@
</span><span class="cx"> {
</span><span class="cx">     updateMainFramePinState(scrollPosition);
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatPoint&gt; layoutViewportOrigin;
</del><ins>+    std::optional&lt;FloatPoint&gt; layoutViewportOrigin;
</ins><span class="cx">     if (scrollingTree().visualViewportEnabled()) {
</span><span class="cx">         FloatPoint visibleContentOrigin = scrollPosition;
</span><span class="cx">         float counterScale = 1 / frameScaleFactor();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformDragImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/DragImage.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/DragImage.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/DragImage.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -143,8 +143,8 @@
</span><span class="cx">     const Frame&amp; frame;
</span><span class="cx">     RenderObject* startRenderer;
</span><span class="cx">     RenderObject* endRenderer;
</span><del>-    Optional&lt;unsigned&gt; startOffset;
-    Optional&lt;unsigned&gt; endOffset;
</del><ins>+    std::optional&lt;unsigned&gt; startOffset;
+    std::optional&lt;unsigned&gt; endOffset;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> DragImageRef createDragImageForRange(Frame&amp; frame, Range&amp; range, bool forceBlackText)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLinkIconh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/LinkIcon.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/LinkIcon.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/LinkIcon.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx">     URL url;
</span><span class="cx">     LinkIconType type;
</span><span class="cx">     String mimeType;
</span><del>-    Optional&lt;unsigned&gt; size;
</del><ins>+    std::optional&lt;unsigned&gt; size;
</ins><span class="cx"> 
</span><span class="cx">     template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
</span><span class="cx">     template&lt;class Decoder&gt; static bool decode(Decoder&amp;, LinkIcon&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformMemoryPressureHandlerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/MemoryPressureHandler.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/MemoryPressureHandler.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/MemoryPressureHandler.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx">     private:
</span><span class="cx">         void readAndNotify() const;
</span><span class="cx"> 
</span><del>-        Optional&lt;int&gt; m_fd;
</del><ins>+        std::optional&lt;int&gt; m_fd;
</ins><span class="cx">         std::function&lt;void ()&gt; m_notifyHandler;
</span><span class="cx"> #if USE(GLIB)
</span><span class="cx">         GRefPtr&lt;GSource&gt; m_source;
</span><span class="lines">@@ -164,8 +164,8 @@
</span><span class="cx">     CFRunLoopObserverRef m_observer { nullptr };
</span><span class="cx">     Lock m_observerMutex;
</span><span class="cx"> #elif OS(LINUX)
</span><del>-    Optional&lt;int&gt; m_eventFD;
-    Optional&lt;int&gt; m_pressureLevelFD;
</del><ins>+    std::optional&lt;int&gt; m_eventFD;
+    std::optional&lt;int&gt; m_pressureLevelFD;
</ins><span class="cx">     std::unique_ptr&lt;EventFDPoller&gt; m_eventFDPoller;
</span><span class="cx">     RunLoop::Timer&lt;MemoryPressureHandler&gt; m_holdOffTimer;
</span><span class="cx">     void holdOffTimerFired();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollView.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollView.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/ScrollView.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -454,8 +454,8 @@
</span><span class="cx">     else if (m_deferredScrollOffsets)
</span><span class="cx">         scrollOffsetChangedViaPlatformWidgetImpl(m_deferredScrollOffsets.value().first, m_deferredScrollOffsets.value().second);
</span><span class="cx">     
</span><del>-    m_deferredScrollDelta = Nullopt;
-    m_deferredScrollOffsets = Nullopt;
</del><ins>+    m_deferredScrollDelta = std::nullopt;
+    m_deferredScrollOffsets = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::scrollTo(const ScrollPosition&amp; newPosition)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollView.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollView.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/ScrollView.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -462,8 +462,8 @@
</span><span class="cx">     IntSize m_fixedLayoutSize;
</span><span class="cx">     IntSize m_contentsSize;
</span><span class="cx"> 
</span><del>-    Optional&lt;IntSize&gt; m_deferredScrollDelta; // Needed for WebKit scrolling
-    Optional&lt;std::pair&lt;ScrollOffset, ScrollOffset&gt;&gt; m_deferredScrollOffsets; // Needed for platform widget scrolling
</del><ins>+    std::optional&lt;IntSize&gt; m_deferredScrollDelta; // Needed for WebKit scrolling
+    std::optional&lt;std::pair&lt;ScrollOffset, ScrollOffset&gt;&gt; m_deferredScrollOffsets; // Needed for platform widget scrolling
</ins><span class="cx"> 
</span><span class="cx">     bool m_scrollbarsSuppressed;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformThemeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Theme.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Theme.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/Theme.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx">     // Methods used to adjust the RenderStyles of controls.
</span><span class="cx">     
</span><span class="cx">     // The font description result should have a zoomed font size.
</span><del>-    virtual Optional&lt;FontCascadeDescription&gt; controlFont(ControlPart, const FontCascade&amp;, float /*zoomFactor*/) const { return Nullopt; }
</del><ins>+    virtual std::optional&lt;FontCascadeDescription&gt; controlFont(ControlPart, const FontCascade&amp;, float /*zoomFactor*/) const { return std::nullopt; }
</ins><span class="cx">     
</span><span class="cx">     // The size here is in zoomed coordinates already. If a new size is returned, it also needs to be in zoomed coordinates.
</span><span class="cx">     virtual LengthSize controlSize(ControlPart, const FontCascade&amp;, const LengthSize&amp; zoomedSize, float /*zoomFactor*/) const { return zoomedSize; }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformTimerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Timer.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Timer.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/Timer.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx"> private:
</span><span class="cx">     virtual void fired() = 0;
</span><span class="cx"> 
</span><del>-    virtual Optional&lt;std::chrono::milliseconds&gt; alignedFireTime(std::chrono::milliseconds) const { return Nullopt; }
</del><ins>+    virtual std::optional&lt;std::chrono::milliseconds&gt; alignedFireTime(std::chrono::milliseconds) const { return std::nullopt; }
</ins><span class="cx"> 
</span><span class="cx">     void checkConsistency() const;
</span><span class="cx">     void checkHeapIndex() const;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformURLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/URL.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/URL.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/URL.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -714,10 +714,10 @@
</span><span class="cx">     return m_string.substring(start, m_hostEnd - start);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;uint16_t&gt; URL::port() const
</del><ins>+std::optional&lt;uint16_t&gt; URL::port() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_portEnd || m_hostEnd &gt;= m_portEnd - 1)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     bool ok = false;
</span><span class="cx">     unsigned number;
</span><span class="lines">@@ -726,7 +726,7 @@
</span><span class="cx">     else
</span><span class="cx">         number = charactersToUIntStrict(m_string.characters16() + m_hostEnd + 1, m_portEnd - m_hostEnd - 1, &amp;ok);
</span><span class="cx">     if (!ok || number &gt; std::numeric_limits&lt;uint16_t&gt;::max())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return number;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -826,7 +826,7 @@
</span><span class="cx">     defaultPortForProtocolMapForTesting().clear();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;uint16_t&gt; defaultPortForProtocol(StringView protocol)
</del><ins>+std::optional&lt;uint16_t&gt; defaultPortForProtocol(StringView protocol)
</ins><span class="cx"> {
</span><span class="cx">     const auto&amp; defaultPortForProtocolMap = defaultPortForProtocolMapForTesting();
</span><span class="cx">     auto iterator = defaultPortForProtocolMap.find(protocol.toStringWithoutCopying());
</span><span class="lines">@@ -2288,7 +2288,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool portAllowed(const URL&amp; url)
</span><span class="cx"> {
</span><del>-    Optional&lt;uint16_t&gt; port = url.port();
</del><ins>+    std::optional&lt;uint16_t&gt; port = url.port();
</ins><span class="cx"> 
</span><span class="cx">     // Since most URLs don't have a port, return early for the &quot;no port&quot; case.
</span><span class="cx">     if (!port)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformURLh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/URL.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/URL.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/URL.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT StringView protocol() const;
</span><span class="cx">     WEBCORE_EXPORT String host() const;
</span><del>-    WEBCORE_EXPORT Optional&lt;uint16_t&gt; port() const;
</del><ins>+    WEBCORE_EXPORT std::optional&lt;uint16_t&gt; port() const;
</ins><span class="cx">     WEBCORE_EXPORT String hostAndPort() const;
</span><span class="cx">     WEBCORE_EXPORT String user() const;
</span><span class="cx">     WEBCORE_EXPORT String pass() const;
</span><span class="lines">@@ -312,7 +312,7 @@
</span><span class="cx"> WEBCORE_EXPORT bool protocolIsJavaScript(const String&amp; url);
</span><span class="cx"> WEBCORE_EXPORT bool protocolIsInHTTPFamily(const String&amp; url);
</span><span class="cx"> 
</span><del>-Optional&lt;uint16_t&gt; defaultPortForProtocol(StringView protocol);
</del><ins>+std::optional&lt;uint16_t&gt; defaultPortForProtocol(StringView protocol);
</ins><span class="cx"> WEBCORE_EXPORT bool isDefaultPortForProtocol(uint16_t port, StringView protocol);
</span><span class="cx"> WEBCORE_EXPORT bool portAllowed(const URL&amp;); // Blacklist ports that should never be used for Web resources.
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformURLParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/URLParser.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/URLParser.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/URLParser.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -623,7 +623,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;uint16_t&gt; URLParser::defaultPortForProtocol(StringView scheme)
</del><ins>+std::optional&lt;uint16_t&gt; URLParser::defaultPortForProtocol(StringView scheme)
</ins><span class="cx"> {
</span><span class="cx">     static const uint16_t ftpPort = 21;
</span><span class="cx">     static const uint16_t gopherPort = 70;
</span><span class="lines">@@ -634,7 +634,7 @@
</span><span class="cx">     
</span><span class="cx">     auto length = scheme.length();
</span><span class="cx">     if (!length)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     switch (scheme[0]) {
</span><span class="cx">     case 'w':
</span><span class="cx">         switch (length) {
</span><span class="lines">@@ -641,12 +641,12 @@
</span><span class="cx">         case 2:
</span><span class="cx">             if (scheme[1] == 's')
</span><span class="cx">                 return wsPort;
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         case 3:
</span><span class="cx">             if (scheme[1] == 's'
</span><span class="cx">                 &amp;&amp; scheme[2] == 's')
</span><span class="cx">                 return wssPort;
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         default:
</span><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="lines">@@ -657,7 +657,7 @@
</span><span class="cx">                 &amp;&amp; scheme[2] == 't'
</span><span class="cx">                 &amp;&amp; scheme[3] == 'p')
</span><span class="cx">                 return httpPort;
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         case 5:
</span><span class="cx">             if (scheme[1] == 't'
</span><span class="cx">                 &amp;&amp; scheme[2] == 't'
</span><span class="lines">@@ -664,9 +664,9 @@
</span><span class="cx">                 &amp;&amp; scheme[3] == 'p'
</span><span class="cx">                 &amp;&amp; scheme[4] == 's')
</span><span class="cx">                 return httpsPort;
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         default:
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     case 'g':
</span><span class="cx">         if (length == 6
</span><span class="lines">@@ -676,15 +676,15 @@
</span><span class="cx">             &amp;&amp; scheme[4] == 'e'
</span><span class="cx">             &amp;&amp; scheme[5] == 'r')
</span><span class="cx">             return gopherPort;
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     case 'f':
</span><span class="cx">         if (length == 3
</span><span class="cx">             &amp;&amp; scheme[1] == 't'
</span><span class="cx">             &amp;&amp; scheme[2] == 'p')
</span><span class="cx">             return ftpPort;
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     default:
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2055,9 +2055,9 @@
</span><span class="cx">     return end - begin;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;size_t&gt; findLongestZeroSequence(const std::array&lt;uint16_t, 8&gt;&amp; address)
</del><ins>+static std::optional&lt;size_t&gt; findLongestZeroSequence(const std::array&lt;uint16_t, 8&gt;&amp; address)
</ins><span class="cx"> {
</span><del>-    Optional&lt;size_t&gt; longest;
</del><ins>+    std::optional&lt;size_t&gt; longest;
</ins><span class="cx">     size_t longestLength = 0;
</span><span class="cx">     for (size_t i = 0; i &lt; 8; i++) {
</span><span class="cx">         size_t length = zeroSequenceLength(address, i);
</span><span class="lines">@@ -2114,7 +2114,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename CharacterType&gt;
</span><del>-Optional&lt;uint32_t&gt; URLParser::parseIPv4Piece(CodePointIterator&lt;CharacterType&gt;&amp; iterator, bool&amp; didSeeSyntaxViolation)
</del><ins>+std::optional&lt;uint32_t&gt; URLParser::parseIPv4Piece(CodePointIterator&lt;CharacterType&gt;&amp; iterator, bool&amp; didSeeSyntaxViolation)
</ins><span class="cx"> {
</span><span class="cx">     enum class State : uint8_t {
</span><span class="cx">         UnknownBase,
</span><span class="lines">@@ -2126,7 +2126,7 @@
</span><span class="cx">     State state = State::UnknownBase;
</span><span class="cx">     Checked&lt;uint32_t, RecordOverflow&gt; value = 0;
</span><span class="cx">     if (!iterator.atEnd() &amp;&amp; *iterator == '.')
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     while (!iterator.atEnd()) {
</span><span class="cx">         if (isTabOrNewline(*iterator)) {
</span><span class="cx">             didSeeSyntaxViolation = true;
</span><span class="lines">@@ -2157,31 +2157,31 @@
</span><span class="cx">             break;
</span><span class="cx">         case State::Decimal:
</span><span class="cx">             if (*iterator &lt; '0' || *iterator &gt; '9')
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             value *= 10;
</span><span class="cx">             value += *iterator - '0';
</span><span class="cx">             if (UNLIKELY(value.hasOverflowed()))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             ++iterator;
</span><span class="cx">             break;
</span><span class="cx">         case State::Octal:
</span><span class="cx">             ASSERT(didSeeSyntaxViolation);
</span><span class="cx">             if (*iterator &lt; '0' || *iterator &gt; '7')
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             value *= 8;
</span><span class="cx">             value += *iterator - '0';
</span><span class="cx">             if (UNLIKELY(value.hasOverflowed()))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             ++iterator;
</span><span class="cx">             break;
</span><span class="cx">         case State::Hex:
</span><span class="cx">             ASSERT(didSeeSyntaxViolation);
</span><span class="cx">             if (!isASCIIHexDigit(*iterator))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             value *= 16;
</span><span class="cx">             value += toASCIIHexValue(*iterator);
</span><span class="cx">             if (UNLIKELY(value.hasOverflowed()))
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             ++iterator;
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -2198,7 +2198,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename CharacterType&gt;
</span><del>-Optional&lt;URLParser::IPv4Address&gt; URLParser::parseIPv4Host(CodePointIterator&lt;CharacterType&gt; iterator)
</del><ins>+std::optional&lt;URLParser::IPv4Address&gt; URLParser::parseIPv4Host(CodePointIterator&lt;CharacterType&gt; iterator)
</ins><span class="cx"> {
</span><span class="cx">     auto hostBegin = iterator;
</span><span class="cx"> 
</span><span class="lines">@@ -2212,30 +2212,30 @@
</span><span class="cx">             continue;
</span><span class="cx">         }
</span><span class="cx">         if (items.size() &gt;= 4)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         if (auto item = parseIPv4Piece(iterator, didSeeSyntaxViolation))
</span><span class="cx">             items.append(item.value());
</span><span class="cx">         else
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         if (!iterator.atEnd()) {
</span><span class="cx">             if (items.size() &gt;= 4)
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             if (*iterator == '.')
</span><span class="cx">                 ++iterator;
</span><span class="cx">             else
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     if (!iterator.atEnd() || !items.size() || items.size() &gt; 4)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (items.size() &gt; 1) {
</span><span class="cx">         for (size_t i = 0; i &lt; items.size() - 1; i++) {
</span><span class="cx">             if (items[i] &gt; 255)
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     if (items[items.size() - 1] &gt;= pow256(5 - items.size()))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (didSeeSyntaxViolation)
</span><span class="cx">         syntaxViolation(hostBegin);
</span><span class="lines">@@ -2254,20 +2254,20 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename CharacterType&gt;
</span><del>-Optional&lt;uint32_t&gt; URLParser::parseIPv4PieceInsideIPv6(CodePointIterator&lt;CharacterType&gt;&amp; iterator)
</del><ins>+std::optional&lt;uint32_t&gt; URLParser::parseIPv4PieceInsideIPv6(CodePointIterator&lt;CharacterType&gt;&amp; iterator)
</ins><span class="cx"> {
</span><span class="cx">     if (iterator.atEnd())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     uint32_t piece = 0;
</span><span class="cx">     bool leadingZeros = false;
</span><span class="cx">     size_t digitCount = 0;
</span><span class="cx">     while (!iterator.atEnd()) {
</span><span class="cx">         if (!isASCIIDigit(*iterator))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         ++digitCount;
</span><span class="cx">         if (!piece &amp;&amp; *iterator == '0') {
</span><span class="cx">             if (leadingZeros)
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             leadingZeros = true;
</span><span class="cx">         }
</span><span class="cx">         if (!piece &amp;&amp; *iterator == '0')
</span><span class="lines">@@ -2274,7 +2274,7 @@
</span><span class="cx">             leadingZeros = true;
</span><span class="cx">         piece = piece * 10 + *iterator - '0';
</span><span class="cx">         if (piece &gt; 255)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         advance&lt;CharacterType, ReportSyntaxViolation::No&gt;(iterator);
</span><span class="cx">         if (iterator.atEnd())
</span><span class="cx">             break;
</span><span class="lines">@@ -2282,27 +2282,27 @@
</span><span class="cx">             break;
</span><span class="cx">     }
</span><span class="cx">     if (piece &amp;&amp; leadingZeros)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return piece;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename CharacterType&gt;
</span><del>-Optional&lt;URLParser::IPv4Address&gt; URLParser::parseIPv4AddressInsideIPv6(CodePointIterator&lt;CharacterType&gt; iterator)
</del><ins>+std::optional&lt;URLParser::IPv4Address&gt; URLParser::parseIPv4AddressInsideIPv6(CodePointIterator&lt;CharacterType&gt; iterator)
</ins><span class="cx"> {
</span><span class="cx">     IPv4Address address = 0;
</span><span class="cx">     for (size_t i = 0; i &lt; 4; ++i) {
</span><del>-        if (Optional&lt;uint32_t&gt; piece = parseIPv4PieceInsideIPv6(iterator))
</del><ins>+        if (std::optional&lt;uint32_t&gt; piece = parseIPv4PieceInsideIPv6(iterator))
</ins><span class="cx">             address = (address &lt;&lt; 8) + piece.value();
</span><span class="cx">         else
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         if (i &lt; 3) {
</span><span class="cx">             if (iterator.atEnd())
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             if (*iterator != '.')
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             advance&lt;CharacterType, ReportSyntaxViolation::No&gt;(iterator);
</span><span class="cx">         } else if (!iterator.atEnd())
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     ASSERT(iterator.atEnd());
</span><span class="cx">     return address;
</span><span class="lines">@@ -2309,24 +2309,24 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename CharacterType&gt;
</span><del>-Optional&lt;URLParser::IPv6Address&gt; URLParser::parseIPv6Host(CodePointIterator&lt;CharacterType&gt; c)
</del><ins>+std::optional&lt;URLParser::IPv6Address&gt; URLParser::parseIPv6Host(CodePointIterator&lt;CharacterType&gt; c)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(*c == '[');
</span><span class="cx">     auto hostBegin = c;
</span><span class="cx">     advance(c, hostBegin);
</span><span class="cx">     if (c.atEnd())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     IPv6Address address = {{0, 0, 0, 0, 0, 0, 0, 0}};
</span><span class="cx">     size_t piecePointer = 0;
</span><del>-    Optional&lt;size_t&gt; compressPointer;
</del><ins>+    std::optional&lt;size_t&gt; compressPointer;
</ins><span class="cx"> 
</span><span class="cx">     if (*c == ':') {
</span><span class="cx">         advance(c, hostBegin);
</span><span class="cx">         if (c.atEnd())
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         if (*c != ':')
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         advance(c, hostBegin);
</span><span class="cx">         ++piecePointer;
</span><span class="cx">         compressPointer = piecePointer;
</span><span class="lines">@@ -2334,10 +2334,10 @@
</span><span class="cx">     
</span><span class="cx">     while (!c.atEnd()) {
</span><span class="cx">         if (piecePointer == 8)
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         if (*c == ':') {
</span><span class="cx">             if (compressPointer)
</span><del>-                return Nullopt;
</del><ins>+                return std::nullopt;
</ins><span class="cx">             advance(c, hostBegin);
</span><span class="cx">             ++piecePointer;
</span><span class="cx">             compressPointer = piecePointer;
</span><span class="lines">@@ -2344,9 +2344,9 @@
</span><span class="cx">             continue;
</span><span class="cx">         }
</span><span class="cx">         if (piecePointer == 6 || (compressPointer &amp;&amp; piecePointer &lt; 6)) {
</span><del>-            if (Optional&lt;IPv4Address&gt; ipv4Address = parseIPv4AddressInsideIPv6(c)) {
</del><ins>+            if (std::optional&lt;IPv4Address&gt; ipv4Address = parseIPv4AddressInsideIPv6(c)) {
</ins><span class="cx">                 if (compressPointer &amp;&amp; piecePointer == 5)
</span><del>-                    return Nullopt;
</del><ins>+                    return std::nullopt;
</ins><span class="cx">                 syntaxViolation(hostBegin);
</span><span class="cx">                 address[piecePointer++] = ipv4Address.value() &gt;&gt; 16;
</span><span class="cx">                 address[piecePointer++] = ipv4Address.value() &amp; 0xFFFF;
</span><span class="lines">@@ -2377,12 +2377,12 @@
</span><span class="cx">         if (c.atEnd())
</span><span class="cx">             break;
</span><span class="cx">         if (piecePointer == 8 || *c != ':')
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         advance(c, hostBegin);
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (!c.atEnd())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     if (compressPointer) {
</span><span class="cx">         size_t swaps = piecePointer - compressPointer.value();
</span><span class="lines">@@ -2390,9 +2390,9 @@
</span><span class="cx">         while (swaps)
</span><span class="cx">             std::swap(address[piecePointer--], address[compressPointer.value() + swaps-- - 1]);
</span><span class="cx">     } else if (piecePointer != 8)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><del>-    Optional&lt;size_t&gt; possibleCompressPointer = findLongestZeroSequence(address);
</del><ins>+    std::optional&lt;size_t&gt; possibleCompressPointer = findLongestZeroSequence(address);
</ins><span class="cx">     if (possibleCompressPointer)
</span><span class="cx">         possibleCompressPointer.value()++;
</span><span class="cx">     if (UNLIKELY(compressPointer != possibleCompressPointer))
</span><span class="lines">@@ -2453,7 +2453,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename CharacterType&gt;
</span><del>-Optional&lt;Vector&lt;LChar, URLParser::defaultInlineBufferSize&gt;&gt; URLParser::domainToASCII(const String&amp; domain, const CodePointIterator&lt;CharacterType&gt;&amp; iteratorForSyntaxViolationPosition)
</del><ins>+std::optional&lt;Vector&lt;LChar, URLParser::defaultInlineBufferSize&gt;&gt; URLParser::domainToASCII(const String&amp; domain, const CodePointIterator&lt;CharacterType&gt;&amp; iteratorForSyntaxViolationPosition)
</ins><span class="cx"> {
</span><span class="cx">     Vector&lt;LChar, defaultInlineBufferSize&gt; ascii;
</span><span class="cx">     if (containsOnlyASCII(domain)) {
</span><span class="lines">@@ -2496,7 +2496,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Check for U_BUFFER_OVERFLOW_ERROR and retry with an allocated buffer.
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool URLParser::hasInvalidDomainCharacter(const Vector&lt;LChar, URLParser::defaultInlineBufferSize&gt;&amp; asciiDomain)
</span><span class="lines">@@ -2690,11 +2690,11 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;String&gt; URLParser::formURLDecode(StringView input)
</del><ins>+std::optional&lt;String&gt; URLParser::formURLDecode(StringView input)
</ins><span class="cx"> {
</span><span class="cx">     auto utf8 = input.utf8(StrictConversion);
</span><span class="cx">     if (utf8.isNull())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     auto percentDecoded = percentDecode(reinterpret_cast&lt;const LChar*&gt;(utf8.data()), utf8.length());
</span><span class="cx">     return String::fromUTF8(percentDecoded.data(), percentDecoded.size());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformURLParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/URLParser.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/URLParser.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/URLParser.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -53,8 +53,8 @@
</span><span class="cx">     static const UIDNA&amp; internationalDomainNameTranscoder();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    static Optional&lt;uint16_t&gt; defaultPortForProtocol(StringView);
-    friend Optional&lt;uint16_t&gt; defaultPortForProtocol(StringView);
</del><ins>+    static std::optional&lt;uint16_t&gt; defaultPortForProtocol(StringView);
+    friend std::optional&lt;uint16_t&gt; defaultPortForProtocol(StringView);
</ins><span class="cx"> 
</span><span class="cx">     URL m_url;
</span><span class="cx">     Vector&lt;LChar&gt; m_asciiBuffer;
</span><span class="lines">@@ -94,10 +94,10 @@
</span><span class="cx">     template&lt;typename UnsignedIntegerType&gt; void appendNumberToASCIIBuffer(UnsignedIntegerType);
</span><span class="cx">     template&lt;bool(*isInCodeSet)(UChar32), typename CharacterType&gt; void utf8PercentEncode(const CodePointIterator&lt;CharacterType&gt;&amp;);
</span><span class="cx">     template&lt;typename CharacterType&gt; void utf8QueryEncode(const CodePointIterator&lt;CharacterType&gt;&amp;);
</span><del>-    template&lt;typename CharacterType&gt; Optional&lt;Vector&lt;LChar, defaultInlineBufferSize&gt;&gt; domainToASCII(const String&amp;, const CodePointIterator&lt;CharacterType&gt;&amp; iteratorForSyntaxViolationPosition);
</del><ins>+    template&lt;typename CharacterType&gt; std::optional&lt;Vector&lt;LChar, defaultInlineBufferSize&gt;&gt; domainToASCII(const String&amp;, const CodePointIterator&lt;CharacterType&gt;&amp; iteratorForSyntaxViolationPosition);
</ins><span class="cx">     template&lt;typename CharacterType&gt; Vector&lt;LChar, defaultInlineBufferSize&gt; percentDecode(const LChar*, size_t, const CodePointIterator&lt;CharacterType&gt;&amp; iteratorForSyntaxViolationPosition);
</span><span class="cx">     static Vector&lt;LChar, defaultInlineBufferSize&gt; percentDecode(const LChar*, size_t);
</span><del>-    static Optional&lt;String&gt; formURLDecode(StringView input);
</del><ins>+    static std::optional&lt;String&gt; formURLDecode(StringView input);
</ins><span class="cx">     static bool hasInvalidDomainCharacter(const Vector&lt;LChar, defaultInlineBufferSize&gt;&amp;);
</span><span class="cx">     void percentEncodeByte(uint8_t);
</span><span class="cx">     void appendToASCIIBuffer(UChar32);
</span><span class="lines">@@ -110,12 +110,12 @@
</span><span class="cx"> 
</span><span class="cx">     using IPv4Address = uint32_t;
</span><span class="cx">     void serializeIPv4(IPv4Address);
</span><del>-    template&lt;typename CharacterType&gt; Optional&lt;IPv4Address&gt; parseIPv4Host(CodePointIterator&lt;CharacterType&gt;);
-    template&lt;typename CharacterType&gt; Optional&lt;uint32_t&gt; parseIPv4Piece(CodePointIterator&lt;CharacterType&gt;&amp;, bool&amp; syntaxViolation);
</del><ins>+    template&lt;typename CharacterType&gt; std::optional&lt;IPv4Address&gt; parseIPv4Host(CodePointIterator&lt;CharacterType&gt;);
+    template&lt;typename CharacterType&gt; std::optional&lt;uint32_t&gt; parseIPv4Piece(CodePointIterator&lt;CharacterType&gt;&amp;, bool&amp; syntaxViolation);
</ins><span class="cx">     using IPv6Address = std::array&lt;uint16_t, 8&gt;;
</span><del>-    template&lt;typename CharacterType&gt; Optional&lt;IPv6Address&gt; parseIPv6Host(CodePointIterator&lt;CharacterType&gt;);
-    template&lt;typename CharacterType&gt; Optional&lt;uint32_t&gt; parseIPv4PieceInsideIPv6(CodePointIterator&lt;CharacterType&gt;&amp;);
-    template&lt;typename CharacterType&gt; Optional&lt;IPv4Address&gt; parseIPv4AddressInsideIPv6(CodePointIterator&lt;CharacterType&gt;);
</del><ins>+    template&lt;typename CharacterType&gt; std::optional&lt;IPv6Address&gt; parseIPv6Host(CodePointIterator&lt;CharacterType&gt;);
+    template&lt;typename CharacterType&gt; std::optional&lt;uint32_t&gt; parseIPv4PieceInsideIPv6(CodePointIterator&lt;CharacterType&gt;&amp;);
+    template&lt;typename CharacterType&gt; std::optional&lt;IPv4Address&gt; parseIPv4AddressInsideIPv6(CodePointIterator&lt;CharacterType&gt;);
</ins><span class="cx">     void serializeIPv6Piece(uint16_t piece);
</span><span class="cx">     void serializeIPv6(IPv6Address);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsBitmapImageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/BitmapImage.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/BitmapImage.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/BitmapImage.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx">     size_t frameCount() const { return m_source.frameCount(); }
</span><span class="cx">     RepetitionCount repetitionCount() const { return m_source.repetitionCount(); }
</span><span class="cx">     String filenameExtension() const override { return m_source.filenameExtension(); }
</span><del>-    Optional&lt;IntPoint&gt; hotSpot() const override { return m_source.hotSpot(); }
</del><ins>+    std::optional&lt;IntPoint&gt; hotSpot() const override { return m_source.hotSpot(); }
</ins><span class="cx"> 
</span><span class="cx">     // FloatSize due to override.
</span><span class="cx">     FloatSize size() const override { return m_source.size(); }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsColorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Color.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Color.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/Color.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> RGBA32 makeUnPremultipliedRGBA(int r, int g, int b, int a);
</span><span class="cx"> 
</span><span class="cx"> WEBCORE_EXPORT RGBA32 colorWithOverrideAlpha(RGBA32 color, float overrideAlpha);
</span><del>-RGBA32 colorWithOverrideAlpha(RGBA32 color, Optional&lt;float&gt; overrideAlpha);
</del><ins>+RGBA32 colorWithOverrideAlpha(RGBA32 color, std::optional&lt;float&gt; overrideAlpha);
</ins><span class="cx"> 
</span><span class="cx"> WEBCORE_EXPORT RGBA32 makeRGBA32FromFloats(float r, float g, float b, float a);
</span><span class="cx"> RGBA32 makeRGBAFromHSLA(double h, double s, double l, double a);
</span><span class="lines">@@ -404,7 +404,7 @@
</span><span class="cx">     return approximation + (remainder &gt;&gt; 8);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline RGBA32 colorWithOverrideAlpha(RGBA32 color, Optional&lt;float&gt; overrideAlpha)
</del><ins>+inline RGBA32 colorWithOverrideAlpha(RGBA32 color, std::optional&lt;float&gt; overrideAlpha)
</ins><span class="cx"> {
</span><span class="cx">     return overrideAlpha ? colorWithOverrideAlpha(color, overrideAlpha.value()) : color;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsDisplayRefreshMonitorClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/DisplayRefreshMonitorClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/DisplayRefreshMonitorClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/DisplayRefreshMonitorClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     bool m_scheduled { false };
</span><del>-    Optional&lt;PlatformDisplayID&gt; m_displayID;
</del><ins>+    std::optional&lt;PlatformDisplayID&gt; m_displayID;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFonth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Font.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Font.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/Font.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -284,10 +284,10 @@
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     mutable RetainPtr&lt;CFDictionaryRef&gt; m_nonKernedCFStringAttributes;
</span><span class="cx">     mutable RetainPtr&lt;CFDictionaryRef&gt; m_kernedCFStringAttributes;
</span><del>-    mutable Optional&lt;BitVector&gt; m_glyphsSupportedBySmallCaps;
-    mutable Optional&lt;BitVector&gt; m_glyphsSupportedByAllSmallCaps;
-    mutable Optional&lt;BitVector&gt; m_glyphsSupportedByPetiteCaps;
-    mutable Optional&lt;BitVector&gt; m_glyphsSupportedByAllPetiteCaps;
</del><ins>+    mutable std::optional&lt;BitVector&gt; m_glyphsSupportedBySmallCaps;
+    mutable std::optional&lt;BitVector&gt; m_glyphsSupportedByAllSmallCaps;
+    mutable std::optional&lt;BitVector&gt; m_glyphsSupportedByPetiteCaps;
+    mutable std::optional&lt;BitVector&gt; m_glyphsSupportedByAllPetiteCaps;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA) || USE(HARFBUZZ)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontCascadecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontCascade.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontCascade.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/FontCascade.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -301,7 +301,7 @@
</span><span class="cx">     return getGlyphsAndAdvancesForComplexText(run, from, to, glyphBuffer);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-float FontCascade::drawText(GraphicsContext&amp; context, const TextRun&amp; run, const FloatPoint&amp; point, unsigned from, Optional&lt;unsigned&gt; to, CustomFontNotReadyAction customFontNotReadyAction) const
</del><ins>+float FontCascade::drawText(GraphicsContext&amp; context, const TextRun&amp; run, const FloatPoint&amp; point, unsigned from, std::optional&lt;unsigned&gt; to, CustomFontNotReadyAction customFontNotReadyAction) const
</ins><span class="cx"> {
</span><span class="cx">     // Don't draw anything while we are using custom fonts that are in the process of loading,
</span><span class="cx">     // except if the 'force' argument is set to true (in which case it will use a fallback
</span><span class="lines">@@ -309,7 +309,7 @@
</span><span class="cx">     if (isLoadingCustomFonts() &amp;&amp; customFontNotReadyAction == DoNotPaintIfFontNotReady)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    unsigned destination = to.valueOr(run.length());
</del><ins>+    unsigned destination = to.value_or(run.length());
</ins><span class="cx"> 
</span><span class="cx">     CodePath codePathToUse = codePath(run);
</span><span class="cx">     // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050
</span><span class="lines">@@ -327,12 +327,12 @@
</span><span class="cx">     return startPoint.x() - startX;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FontCascade::drawEmphasisMarks(GraphicsContext&amp; context, const TextRun&amp; run, const AtomicString&amp; mark, const FloatPoint&amp; point, unsigned from, Optional&lt;unsigned&gt; to) const
</del><ins>+void FontCascade::drawEmphasisMarks(GraphicsContext&amp; context, const TextRun&amp; run, const AtomicString&amp; mark, const FloatPoint&amp; point, unsigned from, std::optional&lt;unsigned&gt; to) const
</ins><span class="cx"> {
</span><span class="cx">     if (isLoadingCustomFonts())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    unsigned destination = to.valueOr(run.length());
</del><ins>+    unsigned destination = to.value_or(run.length());
</ins><span class="cx"> 
</span><span class="cx">     CodePath codePathToUse = codePath(run);
</span><span class="cx">     // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050
</span><span class="lines">@@ -490,9 +490,9 @@
</span><span class="cx">     return success;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FontCascade::adjustSelectionRectForText(const TextRun&amp; run, LayoutRect&amp; selectionRect, unsigned from, Optional&lt;unsigned&gt; to) const
</del><ins>+void FontCascade::adjustSelectionRectForText(const TextRun&amp; run, LayoutRect&amp; selectionRect, unsigned from, std::optional&lt;unsigned&gt; to) const
</ins><span class="cx"> {
</span><del>-    unsigned destination = to.valueOr(run.length());
</del><ins>+    unsigned destination = to.value_or(run.length());
</ins><span class="cx"> 
</span><span class="cx">     CodePath codePathToUse = codePath(run);
</span><span class="cx">     // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050
</span><span class="lines">@@ -1179,10 +1179,10 @@
</span><span class="cx"> 
</span><span class="cx"> // FIXME: This function may not work if the emphasis mark uses a complex script, but none of the
</span><span class="cx"> // standard emphasis marks do so.
</span><del>-Optional&lt;GlyphData&gt; FontCascade::getEmphasisMarkGlyphData(const AtomicString&amp; mark) const
</del><ins>+std::optional&lt;GlyphData&gt; FontCascade::getEmphasisMarkGlyphData(const AtomicString&amp; mark) const
</ins><span class="cx"> {
</span><span class="cx">     if (mark.isEmpty())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     UChar32 character;
</span><span class="cx">     if (!mark.is8Bit()) {
</span><span class="lines">@@ -1189,17 +1189,17 @@
</span><span class="cx">         SurrogatePairAwareTextIterator iterator(mark.characters16(), 0, mark.length(), mark.length());
</span><span class="cx">         unsigned clusterLength;
</span><span class="cx">         if (!iterator.consume(character, clusterLength))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">     } else
</span><span class="cx">         character = mark[0];
</span><span class="cx"> 
</span><del>-    Optional&lt;GlyphData&gt; glyphData(glyphDataForCharacter(character, false, EmphasisMarkVariant));
-    return glyphData.value().isValid() ? glyphData : Nullopt;
</del><ins>+    std::optional&lt;GlyphData&gt; glyphData(glyphDataForCharacter(character, false, EmphasisMarkVariant));
+    return glyphData.value().isValid() ? glyphData : std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int FontCascade::emphasisMarkAscent(const AtomicString&amp; mark) const
</span><span class="cx"> {
</span><del>-    Optional&lt;GlyphData&gt; markGlyphData = getEmphasisMarkGlyphData(mark);
</del><ins>+    std::optional&lt;GlyphData&gt; markGlyphData = getEmphasisMarkGlyphData(mark);
</ins><span class="cx">     if (!markGlyphData)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="lines">@@ -1213,7 +1213,7 @@
</span><span class="cx"> 
</span><span class="cx"> int FontCascade::emphasisMarkDescent(const AtomicString&amp; mark) const
</span><span class="cx"> {
</span><del>-    Optional&lt;GlyphData&gt; markGlyphData = getEmphasisMarkGlyphData(mark);
</del><ins>+    std::optional&lt;GlyphData&gt; markGlyphData = getEmphasisMarkGlyphData(mark);
</ins><span class="cx">     if (!markGlyphData)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="lines">@@ -1227,7 +1227,7 @@
</span><span class="cx"> 
</span><span class="cx"> int FontCascade::emphasisMarkHeight(const AtomicString&amp; mark) const
</span><span class="cx"> {
</span><del>-    Optional&lt;GlyphData&gt; markGlyphData = getEmphasisMarkGlyphData(mark);
</del><ins>+    std::optional&lt;GlyphData&gt; markGlyphData = getEmphasisMarkGlyphData(mark);
</ins><span class="cx">     if (!markGlyphData)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="lines">@@ -1329,7 +1329,7 @@
</span><span class="cx"> 
</span><span class="cx"> void FontCascade::drawEmphasisMarks(GraphicsContext&amp; context, const GlyphBuffer&amp; glyphBuffer, const AtomicString&amp; mark, const FloatPoint&amp; point) const
</span><span class="cx"> {
</span><del>-    Optional&lt;GlyphData&gt; markGlyphData = getEmphasisMarkGlyphData(mark);
</del><ins>+    std::optional&lt;GlyphData&gt; markGlyphData = getEmphasisMarkGlyphData(mark);
</ins><span class="cx">     if (!markGlyphData)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontCascadeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontCascade.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontCascade.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/FontCascade.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -132,9 +132,9 @@
</span><span class="cx">     void update(RefPtr&lt;FontSelector&gt;&amp;&amp;) const;
</span><span class="cx"> 
</span><span class="cx">     enum CustomFontNotReadyAction { DoNotPaintIfFontNotReady, UseFallbackIfFontNotReady };
</span><del>-    WEBCORE_EXPORT float drawText(GraphicsContext&amp;, const TextRun&amp;, const FloatPoint&amp;, unsigned from = 0, Optional&lt;unsigned&gt; to = Nullopt, CustomFontNotReadyAction = DoNotPaintIfFontNotReady) const;
</del><ins>+    WEBCORE_EXPORT float drawText(GraphicsContext&amp;, const TextRun&amp;, const FloatPoint&amp;, unsigned from = 0, std::optional&lt;unsigned&gt; to = std::nullopt, CustomFontNotReadyAction = DoNotPaintIfFontNotReady) const;
</ins><span class="cx">     static void drawGlyphs(GraphicsContext&amp;, const Font&amp;, const GlyphBuffer&amp;, unsigned from, unsigned numGlyphs, const FloatPoint&amp;, FontSmoothingMode);
</span><del>-    void drawEmphasisMarks(GraphicsContext&amp;, const TextRun&amp;, const AtomicString&amp; mark, const FloatPoint&amp;, unsigned from = 0, Optional&lt;unsigned&gt; to = Nullopt) const;
</del><ins>+    void drawEmphasisMarks(GraphicsContext&amp;, const TextRun&amp;, const AtomicString&amp; mark, const FloatPoint&amp;, unsigned from = 0, std::optional&lt;unsigned&gt; to = std::nullopt) const;
</ins><span class="cx"> 
</span><span class="cx">     DashArray dashesForIntersectionsWithRect(const TextRun&amp;, const FloatPoint&amp; textOrigin, const FloatRect&amp; lineExtents) const;
</span><span class="cx"> 
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx">     static float width(TextLayout&amp;, unsigned from, unsigned len, HashSet&lt;const Font*&gt;* fallbackFonts = 0);
</span><span class="cx"> 
</span><span class="cx">     int offsetForPosition(const TextRun&amp;, float position, bool includePartialGlyphs) const;
</span><del>-    void adjustSelectionRectForText(const TextRun&amp;, LayoutRect&amp; selectionRect, unsigned from = 0, Optional&lt;unsigned&gt; to = Nullopt) const;
</del><ins>+    void adjustSelectionRectForText(const TextRun&amp;, LayoutRect&amp; selectionRect, unsigned from = 0, std::optional&lt;unsigned&gt; to = std::nullopt) const;
</ins><span class="cx"> 
</span><span class="cx">     bool isSmallCaps() const { return m_fontDescription.variantCaps() == FontVariantCaps::Small; }
</span><span class="cx"> 
</span><span class="lines">@@ -227,7 +227,7 @@
</span><span class="cx">     int offsetForPositionForSimpleText(const TextRun&amp;, float position, bool includePartialGlyphs) const;
</span><span class="cx">     void adjustSelectionRectForSimpleText(const TextRun&amp;, LayoutRect&amp; selectionRect, unsigned from, unsigned to) const;
</span><span class="cx"> 
</span><del>-    Optional&lt;GlyphData&gt; getEmphasisMarkGlyphData(const AtomicString&amp;) const;
</del><ins>+    std::optional&lt;GlyphData&gt; getEmphasisMarkGlyphData(const AtomicString&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">     static bool canReturnFallbackFontsForComplexText();
</span><span class="cx">     static bool canExpandAroundIdeographsInComplexText();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -637,7 +637,7 @@
</span><span class="cx">     --m_transparencyCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-float GraphicsContext::drawText(const FontCascade&amp; font, const TextRun&amp; run, const FloatPoint&amp; point, unsigned from, Optional&lt;unsigned&gt; to)
</del><ins>+float GraphicsContext::drawText(const FontCascade&amp; font, const TextRun&amp; run, const FloatPoint&amp; point, unsigned from, std::optional&lt;unsigned&gt; to)
</ins><span class="cx"> {
</span><span class="cx">     if (paintingDisabled())
</span><span class="cx">         return 0;
</span><span class="lines">@@ -659,7 +659,7 @@
</span><span class="cx">     fontCascade.drawGlyphs(*this, font, buffer, from, numGlyphs, point, fontCascade.fontDescription().fontSmoothing());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::drawEmphasisMarks(const FontCascade&amp; font, const TextRun&amp; run, const AtomicString&amp; mark, const FloatPoint&amp; point, unsigned from, Optional&lt;unsigned&gt; to)
</del><ins>+void GraphicsContext::drawEmphasisMarks(const FontCascade&amp; font, const TextRun&amp; run, const AtomicString&amp; mark, const FloatPoint&amp; point, unsigned from, std::optional&lt;unsigned&gt; to)
</ins><span class="cx"> {
</span><span class="cx">     if (paintingDisabled())
</span><span class="cx">         return;
</span><span class="lines">@@ -692,7 +692,7 @@
</span><span class="cx">         subrun.setDirection(isRTL ? RTL : LTR);
</span><span class="cx">         subrun.setDirectionalOverride(bidiRun-&gt;dirOverride(false));
</span><span class="cx"> 
</span><del>-        float width = font.drawText(*this, subrun, currPoint, 0, Nullopt, customFontNotReadyAction);
</del><ins>+        float width = font.drawText(*this, subrun, currPoint, 0, std::nullopt, customFontNotReadyAction);
</ins><span class="cx">         currPoint.move(width, 0);
</span><span class="cx"> 
</span><span class="cx">         bidiRun = bidiRun-&gt;next();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsContext.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContext.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -387,9 +387,9 @@
</span><span class="cx">     void setTextDrawingMode(TextDrawingModeFlags);
</span><span class="cx">     TextDrawingModeFlags textDrawingMode() const { return m_state.textDrawingMode; }
</span><span class="cx"> 
</span><del>-    float drawText(const FontCascade&amp;, const TextRun&amp;, const FloatPoint&amp;, unsigned from = 0, Optional&lt;unsigned&gt; to = Nullopt);
</del><ins>+    float drawText(const FontCascade&amp;, const TextRun&amp;, const FloatPoint&amp;, unsigned from = 0, std::optional&lt;unsigned&gt; to = std::nullopt);
</ins><span class="cx">     void drawGlyphs(const FontCascade&amp;, const Font&amp;, const GlyphBuffer&amp;, unsigned from, unsigned numGlyphs, const FloatPoint&amp;);
</span><del>-    void drawEmphasisMarks(const FontCascade&amp;, const TextRun&amp;, const AtomicString&amp; mark, const FloatPoint&amp;, unsigned from = 0, Optional&lt;unsigned&gt; to = Nullopt);
</del><ins>+    void drawEmphasisMarks(const FontCascade&amp;, const TextRun&amp;, const AtomicString&amp; mark, const FloatPoint&amp;, unsigned from = 0, std::optional&lt;unsigned&gt; to = std::nullopt);
</ins><span class="cx">     void drawBidiText(const FontCascade&amp;, const TextRun&amp;, const FloatPoint&amp;, FontCascade::CustomFontNotReadyAction = FontCascade::DoNotPaintIfFontNotReady);
</span><span class="cx"> 
</span><span class="cx">     void applyState(const GraphicsContextState&amp;);
</span><span class="lines">@@ -698,7 +698,7 @@
</span><span class="cx">             m_graphicsContext.setImageInterpolationQuality(interpolationQualityToUse);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    explicit InterpolationQualityMaintainer(GraphicsContext&amp; graphicsContext, Optional&lt;InterpolationQuality&gt; interpolationQuality)
</del><ins>+    explicit InterpolationQualityMaintainer(GraphicsContext&amp; graphicsContext, std::optional&lt;InterpolationQuality&gt; interpolationQuality)
</ins><span class="cx">         : InterpolationQualityMaintainer(graphicsContext, interpolationQuality ? interpolationQuality.value() : graphicsContext.imageInterpolationQuality())
</span><span class="cx">     {
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayer.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsLayer.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayer.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -307,11 +307,11 @@
</span><span class="cx"> 
</span><span class="cx">     // The position of the layer (the location of its top-left corner in its parent)
</span><span class="cx">     const FloatPoint&amp; position() const { return m_position; }
</span><del>-    virtual void setPosition(const FloatPoint&amp; p) { m_approximatePosition = Nullopt; m_position = p; }
</del><ins>+    virtual void setPosition(const FloatPoint&amp; p) { m_approximatePosition = std::nullopt; m_position = p; }
</ins><span class="cx"> 
</span><span class="cx">     // approximatePosition, if set, overrides position() and is used during coverage rect computation.
</span><span class="cx">     FloatPoint approximatePosition() const { return m_approximatePosition ? m_approximatePosition.value() : m_position; }
</span><del>-    void setApproximatePosition(Optional&lt;FloatPoint&gt; p) { m_approximatePosition = p; }
</del><ins>+    void setApproximatePosition(std::optional&lt;FloatPoint&gt; p) { m_approximatePosition = p; }
</ins><span class="cx"> 
</span><span class="cx">     // For platforms that move underlying platform layers on a different thread for scrolling; just update the GraphicsLayer state.
</span><span class="cx">     virtual void syncPosition(const FloatPoint&amp; p) { m_position = p; }
</span><span class="lines">@@ -602,7 +602,7 @@
</span><span class="cx">     FloatPoint m_position;
</span><span class="cx"> 
</span><span class="cx">     // If set, overrides m_position. Only used for coverage computation.
</span><del>-    Optional&lt;FloatPoint&gt; m_approximatePosition;
</del><ins>+    std::optional&lt;FloatPoint&gt; m_approximatePosition;
</ins><span class="cx"> 
</span><span class="cx">     FloatPoint3D m_anchorPoint;
</span><span class="cx">     FloatSize m_size;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsImageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Image.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Image.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/Image.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">     FloatRect rect() const { return FloatRect(FloatPoint(), size()); }
</span><span class="cx">     float width() const { return size().width(); }
</span><span class="cx">     float height() const { return size().height(); }
</span><del>-    virtual Optional&lt;IntPoint&gt; hotSpot() const { return Nullopt; }
</del><ins>+    virtual std::optional&lt;IntPoint&gt; hotSpot() const { return std::nullopt; }
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     virtual FloatSize originalSize() const { return size(); }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsImageBufferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ImageBuffer.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ImageBuffer.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/ImageBuffer.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx">     
</span><span class="cx">     void convertToLuminanceMask();
</span><span class="cx">     
</span><del>-    String toDataURL(const String&amp; mimeType, Optional&lt;double&gt; quality = Nullopt, CoordinateSystem = LogicalCoordinateSystem) const;
</del><ins>+    String toDataURL(const String&amp; mimeType, std::optional&lt;double&gt; quality = std::nullopt, CoordinateSystem = LogicalCoordinateSystem) const;
</ins><span class="cx"> #if !USE(CG)
</span><span class="cx">     AffineTransform baseTransform() const { return AffineTransform(); }
</span><span class="cx">     void transformColorSpace(ColorSpace srcColorSpace, ColorSpace dstColorSpace);
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> #if USE(CG)
</span><del>-String dataURL(const ImageData&amp;, const String&amp; mimeType, Optional&lt;double&gt; quality);
</del><ins>+String dataURL(const ImageData&amp;, const String&amp; mimeType, std::optional&lt;double&gt; quality);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsImageFrameCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ImageFrameCache.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ImageFrameCache.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/ImageFrameCache.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -335,12 +335,12 @@
</span><span class="cx"> 
</span><span class="cx"> void ImageFrameCache::clearMetadata()
</span><span class="cx"> {
</span><del>-    m_frameCount = Nullopt;
-    m_singlePixelSolidColor = Nullopt;
</del><ins>+    m_frameCount = std::nullopt;
+    m_singlePixelSolidColor = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T, T (ImageDecoder::*functor)() const&gt;
</span><del>-T ImageFrameCache::metadata(const T&amp; defaultValue, Optional&lt;T&gt;* cachedValue)
</del><ins>+T ImageFrameCache::metadata(const T&amp; defaultValue, std::optional&lt;T&gt;* cachedValue)
</ins><span class="cx"> {
</span><span class="cx">     if (cachedValue &amp;&amp; *cachedValue)
</span><span class="cx">         return cachedValue-&gt;value();
</span><span class="lines">@@ -357,7 +357,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T, T (ImageFrame::*functor)() const&gt;
</span><del>-T ImageFrameCache::frameMetadataAtIndex(size_t index, SubsamplingLevel subsamplingLevel, ImageFrame::Caching caching, Optional&lt;T&gt;* cachedValue)
</del><ins>+T ImageFrameCache::frameMetadataAtIndex(size_t index, SubsamplingLevel subsamplingLevel, ImageFrame::Caching caching, std::optional&lt;T&gt;* cachedValue)
</ins><span class="cx"> {
</span><span class="cx">     if (cachedValue &amp;&amp; *cachedValue)
</span><span class="cx">         return cachedValue-&gt;value();
</span><span class="lines">@@ -400,9 +400,9 @@
</span><span class="cx">     return metadata&lt;String, (&amp;ImageDecoder::filenameExtension)&gt;(String(), &amp;m_filenameExtension);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;IntPoint&gt; ImageFrameCache::hotSpot()
</del><ins>+std::optional&lt;IntPoint&gt; ImageFrameCache::hotSpot()
</ins><span class="cx"> {
</span><del>-    return metadata&lt;Optional&lt;IntPoint&gt;, (&amp;ImageDecoder::hotSpot)&gt;(Nullopt, &amp;m_hotSpot);
</del><ins>+    return metadata&lt;std::optional&lt;IntPoint&gt;, (&amp;ImageDecoder::hotSpot)&gt;(std::nullopt, &amp;m_hotSpot);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> IntSize ImageFrameCache::size()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsImageFrameCacheh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ImageFrameCache.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ImageFrameCache.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/ImageFrameCache.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx">     size_t frameCount();
</span><span class="cx">     RepetitionCount repetitionCount();
</span><span class="cx">     String filenameExtension();
</span><del>-    Optional&lt;IntPoint&gt; hotSpot();
</del><ins>+    std::optional&lt;IntPoint&gt; hotSpot();
</ins><span class="cx">     
</span><span class="cx">     // Image metadata which is calculated from the first ImageFrame.
</span><span class="cx">     IntSize size();
</span><span class="lines">@@ -106,10 +106,10 @@
</span><span class="cx">     ImageFrameCache(NativeImagePtr&amp;&amp;);
</span><span class="cx"> 
</span><span class="cx">     template&lt;typename T, T (ImageDecoder::*functor)() const&gt;
</span><del>-    T metadata(const T&amp; defaultValue, Optional&lt;T&gt;* cachedValue = nullptr);
</del><ins>+    T metadata(const T&amp; defaultValue, std::optional&lt;T&gt;* cachedValue = nullptr);
</ins><span class="cx"> 
</span><span class="cx">     template&lt;typename T, T (ImageFrame::*functor)() const&gt;
</span><del>-    T frameMetadataAtIndex(size_t index, SubsamplingLevel = SubsamplingLevel::Undefinded, ImageFrame::Caching = ImageFrame::Caching::Empty, Optional&lt;T&gt;* = nullptr);
</del><ins>+    T frameMetadataAtIndex(size_t index, SubsamplingLevel = SubsamplingLevel::Undefinded, ImageFrame::Caching = ImageFrame::Caching::Empty, std::optional&lt;T&gt;* = nullptr);
</ins><span class="cx"> 
</span><span class="cx">     bool isDecoderAvailable() const { return m_decoder; }
</span><span class="cx">     void decodedSizeChanged(long long decodedSize);
</span><span class="lines">@@ -153,16 +153,16 @@
</span><span class="cx">     RefPtr&lt;WorkQueue&gt; m_decodingQueue;
</span><span class="cx"> 
</span><span class="cx">     // Image metadata.
</span><del>-    Optional&lt;bool&gt; m_isSizeAvailable;
-    Optional&lt;size_t&gt; m_frameCount;
-    Optional&lt;RepetitionCount&gt; m_repetitionCount;
-    Optional&lt;String&gt; m_filenameExtension;
-    Optional&lt;Optional&lt;IntPoint&gt;&gt; m_hotSpot;
</del><ins>+    std::optional&lt;bool&gt; m_isSizeAvailable;
+    std::optional&lt;size_t&gt; m_frameCount;
+    std::optional&lt;RepetitionCount&gt; m_repetitionCount;
+    std::optional&lt;String&gt; m_filenameExtension;
+    std::optional&lt;std::optional&lt;IntPoint&gt;&gt; m_hotSpot;
</ins><span class="cx"> 
</span><span class="cx">     // Image metadata which is calculated from the first ImageFrame.
</span><del>-    Optional&lt;IntSize&gt; m_size;
-    Optional&lt;IntSize&gt; m_sizeRespectingOrientation;
-    Optional&lt;Color&gt; m_singlePixelSolidColor;
</del><ins>+    std::optional&lt;IntSize&gt; m_size;
+    std::optional&lt;IntSize&gt; m_sizeRespectingOrientation;
+    std::optional&lt;Color&gt; m_singlePixelSolidColor;
</ins><span class="cx"> };
</span><span class="cx">     
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsImageSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ImageSource.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ImageSource.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/ImageSource.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx">     size_t frameCount() { return m_frameCache-&gt;frameCount(); }
</span><span class="cx">     RepetitionCount repetitionCount() { return m_frameCache-&gt;repetitionCount(); }
</span><span class="cx">     String filenameExtension() { return m_frameCache-&gt;filenameExtension(); }
</span><del>-    Optional&lt;IntPoint&gt; hotSpot() { return m_frameCache-&gt;hotSpot(); }
</del><ins>+    std::optional&lt;IntPoint&gt; hotSpot() { return m_frameCache-&gt;hotSpot(); }
</ins><span class="cx"> 
</span><span class="cx">     // Image metadata which is calculated from the first ImageFrame.
</span><span class="cx">     IntSize size() { return m_frameCache-&gt;size(); }
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx">     Ref&lt;ImageFrameCache&gt; m_frameCache;
</span><span class="cx">     std::unique_ptr&lt;ImageDecoder&gt; m_decoder;
</span><span class="cx"> 
</span><del>-    Optional&lt;SubsamplingLevel&gt; m_maximumSubsamplingLevel;
</del><ins>+    std::optional&lt;SubsamplingLevel&gt; m_maximumSubsamplingLevel;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     // FIXME: We should expose a setting to enable/disable progressive loading so that we can remove the PLATFORM(IOS)-guard.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsPathUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/PathUtilities.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/PathUtilities.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/PathUtilities.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -462,13 +462,13 @@
</span><span class="cx">     return radii;
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-static Optional&lt;FloatRect&gt; rectFromPolygon(const FloatPointGraph::Polygon&amp; poly)
</del><ins>+static std::optional&lt;FloatRect&gt; rectFromPolygon(const FloatPointGraph::Polygon&amp; poly)
</ins><span class="cx"> {
</span><span class="cx">     if (poly.size() != 4)
</span><del>-        return Optional&lt;FloatRect&gt;();
</del><ins>+        return std::optional&lt;FloatRect&gt;();
</ins><span class="cx"> 
</span><del>-    Optional&lt;FloatPoint&gt; topLeft;
-    Optional&lt;FloatPoint&gt; bottomRight;
</del><ins>+    std::optional&lt;FloatPoint&gt; topLeft;
+    std::optional&lt;FloatPoint&gt; bottomRight;
</ins><span class="cx">     for (unsigned i = 0; i &lt; poly.size(); ++i) {
</span><span class="cx">         const auto&amp; toEdge = poly[i];
</span><span class="cx">         const auto&amp; fromEdge = (i &gt; 0) ? poly[i - 1] : poly[poly.size() - 1];
</span><span class="lines">@@ -482,7 +482,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     if (!topLeft || !bottomRight)
</span><del>-        return Optional&lt;FloatRect&gt;();
</del><ins>+        return std::optional&lt;FloatRect&gt;();
</ins><span class="cx">     return FloatRect(topLeft.value(), bottomRight.value());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -516,7 +516,7 @@
</span><span class="cx">         return Path();
</span><span class="cx">     const auto&amp; poly = polys.at(0);
</span><span class="cx">     // Fast path when poly has one rect only.
</span><del>-    Optional&lt;FloatRect&gt; rect = rectFromPolygon(poly);
</del><ins>+    std::optional&lt;FloatRect&gt; rect = rectFromPolygon(poly);
</ins><span class="cx">     if (rect)
</span><span class="cx">         return roundedRect(rect.value());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsShadowBlurcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ShadowBlur.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ShadowBlur.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/ShadowBlur.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -400,7 +400,7 @@
</span><span class="cx">     if (m_shadowsIgnoreTransforms &amp;&amp; !transform.isIdentity()) {
</span><span class="cx">         FloatQuad transformedPolygon = transform.mapQuad(FloatQuad(shadowedRect));
</span><span class="cx">         transformedPolygon.move(m_offset);
</span><del>-        layerRect = transform.inverse().valueOr(AffineTransform()).mapQuad(transformedPolygon).boundingBox();
</del><ins>+        layerRect = transform.inverse().value_or(AffineTransform()).mapQuad(transformedPolygon).boundingBox();
</ins><span class="cx">     } else {
</span><span class="cx">         layerRect = shadowedRect;
</span><span class="cx">         layerRect.move(m_offset);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsTiledBackingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/TiledBacking.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/TiledBacking.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/TiledBacking.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     virtual FloatRect visibleRect() const = 0;
</span><span class="cx"> 
</span><span class="cx">     // Only used to update the tile coverage map. 
</span><del>-    virtual void setLayoutViewportRect(Optional&lt;FloatRect&gt;) = 0;
</del><ins>+    virtual void setLayoutViewportRect(std::optional&lt;FloatRect&gt;) = 0;
</ins><span class="cx"> 
</span><span class="cx">     virtual void setCoverageRect(const FloatRect&amp;) = 0;
</span><span class="cx">     virtual FloatRect coverageRect() const = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -2355,7 +2355,7 @@
</span><span class="cx">     GraphicsContextStateSaver stateSaver(context);
</span><span class="cx">     FloatRect imageRect(0, 0, CGImageGetWidth(m_lastImage.get()), CGImageGetHeight(m_lastImage.get()));
</span><span class="cx">     AffineTransform videoTransform = [firstEnabledVideoTrack preferredTransform];
</span><del>-    FloatRect transformedOutputRect = videoTransform.inverse().valueOr(AffineTransform()).mapRect(outputRect);
</del><ins>+    FloatRect transformedOutputRect = videoTransform.inverse().value_or(AffineTransform()).mapRect(outputRect);
</ins><span class="cx"> 
</span><span class="cx">     context.concatCTM(videoTransform);
</span><span class="cx">     context.drawNativeImage(m_lastImage.get(), imageRect.size(), transformedOutputRect, imageRect);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx">     SourceBufferPrivateClient* m_client;
</span><span class="cx">     CDMSessionMediaSourceAVFObjC* m_session { nullptr };
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatSize&gt; m_cachedSize;
</del><ins>+    std::optional&lt;FloatSize&gt; m_cachedSize;
</ins><span class="cx">     FloatSize m_currentSize;
</span><span class="cx">     bool m_parsingSucceeded;
</span><span class="cx">     bool m_parserStateWasReset { false };
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -902,7 +902,7 @@
</span><span class="cx"> void SourceBufferPrivateAVFObjC::flush(AVSampleBufferDisplayLayer *renderer)
</span><span class="cx"> {
</span><span class="cx">     [renderer flush];
</span><del>-    m_cachedSize = Nullopt;
</del><ins>+    m_cachedSize = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (m_mediaSource) {
</span><span class="cx">         m_mediaSource-&gt;player()-&gt;setHasAvailableVideoFrame(false);
</span><span class="lines">@@ -1001,7 +1001,7 @@
</span><span class="cx"> 
</span><span class="cx"> FloatSize SourceBufferPrivateAVFObjC::naturalSize()
</span><span class="cx"> {
</span><del>-    return m_cachedSize.valueOr(FloatSize());
</del><ins>+    return m_cachedSize.value_or(FloatSize());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples(int trackID)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1274,7 +1274,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     FloatRect coverageRect = clipRectForSelf;
</span><del>-    Optional&lt;FloatQuad&gt; quad = state.mappedSecondaryQuad(&amp;mapWasClamped);
</del><ins>+    std::optional&lt;FloatQuad&gt; quad = state.mappedSecondaryQuad(&amp;mapWasClamped);
</ins><span class="cx">     if (quad &amp;&amp; !mapWasClamped &amp;&amp; !applyWasClamped)
</span><span class="cx">         coverageRect = (*quad).boundingBox();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaTileControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/TileController.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/TileController.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/ca/TileController.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx">     updateTileCoverageMap();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void TileController::setLayoutViewportRect(Optional&lt;FloatRect&gt; rect)
</del><ins>+void TileController::setLayoutViewportRect(std::optional&lt;FloatRect&gt; rect)
</ins><span class="cx"> {
</span><span class="cx">     if (rect == m_layoutViewportRect)
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaTileControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/TileController.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/TileController.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/ca/TileController.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx"> 
</span><span class="cx">     FloatRect visibleRect() const override { return m_visibleRect; }
</span><span class="cx">     FloatRect coverageRect() const override { return m_coverageRect; }
</span><del>-    Optional&lt;FloatRect&gt; layoutViewportRect() const { return m_layoutViewportRect; }
</del><ins>+    std::optional&lt;FloatRect&gt; layoutViewportRect() const { return m_layoutViewportRect; }
</ins><span class="cx"> 
</span><span class="cx">     unsigned blankPixelCount() const;
</span><span class="cx">     static unsigned blankPixelCountForTiles(const PlatformLayerList&amp;, const FloatRect&amp;, const IntPoint&amp;);
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx"> 
</span><span class="cx">     // TiledBacking member functions.
</span><span class="cx">     void setVisibleRect(const FloatRect&amp;) override;
</span><del>-    void setLayoutViewportRect(Optional&lt;FloatRect&gt;) override;
</del><ins>+    void setLayoutViewportRect(std::optional&lt;FloatRect&gt;) override;
</ins><span class="cx">     void setCoverageRect(const FloatRect&amp;) override;
</span><span class="cx">     bool tilesWouldChangeForCoverageRect(const FloatRect&amp;) const override;
</span><span class="cx">     void setTiledScrollingIndicatorPosition(const FloatPoint&amp;) override;
</span><span class="lines">@@ -192,7 +192,7 @@
</span><span class="cx">     std::unique_ptr&lt;TileGrid&gt; m_zoomedOutTileGrid;
</span><span class="cx"> 
</span><span class="cx">     FloatRect m_visibleRect; // Only used for scroll performance logging.
</span><del>-    Optional&lt;FloatRect&gt; m_layoutViewportRect; // Only used by the tiled scrolling indicator.
</del><ins>+    std::optional&lt;FloatRect&gt; m_layoutViewportRect; // Only used by the tiled scrolling indicator.
</ins><span class="cx">     FloatRect m_coverageRect;
</span><span class="cx">     IntRect m_boundsAtLastRevalidate;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscairoImageBufferCairocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -543,7 +543,7 @@
</span><span class="cx">     return cairo_surface_write_to_png_stream(image, writeFunction, output) == CAIRO_STATUS_SUCCESS;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String ImageBuffer::toDataURL(const String&amp; mimeType, Optional&lt;double&gt;, CoordinateSystem) const
</del><ins>+String ImageBuffer::toDataURL(const String&amp; mimeType, std::optional&lt;double&gt;, CoordinateSystem) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType));
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscgImageBufferCGcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -458,7 +458,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool encodeImage(CGImageRef image, CFStringRef uti, Optional&lt;double&gt; quality, CFMutableDataRef data)
</del><ins>+static bool encodeImage(CGImageRef image, CFStringRef uti, std::optional&lt;double&gt; quality, CFMutableDataRef data)
</ins><span class="cx"> {
</span><span class="cx">     if (!image || !uti || !data)
</span><span class="cx">         return false;
</span><span class="lines">@@ -483,7 +483,7 @@
</span><span class="cx">     return CGImageDestinationFinalize(destination.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static String dataURL(CGImageRef image, const String&amp; mimeType, Optional&lt;double&gt; quality)
</del><ins>+static String dataURL(CGImageRef image, const String&amp; mimeType, std::optional&lt;double&gt; quality)
</ins><span class="cx"> {
</span><span class="cx">     auto uti = utiFromMIMEType(mimeType);
</span><span class="cx">     ASSERT(uti);
</span><span class="lines">@@ -498,7 +498,7 @@
</span><span class="cx">     return &quot;data:&quot; + mimeType + &quot;;base64,&quot; + base64Data;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String ImageBuffer::toDataURL(const String&amp; mimeType, Optional&lt;double&gt; quality, CoordinateSystem) const
</del><ins>+String ImageBuffer::toDataURL(const String&amp; mimeType, std::optional&lt;double&gt; quality, CoordinateSystem) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType));
</span><span class="cx"> 
</span><span class="lines">@@ -539,7 +539,7 @@
</span><span class="cx">     return dataURL(image.get(), mimeType, quality);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String dataURL(const ImageData&amp; source, const String&amp; mimeType, Optional&lt;double&gt; quality)
</del><ins>+String dataURL(const ImageData&amp; source, const String&amp; mimeType, std::optional&lt;double&gt; quality)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType));
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscgImageDecoderCGcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -203,23 +203,23 @@
</span><span class="cx">     return RepetitionCountNone;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;IntPoint&gt; ImageDecoder::hotSpot() const
</del><ins>+std::optional&lt;IntPoint&gt; ImageDecoder::hotSpot() const
</ins><span class="cx"> {
</span><span class="cx">     RetainPtr&lt;CFDictionaryRef&gt; properties = adoptCF(CGImageSourceCopyPropertiesAtIndex(m_nativeDecoder.get(), 0, imageSourceOptions().get()));
</span><span class="cx">     if (!properties)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     int x = -1, y = -1;
</span><span class="cx">     CFNumberRef num = (CFNumberRef)CFDictionaryGetValue(properties.get(), CFSTR(&quot;hotspotX&quot;));
</span><span class="cx">     if (!num || !CFNumberGetValue(num, kCFNumberIntType, &amp;x))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     num = (CFNumberRef)CFDictionaryGetValue(properties.get(), CFSTR(&quot;hotspotY&quot;));
</span><span class="cx">     if (!num || !CFNumberGetValue(num, kCFNumberIntType, &amp;y))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     if (x &lt; 0 || y &lt; 0)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     return IntPoint(x, y);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscgImageDecoderCGh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">     size_t frameCount() const;
</span><span class="cx">     RepetitionCount repetitionCount() const;
</span><span class="cx">     String filenameExtension() const;
</span><del>-    Optional&lt;IntPoint&gt; hotSpot() const;
</del><ins>+    std::optional&lt;IntPoint&gt; hotSpot() const;
</ins><span class="cx"> 
</span><span class="cx">     IntSize frameSizeAtIndex(size_t, SubsamplingLevel = SubsamplingLevel::Default) const;
</span><span class="cx">     bool frameIsCompleteAtIndex(size_t) const;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaFontCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -404,7 +404,7 @@
</span><span class="cx">     return CFDictionaryContainsKey(feature, kCTFontFeatureTypeIdentifierKey) &amp;&amp; CFDictionaryContainsKey(feature, kCTFontFeatureSelectorIdentifierKey);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline Optional&lt;CFStringRef&gt; openTypeFeature(CFDictionaryRef feature)
</del><ins>+static inline std::optional&lt;CFStringRef&gt; openTypeFeature(CFDictionaryRef feature)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isOpenTypeFeature(feature));
</span><span class="cx">     CFStringRef tag = static_cast&lt;CFStringRef&gt;(CFDictionaryGetValue(feature, kCTFontOpenTypeFeatureTag));
</span><span class="lines">@@ -412,7 +412,7 @@
</span><span class="cx">     CFNumberRef value = static_cast&lt;CFNumberRef&gt;(CFDictionaryGetValue(feature, kCTFontOpenTypeFeatureValue));
</span><span class="cx">     auto success = CFNumberGetValue(value, kCFNumberIntType, &amp;rawValue);
</span><span class="cx">     ASSERT_UNUSED(success, success);
</span><del>-    return rawValue ? Optional&lt;CFStringRef&gt;(tag) : Nullopt;
</del><ins>+    return rawValue ? std::optional&lt;CFStringRef&gt;(tag) : std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline std::pair&lt;int, int&gt; trueTypeFeature(CFDictionaryRef feature)
</span><span class="lines">@@ -592,11 +592,11 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if !((PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101200) || (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 100000))
</span><del>-static inline Optional&lt;CGSize&gt; advanceForColorBitmapFont(const FontPlatformData&amp; platformData, Glyph glyph)
</del><ins>+static inline std::optional&lt;CGSize&gt; advanceForColorBitmapFont(const FontPlatformData&amp; platformData, Glyph glyph)
</ins><span class="cx"> {
</span><span class="cx">     CTFontRef font = platformData.font();
</span><span class="cx">     if (!font || !platformData.isColorBitmapFont())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     CGSize advance;
</span><span class="cx">     CTFontGetAdvancesForGlyphs(font, kCTFontOrientationDefault, &amp;glyph, &amp;advance, 1);
</span><span class="cx">     return advance;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsdisplaylistsDisplayListItemscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -395,7 +395,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatRect&gt; DrawGlyphs::localBounds(const GraphicsContext&amp;) const
</del><ins>+std::optional&lt;FloatRect&gt; DrawGlyphs::localBounds(const GraphicsContext&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     FloatRect localBounds = m_bounds;
</span><span class="cx">     localBounds.move(m_blockLocation.x(), m_blockLocation.y());
</span><span class="lines">@@ -575,7 +575,7 @@
</span><span class="cx">     return ts;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatRect&gt; DrawLine::localBounds(const GraphicsContext&amp;) const
</del><ins>+std::optional&lt;FloatRect&gt; DrawLine::localBounds(const GraphicsContext&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     FloatRect bounds;
</span><span class="cx">     bounds.fitToPoints(m_point1, m_point2);
</span><span class="lines">@@ -600,7 +600,7 @@
</span><span class="cx">     context.drawLinesForText(point(), m_widths, m_printing, m_doubleLines);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatRect&gt; DrawLinesForText::localBounds(const GraphicsContext&amp;) const
</del><ins>+std::optional&lt;FloatRect&gt; DrawLinesForText::localBounds(const GraphicsContext&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     // This function needs to return a value equal to or enclosing what GraphicsContext::computeLineBoundsAndAntialiasingModeForText() returns.
</span><span class="cx"> 
</span><span class="lines">@@ -630,7 +630,7 @@
</span><span class="cx">     context.drawLineForDocumentMarker(m_point, m_width, m_style);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatRect&gt; DrawLineForDocumentMarker::localBounds(const GraphicsContext&amp;) const
</del><ins>+std::optional&lt;FloatRect&gt; DrawLineForDocumentMarker::localBounds(const GraphicsContext&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     // This function needs to return a value equal to or enclosing what GraphicsContext::drawLineForDocumentMarker() returns.
</span><span class="cx"> 
</span><span class="lines">@@ -679,7 +679,7 @@
</span><span class="cx">     context.drawFocusRing(m_path, m_width, m_offset, m_color);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatRect&gt; DrawFocusRingPath::localBounds(const GraphicsContext&amp;) const
</del><ins>+std::optional&lt;FloatRect&gt; DrawFocusRingPath::localBounds(const GraphicsContext&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     FloatRect result = m_path.fastBoundingRect();
</span><span class="cx">     result.inflate(platformFocusRingWidth);
</span><span class="lines">@@ -701,7 +701,7 @@
</span><span class="cx">     context.drawFocusRing(m_rects, m_width, m_offset, m_color);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatRect&gt; DrawFocusRingRects::localBounds(const GraphicsContext&amp;) const
</del><ins>+std::optional&lt;FloatRect&gt; DrawFocusRingRects::localBounds(const GraphicsContext&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     FloatRect result;
</span><span class="cx">     for (auto&amp; rect : m_rects)
</span><span class="lines">@@ -825,7 +825,7 @@
</span><span class="cx">     return ts;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatRect&gt; StrokeRect::localBounds(const GraphicsContext&amp;) const
</del><ins>+std::optional&lt;FloatRect&gt; StrokeRect::localBounds(const GraphicsContext&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     FloatRect bounds = m_rect;
</span><span class="cx">     bounds.expand(m_lineWidth, m_lineWidth);
</span><span class="lines">@@ -845,7 +845,7 @@
</span><span class="cx">     return ts;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatRect&gt; StrokePath::localBounds(const GraphicsContext&amp; context) const
</del><ins>+std::optional&lt;FloatRect&gt; StrokePath::localBounds(const GraphicsContext&amp; context) const
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: Need to take stroke thickness into account correctly, via CGPathByStrokingPath().
</span><span class="cx">     float strokeThickness = context.strokeThickness();
</span><span class="lines">@@ -867,7 +867,7 @@
</span><span class="cx">     return ts;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatRect&gt; StrokeEllipse::localBounds(const GraphicsContext&amp; context) const
</del><ins>+std::optional&lt;FloatRect&gt; StrokeEllipse::localBounds(const GraphicsContext&amp; context) const
</ins><span class="cx"> {
</span><span class="cx">     float strokeThickness = context.strokeThickness();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsdisplaylistsDisplayListItemsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/displaylists/DisplayListItems.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/displaylists/DisplayListItems.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/displaylists/DisplayListItems.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -172,12 +172,12 @@
</span><span class="cx"> 
</span><span class="cx">     // Return bounds of this drawing operation in local coordinates.
</span><span class="cx">     // Does not include effets of transform, shadow etc in the state.
</span><del>-    virtual Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const { return Nullopt; }
</del><ins>+    virtual std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const { return std::nullopt; }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     virtual bool isDrawingItem() const { return true; }
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; m_extent; // In base coordinates, taking shadows and transforms into account.
</del><ins>+    std::optional&lt;FloatRect&gt; m_extent; // In base coordinates, taking shadows and transforms into account.
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class Save : public Item {
</span><span class="lines">@@ -543,7 +543,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     GlyphBuffer generateGlyphBuffer() const;
</span><span class="cx"> 
</span><span class="lines">@@ -572,7 +572,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</ins><span class="cx"> 
</span><span class="cx">     mutable Ref&lt;Image&gt; m_image; // FIXME: Drawing images can cause their animations to progress. This shouldn't have to be mutable.
</span><span class="cx">     FloatRect m_destination;
</span><span class="lines">@@ -599,7 +599,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</ins><span class="cx"> 
</span><span class="cx">     mutable Ref&lt;Image&gt; m_image; // FIXME: Drawing images can cause their animations to progress. This shouldn't have to be mutable.
</span><span class="cx">     FloatRect m_destination;
</span><span class="lines">@@ -625,7 +625,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</ins><span class="cx"> 
</span><span class="cx">     mutable Ref&lt;Image&gt; m_image; // FIXME: Drawing images can cause their animations to progress. This shouldn't have to be mutable.
</span><span class="cx">     FloatRect m_destination;
</span><span class="lines">@@ -652,7 +652,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</ins><span class="cx"> 
</span><span class="cx"> #if USE(CG)
</span><span class="cx">     RetainPtr&lt;CGImageRef&gt; m_image;
</span><span class="lines">@@ -687,7 +687,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_destination; }
</ins><span class="cx"> 
</span><span class="cx">     mutable Ref&lt;Image&gt; m_image; // FIXME: Drawing images can cause their animations to progress. This shouldn't have to be mutable.
</span><span class="cx">     AffineTransform m_patternTransform;
</span><span class="lines">@@ -756,7 +756,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx">     float m_borderThickness;
</span><span class="lines">@@ -781,7 +781,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     FloatPoint m_point1;
</span><span class="cx">     FloatPoint m_point2;
</span><span class="lines">@@ -816,7 +816,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     FloatPoint m_blockLocation;
</span><span class="cx">     FloatSize m_localAnchor;
</span><span class="lines">@@ -847,7 +847,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     FloatPoint m_point;
</span><span class="cx">     float m_width;
</span><span class="lines">@@ -871,7 +871,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx"> };
</span><span class="lines">@@ -894,7 +894,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_path.fastBoundingRect(); }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_path.fastBoundingRect(); }
</ins><span class="cx"> 
</span><span class="cx">     const Path m_path;
</span><span class="cx"> };
</span><span class="lines">@@ -923,7 +923,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     const Path m_path;
</span><span class="cx">     int m_width;
</span><span class="lines">@@ -955,7 +955,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;FloatRect&gt; m_rects;
</span><span class="cx">     int m_width;
</span><span class="lines">@@ -980,7 +980,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx"> };
</span><span class="lines">@@ -1005,7 +1005,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx">     Color m_color;
</span><span class="lines">@@ -1029,7 +1029,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx">     mutable Ref&lt;Gradient&gt; m_gradient; // FIXME: Make this not mutable
</span><span class="lines">@@ -1058,7 +1058,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx">     Color m_color;
</span><span class="lines">@@ -1087,7 +1087,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect.rect(); }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect.rect(); }
</ins><span class="cx"> 
</span><span class="cx">     FloatRoundedRect m_rect;
</span><span class="cx">     Color m_color;
</span><span class="lines">@@ -1115,7 +1115,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx">     FloatRoundedRect m_roundedHoleRect;
</span><span class="lines">@@ -1139,7 +1139,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_path.fastBoundingRect(); }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_path.fastBoundingRect(); }
</ins><span class="cx"> 
</span><span class="cx">     const Path m_path;
</span><span class="cx"> };
</span><span class="lines">@@ -1162,7 +1162,7 @@
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx"> };
</span><span class="lines">@@ -1186,7 +1186,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx">     float m_lineWidth;
</span><span class="lines">@@ -1209,7 +1209,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     const Path m_path;
</span><span class="cx">     FloatPoint m_blockLocation;
</span><span class="lines">@@ -1232,7 +1232,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx"> };
</span><span class="lines">@@ -1254,7 +1254,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void apply(GraphicsContext&amp;) const override;
</span><del>-    Optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</del><ins>+    std::optional&lt;FloatRect&gt; localBounds(const GraphicsContext&amp;) const override { return m_rect; }
</ins><span class="cx"> 
</span><span class="cx">     FloatRect m_rect;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsdisplaylistsDisplayListRecordercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -374,7 +374,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Recorder::updateItemExtent(DrawingItem&amp; item) const
</span><span class="cx"> {
</span><del>-    if (Optional&lt;FloatRect&gt; rect = item.localBounds(m_graphicsContext))
</del><ins>+    if (std::optional&lt;FloatRect&gt; rect = item.localBounds(m_graphicsContext))
</ins><span class="cx">         item.setExtent(extentFromLocalBounds(rect.value()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -443,7 +443,7 @@
</span><span class="cx">     AffineTransform rotation;
</span><span class="cx">     rotation.rotate(angleInDegrees);
</span><span class="cx"> 
</span><del>-    if (Optional&lt;AffineTransform&gt; inverse = rotation.inverse())
</del><ins>+    if (std::optional&lt;AffineTransform&gt; inverse = rotation.inverse())
</ins><span class="cx">         clipBounds = inverse.value().mapRect(clipBounds);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -457,7 +457,7 @@
</span><span class="cx"> {
</span><span class="cx">     ctm *= matrix;
</span><span class="cx"> 
</span><del>-    if (Optional&lt;AffineTransform&gt; inverse = matrix.inverse())
</del><ins>+    if (std::optional&lt;AffineTransform&gt; inverse = matrix.inverse())
</ins><span class="cx">         clipBounds = inverse.value().mapRect(clipBounds);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicseflImageBufferEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/efl/ImageBufferEfl.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/efl/ImageBufferEfl.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/efl/ImageBufferEfl.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -47,12 +47,12 @@
</span><span class="cx">     return cairo_surface_write_to_png_stream(image, writeFunction, output) == CAIRO_STATUS_SUCCESS;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool encodeImageJPEG(unsigned char* data, IntSize size, Vector&lt;char&gt;* output, Optional&lt;double&gt; quality)
</del><ins>+static bool encodeImageJPEG(unsigned char* data, IntSize size, Vector&lt;char&gt;* output, std::optional&lt;double&gt; quality)
</ins><span class="cx"> {    
</span><span class="cx">     return compressRGBABigEndianToJPEG(data, size, *output, quality);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String ImageBuffer::toDataURL(const String&amp; mimeType, Optional&lt;double&gt; quality, CoordinateSystem) const
</del><ins>+String ImageBuffer::toDataURL(const String&amp; mimeType, std::optional&lt;double&gt; quality, CoordinateSystem) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType));
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFilterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/Filter.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/Filter.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/filters/Filter.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">     void setFilterScale(float scale) { m_filterScale = scale; }
</span><span class="cx"> 
</span><span class="cx">     const AffineTransform&amp; absoluteTransform() const { return m_absoluteTransform; }
</span><del>-    FloatPoint mapAbsolutePointToLocalPoint(const FloatPoint&amp; point) const { return m_absoluteTransform.inverse().valueOr(AffineTransform()).mapPoint(point); }
</del><ins>+    FloatPoint mapAbsolutePointToLocalPoint(const FloatPoint&amp; point) const { return m_absoluteTransform.inverse().value_or(AffineTransform()).mapPoint(point); }
</ins><span class="cx"> 
</span><span class="cx">     RenderingMode renderingMode() const { return m_renderingMode; }
</span><span class="cx">     void setRenderingMode(RenderingMode renderingMode) { m_renderingMode = renderingMode; }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgtkImageBufferGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gtk/ImageBufferGtk.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gtk/ImageBufferGtk.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/gtk/ImageBufferGtk.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-static bool encodeImage(cairo_surface_t* surface, const String&amp; mimeType, Optional&lt;double&gt; quality, GUniqueOutPtr&lt;gchar&gt;&amp; buffer, gsize&amp; bufferSize)
</del><ins>+static bool encodeImage(cairo_surface_t* surface, const String&amp; mimeType, std::optional&lt;double&gt; quality, GUniqueOutPtr&lt;gchar&gt;&amp; buffer, gsize&amp; bufferSize)
</ins><span class="cx"> {
</span><span class="cx">     // List of supported image encoding types comes from the GdkPixbuf documentation.
</span><span class="cx">     // http://developer.gnome.org/gdk-pixbuf/stable/gdk-pixbuf-File-saving.html#gdk-pixbuf-save-to-bufferv
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     return !error;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String ImageBuffer::toDataURL(const String&amp; mimeType, Optional&lt;double&gt; quality, CoordinateSystem) const
</del><ins>+String ImageBuffer::toDataURL(const String&amp; mimeType, std::optional&lt;double&gt; quality, CoordinateSystem) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType));
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsharfbuzzHarfBuzzShapercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -652,8 +652,8 @@
</span><span class="cx">     bool foundFromX = false;
</span><span class="cx">     bool foundToX = false;
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned&gt; fromIndex = from;
-    Optional&lt;unsigned&gt; toIndex = to;
</del><ins>+    std::optional&lt;unsigned&gt; fromIndex = from;
+    std::optional&lt;unsigned&gt; toIndex = to;
</ins><span class="cx"> 
</span><span class="cx">     if (m_run.rtl())
</span><span class="cx">         currentX = m_totalWidth;
</span><span class="lines">@@ -668,7 +668,7 @@
</span><span class="cx">             if (fromIndex &amp;&amp; fromIndex.value() &gt;= numCharacters)
</span><span class="cx">                 fromIndex.value() -= numCharacters;
</span><span class="cx">             else
</span><del>-                fromIndex = Nullopt;
</del><ins>+                fromIndex = std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (!foundToX &amp;&amp; toIndex.value() &lt; numCharacters) {
</span><span class="lines">@@ -678,7 +678,7 @@
</span><span class="cx">             if (toIndex &amp;&amp; toIndex.value() &gt;= numCharacters)
</span><span class="cx">                 toIndex.value() -= numCharacters;
</span><span class="cx">             else
</span><del>-                toIndex = Nullopt;
</del><ins>+                toIndex = std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (foundFromX &amp;&amp; foundToX)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacComplexTextControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -276,19 +276,19 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // FIXME: Capitalization is language-dependent and context-dependent and should operate on grapheme clusters instead of codepoints.
</span><del>-static inline Optional&lt;UChar32&gt; capitalized(UChar32 baseCharacter)
</del><ins>+static inline std::optional&lt;UChar32&gt; capitalized(UChar32 baseCharacter)
</ins><span class="cx"> {
</span><span class="cx">     if (U_GET_GC_MASK(baseCharacter) &amp; U_GC_M_MASK)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     UChar32 uppercaseCharacter = u_toupper(baseCharacter);
</span><span class="cx">     ASSERT(uppercaseCharacter == baseCharacter || (U_IS_BMP(baseCharacter) == U_IS_BMP(uppercaseCharacter)));
</span><span class="cx">     if (uppercaseCharacter != baseCharacter)
</span><span class="cx">         return uppercaseCharacter;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool shouldSynthesize(const Font* nextFont, UChar32 baseCharacter, Optional&lt;UChar32&gt; capitalizedBase, FontVariantCaps fontVariantCaps, bool engageAllSmallCapsProcessing)
</del><ins>+static bool shouldSynthesize(const Font* nextFont, UChar32 baseCharacter, std::optional&lt;UChar32&gt; capitalizedBase, FontVariantCaps fontVariantCaps, bool engageAllSmallCapsProcessing)
</ins><span class="cx"> {
</span><span class="cx">     if (!nextFont || nextFont == Font::systemFallback())
</span><span class="cx">         return false;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapTextureMapperLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -211,7 +211,7 @@
</span><span class="cx">         TextureMapperPaintOptions replicaOptions(options);
</span><span class="cx">         replicaOptions.transform
</span><span class="cx">             .multiply(m_state.replicaLayer-&gt;m_currentTransform.combined())
</span><del>-            .multiply(m_currentTransform.combined().inverse().valueOr(TransformationMatrix()));
</del><ins>+            .multiply(m_currentTransform.combined().inverse().value_or(TransformationMatrix()));
</ins><span class="cx">         paintSelfAndChildren(replicaOptions);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -230,7 +230,7 @@
</span><span class="cx"> 
</span><span class="cx"> TransformationMatrix TextureMapperLayer::replicaTransform()
</span><span class="cx"> {
</span><del>-    return TransformationMatrix(m_state.replicaLayer-&gt;m_currentTransform.combined()).multiply(m_currentTransform.combined().inverse().valueOr(TransformationMatrix()));
</del><ins>+    return TransformationMatrix(m_state.replicaLayer-&gt;m_currentTransform.combined()).multiply(m_currentTransform.combined().inverse().value_or(TransformationMatrix()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TextureMapperLayer::setAnimatedFilters(const FilterOperations&amp; filters)
</span><span class="lines">@@ -731,7 +731,7 @@
</span><span class="cx"> FloatSize TextureMapperLayer::mapScrollOffset(const FloatSize&amp; offset)
</span><span class="cx"> {
</span><span class="cx">     double zeroX, zeroY, offsetX, offsetY;
</span><del>-    TransformationMatrix transform = m_currentTransform.combined().inverse().valueOr(TransformationMatrix());
</del><ins>+    TransformationMatrix transform = m_currentTransform.combined().inverse().value_or(TransformationMatrix());
</ins><span class="cx">     transform.map(0, 0, zeroX, zeroY);
</span><span class="cx">     transform.map(offset.width(), offset.height(), offsetX, offsetY);
</span><span class="cx">     return FloatSize(offsetX - zeroX, offsetY - zeroY);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -947,7 +947,7 @@
</span><span class="cx">     // Return a projection of the visible rect (surface coordinates) onto the layer's plane (layer coordinates).
</span><span class="cx">     // The resulting quad might be squewed and the visible rect is the bounding box of this quad,
</span><span class="cx">     // so it might spread further than the real visible area (and then even more amplified by the cover rect multiplier).
</span><del>-    ASSERT(m_cachedInverseTransform == m_layerTransform.combined().inverse().valueOr(TransformationMatrix()));
</del><ins>+    ASSERT(m_cachedInverseTransform == m_layerTransform.combined().inverse().value_or(TransformationMatrix()));
</ins><span class="cx">     FloatRect rect = m_cachedInverseTransform.clampedBoundsOfProjectedQuad(FloatQuad(m_coordinator-&gt;visibleContentsRect()));
</span><span class="cx">     clampToContentsRectIfRectIsInfinite(rect, size());
</span><span class="cx">     return enclosingIntRect(rect);
</span><span class="lines">@@ -1139,7 +1139,7 @@
</span><span class="cx">     m_layerTransform.setChildrenTransform(childrenTransform());
</span><span class="cx">     m_layerTransform.combineTransforms(parent() ? downcast&lt;CoordinatedGraphicsLayer&gt;(*parent()).m_layerTransform.combinedForChildren() : TransformationMatrix());
</span><span class="cx"> 
</span><del>-    m_cachedInverseTransform = m_layerTransform.combined().inverse().valueOr(TransformationMatrix());
</del><ins>+    m_cachedInverseTransform = m_layerTransform.combined().inverse().value_or(TransformationMatrix());
</ins><span class="cx"> 
</span><span class="cx">     // The combined transform will be used in tiledBackingStoreVisibleRect.
</span><span class="cx">     setNeedsVisibleRectAdjustment();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstransformsAffineTransformcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -104,11 +104,11 @@
</span><span class="cx">     return std::isfinite(determinant) &amp;&amp; determinant != 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;AffineTransform&gt; AffineTransform::inverse() const
</del><ins>+std::optional&lt;AffineTransform&gt; AffineTransform::inverse() const
</ins><span class="cx"> {
</span><span class="cx">     double determinant = det(m_transform);
</span><span class="cx">     if (!std::isfinite(determinant) || determinant == 0)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     AffineTransform result;
</span><span class="cx">     if (isIdentityOrTranslation()) {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstransformsAffineTransformh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx">     WEBCORE_EXPORT double yScale() const;
</span><span class="cx"> 
</span><span class="cx">     bool isInvertible() const; // If you call this this, you're probably doing it wrong.
</span><del>-    WEBCORE_EXPORT Optional&lt;AffineTransform&gt; inverse() const;
</del><ins>+    WEBCORE_EXPORT std::optional&lt;AffineTransform&gt; inverse() const;
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void blend(const AffineTransform&amp; from, double progress);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstransformsTransformStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/transforms/TransformState.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/transforms/TransformState.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/transforms/TransformState.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx">     if (m_direction == ApplyTransformDirection)
</span><span class="cx">         return m_accumulatedTransform-&gt;mapPoint(point);
</span><span class="cx"> 
</span><del>-    return m_accumulatedTransform-&gt;inverse().valueOr(TransformationMatrix()).projectPoint(point, wasClamped);
</del><ins>+    return m_accumulatedTransform-&gt;inverse().value_or(TransformationMatrix()).projectPoint(point, wasClamped);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> FloatQuad TransformState::mappedQuad(bool* wasClamped) const
</span><span class="lines">@@ -183,13 +183,13 @@
</span><span class="cx">     return quad;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatQuad&gt; TransformState::mappedSecondaryQuad(bool* wasClamped) const
</del><ins>+std::optional&lt;FloatQuad&gt; TransformState::mappedSecondaryQuad(bool* wasClamped) const
</ins><span class="cx"> {
</span><span class="cx">     if (wasClamped)
</span><span class="cx">         *wasClamped = false;
</span><span class="cx"> 
</span><span class="cx">     if (!m_lastPlanarSecondaryQuad)
</span><del>-        return Optional&lt;FloatQuad&gt;();
</del><ins>+        return std::optional&lt;FloatQuad&gt;();
</ins><span class="cx"> 
</span><span class="cx">     FloatQuad quad = *m_lastPlanarSecondaryQuad;
</span><span class="cx">     mapQuad(quad, m_direction, wasClamped);
</span><span class="lines">@@ -218,7 +218,7 @@
</span><span class="cx">     if (direction == ApplyTransformDirection)
</span><span class="cx">         quad = m_accumulatedTransform-&gt;mapQuad(quad);
</span><span class="cx"> 
</span><del>-    quad = m_accumulatedTransform-&gt;inverse().valueOr(TransformationMatrix()).projectQuad(quad, wasClamped);
</del><ins>+    quad = m_accumulatedTransform-&gt;inverse().value_or(TransformationMatrix()).projectQuad(quad, wasClamped);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TransformState::flattenWithTransform(const TransformationMatrix&amp; t, bool* wasClamped)
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">     } else {
</span><del>-        TransformationMatrix inverseTransform = t.inverse().valueOr(TransformationMatrix());
</del><ins>+        TransformationMatrix inverseTransform = t.inverse().value_or(TransformationMatrix());
</ins><span class="cx">         if (m_mapPoint)
</span><span class="cx">             m_lastPlanarPoint = inverseTransform.projectPoint(m_lastPlanarPoint);
</span><span class="cx">         if (m_mapQuad) {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstransformsTransformStateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/transforms/TransformState.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/transforms/TransformState.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/transforms/TransformState.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx">         m_lastPlanarQuad = quad;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    // FIXME: webkit.org/b/144226 use Optional&lt;FloatQuad&gt;. 
</del><ins>+    // FIXME: webkit.org/b/144226 use std::optional&lt;FloatQuad&gt;. 
</ins><span class="cx">     void setSecondaryQuad(const FloatQuad* quad)
</span><span class="cx">     {
</span><span class="cx">         // We must be in a flattened state (no accumulated offset) when setting this secondary quad.
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">             m_lastPlanarSecondaryQuad = nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    // FIXME: webkit.org/b/144226 use Optional&lt;FloatQuad&gt;.
</del><ins>+    // FIXME: webkit.org/b/144226 use std::optional&lt;FloatQuad&gt;.
</ins><span class="cx">     void setLastPlanarSecondaryQuad(const FloatQuad*);
</span><span class="cx"> 
</span><span class="cx">     void move(LayoutUnit x, LayoutUnit y, TransformAccumulation accumulate = FlattenTransform)
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx">     // Return the point or quad mapped through the current transform
</span><span class="cx">     FloatPoint mappedPoint(bool* wasClamped = nullptr) const;
</span><span class="cx">     FloatQuad mappedQuad(bool* wasClamped = nullptr) const;
</span><del>-    Optional&lt;FloatQuad&gt; mappedSecondaryQuad(bool* wasClamped = nullptr) const;
</del><ins>+    std::optional&lt;FloatQuad&gt; mappedSecondaryQuad(bool* wasClamped = nullptr) const;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     void translateTransform(const LayoutSize&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstransformsTransformationMatrixcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1445,7 +1445,7 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;TransformationMatrix&gt; TransformationMatrix::inverse() const
</del><ins>+std::optional&lt;TransformationMatrix&gt; TransformationMatrix::inverse() const
</ins><span class="cx"> {
</span><span class="cx">     if (isIdentityOrTranslation()) {
</span><span class="cx">         // identity matrix
</span><span class="lines">@@ -1463,7 +1463,7 @@
</span><span class="cx">     // FIXME: Use LU decomposition to apply the inverse instead of calculating the inverse explicitly.
</span><span class="cx">     // Calculating the inverse of a 4x4 matrix using cofactors is numerically unstable and unnecessary to apply the inverse transformation to a point.
</span><span class="cx">     if (!WebCore::inverse(m_matrix, invMat.m_matrix))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return invMat;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstransformsTransformationMatrixh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -258,7 +258,7 @@
</span><span class="cx">     WEBCORE_EXPORT static TransformationMatrix rectToRect(const FloatRect&amp;, const FloatRect&amp;);
</span><span class="cx"> 
</span><span class="cx">     bool isInvertible() const; // If you call this this, you're probably doing it wrong.
</span><del>-    WEBCORE_EXPORT Optional&lt;TransformationMatrix&gt; inverse() const;
</del><ins>+    WEBCORE_EXPORT std::optional&lt;TransformationMatrix&gt; inverse() const;
</ins><span class="cx"> 
</span><span class="cx">     // Decompose the matrix into its component parts.
</span><span class="cx">     struct Decomposed2Type {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicswinImageBufferDirect2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/win/ImageBufferDirect2D.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/win/ImageBufferDirect2D.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/win/ImageBufferDirect2D.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -254,7 +254,7 @@
</span><span class="cx">     m_data.putData(source, scaledSourceSize, scaledSourceRect, destPoint, internalSize(), context().isAcceleratedContext(), multiplied == Unmultiplied, 1);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String ImageBuffer::toDataURL(const String&amp;, Optional&lt;double&gt;, CoordinateSystem) const
</del><ins>+String ImageBuffer::toDataURL(const String&amp;, std::optional&lt;double&gt;, CoordinateSystem) const
</ins><span class="cx"> {
</span><span class="cx">     notImplemented();
</span><span class="cx">     return ASCIILiteral(&quot;data:,&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicswinImageDecoderDirect2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/win/ImageDecoderDirect2D.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/win/ImageDecoderDirect2D.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/win/ImageDecoderDirect2D.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">     return RepetitionCountNone;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;IntPoint&gt; ImageDecoder::hotSpot() const
</del><ins>+std::optional&lt;IntPoint&gt; ImageDecoder::hotSpot() const
</ins><span class="cx"> {
</span><span class="cx">     return IntPoint();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicswinImageDecoderDirect2Dh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/win/ImageDecoderDirect2D.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/win/ImageDecoderDirect2D.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/win/ImageDecoderDirect2D.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     size_t frameCount() const;
</span><span class="cx"> 
</span><span class="cx">     RepetitionCount repetitionCount() const;
</span><del>-    Optional&lt;IntPoint&gt; hotSpot() const;
</del><ins>+    std::optional&lt;IntPoint&gt; hotSpot() const;
</ins><span class="cx">     
</span><span class="cx">     IntSize frameSizeAtIndex(size_t, SubsamplingLevel = SubsamplingLevel::Default) const;
</span><span class="cx">     bool frameIsCompleteAtIndex(size_t) const;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsx11PlatformDisplayX11cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">     return m_supportsXComposite.value();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool PlatformDisplayX11::supportsXDamage(Optional&lt;int&gt;&amp; damageEventBase) const
</del><ins>+bool PlatformDisplayX11::supportsXDamage(std::optional&lt;int&gt;&amp; damageEventBase) const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_supportsXDamage) {
</span><span class="cx">         m_supportsXDamage = false;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsx11PlatformDisplayX11h"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> 
</span><span class="cx">     Display* native() const { return m_display; }
</span><span class="cx">     bool supportsXComposite() const;
</span><del>-    bool supportsXDamage(Optional&lt;int&gt;&amp; damageEventBase) const;
</del><ins>+    bool supportsXDamage(std::optional&lt;int&gt;&amp; damageEventBase) const;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     Type type() const override { return PlatformDisplay::Type::X11; }
</span><span class="lines">@@ -54,9 +54,9 @@
</span><span class="cx"> 
</span><span class="cx">     Display* m_display;
</span><span class="cx">     bool m_ownedDisplay;
</span><del>-    mutable Optional&lt;bool&gt; m_supportsXComposite;
-    mutable Optional&lt;bool&gt; m_supportsXDamage;
-    mutable Optional&lt;int&gt; m_damageEventBase;
</del><ins>+    mutable std::optional&lt;bool&gt; m_supportsXComposite;
+    mutable std::optional&lt;bool&gt; m_supportsXDamage;
+    mutable std::optional&lt;int&gt; m_damageEventBase;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformimagedecodersImageDecoderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/image-decoders/ImageDecoder.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/image-decoders/ImageDecoder.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/image-decoders/ImageDecoder.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx"> 
</span><span class="cx">         // If the image has a cursor hot-spot, stores it in the argument
</span><span class="cx">         // and returns true. Otherwise returns false.
</span><del>-        virtual Optional&lt;IntPoint&gt; hotSpot() const { return Nullopt; }
</del><ins>+        virtual std::optional&lt;IntPoint&gt; hotSpot() const { return std::nullopt; }
</ins><span class="cx"> 
</span><span class="cx">     protected:
</span><span class="cx">         void prepareScaleDataIfNecessary();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformimagedecodersicoICOImageDecodercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx">     return ImageDecoder::setFailed();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;IntPoint&gt; ICOImageDecoder::hotSpot() const
</del><ins>+std::optional&lt;IntPoint&gt; ICOImageDecoder::hotSpot() const
</ins><span class="cx"> {
</span><span class="cx">     // When unspecified, the default frame is always frame 0. This is consistent with
</span><span class="cx">     // BitmapImage where currentFrame() starts at 0 and only increases when animation is
</span><span class="lines">@@ -127,10 +127,10 @@
</span><span class="cx">     return hotSpotAtIndex(0);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;IntPoint&gt; ICOImageDecoder::hotSpotAtIndex(size_t index) const
</del><ins>+std::optional&lt;IntPoint&gt; ICOImageDecoder::hotSpotAtIndex(size_t index) const
</ins><span class="cx"> {
</span><span class="cx">     if (index &gt;= m_dirEntries.size() || m_fileType != CURSOR)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return m_dirEntries[index].m_hotSpot;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformimagedecodersicoICOImageDecoderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">         // avoid accessing deleted memory, especially when calling this from
</span><span class="cx">         // inside BMPImageReader!
</span><span class="cx">         bool setFailed() override;
</span><del>-        Optional&lt;IntPoint&gt; hotSpot() const override;
</del><ins>+        std::optional&lt;IntPoint&gt; hotSpot() const override;
</ins><span class="cx"> 
</span><span class="cx">     private:
</span><span class="cx">         enum ImageType {
</span><span class="lines">@@ -115,8 +115,8 @@
</span><span class="cx">         // could be decoded.
</span><span class="cx">         bool processDirectoryEntries();
</span><span class="cx"> 
</span><del>-        // Returns the hot-spot for |index|, returns Nullopt if there is none.
-        Optional&lt;IntPoint&gt; hotSpotAtIndex(size_t) const;
</del><ins>+        // Returns the hot-spot for |index|, returns std::nullopt if there is none.
+        std::optional&lt;IntPoint&gt; hotSpotAtIndex(size_t) const;
</ins><span class="cx"> 
</span><span class="cx">         // Reads and returns a directory entry from the current offset into
</span><span class="cx">         // |data|.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformimageencodersJPEGImageEncodercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     longjmp(err-&gt;m_setjmpBuffer, -1);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize&amp; size, Vector&lt;char&gt;&amp; jpegData, Optional&lt;double&gt; quality)
</del><ins>+bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize&amp; size, Vector&lt;char&gt;&amp; jpegData, std::optional&lt;double&gt; quality)
</ins><span class="cx"> {
</span><span class="cx">     struct jpeg_compress_struct compressData;
</span><span class="cx">     JPEGCompressErrorMgr err;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformimageencodersJPEGImageEncoderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -27,6 +27,6 @@
</span><span class="cx"> 
</span><span class="cx"> class IntSize;
</span><span class="cx"> 
</span><del>-bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize&amp;, Vector&lt;char&gt;&amp; jpegData, Optional&lt;double&gt; quality = Nullopt);
</del><ins>+bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize&amp;, Vector&lt;char&gt;&amp; jpegData, std::optional&lt;double&gt; quality = std::nullopt);
</ins><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosLegacyTileCacheh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/LegacyTileCache.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/LegacyTileCache.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/ios/LegacyTileCache.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx">     CALayer* hostLayer() const;
</span><span class="cx">     unsigned tileCapacityForGrid(LegacyTileGrid*);
</span><span class="cx">     Color colorForGridTileBorder(LegacyTileGrid*) const;
</span><del>-    void setOverrideVisibleRect(Optional&lt;FloatRect&gt;);
</del><ins>+    void setOverrideVisibleRect(std::optional&lt;FloatRect&gt;);
</ins><span class="cx"> 
</span><span class="cx">     void doPendingRepaints();
</span><span class="cx"> 
</span><span class="lines">@@ -185,7 +185,7 @@
</span><span class="cx">     // Ensure there are no async calls on a dead tile cache.
</span><span class="cx">     RetainPtr&lt;LegacyTileCacheTombstone&gt; m_tombstone;
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; m_overrideVisibleRect;
</del><ins>+    std::optional&lt;FloatRect&gt; m_overrideVisibleRect;
</ins><span class="cx"> 
</span><span class="cx">     TilingMode m_tilingMode;
</span><span class="cx">     TilingDirection m_tilingDirection;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosLegacyTileCachemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/LegacyTileCache.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/LegacyTileCache.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/ios/LegacyTileCache.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">     return [layer convertRect:[m_window extendedVisibleRect] fromLayer:hostLayer()];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void LegacyTileCache::setOverrideVisibleRect(Optional&lt;FloatRect&gt; rect)
</del><ins>+void LegacyTileCache::setOverrideVisibleRect(std::optional&lt;FloatRect&gt; rect)
</ins><span class="cx"> {
</span><span class="cx">     m_overrideVisibleRect = rect;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosLegacyTileLayermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/LegacyTileLayer.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/LegacyTileLayer.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/ios/LegacyTileLayer.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> 
</span><span class="cx">     [super renderInContext:context];
</span><span class="cx"> 
</span><del>-    _tileGrid-&gt;tileCache().setOverrideVisibleRect(Nullopt);
</del><ins>+    _tileGrid-&gt;tileCache().setOverrideVisibleRect(std::nullopt);
</ins><span class="cx"> }
</span><span class="cx"> @end
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformlinuxMemoryPressureHandlerLinuxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx"> 
</span><span class="cx"> MemoryPressureHandler::EventFDPoller::~EventFDPoller()
</span><span class="cx"> {
</span><del>-    m_fd = Nullopt;
</del><ins>+    m_fd = std::nullopt;
</ins><span class="cx"> #if USE(GLIB)
</span><span class="cx">     g_source_destroy(m_source.get());
</span><span class="cx"> #else
</span><span class="lines">@@ -164,11 +164,11 @@
</span><span class="cx"> 
</span><span class="cx">     if (m_eventFD) {
</span><span class="cx">         close(m_eventFD.value());
</span><del>-        m_eventFD = Nullopt;
</del><ins>+        m_eventFD = std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     if (m_pressureLevelFD) {
</span><span class="cx">         close(m_pressureLevelFD.value());
</span><del>-        m_pressureLevelFD = Nullopt;
</del><ins>+        m_pressureLevelFD = std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -250,12 +250,12 @@
</span><span class="cx"> 
</span><span class="cx">     if (m_pressureLevelFD) {
</span><span class="cx">         close(m_pressureLevelFD.value());
</span><del>-        m_pressureLevelFD = Nullopt;
</del><ins>+        m_pressureLevelFD = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         // Only close the eventFD used for cgroups.
</span><span class="cx">         if (m_eventFD) {
</span><span class="cx">             close(m_eventFD.value());
</span><del>-            m_eventFD = Nullopt;
</del><ins>+            m_eventFD = std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacThemeMach"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ThemeMac.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ThemeMac.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/mac/ThemeMac.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx">     
</span><span class="cx">     int baselinePositionAdjustment(ControlPart) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;FontCascadeDescription&gt; controlFont(ControlPart, const FontCascade&amp;, float zoomFactor) const override;
</del><ins>+    std::optional&lt;FontCascadeDescription&gt; controlFont(ControlPart, const FontCascade&amp;, float zoomFactor) const override;
</ins><span class="cx">     
</span><span class="cx">     LengthSize controlSize(ControlPart, const FontCascade&amp;, const LengthSize&amp;, float zoomFactor) const override;
</span><span class="cx">     LengthSize minimumControlSize(ControlPart, const FontCascade&amp;, float zoomFactor) const override;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ThemeMac.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ThemeMac.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/mac/ThemeMac.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -686,7 +686,7 @@
</span><span class="cx">     return Theme::baselinePositionAdjustment(part);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FontCascadeDescription&gt; ThemeMac::controlFont(ControlPart part, const FontCascade&amp; font, float zoomFactor) const
</del><ins>+std::optional&lt;FontCascadeDescription&gt; ThemeMac::controlFont(ControlPart part, const FontCascade&amp; font, float zoomFactor) const
</ins><span class="cx"> {
</span><span class="cx">     switch (part) {
</span><span class="cx">         case PushButtonPart: {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaConstraintscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/MediaConstraints.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaConstraints.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/mediastream/MediaConstraints.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -219,7 +219,7 @@
</span><span class="cx">         return;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaTrackConstraintSetMap::set(MediaConstraintType constraintType, Optional&lt;IntConstraint&gt;&amp;&amp; constraint)
</del><ins>+void MediaTrackConstraintSetMap::set(MediaConstraintType constraintType, std::optional&lt;IntConstraint&gt;&amp;&amp; constraint)
</ins><span class="cx"> {
</span><span class="cx">     switch (constraintType) {
</span><span class="cx">     case MediaConstraintType::Width:
</span><span class="lines">@@ -248,7 +248,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaTrackConstraintSetMap::set(MediaConstraintType constraintType, Optional&lt;DoubleConstraint&gt;&amp;&amp; constraint)
</del><ins>+void MediaTrackConstraintSetMap::set(MediaConstraintType constraintType, std::optional&lt;DoubleConstraint&gt;&amp;&amp; constraint)
</ins><span class="cx"> {
</span><span class="cx">     switch (constraintType) {
</span><span class="cx">     case MediaConstraintType::AspectRatio:
</span><span class="lines">@@ -275,7 +275,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaTrackConstraintSetMap::set(MediaConstraintType constraintType, Optional&lt;BooleanConstraint&gt;&amp;&amp; constraint)
</del><ins>+void MediaTrackConstraintSetMap::set(MediaConstraintType constraintType, std::optional&lt;BooleanConstraint&gt;&amp;&amp; constraint)
</ins><span class="cx"> {
</span><span class="cx">     switch (constraintType) {
</span><span class="cx">     case MediaConstraintType::EchoCancellation:
</span><span class="lines">@@ -298,7 +298,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaTrackConstraintSetMap::set(MediaConstraintType constraintType, Optional&lt;StringConstraint&gt;&amp;&amp; constraint)
</del><ins>+void MediaTrackConstraintSetMap::set(MediaConstraintType constraintType, std::optional&lt;StringConstraint&gt;&amp;&amp; constraint)
</ins><span class="cx"> {
</span><span class="cx">     switch (constraintType) {
</span><span class="cx">     case MediaConstraintType::FacingMode:
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaConstraintsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/MediaConstraints.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaConstraints.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/mediastream/MediaConstraints.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -341,10 +341,10 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;ValueType&gt; m_min;
-    Optional&lt;ValueType&gt; m_max;
-    Optional&lt;ValueType&gt; m_exact;
-    Optional&lt;ValueType&gt; m_ideal;
</del><ins>+    std::optional&lt;ValueType&gt; m_min;
+    std::optional&lt;ValueType&gt; m_max;
+    std::optional&lt;ValueType&gt; m_exact;
+    std::optional&lt;ValueType&gt; m_ideal;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class IntConstraint final : public NumericConstraint&lt;int&gt; {
</span><span class="lines">@@ -474,8 +474,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Optional&lt;bool&gt; m_exact;
-    Optional&lt;bool&gt; m_ideal;
</del><ins>+    std::optional&lt;bool&gt; m_exact;
+    std::optional&lt;bool&gt; m_ideal;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class StringConstraint : public MediaConstraint {
</span><span class="lines">@@ -583,25 +583,25 @@
</span><span class="cx">     bool isEmpty() const;
</span><span class="cx">     WEBCORE_EXPORT size_t size() const;
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void set(MediaConstraintType, Optional&lt;IntConstraint&gt;&amp;&amp;);
-    WEBCORE_EXPORT void set(MediaConstraintType, Optional&lt;DoubleConstraint&gt;&amp;&amp;);
-    WEBCORE_EXPORT void set(MediaConstraintType, Optional&lt;BooleanConstraint&gt;&amp;&amp;);
-    WEBCORE_EXPORT void set(MediaConstraintType, Optional&lt;StringConstraint&gt;&amp;&amp;);
</del><ins>+    WEBCORE_EXPORT void set(MediaConstraintType, std::optional&lt;IntConstraint&gt;&amp;&amp;);
+    WEBCORE_EXPORT void set(MediaConstraintType, std::optional&lt;DoubleConstraint&gt;&amp;&amp;);
+    WEBCORE_EXPORT void set(MediaConstraintType, std::optional&lt;BooleanConstraint&gt;&amp;&amp;);
+    WEBCORE_EXPORT void set(MediaConstraintType, std::optional&lt;StringConstraint&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><del>-    Optional&lt;IntConstraint&gt; width() const { return m_width; }
-    Optional&lt;IntConstraint&gt; height() const { return m_height; }
-    Optional&lt;IntConstraint&gt; sampleRate() const { return m_sampleRate; }
-    Optional&lt;IntConstraint&gt; sampleSize() const { return m_sampleSize; }
</del><ins>+    std::optional&lt;IntConstraint&gt; width() const { return m_width; }
+    std::optional&lt;IntConstraint&gt; height() const { return m_height; }
+    std::optional&lt;IntConstraint&gt; sampleRate() const { return m_sampleRate; }
+    std::optional&lt;IntConstraint&gt; sampleSize() const { return m_sampleSize; }
</ins><span class="cx"> 
</span><del>-    Optional&lt;DoubleConstraint&gt; aspectRatio() const { return m_aspectRatio; }
-    Optional&lt;DoubleConstraint&gt; frameRate() const { return m_frameRate; }
-    Optional&lt;DoubleConstraint&gt; volume() const { return m_volume; }
</del><ins>+    std::optional&lt;DoubleConstraint&gt; aspectRatio() const { return m_aspectRatio; }
+    std::optional&lt;DoubleConstraint&gt; frameRate() const { return m_frameRate; }
+    std::optional&lt;DoubleConstraint&gt; volume() const { return m_volume; }
</ins><span class="cx"> 
</span><del>-    Optional&lt;BooleanConstraint&gt; echoCancellation() const { return m_echoCancellation; }
</del><ins>+    std::optional&lt;BooleanConstraint&gt; echoCancellation() const { return m_echoCancellation; }
</ins><span class="cx"> 
</span><del>-    Optional&lt;StringConstraint&gt; facingMode() const { return m_facingMode; }
-    Optional&lt;StringConstraint&gt; deviceId() const { return m_deviceId; }
-    Optional&lt;StringConstraint&gt; groupId() const { return m_groupId; }
</del><ins>+    std::optional&lt;StringConstraint&gt; facingMode() const { return m_facingMode; }
+    std::optional&lt;StringConstraint&gt; deviceId() const { return m_deviceId; }
+    std::optional&lt;StringConstraint&gt; groupId() const { return m_groupId; }
</ins><span class="cx"> 
</span><span class="cx">     template &lt;class Encoder&gt; void encode(Encoder&amp; encoder) const
</span><span class="cx">     {
</span><span class="lines">@@ -653,20 +653,20 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Optional&lt;IntConstraint&gt; m_width;
-    Optional&lt;IntConstraint&gt; m_height;
-    Optional&lt;IntConstraint&gt; m_sampleRate;
-    Optional&lt;IntConstraint&gt; m_sampleSize;
</del><ins>+    std::optional&lt;IntConstraint&gt; m_width;
+    std::optional&lt;IntConstraint&gt; m_height;
+    std::optional&lt;IntConstraint&gt; m_sampleRate;
+    std::optional&lt;IntConstraint&gt; m_sampleSize;
</ins><span class="cx"> 
</span><del>-    Optional&lt;DoubleConstraint&gt; m_aspectRatio;
-    Optional&lt;DoubleConstraint&gt; m_frameRate;
-    Optional&lt;DoubleConstraint&gt; m_volume;
</del><ins>+    std::optional&lt;DoubleConstraint&gt; m_aspectRatio;
+    std::optional&lt;DoubleConstraint&gt; m_frameRate;
+    std::optional&lt;DoubleConstraint&gt; m_volume;
</ins><span class="cx"> 
</span><del>-    Optional&lt;BooleanConstraint&gt; m_echoCancellation;
</del><ins>+    std::optional&lt;BooleanConstraint&gt; m_echoCancellation;
</ins><span class="cx"> 
</span><del>-    Optional&lt;StringConstraint&gt; m_facingMode;
-    Optional&lt;StringConstraint&gt; m_deviceId;
-    Optional&lt;StringConstraint&gt; m_groupId;
</del><ins>+    std::optional&lt;StringConstraint&gt; m_facingMode;
+    std::optional&lt;StringConstraint&gt; m_deviceId;
+    std::optional&lt;StringConstraint&gt; m_groupId;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class FlattenedConstraint {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -150,13 +150,13 @@
</span><span class="cx">     stop(callingObserver);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool RealtimeMediaSource::supportsSizeAndFrameRate(Optional&lt;int&gt;, Optional&lt;int&gt;, Optional&lt;double&gt;)
</del><ins>+bool RealtimeMediaSource::supportsSizeAndFrameRate(std::optional&lt;int&gt;, std::optional&lt;int&gt;, std::optional&lt;double&gt;)
</ins><span class="cx"> {
</span><span class="cx">     // The size and frame rate are within the capability limits, so they are supported.
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool RealtimeMediaSource::supportsSizeAndFrameRate(Optional&lt;IntConstraint&gt; widthConstraint, Optional&lt;IntConstraint&gt; heightConstraint, Optional&lt;DoubleConstraint&gt; frameRateConstraint, String&amp; badConstraint)
</del><ins>+bool RealtimeMediaSource::supportsSizeAndFrameRate(std::optional&lt;IntConstraint&gt; widthConstraint, std::optional&lt;IntConstraint&gt; heightConstraint, std::optional&lt;DoubleConstraint&gt; frameRateConstraint, String&amp; badConstraint)
</ins><span class="cx"> {
</span><span class="cx">     if (!widthConstraint &amp;&amp; !heightConstraint &amp;&amp; !frameRateConstraint)
</span><span class="cx">         return true;
</span><span class="lines">@@ -164,7 +164,7 @@
</span><span class="cx">     ASSERT(this-&gt;capabilities());
</span><span class="cx">     RealtimeMediaSourceCapabilities&amp; capabilities = *this-&gt;capabilities();
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; width;
</del><ins>+    std::optional&lt;int&gt; width;
</ins><span class="cx">     if (widthConstraint &amp;&amp; capabilities.supportsWidth()) {
</span><span class="cx">         if (std::isinf(fitnessDistance(*widthConstraint))) {
</span><span class="cx">             badConstraint = widthConstraint-&gt;name();
</span><span class="lines">@@ -175,7 +175,7 @@
</span><span class="cx">         width = widthConstraint-&gt;valueForCapabilityRange(size().width(), range.rangeMin().asInt, range.rangeMax().asInt);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; height;
</del><ins>+    std::optional&lt;int&gt; height;
</ins><span class="cx">     if (heightConstraint &amp;&amp; capabilities.supportsHeight()) {
</span><span class="cx">         if (std::isinf(fitnessDistance(*heightConstraint))) {
</span><span class="cx">             badConstraint = heightConstraint-&gt;name();
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx">         height = heightConstraint-&gt;valueForCapabilityRange(size().height(), range.rangeMin().asInt, range.rangeMax().asInt);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;double&gt; frameRate;
</del><ins>+    std::optional&lt;double&gt; frameRate;
</ins><span class="cx">     if (frameRateConstraint &amp;&amp; capabilities.supportsFrameRate()) {
</span><span class="cx">         if (std::isinf(fitnessDistance(*frameRateConstraint))) {
</span><span class="cx">             badConstraint = frameRateConstraint-&gt;name();
</span><span class="lines">@@ -345,7 +345,7 @@
</span><span class="cx">         (source-&gt;*applier)(value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RealtimeMediaSource::applySizeAndFrameRate(Optional&lt;int&gt; width, Optional&lt;int&gt; height, Optional&lt;double&gt; frameRate)
</del><ins>+void RealtimeMediaSource::applySizeAndFrameRate(std::optional&lt;int&gt; width, std::optional&lt;int&gt; height, std::optional&lt;double&gt; frameRate)
</ins><span class="cx"> {
</span><span class="cx">     if (width)
</span><span class="cx">         setWidth(width.value());
</span><span class="lines">@@ -589,7 +589,7 @@
</span><span class="cx"> 
</span><span class="cx">     RealtimeMediaSourceCapabilities&amp; capabilities = *this-&gt;capabilities();
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; width;
</del><ins>+    std::optional&lt;int&gt; width;
</ins><span class="cx">     if (const MediaConstraint* constraint = constraints.find(MediaConstraintType::Width)) {
</span><span class="cx">         ASSERT(constraint-&gt;isInt());
</span><span class="cx">         if (capabilities.supportsWidth()) {
</span><span class="lines">@@ -598,7 +598,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; height;
</del><ins>+    std::optional&lt;int&gt; height;
</ins><span class="cx">     if (const MediaConstraint* constraint = constraints.find(MediaConstraintType::Height)) {
</span><span class="cx">         ASSERT(constraint-&gt;isInt());
</span><span class="cx">         if (capabilities.supportsHeight()) {
</span><span class="lines">@@ -607,7 +607,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;double&gt; frameRate;
</del><ins>+    std::optional&lt;double&gt; frameRate;
</ins><span class="cx">     if (const MediaConstraint* constraint = constraints.find(MediaConstraintType::FrameRate)) {
</span><span class="cx">         ASSERT(constraint-&gt;isDouble());
</span><span class="cx">         if (capabilities.supportsFrameRate()) {
</span><span class="lines">@@ -628,7 +628,7 @@
</span><span class="cx">     commitConfiguration();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;std::pair&lt;String, String&gt;&gt; RealtimeMediaSource::applyConstraints(const MediaConstraints&amp; constraints)
</del><ins>+std::optional&lt;std::pair&lt;String, String&gt;&gt; RealtimeMediaSource::applyConstraints(const MediaConstraints&amp; constraints)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(constraints.isValid());
</span><span class="cx"> 
</span><span class="lines">@@ -638,7 +638,7 @@
</span><span class="cx">         return { { failedConstraint, ASCIILiteral(&quot;Constraint not supported&quot;) } };
</span><span class="cx"> 
</span><span class="cx">     applyConstraints(candidates);
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RealtimeMediaSource::applyConstraints(const MediaConstraints&amp; constraints, SuccessHandler successHandler, FailureHandler failureHandler)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">     using SuccessHandler = std::function&lt;void()&gt;;
</span><span class="cx">     using FailureHandler = std::function&lt;void(const String&amp; badConstraint, const String&amp; errorString)&gt;;
</span><span class="cx">     void applyConstraints(const MediaConstraints&amp;, SuccessHandler, FailureHandler);
</span><del>-    Optional&lt;std::pair&lt;String, String&gt;&gt; applyConstraints(const MediaConstraints&amp;);
</del><ins>+    std::optional&lt;std::pair&lt;String, String&gt;&gt; applyConstraints(const MediaConstraints&amp;);
</ins><span class="cx"> 
</span><span class="cx">     virtual bool supportsConstraints(const MediaConstraints&amp;, String&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -174,11 +174,11 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool selectSettings(const MediaConstraints&amp;, FlattenedConstraint&amp;, String&amp;);
</span><span class="cx">     virtual double fitnessDistance(const MediaConstraint&amp;);
</span><del>-    virtual bool supportsSizeAndFrameRate(Optional&lt;IntConstraint&gt; width, Optional&lt;IntConstraint&gt; height, Optional&lt;DoubleConstraint&gt;, String&amp;);
-    virtual bool supportsSizeAndFrameRate(Optional&lt;int&gt; width, Optional&lt;int&gt; height, Optional&lt;double&gt;);
</del><ins>+    virtual bool supportsSizeAndFrameRate(std::optional&lt;IntConstraint&gt; width, std::optional&lt;IntConstraint&gt; height, std::optional&lt;DoubleConstraint&gt;, String&amp;);
+    virtual bool supportsSizeAndFrameRate(std::optional&lt;int&gt; width, std::optional&lt;int&gt; height, std::optional&lt;double&gt;);
</ins><span class="cx">     virtual void applyConstraint(const MediaConstraint&amp;);
</span><span class="cx">     virtual void applyConstraints(const FlattenedConstraint&amp;);
</span><del>-    virtual void applySizeAndFrameRate(Optional&lt;int&gt; width, Optional&lt;int&gt; height, Optional&lt;double&gt;);
</del><ins>+    virtual void applySizeAndFrameRate(std::optional&lt;int&gt; width, std::optional&lt;int&gt; height, std::optional&lt;double&gt;);
</ins><span class="cx"> 
</span><span class="cx">     bool m_muted { false };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -59,13 +59,13 @@
</span><span class="cx"> 
</span><span class="cx">     void updateSettings(RealtimeMediaSourceSettings&amp;) final;
</span><span class="cx"> 
</span><del>-    void applySizeAndFrameRate(Optional&lt;int&gt; width, Optional&lt;int&gt; height, Optional&lt;double&gt;) final;
</del><ins>+    void applySizeAndFrameRate(std::optional&lt;int&gt; width, std::optional&lt;int&gt; height, std::optional&lt;double&gt;) final;
</ins><span class="cx">     bool applySize(const IntSize&amp;) final;
</span><span class="cx">     bool applyFrameRate(double) final;
</span><span class="cx">     bool setPreset(NSString*);
</span><span class="cx"> 
</span><del>-    NSString *bestSessionPresetForVideoDimensions(Optional&lt;int&gt; width, Optional&lt;int&gt; height) const;
-    bool supportsSizeAndFrameRate(Optional&lt;int&gt; width, Optional&lt;int&gt; height, Optional&lt;double&gt;) final;
</del><ins>+    NSString *bestSessionPresetForVideoDimensions(std::optional&lt;int&gt; width, std::optional&lt;int&gt; height) const;
+    bool supportsSizeAndFrameRate(std::optional&lt;int&gt; width, std::optional&lt;int&gt; height, std::optional&lt;double&gt;) final;
</ins><span class="cx"> 
</span><span class="cx">     void initializeCapabilities(RealtimeMediaSourceCapabilities&amp;) final;
</span><span class="cx">     void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&amp;) final;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourcemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -362,7 +362,7 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AVVideoCaptureSource::applySizeAndFrameRate(Optional&lt;int&gt; width, Optional&lt;int&gt; height, Optional&lt;double&gt; frameRate)
</del><ins>+void AVVideoCaptureSource::applySizeAndFrameRate(std::optional&lt;int&gt; width, std::optional&lt;int&gt; height, std::optional&lt;double&gt; frameRate)
</ins><span class="cx"> {
</span><span class="cx">     setPreset(bestSessionPresetForVideoDimensions(WTFMove(width), WTFMove(height)));
</span><span class="cx"> 
</span><span class="lines">@@ -541,7 +541,7 @@
</span><span class="cx">     return AVVideoSourcePreview::create(session(), device(), this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-NSString *AVVideoCaptureSource::bestSessionPresetForVideoDimensions(Optional&lt;int&gt; width, Optional&lt;int&gt; height) const
</del><ins>+NSString *AVVideoCaptureSource::bestSessionPresetForVideoDimensions(std::optional&lt;int&gt; width, std::optional&lt;int&gt; height) const
</ins><span class="cx"> {
</span><span class="cx">     if (!width &amp;&amp; !height)
</span><span class="cx">         return nil;
</span><span class="lines">@@ -565,7 +565,7 @@
</span><span class="cx">     return nil;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool AVVideoCaptureSource::supportsSizeAndFrameRate(Optional&lt;int&gt; width, Optional&lt;int&gt; height, Optional&lt;double&gt; frameRate)
</del><ins>+bool AVVideoCaptureSource::supportsSizeAndFrameRate(std::optional&lt;int&gt; width, std::optional&lt;int&gt; height, std::optional&lt;double&gt; frameRate)
</ins><span class="cx"> {
</span><span class="cx">     if (!height &amp;&amp; !width &amp;&amp; !frameRate)
</span><span class="cx">         return true;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcMediaEndpointOwrh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx">     void ensureTransportAgentAndTransceivers(bool isInitiator, const Vector&lt;TransceiverConfig&gt;&amp;);
</span><span class="cx">     void internalAddRemoteCandidate(OwrSession*, const IceCandidate&amp;, const String&amp; ufrag, const String&amp; password);
</span><span class="cx"> 
</span><del>-    Optional&lt;MediaEndpointConfiguration&gt; m_configuration;
</del><ins>+    std::optional&lt;MediaEndpointConfiguration&gt; m_configuration;
</ins><span class="cx">     GRegex* m_helperServerRegEx;
</span><span class="cx"> 
</span><span class="cx">     OwrTransportAgent* m_transportAgent;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkCacheValidationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/CacheValidation.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/CacheValidation.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/CacheValidation.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">     // No compensation for latency as that is not terribly important in practice.
</span><span class="cx">     auto dateValue = response.date();
</span><span class="cx">     auto apparentAge = dateValue ? std::max(0us, duration_cast&lt;microseconds&gt;(responseTime - *dateValue)) : 0us;
</span><del>-    auto ageValue = response.age().valueOr(0us);
</del><ins>+    auto ageValue = response.age().value_or(0us);
</ins><span class="cx">     auto correctedInitialAge = std::max(apparentAge, ageValue);
</span><span class="cx">     auto residentTime = duration_cast&lt;microseconds&gt;(system_clock::now() - responseTime);
</span><span class="cx">     return correctedInitialAge + residentTime;
</span><span class="lines">@@ -122,7 +122,7 @@
</span><span class="cx">         return *maxAge;
</span><span class="cx"> 
</span><span class="cx">     auto date = response.date();
</span><del>-    auto effectiveDate = date.valueOr(responseTime);
</del><ins>+    auto effectiveDate = date.value_or(responseTime);
</ins><span class="cx">     if (auto expires = response.expires())
</span><span class="cx">         return duration_cast&lt;microseconds&gt;(*expires - effectiveDate);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkCacheValidationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/CacheValidation.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/CacheValidation.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/CacheValidation.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -61,8 +61,8 @@
</span><span class="cx"> WEBCORE_EXPORT bool redirectChainAllowsReuse(RedirectChainCacheStatus, ReuseExpiredRedirectionOrNot);
</span><span class="cx"> 
</span><span class="cx"> struct CacheControlDirectives {
</span><del>-    Optional&lt;std::chrono::microseconds&gt; maxAge;
-    Optional&lt;std::chrono::microseconds&gt; maxStale;
</del><ins>+    std::optional&lt;std::chrono::microseconds&gt; maxAge;
+    std::optional&lt;std::chrono::microseconds&gt; maxStale;
</ins><span class="cx">     bool noCache { false };
</span><span class="cx">     bool noStore { false };
</span><span class="cx">     bool mustRevalidate { false };
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkDataURLDecoderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/DataURLDecoder.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/DataURLDecoder.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/DataURLDecoder.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">     RefPtr&lt;SharedBuffer&gt; data;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-using DecodeCompletionHandler = std::function&lt;void (Optional&lt;Result&gt;)&gt;;
</del><ins>+using DecodeCompletionHandler = std::function&lt;void (std::optional&lt;Result&gt;)&gt;;
</ins><span class="cx"> struct ScheduleContext {
</span><span class="cx"> #if HAVE(RUNLOOP_TIMER)
</span><span class="cx">     SchedulePairHashSet scheduledPairs;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkHTTPHeaderMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/HTTPHeaderMap.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/HTTPHeaderMap.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/HTTPHeaderMap.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> 
</span><span class="cx">         struct KeyValue {
</span><span class="cx">             String key;
</span><del>-            Optional&lt;HTTPHeaderName&gt; keyAsHTTPHeaderName;
</del><ins>+            std::optional&lt;HTTPHeaderName&gt; keyAsHTTPHeaderName;
</ins><span class="cx">             String value;
</span><span class="cx">         };
</span><span class="cx"> 
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx">             if (it == m_table.uncommonHeaders().end())
</span><span class="cx">                 return false;
</span><span class="cx">             m_keyValue.key = it-&gt;key;
</span><del>-            m_keyValue.keyAsHTTPHeaderName = Nullopt;
</del><ins>+            m_keyValue.keyAsHTTPHeaderName = std::nullopt;
</ins><span class="cx">             m_keyValue.value = it-&gt;value;
</span><span class="cx">             return true;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkHTTPParserscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/HTTPParsers.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/HTTPParsers.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/HTTPParsers.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -211,7 +211,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;std::chrono::system_clock::time_point&gt; parseHTTPDate(const String&amp; value)
</del><ins>+std::optional&lt;std::chrono::system_clock::time_point&gt; parseHTTPDate(const String&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     double dateInMillisecondsSinceEpoch = parseDateFromNullTerminatedCharacters(value.utf8().data());
</span><span class="cx">     if (!std::isfinite(dateInMillisecondsSinceEpoch))
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkHTTPParsersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/HTTPParsers.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/HTTPParsers.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/HTTPParsers.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx"> bool isValidHTTPHeaderValue(const String&amp;);
</span><span class="cx"> bool isValidHTTPToken(const String&amp;);
</span><span class="cx"> bool parseHTTPRefresh(const String&amp; refresh, double&amp; delay, String&amp; url);
</span><del>-Optional&lt;std::chrono::system_clock::time_point&gt; parseHTTPDate(const String&amp;);
</del><ins>+std::optional&lt;std::chrono::system_clock::time_point&gt; parseHTTPDate(const String&amp;);
</ins><span class="cx"> String filenameFromHTTPContentDisposition(const String&amp;);
</span><span class="cx"> String extractMIMETypeFromMediaType(const String&amp;);
</span><span class="cx"> String extractCharsetFromMediaType(const String&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceHandlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceHandle.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceHandle.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/ResourceHandle.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -154,7 +154,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (response.isHttpVersion0_9()) {
</span><span class="cx">         auto url = response.url();
</span><del>-        Optional&lt;uint16_t&gt; port = url.port();
</del><ins>+        std::optional&lt;uint16_t&gt; port = url.port();
</ins><span class="cx">         if (port &amp;&amp; !isDefaultPortForProtocol(port.value(), url.protocol())) {
</span><span class="cx">             cancel();
</span><span class="cx">             String message = &quot;Cancelled load from '&quot; + url.stringCenterEllipsizedToLength() + &quot;' because it is using HTTP/0.9.&quot;;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceResponseBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -433,7 +433,7 @@
</span><span class="cx">     return !m_httpHeaderFields.get(HTTPHeaderName::LastModified).isEmpty() || !m_httpHeaderFields.get(HTTPHeaderName::ETag).isEmpty();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;std::chrono::microseconds&gt; ResourceResponseBase::cacheControlMaxAge() const
</del><ins>+std::optional&lt;std::chrono::microseconds&gt; ResourceResponseBase::cacheControlMaxAge() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_haveParsedCacheControlHeader)
</span><span class="cx">         parseCacheControlDirectives();
</span><span class="lines">@@ -440,7 +440,7 @@
</span><span class="cx">     return m_cacheControlDirectives.maxAge;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;std::chrono::system_clock::time_point&gt; parseDateValueInHeader(const HTTPHeaderMap&amp; headers, HTTPHeaderName headerName)
</del><ins>+static std::optional&lt;std::chrono::system_clock::time_point&gt; parseDateValueInHeader(const HTTPHeaderMap&amp; headers, HTTPHeaderName headerName)
</ins><span class="cx"> {
</span><span class="cx">     String headerValue = headers.get(headerName);
</span><span class="cx">     if (headerValue.isEmpty())
</span><span class="lines">@@ -452,7 +452,7 @@
</span><span class="cx">     return parseHTTPDate(headerValue);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;std::chrono::system_clock::time_point&gt; ResourceResponseBase::date() const
</del><ins>+std::optional&lt;std::chrono::system_clock::time_point&gt; ResourceResponseBase::date() const
</ins><span class="cx"> {
</span><span class="cx">     lazyInit(CommonFieldsOnly);
</span><span class="cx"> 
</span><span class="lines">@@ -463,7 +463,7 @@
</span><span class="cx">     return m_date;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;std::chrono::microseconds&gt; ResourceResponseBase::age() const
</del><ins>+std::optional&lt;std::chrono::microseconds&gt; ResourceResponseBase::age() const
</ins><span class="cx"> {
</span><span class="cx">     using namespace std::chrono;
</span><span class="cx"> 
</span><span class="lines">@@ -480,7 +480,7 @@
</span><span class="cx">     return m_age;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;std::chrono::system_clock::time_point&gt; ResourceResponseBase::expires() const
</del><ins>+std::optional&lt;std::chrono::system_clock::time_point&gt; ResourceResponseBase::expires() const
</ins><span class="cx"> {
</span><span class="cx">     lazyInit(CommonFieldsOnly);
</span><span class="cx"> 
</span><span class="lines">@@ -491,7 +491,7 @@
</span><span class="cx">     return m_expires;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;std::chrono::system_clock::time_point&gt; ResourceResponseBase::lastModified() const
</del><ins>+std::optional&lt;std::chrono::system_clock::time_point&gt; ResourceResponseBase::lastModified() const
</ins><span class="cx"> {
</span><span class="cx">     lazyInit(CommonFieldsOnly);
</span><span class="cx"> 
</span><span class="lines">@@ -502,7 +502,7 @@
</span><span class="cx">         // an invalid value (rdar://problem/22352838).
</span><span class="cx">         const std::chrono::system_clock::time_point epoch;
</span><span class="cx">         if (m_lastModified &amp;&amp; m_lastModified.value() == epoch)
</span><del>-            m_lastModified = Nullopt;
</del><ins>+            m_lastModified = std::nullopt;
</ins><span class="cx"> #endif
</span><span class="cx">         m_haveParsedLastModifiedHeader = true;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceResponseBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceResponseBase.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">     WEBCORE_EXPORT String suggestedFilename() const;
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void includeCertificateInfo() const;
</span><del>-    const Optional&lt;CertificateInfo&gt;&amp; certificateInfo() const { return m_certificateInfo; };
</del><ins>+    const std::optional&lt;CertificateInfo&gt;&amp; certificateInfo() const { return m_certificateInfo; };
</ins><span class="cx">     
</span><span class="cx">     // These functions return parsed values of the corresponding response headers.
</span><span class="cx">     // NaN means that the header was not present or had invalid value.
</span><span class="lines">@@ -123,11 +123,11 @@
</span><span class="cx">     WEBCORE_EXPORT bool cacheControlContainsNoStore() const;
</span><span class="cx">     WEBCORE_EXPORT bool cacheControlContainsMustRevalidate() const;
</span><span class="cx">     WEBCORE_EXPORT bool hasCacheValidatorFields() const;
</span><del>-    WEBCORE_EXPORT Optional&lt;std::chrono::microseconds&gt; cacheControlMaxAge() const;
-    WEBCORE_EXPORT Optional&lt;std::chrono::system_clock::time_point&gt; date() const;
-    WEBCORE_EXPORT Optional&lt;std::chrono::microseconds&gt; age() const;
-    WEBCORE_EXPORT Optional&lt;std::chrono::system_clock::time_point&gt; expires() const;
-    WEBCORE_EXPORT Optional&lt;std::chrono::system_clock::time_point&gt; lastModified() const;
</del><ins>+    WEBCORE_EXPORT std::optional&lt;std::chrono::microseconds&gt; cacheControlMaxAge() const;
+    WEBCORE_EXPORT std::optional&lt;std::chrono::system_clock::time_point&gt; date() const;
+    WEBCORE_EXPORT std::optional&lt;std::chrono::microseconds&gt; age() const;
+    WEBCORE_EXPORT std::optional&lt;std::chrono::system_clock::time_point&gt; expires() const;
+    WEBCORE_EXPORT std::optional&lt;std::chrono::system_clock::time_point&gt; lastModified() const;
</ins><span class="cx">     ParsedContentRange&amp; contentRange() const;
</span><span class="cx"> 
</span><span class="cx">     // This is primarily for testing support. It is not necessarily accurate in all scenarios.
</span><span class="lines">@@ -189,15 +189,15 @@
</span><span class="cx">     HTTPHeaderMap m_httpHeaderFields;
</span><span class="cx">     mutable NetworkLoadTiming m_networkLoadTiming;
</span><span class="cx"> 
</span><del>-    mutable Optional&lt;CertificateInfo&gt; m_certificateInfo;
</del><ins>+    mutable std::optional&lt;CertificateInfo&gt; m_certificateInfo;
</ins><span class="cx"> 
</span><span class="cx">     int m_httpStatusCode;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    mutable Optional&lt;std::chrono::microseconds&gt; m_age;
-    mutable Optional&lt;std::chrono::system_clock::time_point&gt; m_date;
-    mutable Optional&lt;std::chrono::system_clock::time_point&gt; m_expires;
-    mutable Optional&lt;std::chrono::system_clock::time_point&gt; m_lastModified;
</del><ins>+    mutable std::optional&lt;std::chrono::microseconds&gt; m_age;
+    mutable std::optional&lt;std::chrono::system_clock::time_point&gt; m_date;
+    mutable std::optional&lt;std::chrono::system_clock::time_point&gt; m_expires;
+    mutable std::optional&lt;std::chrono::system_clock::time_point&gt; m_lastModified;
</ins><span class="cx">     mutable ParsedContentRange m_contentRange;
</span><span class="cx">     mutable CacheControlDirectives m_cacheControlDirectives;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkSocketStreamHandleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/SocketStreamHandle.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/SocketStreamHandle.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/SocketStreamHandle.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     SocketStreamHandle(const URL&amp;, SocketStreamHandleClient&amp;);
</span><span class="cx"> 
</span><span class="cx">     bool sendPendingData();
</span><del>-    virtual Optional&lt;size_t&gt; platformSend(const char* data, size_t length) = 0;
</del><ins>+    virtual std::optional&lt;size_t&gt; platformSend(const char* data, size_t length) = 0;
</ins><span class="cx">     virtual void platformClose() = 0;
</span><span class="cx"> 
</span><span class="cx">     URL m_url;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkSocketStreamHandleClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/SocketStreamHandleClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/SocketStreamHandleClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/SocketStreamHandleClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void didOpenSocketStream(SocketStreamHandle&amp;) = 0;
</span><span class="cx">     virtual void didCloseSocketStream(SocketStreamHandle&amp;) = 0;
</span><del>-    virtual void didReceiveSocketStreamData(SocketStreamHandle&amp;, const char* data, Optional&lt;size_t&gt; length) = 0;
</del><ins>+    virtual void didReceiveSocketStreamData(SocketStreamHandle&amp;, const char* data, std::optional&lt;size_t&gt; length) = 0;
</ins><span class="cx">     virtual void didUpdateBufferedAmount(SocketStreamHandle&amp;, size_t bufferedAmount) = 0;
</span><span class="cx">     virtual void didFailSocketStream(SocketStreamHandle&amp;, const SocketStreamError&amp;) = 0;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfSocketStreamHandleImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/SocketStreamHandleImpl.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/SocketStreamHandleImpl.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/cf/SocketStreamHandleImpl.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     virtual ~SocketStreamHandleImpl();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    virtual Optional&lt;size_t&gt; platformSend(const char* data, size_t length);
</del><ins>+    virtual std::optional&lt;size_t&gt; platformSend(const char* data, size_t length);
</ins><span class="cx">     virtual void platformClose();
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT SocketStreamHandleImpl(const URL&amp;, SocketStreamHandleClient&amp;, SessionID);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfSocketStreamHandleImplCFNetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -536,7 +536,7 @@
</span><span class="cx">         if (!length)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        Optional&lt;size_t&gt; optionalLength;
</del><ins>+        std::optional&lt;size_t&gt; optionalLength;
</ins><span class="cx">         if (length != -1)
</span><span class="cx">             optionalLength = length;
</span><span class="cx">         
</span><span class="lines">@@ -653,14 +653,14 @@
</span><span class="cx">     ASSERT(!m_pacRunLoopSource);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;size_t&gt; SocketStreamHandleImpl::platformSend(const char* data, size_t length)
</del><ins>+std::optional&lt;size_t&gt; SocketStreamHandleImpl::platformSend(const char* data, size_t length)
</ins><span class="cx"> {
</span><span class="cx">     if (!CFWriteStreamCanAcceptBytes(m_writeStream.get()))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     CFIndex result = CFWriteStreamWrite(m_writeStream.get(), reinterpret_cast&lt;const UInt8*&gt;(data), length);
</span><span class="cx">     if (result == -1)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(result &gt;= 0);
</span><span class="cx">     return static_cast&lt;size_t&gt;(result);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcurlSocketStreamHandleImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/curl/SocketStreamHandleImpl.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/curl/SocketStreamHandleImpl.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/curl/SocketStreamHandleImpl.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> private:
</span><span class="cx">     SocketStreamHandleImpl(const URL&amp;, SocketStreamHandleClient&amp;);
</span><span class="cx"> 
</span><del>-    Optional&lt;size_t&gt; platformSend(const char* data, size_t length) final;
</del><ins>+    std::optional&lt;size_t&gt; platformSend(const char* data, size_t length) final;
</ins><span class="cx">     void platformClose() final;
</span><span class="cx"> 
</span><span class="cx">     bool readData(CURL*);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcurlSocketStreamHandleImplCurlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/curl/SocketStreamHandleImplCurl.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/curl/SocketStreamHandleImplCurl.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/curl/SocketStreamHandleImplCurl.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     ASSERT(!m_workerThread);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;size_t&gt; SocketStreamHandleImpl::platformSend(const char* data, size_t length)
</del><ins>+std::optional&lt;size_t&gt; SocketStreamHandleImpl::platformSend(const char* data, size_t length)
</ins><span class="cx"> {
</span><span class="cx">     LOG(Network, &quot;SocketStreamHandle %p platformSend&quot;, this);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacCookieJarMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">         cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
</span><span class="cx"> 
</span><span class="cx">     // The _getCookiesForURL: method calls the completionHandler synchronously.
</span><del>-    Optional&lt;RetainPtr&lt;NSArray *&gt;&gt; cookiesPtr;
</del><ins>+    std::optional&lt;RetainPtr&lt;NSArray *&gt;&gt; cookiesPtr;
</ins><span class="cx">     [cookieStorage _getCookiesForURL:url mainDocumentURL:firstParty partition:partition completionHandler:[&amp;cookiesPtr](NSArray *cookies) {
</span><span class="cx">         cookiesPtr = retainPtr(cookies);
</span><span class="cx">     }];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworksoupSocketStreamHandleImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/soup/SocketStreamHandleImpl.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/soup/SocketStreamHandleImpl.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/soup/SocketStreamHandleImpl.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> private:
</span><span class="cx">     SocketStreamHandleImpl(const URL&amp;, SocketStreamHandleClient&amp;);
</span><span class="cx"> 
</span><del>-    Optional&lt;size_t&gt; platformSend(const char* data, size_t length) final;
</del><ins>+    std::optional&lt;size_t&gt; platformSend(const char* data, size_t length) final;
</ins><span class="cx">     void platformClose() final;
</span><span class="cx"> 
</span><span class="cx">     void beginWaitingForSocketWritability();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworksoupSocketStreamHandleImplSoupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/soup/SocketStreamHandleImplSoup.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/soup/SocketStreamHandleImplSoup.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/platform/network/soup/SocketStreamHandleImplSoup.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> 
</span><span class="cx">     // The client can close the handle, potentially removing the last reference.
</span><span class="cx">     RefPtr&lt;SocketStreamHandle&gt; protectedThis(this);
</span><del>-    Optional&lt;size_t&gt; optionalLength;
</del><ins>+    std::optional&lt;size_t&gt; optionalLength;
</ins><span class="cx">     if (bytesRead != -1)
</span><span class="cx">         optionalLength = static_cast&lt;size_t&gt;(bytesRead);
</span><span class="cx">     m_client.didReceiveSocketStreamData(*this, m_readBuffer.get(), optionalLength);
</span><span class="lines">@@ -171,11 +171,11 @@
</span><span class="cx">     sendPendingData();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;size_t&gt; SocketStreamHandleImpl::platformSend(const char* data, size_t length)
</del><ins>+std::optional&lt;size_t&gt; SocketStreamHandleImpl::platformSend(const char* data, size_t length)
</ins><span class="cx"> {
</span><span class="cx">     LOG(Network, &quot;SocketStreamHandle %p platformSend&quot;, this);
</span><span class="cx">     if (!m_outputStream || !data)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     GUniqueOutPtr&lt;GError&gt; error;
</span><span class="cx">     gssize written = g_pollable_output_stream_write_nonblocking(m_outputStream.get(), data, length, m_cancellable.get(), &amp;error.outPtr());
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx">             beginWaitingForSocketWritability();
</span><span class="cx">         else
</span><span class="cx">             didFail(SocketStreamError(error-&gt;code, String(), error-&gt;message));
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // If we did not send all the bytes we were given, we know that
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx">         beginWaitingForSocketWritability();
</span><span class="cx"> 
</span><span class="cx">     if (written == -1)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return static_cast&lt;size_t&gt;(written);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingBreakLinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/BreakLines.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/BreakLines.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/BreakLines.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> template&lt;typename CharacterType, NonBreakingSpaceBehavior nonBreakingSpaceBehavior&gt;
</span><span class="cx"> inline unsigned nextBreakablePositionNonLoosely(LazyLineBreakIterator&amp; lazyBreakIterator, const CharacterType* string, unsigned length, unsigned startPosition)
</span><span class="cx"> {
</span><del>-    Optional&lt;unsigned&gt; nextBreak;
</del><ins>+    std::optional&lt;unsigned&gt; nextBreak;
</ins><span class="cx"> 
</span><span class="cx">     CharacterType lastLastCharacter = startPosition &gt; 1 ? string[startPosition - 2] : static_cast&lt;CharacterType&gt;(lazyBreakIterator.secondToLastCharacter());
</span><span class="cx">     CharacterType lastCharacter = startPosition &gt; 0 ? string[startPosition - 1] : static_cast&lt;CharacterType&gt;(lazyBreakIterator.lastCharacter());
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx">                     if (breakIterator) {
</span><span class="cx">                         int candidate = textBreakFollowing(breakIterator, i - 1 + priorContextLength);
</span><span class="cx">                         if (candidate == TextBreakDone)
</span><del>-                            nextBreak = Nullopt;
</del><ins>+                            nextBreak = std::nullopt;
</ins><span class="cx">                         else {
</span><span class="cx">                             unsigned result = candidate;
</span><span class="cx">                             ASSERT(result &gt;= priorContextLength);
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx"> template&lt;typename CharacterType, NonBreakingSpaceBehavior nonBreakingSpaceBehavior&gt;
</span><span class="cx"> static inline unsigned nextBreakablePositionLoosely(LazyLineBreakIterator&amp; lazyBreakIterator, const CharacterType* string, unsigned length, unsigned startPosition)
</span><span class="cx"> {
</span><del>-    Optional&lt;unsigned&gt; nextBreak;
</del><ins>+    std::optional&lt;unsigned&gt; nextBreak;
</ins><span class="cx"> 
</span><span class="cx">     CharacterType lastCharacter = startPosition &gt; 0 ? string[startPosition - 1] : static_cast&lt;CharacterType&gt;(lazyBreakIterator.lastCharacter());
</span><span class="cx">     unsigned priorContextLength = lazyBreakIterator.priorContextLength();
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">                     ASSERT(i + priorContextLength &gt;= 1);
</span><span class="cx">                     int candidate = textBreakFollowing(breakIterator, i + priorContextLength - 1);
</span><span class="cx">                     if (candidate == TextBreakDone)
</span><del>-                        nextBreak = Nullopt;
</del><ins>+                        nextBreak = std::nullopt;
</ins><span class="cx">                     else {
</span><span class="cx">                         unsigned result = candidate;
</span><span class="cx">                         ASSERT(result &gt; priorContextLength);
</span><span class="lines">@@ -228,7 +228,7 @@
</span><span class="cx">     return nextBreakablePositionLoosely&lt;UChar, NonBreakingSpaceBehavior::IgnoreNonBreakingSpace&gt;(lazyBreakIterator, stringView.characters16(), stringView.length(), startPosition);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline bool isBreakable(LazyLineBreakIterator&amp; lazyBreakIterator, unsigned startPosition, Optional&lt;unsigned&gt;&amp; nextBreakable, bool breakNBSP, bool isLooseMode, bool keepAllWords)
</del><ins>+inline bool isBreakable(LazyLineBreakIterator&amp; lazyBreakIterator, unsigned startPosition, std::optional&lt;unsigned&gt;&amp; nextBreakable, bool breakNBSP, bool isLooseMode, bool keepAllWords)
</ins><span class="cx"> {
</span><span class="cx">     if (nextBreakable &amp;&amp; nextBreakable.value() &gt;= startPosition)
</span><span class="cx">         return startPosition == nextBreakable;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingHitTestingTransformStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/HitTestingTransformState.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/HitTestingTransformState.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/HitTestingTransformState.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> 
</span><span class="cx"> void HitTestingTransformState::flattenWithTransform(const TransformationMatrix&amp; t)
</span><span class="cx"> {
</span><del>-    if (Optional&lt;TransformationMatrix&gt; inverse = t.inverse()) {
</del><ins>+    if (std::optional&lt;TransformationMatrix&gt; inverse = t.inverse()) {
</ins><span class="cx">         m_lastPlanarPoint = inverse.value().projectPoint(m_lastPlanarPoint);
</span><span class="cx">         m_lastPlanarQuad = inverse.value().projectQuad(m_lastPlanarQuad);
</span><span class="cx">         m_lastPlanarArea = inverse.value().projectQuad(m_lastPlanarArea);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingImageQualityControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/ImageQualityController.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/ImageQualityController.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/ImageQualityController.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">     m_timer.startOneShot(cLowQualityTimeThreshold);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;InterpolationQuality&gt; ImageQualityController::interpolationQualityFromStyle(const RenderStyle&amp; style)
</del><ins>+std::optional&lt;InterpolationQuality&gt; ImageQualityController::interpolationQualityFromStyle(const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><span class="cx">     switch (style.imageRendering()) {
</span><span class="cx">     case ImageRenderingOptimizeSpeed:
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx">     case ImageRenderingAuto:
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> InterpolationQuality ImageQualityController::chooseInterpolationQuality(GraphicsContext&amp; context, RenderBoxModelObject* object, Image&amp; image, const void *layer, const LayoutSize&amp; size)
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx">     if (!(image.isBitmapImage() || image.isPDFDocumentImage()) || context.paintingDisabled())
</span><span class="cx">         return InterpolationDefault;
</span><span class="cx"> 
</span><del>-    if (Optional&lt;InterpolationQuality&gt; styleInterpolation = interpolationQualityFromStyle(object-&gt;style()))
</del><ins>+    if (std::optional&lt;InterpolationQuality&gt; styleInterpolation = interpolationQualityFromStyle(object-&gt;style()))
</ins><span class="cx">         return styleInterpolation.value();
</span><span class="cx"> 
</span><span class="cx">     // Make sure to use the unzoomed image size, since if a full page zoom is in effect, the image
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingImageQualityControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/ImageQualityController.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/ImageQualityController.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/ImageQualityController.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> public:
</span><span class="cx">     explicit ImageQualityController(const RenderView&amp;);
</span><span class="cx"> 
</span><del>-    static Optional&lt;InterpolationQuality&gt; interpolationQualityFromStyle(const RenderStyle&amp;);
</del><ins>+    static std::optional&lt;InterpolationQuality&gt; interpolationQualityFromStyle(const RenderStyle&amp;);
</ins><span class="cx">     InterpolationQuality chooseInterpolationQuality(GraphicsContext&amp;, RenderBoxModelObject*, Image&amp;, const void* layer, const LayoutSize&amp;);
</span><span class="cx"> 
</span><span class="cx">     void rendererWillBeDestroyed(RenderBoxModelObject&amp; renderer) { removeObject(&amp;renderer); }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineIterator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineIterator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/InlineIterator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx">         moveTo(object, 0);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void moveTo(RenderObject&amp; object, unsigned offset, Optional&lt;unsigned&gt; nextBreak = Optional&lt;unsigned&gt;())
</del><ins>+    void moveTo(RenderObject&amp; object, unsigned offset, std::optional&lt;unsigned&gt; nextBreak = std::optional&lt;unsigned&gt;())
</ins><span class="cx">     {
</span><span class="cx">         setRenderer(&amp;object);
</span><span class="cx">         setOffset(offset);
</span><span class="lines">@@ -86,8 +86,8 @@
</span><span class="cx">     unsigned offset() const { return m_pos; }
</span><span class="cx">     void setOffset(unsigned position);
</span><span class="cx">     RenderElement* root() const { return m_root; }
</span><del>-    Optional&lt;unsigned&gt; nextBreakablePosition() const { return m_nextBreakablePosition; }
-    void setNextBreakablePosition(Optional&lt;unsigned&gt; position) { m_nextBreakablePosition = position; }
</del><ins>+    std::optional&lt;unsigned&gt; nextBreakablePosition() const { return m_nextBreakablePosition; }
+    void setNextBreakablePosition(std::optional&lt;unsigned&gt; position) { m_nextBreakablePosition = position; }
</ins><span class="cx">     bool refersToEndOfPreviousNode() const { return m_refersToEndOfPreviousNode; }
</span><span class="cx">     void setRefersToEndOfPreviousNode();
</span><span class="cx"> 
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx">     RenderElement* m_root { nullptr };
</span><span class="cx">     RenderObject* m_renderer { nullptr };
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned&gt; m_nextBreakablePosition;
</del><ins>+    std::optional&lt;unsigned&gt; m_nextBreakablePosition;
</ins><span class="cx">     unsigned m_pos { 0 };
</span><span class="cx"> 
</span><span class="cx">     // There are a couple places where we want to decrement an InlineIterator.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineTextBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineTextBox.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineTextBox.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/InlineTextBox.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -650,7 +650,7 @@
</span><span class="cx">     bool respectHyphen = selectionEnd == length &amp;&amp; hasHyphen();
</span><span class="cx">     if (respectHyphen)
</span><span class="cx">         hyphenatedString = hyphenatedStringForTextRun(style, length);
</span><del>-    TextRun textRun = constructTextRun(style, hyphenatedString, Optional&lt;unsigned&gt;(length));
</del><ins>+    TextRun textRun = constructTextRun(style, hyphenatedString, std::optional&lt;unsigned&gt;(length));
</ins><span class="cx">     if (respectHyphen)
</span><span class="cx">         selectionEnd = textRun.length();
</span><span class="cx"> 
</span><span class="lines">@@ -1015,18 +1015,18 @@
</span><span class="cx">     return snapRectToDevicePixelsWithWritingDirection(selectionRect, renderer().document().deviceScaleFactor(), run.ltr()).maxX();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-StringView InlineTextBox::substringToRender(Optional&lt;unsigned&gt; overridingLength) const
</del><ins>+StringView InlineTextBox::substringToRender(std::optional&lt;unsigned&gt; overridingLength) const
</ins><span class="cx"> {
</span><del>-    return StringView(renderer().text()).substring(start(), overridingLength.valueOr(len()));
</del><ins>+    return StringView(renderer().text()).substring(start(), overridingLength.value_or(len()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String InlineTextBox::hyphenatedStringForTextRun(const RenderStyle&amp; style, Optional&lt;unsigned&gt; alternateLength) const
</del><ins>+String InlineTextBox::hyphenatedStringForTextRun(const RenderStyle&amp; style, std::optional&lt;unsigned&gt; alternateLength) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(hasHyphen());
</span><span class="cx">     return makeString(substringToRender(alternateLength), style.hyphenString());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-TextRun InlineTextBox::constructTextRun(const RenderStyle&amp; style, StringView alternateStringToRender, Optional&lt;unsigned&gt; alternateLength) const
</del><ins>+TextRun InlineTextBox::constructTextRun(const RenderStyle&amp; style, StringView alternateStringToRender, std::optional&lt;unsigned&gt; alternateLength) const
</ins><span class="cx"> {
</span><span class="cx">     if (alternateStringToRender.isNull())
</span><span class="cx">         return constructTextRun(style, substringToRender(alternateLength), renderer().textLength() - start());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineTextBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineTextBox.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineTextBox.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/InlineTextBox.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -106,9 +106,9 @@
</span><span class="cx">     LayoutUnit selectionBottom() const;
</span><span class="cx">     LayoutUnit selectionHeight() const;
</span><span class="cx"> 
</span><del>-    StringView substringToRender(Optional&lt;unsigned&gt; overridingLength = { }) const;
-    String hyphenatedStringForTextRun(const RenderStyle&amp;, Optional&lt;unsigned&gt; alternateLength = { }) const;
-    TextRun constructTextRun(const RenderStyle&amp;, StringView alternateStringToRender = { }, Optional&lt;unsigned&gt; alternateLength = { }) const;
</del><ins>+    StringView substringToRender(std::optional&lt;unsigned&gt; overridingLength = { }) const;
+    String hyphenatedStringForTextRun(const RenderStyle&amp;, std::optional&lt;unsigned&gt; alternateLength = { }) const;
+    TextRun constructTextRun(const RenderStyle&amp;, StringView alternateStringToRender = { }, std::optional&lt;unsigned&gt; alternateLength = { }) const;
</ins><span class="cx">     TextRun constructTextRun(const RenderStyle&amp;, StringView, unsigned maximumLength) const;
</span><span class="cx"> 
</span><span class="cx"> public:
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingOrderIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/OrderIterator.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/OrderIterator.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/OrderIterator.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx"> void OrderIterator::reset()
</span><span class="cx"> {
</span><span class="cx">     m_currentChild = nullptr;
</span><del>-    m_orderIndex = Nullopt;
</del><ins>+    m_orderIndex = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> OrderIteratorPopulator::OrderIteratorPopulator(OrderIterator&amp; iterator)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingOrderIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/OrderIterator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/OrderIterator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/OrderIterator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     RenderBox* m_currentChild;
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;int, 1&gt; m_orderValues;
</span><del>-    Optional&lt;size_t&gt; m_orderIndex;
</del><ins>+    std::optional&lt;size_t&gt; m_orderIndex;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class OrderIteratorPopulator {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingPaintInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/PaintInfo.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/PaintInfo.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/PaintInfo.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">         if (rect.isInfinite())
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        FloatRect tranformedRect(localToAncestorTransform.inverse().valueOr(AffineTransform()).mapRect(rect));
</del><ins>+        FloatRect tranformedRect(localToAncestorTransform.inverse().value_or(AffineTransform()).mapRect(rect));
</ins><span class="cx">         rect.setLocation(LayoutPoint(tranformedRect.location()));
</span><span class="cx">         rect.setSize(LayoutSize(tranformedRect.size()));
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -248,7 +248,7 @@
</span><span class="cx">     RenderBlockRareData()
</span><span class="cx">         : m_paginationStrut(0)
</span><span class="cx">         , m_pageLogicalOffset(0)
</span><del>-        , m_flowThreadContainingBlock(Nullopt)
</del><ins>+        , m_flowThreadContainingBlock(std::nullopt)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -255,7 +255,7 @@
</span><span class="cx">     LayoutUnit m_paginationStrut;
</span><span class="cx">     LayoutUnit m_pageLogicalOffset;
</span><span class="cx"> 
</span><del>-    Optional&lt;RenderFlowThread*&gt; m_flowThreadContainingBlock;
</del><ins>+    std::optional&lt;RenderFlowThread*&gt; m_flowThreadContainingBlock;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> typedef HashMap&lt;const RenderBlock*, std::unique_ptr&lt;RenderBlockRareData&gt;&gt; RenderBlockRareDataMap;
</span><span class="lines">@@ -2944,7 +2944,7 @@
</span><span class="cx">         bool ignoreBaseline = (layer() &amp;&amp; (layer()-&gt;marquee() || (direction == HorizontalLine ? (layer()-&gt;verticalScrollbar() || layer()-&gt;scrollOffset().y() != 0)
</span><span class="cx">             : (layer()-&gt;horizontalScrollbar() || layer()-&gt;scrollOffset().x() != 0)))) || (isWritingModeRoot() &amp;&amp; !isRubyRun());
</span><span class="cx">         
</span><del>-        Optional&lt;int&gt; baselinePos = ignoreBaseline ? Optional&lt;int&gt;() : inlineBlockBaseline(direction);
</del><ins>+        std::optional&lt;int&gt; baselinePos = ignoreBaseline ? std::optional&lt;int&gt;() : inlineBlockBaseline(direction);
</ins><span class="cx">         
</span><span class="cx">         if (isDeprecatedFlexibleBox()) {
</span><span class="cx">             // Historically, we did this check for all baselines. But we can't
</span><span class="lines">@@ -2954,7 +2954,7 @@
</span><span class="cx">             // For simplicity, we use this for all uses of deprecated flexbox.
</span><span class="cx">             LayoutUnit bottomOfContent = direction == HorizontalLine ? borderTop() + paddingTop() + contentHeight() : borderRight() + paddingRight() + contentWidth();
</span><span class="cx">             if (baselinePos &amp;&amp; baselinePos.value() &gt; bottomOfContent)
</span><del>-                baselinePos = Optional&lt;int&gt;();
</del><ins>+                baselinePos = std::optional&lt;int&gt;();
</ins><span class="cx">         }
</span><span class="cx">         if (baselinePos)
</span><span class="cx">             return direction == HorizontalLine ? marginTop() + baselinePos.value() : marginRight() + baselinePos.value();
</span><span class="lines">@@ -2979,25 +2979,25 @@
</span><span class="cx">     return std::max&lt;LayoutUnit&gt;(replacedHeight, lineHeight(isFirstLine, isHorizontalWritingMode() ? HorizontalLine : VerticalLine, PositionOfInteriorLineBoxes));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderBlock::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderBlock::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     if (isWritingModeRoot() &amp;&amp; !isRubyRun())
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><span class="cx">     for (RenderBox* curr = firstChildBox(); curr; curr = curr-&gt;nextSiblingBox()) {
</span><span class="cx">         if (!curr-&gt;isFloatingOrOutOfFlowPositioned()) {
</span><del>-            if (Optional&lt;int&gt; result = curr-&gt;firstLineBaseline())
-                return Optional&lt;int&gt;(curr-&gt;logicalTop() + result.value()); // Translate to our coordinate space.
</del><ins>+            if (std::optional&lt;int&gt; result = curr-&gt;firstLineBaseline())
+                return std::optional&lt;int&gt;(curr-&gt;logicalTop() + result.value()); // Translate to our coordinate space.
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Optional&lt;int&gt;();
</del><ins>+    return std::optional&lt;int&gt;();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderBlock::inlineBlockBaseline(LineDirectionMode lineDirection) const
</del><ins>+std::optional&lt;int&gt; RenderBlock::inlineBlockBaseline(LineDirectionMode lineDirection) const
</ins><span class="cx"> {
</span><span class="cx">     if (isWritingModeRoot() &amp;&amp; !isRubyRun())
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><span class="cx">     bool haveNormalFlowChild = false;
</span><span class="cx">     for (auto* box = lastChildBox(); box; box = box-&gt;previousSiblingBox()) {
</span><span class="lines">@@ -3004,18 +3004,18 @@
</span><span class="cx">         if (box-&gt;isFloatingOrOutOfFlowPositioned())
</span><span class="cx">             continue;
</span><span class="cx">         haveNormalFlowChild = true;
</span><del>-        if (Optional&lt;int&gt; result = box-&gt;inlineBlockBaseline(lineDirection))
-            return Optional&lt;int&gt;(box-&gt;logicalTop() + result.value()); // Translate to our coordinate space.
</del><ins>+        if (std::optional&lt;int&gt; result = box-&gt;inlineBlockBaseline(lineDirection))
+            return std::optional&lt;int&gt;(box-&gt;logicalTop() + result.value()); // Translate to our coordinate space.
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!haveNormalFlowChild &amp;&amp; hasLineIfEmpty()) {
</span><span class="cx">         auto&amp; fontMetrics = firstLineStyle().fontMetrics();
</span><del>-        return Optional&lt;int&gt;(fontMetrics.ascent()
</del><ins>+        return std::optional&lt;int&gt;(fontMetrics.ascent()
</ins><span class="cx">             + (lineHeight(true, lineDirection, PositionOfInteriorLineBoxes) - fontMetrics.height()) / 2
</span><span class="cx">             + (lineDirection == HorizontalLine ? borderTop() + paddingTop() : borderRight() + paddingRight()));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Optional&lt;int&gt;();
</del><ins>+    return std::optional&lt;int&gt;();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline bool isRenderBlockFlowOrRenderButton(RenderElement&amp; renderElement)
</span><span class="lines">@@ -3354,7 +3354,7 @@
</span><span class="cx"> void RenderBlock::setCachedFlowThreadContainingBlockNeedsUpdate()
</span><span class="cx"> {
</span><span class="cx">     RenderBlockRareData&amp; rareData = ensureBlockRareData(this);
</span><del>-    rareData.m_flowThreadContainingBlock = Nullopt;
</del><ins>+    rareData.m_flowThreadContainingBlock = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RenderFlowThread* RenderBlock::updateCachedFlowThreadContainingBlock(RenderFlowThread* flowThread) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderBlock.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -341,8 +341,8 @@
</span><span class="cx">     void computeIntrinsicLogicalWidths(LayoutUnit&amp; minLogicalWidth, LayoutUnit&amp; maxLogicalWidth) const override;
</span><span class="cx">     void computePreferredLogicalWidths() override;
</span><span class="cx">     
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const override;
-    Optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const override;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const override;
+    std::optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const override;
</ins><span class="cx"> 
</span><span class="cx">     // Delay updating scrollbars until endAndCommitUpdateScrollInfoAfterLayoutTransaction() is called. These functions are used
</span><span class="cx">     // when a flexbox is laying out its descendants. If multiple calls are made to beginUpdateScrollInfoAfterLayoutTransaction()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockFlowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -3034,34 +3034,34 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderBlockFlow::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderBlockFlow::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     if (isWritingModeRoot() &amp;&amp; !isRubyRun())
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><span class="cx">     if (!childrenInline())
</span><span class="cx">         return RenderBlock::firstLineBaseline();
</span><span class="cx"> 
</span><span class="cx">     if (!hasLines())
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><span class="cx">     if (auto simpleLineLayout = this-&gt;simpleLineLayout())
</span><del>-        return Optional&lt;int&gt;(SimpleLineLayout::computeFlowFirstLineBaseline(*this, *simpleLineLayout));
</del><ins>+        return std::optional&lt;int&gt;(SimpleLineLayout::computeFlowFirstLineBaseline(*this, *simpleLineLayout));
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(firstRootBox());
</span><span class="cx">     return firstRootBox()-&gt;logicalTop() + firstLineStyle().fontMetrics().ascent(firstRootBox()-&gt;baselineType());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderBlockFlow::inlineBlockBaseline(LineDirectionMode lineDirection) const
</del><ins>+std::optional&lt;int&gt; RenderBlockFlow::inlineBlockBaseline(LineDirectionMode lineDirection) const
</ins><span class="cx"> {
</span><span class="cx">     if (isWritingModeRoot() &amp;&amp; !isRubyRun())
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><span class="cx">     // Note that here we only take the left and bottom into consideration. Our caller takes the right and top into consideration.
</span><span class="cx">     float boxHeight = lineDirection == HorizontalLine ? height() + m_marginBox.bottom() : width() + m_marginBox.left();
</span><span class="cx">     float lastBaseline;
</span><span class="cx">     if (!childrenInline()) {
</span><del>-        Optional&lt;int&gt; inlineBlockBaseline = RenderBlock::inlineBlockBaseline(lineDirection);
</del><ins>+        std::optional&lt;int&gt; inlineBlockBaseline = RenderBlock::inlineBlockBaseline(lineDirection);
</ins><span class="cx">         if (!inlineBlockBaseline)
</span><span class="cx">             return inlineBlockBaseline;
</span><span class="cx">         lastBaseline = inlineBlockBaseline.value();
</span><span class="lines">@@ -3068,9 +3068,9 @@
</span><span class="cx">     } else {
</span><span class="cx">         if (!hasLines()) {
</span><span class="cx">             if (!hasLineIfEmpty())
</span><del>-                return Optional&lt;int&gt;();
</del><ins>+                return std::optional&lt;int&gt;();
</ins><span class="cx">             const auto&amp; fontMetrics = firstLineStyle().fontMetrics();
</span><del>-            return Optional&lt;int&gt;(fontMetrics.ascent()
</del><ins>+            return std::optional&lt;int&gt;(fontMetrics.ascent()
</ins><span class="cx">                 + (lineHeight(true, lineDirection, PositionOfInteriorLineBoxes) - fontMetrics.height()) / 2
</span><span class="cx">                 + (lineDirection == HorizontalLine ? borderTop() + paddingTop() : borderRight() + paddingRight()));
</span><span class="cx">         }
</span><span class="lines">@@ -3086,7 +3086,7 @@
</span><span class="cx">     // According to the CSS spec http://www.w3.org/TR/CSS21/visudet.html, we shouldn't be performing this min, but should
</span><span class="cx">     // instead be returning boxHeight directly. However, we feel that a min here is better behavior (and is consistent
</span><span class="cx">     // enough with the spec to not cause tons of breakages).
</span><del>-    return Optional&lt;int&gt;(style().overflowY() == OVISIBLE ? lastBaseline : std::min(boxHeight, lastBaseline));
</del><ins>+    return std::optional&lt;int&gt;(style().overflowY() == OVISIBLE ? lastBaseline : std::min(boxHeight, lastBaseline));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderBlockFlow::setSelectionState(SelectionState state)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockFlowh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockFlow.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -447,8 +447,8 @@
</span><span class="cx"> 
</span><span class="cx">     void createFloatingObjects();
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const override;
-    Optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const override;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const override;
+    std::optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const override;
</ins><span class="cx"> 
</span><span class="cx">     bool isMultiColumnBlockFlow() const override { return multiColumnFlowThread(); }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="cx"> // Used by grid elements to properly size their grid items.
</span><del>-typedef WTF::HashMap&lt;const RenderBox*, Optional&lt;LayoutUnit&gt;&gt; OverrideOptionalSizeMap;
</del><ins>+typedef WTF::HashMap&lt;const RenderBox*, std::optional&lt;LayoutUnit&gt;&gt; OverrideOptionalSizeMap;
</ins><span class="cx"> static OverrideOptionalSizeMap* gOverrideContainingBlockLogicalHeightMap = nullptr;
</span><span class="cx"> static OverrideOptionalSizeMap* gOverrideContainingBlockLogicalWidthMap = nullptr;
</span><span class="cx"> static OverrideSizeMap* gExtraInlineOffsetMap = nullptr;
</span><span class="lines">@@ -656,26 +656,26 @@
</span><span class="cx">     return std::max(logicalWidth, computeLogicalWidthInRegionUsing(MinSize, styleToUse.logicalMinWidth(), availableWidth, cb, region));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-LayoutUnit RenderBox::constrainLogicalHeightByMinMax(LayoutUnit logicalHeight, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</del><ins>+LayoutUnit RenderBox::constrainLogicalHeightByMinMax(LayoutUnit logicalHeight, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</ins><span class="cx"> {
</span><span class="cx">     const RenderStyle&amp; styleToUse = style();
</span><span class="cx">     if (!styleToUse.logicalMaxHeight().isUndefined()) {
</span><del>-        if (Optional&lt;LayoutUnit&gt; maxH = computeLogicalHeightUsing(MaxSize, styleToUse.logicalMaxHeight(), intrinsicContentHeight))
</del><ins>+        if (std::optional&lt;LayoutUnit&gt; maxH = computeLogicalHeightUsing(MaxSize, styleToUse.logicalMaxHeight(), intrinsicContentHeight))
</ins><span class="cx">             logicalHeight = std::min(logicalHeight, maxH.value());
</span><span class="cx">     }
</span><del>-    if (Optional&lt;LayoutUnit&gt; computedLogicalHeight = computeLogicalHeightUsing(MinSize, styleToUse.logicalMinHeight(), intrinsicContentHeight))
</del><ins>+    if (std::optional&lt;LayoutUnit&gt; computedLogicalHeight = computeLogicalHeightUsing(MinSize, styleToUse.logicalMinHeight(), intrinsicContentHeight))
</ins><span class="cx">         return std::max(logicalHeight, computedLogicalHeight.value());
</span><span class="cx">     return logicalHeight;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-LayoutUnit RenderBox::constrainContentBoxLogicalHeightByMinMax(LayoutUnit logicalHeight, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</del><ins>+LayoutUnit RenderBox::constrainContentBoxLogicalHeightByMinMax(LayoutUnit logicalHeight, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</ins><span class="cx"> {
</span><span class="cx">     const RenderStyle&amp; styleToUse = style();
</span><span class="cx">     if (!styleToUse.logicalMaxHeight().isUndefined()) {
</span><del>-        if (Optional&lt;LayoutUnit&gt; maxH = computeContentLogicalHeight(MaxSize, styleToUse.logicalMaxHeight(), intrinsicContentHeight))
</del><ins>+        if (std::optional&lt;LayoutUnit&gt; maxH = computeContentLogicalHeight(MaxSize, styleToUse.logicalMaxHeight(), intrinsicContentHeight))
</ins><span class="cx">             logicalHeight = std::min(logicalHeight, maxH.value());
</span><span class="cx">     }
</span><del>-    if (Optional&lt;LayoutUnit&gt; computedContentLogicalHeight = computeContentLogicalHeight(MinSize, styleToUse.logicalMinHeight(), intrinsicContentHeight))
</del><ins>+    if (std::optional&lt;LayoutUnit&gt; computedContentLogicalHeight = computeContentLogicalHeight(MinSize, styleToUse.logicalMinHeight(), intrinsicContentHeight))
</ins><span class="cx">         return std::max(logicalHeight, computedContentLogicalHeight.value());
</span><span class="cx">     return logicalHeight;
</span><span class="cx"> }
</span><span class="lines">@@ -1112,13 +1112,13 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-Optional&lt;LayoutUnit&gt; RenderBox::overrideContainingBlockContentLogicalWidth() const
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderBox::overrideContainingBlockContentLogicalWidth() const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(hasOverrideContainingBlockLogicalWidth());
</span><span class="cx">     return gOverrideContainingBlockLogicalWidthMap-&gt;get(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LayoutUnit&gt; RenderBox::overrideContainingBlockContentLogicalHeight() const
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderBox::overrideContainingBlockContentLogicalHeight() const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(hasOverrideContainingBlockLogicalHeight());
</span><span class="cx">     return gOverrideContainingBlockLogicalHeightMap-&gt;get(this);
</span><span class="lines">@@ -1134,7 +1134,7 @@
</span><span class="cx">     return gOverrideContainingBlockLogicalHeightMap &amp;&amp; gOverrideContainingBlockLogicalHeightMap-&gt;contains(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderBox::setOverrideContainingBlockContentLogicalWidth(Optional&lt;LayoutUnit&gt; logicalWidth)
</del><ins>+void RenderBox::setOverrideContainingBlockContentLogicalWidth(std::optional&lt;LayoutUnit&gt; logicalWidth)
</ins><span class="cx"> {
</span><span class="cx">     if (!gOverrideContainingBlockLogicalWidthMap)
</span><span class="cx">         gOverrideContainingBlockLogicalWidthMap = new OverrideOptionalSizeMap;
</span><span class="lines">@@ -1141,7 +1141,7 @@
</span><span class="cx">     gOverrideContainingBlockLogicalWidthMap-&gt;set(this, logicalWidth);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderBox::setOverrideContainingBlockContentLogicalHeight(Optional&lt;LayoutUnit&gt; logicalHeight)
</del><ins>+void RenderBox::setOverrideContainingBlockContentLogicalHeight(std::optional&lt;LayoutUnit&gt; logicalHeight)
</ins><span class="cx"> {
</span><span class="cx">     if (!gOverrideContainingBlockLogicalHeightMap)
</span><span class="cx">         gOverrideContainingBlockLogicalHeightMap = new OverrideOptionalSizeMap;
</span><span class="lines">@@ -1217,7 +1217,7 @@
</span><span class="cx">     return std::max&lt;LayoutUnit&gt;(0, width);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-LayoutUnit RenderBox::adjustContentBoxLogicalHeightForBoxSizing(Optional&lt;LayoutUnit&gt; height) const
</del><ins>+LayoutUnit RenderBox::adjustContentBoxLogicalHeightForBoxSizing(std::optional&lt;LayoutUnit&gt; height) const
</ins><span class="cx"> {
</span><span class="cx">     if (!height)
</span><span class="cx">         return 0;
</span><span class="lines">@@ -2862,7 +2862,7 @@
</span><span class="cx">         LayoutUnit heightResult;
</span><span class="cx">         if (checkMinMaxHeight) {
</span><span class="cx">             LayoutUnit intrinsicHeight = computedValues.m_extent - borderAndPaddingLogicalHeight();
</span><del>-            heightResult = computeLogicalHeightUsing(MainOrPreferredSize, style().logicalHeight(), intrinsicHeight).valueOr(computedValues.m_extent);
</del><ins>+            heightResult = computeLogicalHeightUsing(MainOrPreferredSize, style().logicalHeight(), intrinsicHeight).value_or(computedValues.m_extent);
</ins><span class="cx">             heightResult = constrainLogicalHeightByMinMax(heightResult, intrinsicHeight);
</span><span class="cx">         } else {
</span><span class="cx">             // The only times we don't check min/max height are when a fixed length has
</span><span class="lines">@@ -2901,21 +2901,21 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LayoutUnit&gt; RenderBox::computeLogicalHeightUsing(SizeType heightType, const Length&amp; height, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderBox::computeLogicalHeightUsing(SizeType heightType, const Length&amp; height, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</ins><span class="cx"> {
</span><del>-    if (Optional&lt;LayoutUnit&gt; logicalHeight = computeContentAndScrollbarLogicalHeightUsing(heightType, height, intrinsicContentHeight))
</del><ins>+    if (std::optional&lt;LayoutUnit&gt; logicalHeight = computeContentAndScrollbarLogicalHeightUsing(heightType, height, intrinsicContentHeight))
</ins><span class="cx">         return adjustBorderBoxLogicalHeightForBoxSizing(logicalHeight.value());
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LayoutUnit&gt; RenderBox::computeContentLogicalHeight(SizeType heightType, const Length&amp; height, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderBox::computeContentLogicalHeight(SizeType heightType, const Length&amp; height, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</ins><span class="cx"> {
</span><del>-    if (Optional&lt;LayoutUnit&gt; heightIncludingScrollbar = computeContentAndScrollbarLogicalHeightUsing(heightType, height, intrinsicContentHeight))
</del><ins>+    if (std::optional&lt;LayoutUnit&gt; heightIncludingScrollbar = computeContentAndScrollbarLogicalHeightUsing(heightType, height, intrinsicContentHeight))
</ins><span class="cx">         return std::max&lt;LayoutUnit&gt;(0, adjustContentBoxLogicalHeightForBoxSizing(heightIncludingScrollbar) - scrollbarLogicalHeight());
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LayoutUnit&gt; RenderBox::computeIntrinsicLogicalContentHeightUsing(Length logicalHeightLength, Optional&lt;LayoutUnit&gt; intrinsicContentHeight, LayoutUnit borderAndPadding) const
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderBox::computeIntrinsicLogicalContentHeightUsing(Length logicalHeightLength, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight, LayoutUnit borderAndPadding) const
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: The CSS sizing spec is considering changing what min-content/max-content should resolve to.
</span><span class="cx">     // If that happens, this code will have to change.
</span><span class="lines">@@ -2932,10 +2932,10 @@
</span><span class="cx">     return LayoutUnit(0);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LayoutUnit&gt; RenderBox::computeContentAndScrollbarLogicalHeightUsing(SizeType heightType, const Length&amp; height, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderBox::computeContentAndScrollbarLogicalHeightUsing(SizeType heightType, const Length&amp; height, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const
</ins><span class="cx"> {
</span><span class="cx">     if (height.isAuto())
</span><del>-        return heightType == MinSize ? Optional&lt;LayoutUnit&gt;(0) : Nullopt;
</del><ins>+        return heightType == MinSize ? std::optional&lt;LayoutUnit&gt;(0) : std::nullopt;
</ins><span class="cx">     // FIXME: The CSS sizing spec is considering changing what min-content/max-content should resolve to.
</span><span class="cx">     // If that happens, this code will have to change.
</span><span class="cx">     if (height.isIntrinsic())
</span><span class="lines">@@ -2944,7 +2944,7 @@
</span><span class="cx">         return LayoutUnit(height.value());
</span><span class="cx">     if (height.isPercentOrCalculated())
</span><span class="cx">         return computePercentageLogicalHeight(height);
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderBox::skipContainingBlockForPercentHeightCalculation(const RenderBox&amp; containingBlock, bool isPerpendicularWritingMode) const
</span><span class="lines">@@ -2974,9 +2974,9 @@
</span><span class="cx">     return scrollsOverflowY &amp;&amp; (!cell.style().logicalHeight().isAuto() || !cell.table()-&gt;style().logicalHeight().isAuto());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LayoutUnit&gt; RenderBox::computePercentageLogicalHeight(const Length&amp; height) const
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderBox::computePercentageLogicalHeight(const Length&amp; height) const
</ins><span class="cx"> {
</span><del>-    Optional&lt;LayoutUnit&gt; availableHeight;
</del><ins>+    std::optional&lt;LayoutUnit&gt; availableHeight;
</ins><span class="cx"> 
</span><span class="cx">     bool skippedAutoHeightContainingBlock = false;
</span><span class="cx">     RenderBlock* cb = containingBlock();
</span><span class="lines">@@ -3014,7 +3014,7 @@
</span><span class="cx">             // don't care if the cell specified a height or not. We just always make ourselves
</span><span class="cx">             // be a percentage of the cell's current content height.
</span><span class="cx">             if (!cb-&gt;hasOverrideLogicalContentHeight())
</span><del>-                return tableCellShouldHaveZeroInitialSize(*cb, scrollsOverflowY()) ? Optional&lt;LayoutUnit&gt;() : Nullopt;
</del><ins>+                return tableCellShouldHaveZeroInitialSize(*cb, scrollsOverflowY()) ? std::optional&lt;LayoutUnit&gt;() : std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">             availableHeight = cb-&gt;overrideLogicalContentHeight();
</span><span class="cx">             includeBorderPadding = true;
</span><span class="lines">@@ -3021,16 +3021,16 @@
</span><span class="cx">         }
</span><span class="cx">     } else if (cbstyle.logicalHeight().isFixed()) {
</span><span class="cx">         LayoutUnit contentBoxHeight = cb-&gt;adjustContentBoxLogicalHeightForBoxSizing(LayoutUnit(cbstyle.logicalHeight().value()));
</span><del>-        availableHeight = std::max&lt;LayoutUnit&gt;(0, cb-&gt;constrainContentBoxLogicalHeightByMinMax(contentBoxHeight - cb-&gt;scrollbarLogicalHeight(), Nullopt));
</del><ins>+        availableHeight = std::max&lt;LayoutUnit&gt;(0, cb-&gt;constrainContentBoxLogicalHeightByMinMax(contentBoxHeight - cb-&gt;scrollbarLogicalHeight(), std::nullopt));
</ins><span class="cx">     } else if (cbstyle.logicalHeight().isPercentOrCalculated() &amp;&amp; !isOutOfFlowPositionedWithSpecifiedHeight) {
</span><span class="cx">         // We need to recur and compute the percentage height for our containing block.
</span><del>-        if (Optional&lt;LayoutUnit&gt; heightWithScrollbar = cb-&gt;computePercentageLogicalHeight(cbstyle.logicalHeight())) {
</del><ins>+        if (std::optional&lt;LayoutUnit&gt; heightWithScrollbar = cb-&gt;computePercentageLogicalHeight(cbstyle.logicalHeight())) {
</ins><span class="cx">             LayoutUnit contentBoxHeightWithScrollbar = cb-&gt;adjustContentBoxLogicalHeightForBoxSizing(heightWithScrollbar);
</span><span class="cx">             // We need to adjust for min/max height because this method does not
</span><span class="cx">             // handle the min/max of the current block, its caller does. So the
</span><span class="cx">             // return value from the recursive call will not have been adjusted
</span><span class="cx">             // yet.
</span><del>-            LayoutUnit contentBoxHeight = cb-&gt;constrainContentBoxLogicalHeightByMinMax(contentBoxHeightWithScrollbar - cb-&gt;scrollbarLogicalHeight(), Nullopt);
</del><ins>+            LayoutUnit contentBoxHeight = cb-&gt;constrainContentBoxLogicalHeightByMinMax(contentBoxHeightWithScrollbar - cb-&gt;scrollbarLogicalHeight(), std::nullopt);
</ins><span class="cx">             availableHeight = std::max&lt;LayoutUnit&gt;(0, contentBoxHeight);
</span><span class="cx">         }
</span><span class="cx">     } else if (isOutOfFlowPositionedWithSpecifiedHeight) {
</span><span class="lines">@@ -3133,7 +3133,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(heightType == MinSize || heightType == MainOrPreferredSize || !logicalHeight.isAuto());
</span><span class="cx">     if (heightType == MinSize &amp;&amp; logicalHeight.isAuto())
</span><del>-        return adjustContentBoxLogicalHeightForBoxSizing(Optional&lt;LayoutUnit&gt;(0));
</del><ins>+        return adjustContentBoxLogicalHeightForBoxSizing(std::optional&lt;LayoutUnit&gt;(0));
</ins><span class="cx"> 
</span><span class="cx">     switch (logicalHeight.type()) {
</span><span class="cx">         case Fixed:
</span><span class="lines">@@ -3197,7 +3197,7 @@
</span><span class="cx"> 
</span><span class="cx"> LayoutUnit RenderBox::availableLogicalHeight(AvailableLogicalHeightType heightType) const
</span><span class="cx"> {
</span><del>-    return constrainLogicalHeightByMinMax(availableLogicalHeightUsing(style().logicalHeight(), heightType), Nullopt);
</del><ins>+    return constrainLogicalHeightByMinMax(availableLogicalHeightUsing(style().logicalHeight(), heightType), std::nullopt);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> LayoutUnit RenderBox::availableLogicalHeightUsing(const Length&amp; h, AvailableLogicalHeightType heightType) const
</span><span class="lines">@@ -3217,7 +3217,7 @@
</span><span class="cx">         return adjustContentBoxLogicalHeightForBoxSizing(valueForLength(h, availableHeight));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (Optional&lt;LayoutUnit&gt; heightIncludingScrollbar = computeContentAndScrollbarLogicalHeightUsing(MainOrPreferredSize, h, Nullopt))
</del><ins>+    if (std::optional&lt;LayoutUnit&gt; heightIncludingScrollbar = computeContentAndScrollbarLogicalHeightUsing(MainOrPreferredSize, h, std::nullopt))
</ins><span class="cx">         return std::max&lt;LayoutUnit&gt;(0, adjustContentBoxLogicalHeightForBoxSizing(heightIncludingScrollbar) - scrollbarLogicalHeight());
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Check logicalTop/logicalBottom here to correctly handle vertical writing-mode.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderBox.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -87,8 +87,8 @@
</span><span class="cx">     LayoutUnit logicalHeight() const { return style().isHorizontalWritingMode() ? height() : width(); }
</span><span class="cx"> 
</span><span class="cx">     LayoutUnit constrainLogicalWidthInRegionByMinMax(LayoutUnit, LayoutUnit, RenderBlock&amp;, RenderRegion* = nullptr) const;
</span><del>-    LayoutUnit constrainLogicalHeightByMinMax(LayoutUnit logicalHeight, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
-    LayoutUnit constrainContentBoxLogicalHeightByMinMax(LayoutUnit logicalHeight, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
</del><ins>+    LayoutUnit constrainLogicalHeightByMinMax(LayoutUnit logicalHeight, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
+    LayoutUnit constrainContentBoxLogicalHeightByMinMax(LayoutUnit logicalHeight, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
</ins><span class="cx"> 
</span><span class="cx">     void setLogicalLeft(LayoutUnit left)
</span><span class="cx">     {
</span><span class="lines">@@ -312,12 +312,12 @@
</span><span class="cx">     void clearOverrideLogicalContentWidth();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-    Optional&lt;LayoutUnit&gt; overrideContainingBlockContentLogicalWidth() const;
-    Optional&lt;LayoutUnit&gt; overrideContainingBlockContentLogicalHeight() const;
</del><ins>+    std::optional&lt;LayoutUnit&gt; overrideContainingBlockContentLogicalWidth() const;
+    std::optional&lt;LayoutUnit&gt; overrideContainingBlockContentLogicalHeight() const;
</ins><span class="cx">     bool hasOverrideContainingBlockLogicalWidth() const;
</span><span class="cx">     bool hasOverrideContainingBlockLogicalHeight() const;
</span><del>-    void setOverrideContainingBlockContentLogicalWidth(Optional&lt;LayoutUnit&gt;);
-    void setOverrideContainingBlockContentLogicalHeight(Optional&lt;LayoutUnit&gt;);
</del><ins>+    void setOverrideContainingBlockContentLogicalWidth(std::optional&lt;LayoutUnit&gt;);
+    void setOverrideContainingBlockContentLogicalHeight(std::optional&lt;LayoutUnit&gt;);
</ins><span class="cx">     void clearContainingBlockOverrideSize();
</span><span class="cx">     void clearOverrideContainingBlockContentLogicalHeight();
</span><span class="cx">     LayoutUnit extraInlineOffset() const;
</span><span class="lines">@@ -332,7 +332,7 @@
</span><span class="cx">     LayoutUnit adjustBorderBoxLogicalWidthForBoxSizing(LayoutUnit width) const;
</span><span class="cx">     LayoutUnit adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const;
</span><span class="cx">     LayoutUnit adjustContentBoxLogicalWidthForBoxSizing(LayoutUnit width) const;
</span><del>-    LayoutUnit adjustContentBoxLogicalHeightForBoxSizing(Optional&lt;LayoutUnit&gt; height) const;
</del><ins>+    LayoutUnit adjustContentBoxLogicalHeightForBoxSizing(std::optional&lt;LayoutUnit&gt; height) const;
</ins><span class="cx"> 
</span><span class="cx">     struct ComputedMarginValues {
</span><span class="cx">         ComputedMarginValues()
</span><span class="lines">@@ -422,9 +422,9 @@
</span><span class="cx">     LayoutUnit shrinkLogicalWidthToAvoidFloats(LayoutUnit childMarginStart, LayoutUnit childMarginEnd, const RenderBlock&amp; cb, RenderRegion*) const;
</span><span class="cx"> 
</span><span class="cx">     LayoutUnit computeLogicalWidthInRegionUsing(SizeType, Length logicalWidth, LayoutUnit availableLogicalWidth, const RenderBlock&amp; containingBlock, RenderRegion*) const;
</span><del>-    Optional&lt;LayoutUnit&gt; computeLogicalHeightUsing(SizeType, const Length&amp; height, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
-    Optional&lt;LayoutUnit&gt; computeContentLogicalHeight(SizeType, const Length&amp; height, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
-    Optional&lt;LayoutUnit&gt; computeContentAndScrollbarLogicalHeightUsing(SizeType, const Length&amp; height, Optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
</del><ins>+    std::optional&lt;LayoutUnit&gt; computeLogicalHeightUsing(SizeType, const Length&amp; height, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
+    std::optional&lt;LayoutUnit&gt; computeContentLogicalHeight(SizeType, const Length&amp; height, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
+    std::optional&lt;LayoutUnit&gt; computeContentAndScrollbarLogicalHeightUsing(SizeType, const Length&amp; height, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight) const;
</ins><span class="cx">     LayoutUnit computeReplacedLogicalWidthUsing(SizeType, Length width) const;
</span><span class="cx">     LayoutUnit computeReplacedLogicalWidthRespectingMinMaxWidth(LayoutUnit logicalWidth, ShouldComputePreferred  = ComputeActual) const;
</span><span class="cx">     LayoutUnit computeReplacedLogicalHeightUsing(SizeType, Length height) const;
</span><span class="lines">@@ -436,7 +436,7 @@
</span><span class="cx">     bool hasDefiniteLogicalWidth() const;
</span><span class="cx">     static bool percentageLogicalHeightIsResolvableFromBlock(const RenderBlock&amp; containingBlock, bool outOfFlowPositioned, bool scrollsOverflowY);
</span><span class="cx">     bool hasDefiniteLogicalHeight() const;
</span><del>-    Optional&lt;LayoutUnit&gt; computePercentageLogicalHeight(const Length&amp; height) const;
</del><ins>+    std::optional&lt;LayoutUnit&gt; computePercentageLogicalHeight(const Length&amp; height) const;
</ins><span class="cx"> 
</span><span class="cx">     virtual LayoutUnit availableLogicalWidth() const { return contentLogicalWidth(); }
</span><span class="cx">     virtual LayoutUnit availableLogicalHeight(AvailableLogicalHeightType) const;
</span><span class="lines">@@ -518,8 +518,8 @@
</span><span class="cx">     
</span><span class="cx">     RenderLayer* enclosingFloatPaintingLayer() const;
</span><span class="cx">     
</span><del>-    virtual Optional&lt;int&gt; firstLineBaseline() const { return Optional&lt;int&gt;(); }
-    virtual Optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const { return Optional&lt;int&gt;(); } // Returns empty if we should skip this box when computing the baseline of an inline-block.
</del><ins>+    virtual std::optional&lt;int&gt; firstLineBaseline() const { return std::optional&lt;int&gt;(); }
+    virtual std::optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const { return std::optional&lt;int&gt;(); } // Returns empty if we should skip this box when computing the baseline of an inline-block.
</ins><span class="cx"> 
</span><span class="cx">     bool shrinkToAvoidFloats() const;
</span><span class="cx">     virtual bool avoidsFloats() const;
</span><span class="lines">@@ -651,7 +651,7 @@
</span><span class="cx">     void computePositionedLogicalWidth(LogicalExtentComputedValues&amp;, RenderRegion* = nullptr) const;
</span><span class="cx"> 
</span><span class="cx">     LayoutUnit computeIntrinsicLogicalWidthUsing(Length logicalWidthLength, LayoutUnit availableLogicalWidth, LayoutUnit borderAndPadding) const;
</span><del>-    virtual Optional&lt;LayoutUnit&gt; computeIntrinsicLogicalContentHeightUsing(Length logicalHeightLength, Optional&lt;LayoutUnit&gt; intrinsicContentHeight, LayoutUnit borderAndPadding) const;
</del><ins>+    virtual std::optional&lt;LayoutUnit&gt; computeIntrinsicLogicalContentHeightUsing(Length logicalHeightLength, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight, LayoutUnit borderAndPadding) const;
</ins><span class="cx">     
</span><span class="cx">     virtual bool shouldComputeSizeAsReplaced() const { return isReplaced() &amp;&amp; !isInlineBlockOrInlineTable(); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderCombineTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderCombineText.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderCombineText.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderCombineText.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -71,10 +71,10 @@
</span><span class="cx">     return RenderText::width(from, length, font, xPosition, fallbackFonts, glyphOverflow);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;FloatPoint&gt; RenderCombineText::computeTextOrigin(const FloatRect&amp; boxRect) const
</del><ins>+std::optional&lt;FloatPoint&gt; RenderCombineText::computeTextOrigin(const FloatRect&amp; boxRect) const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_isCombined)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     // Visually center m_combinedTextWidth/Ascent/Descent within boxRect
</span><span class="cx">     FloatPoint result = boxRect.minXMaxYCorner();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderCombineTexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderCombineText.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderCombineText.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderCombineText.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx">     Text&amp; textNode() const { return downcast&lt;Text&gt;(nodeForNonAnonymous()); }
</span><span class="cx"> 
</span><span class="cx">     void combineText();
</span><del>-    Optional&lt;FloatPoint&gt; computeTextOrigin(const FloatRect&amp; boxRect) const;
</del><ins>+    std::optional&lt;FloatPoint&gt; computeTextOrigin(const FloatRect&amp; boxRect) const;
</ins><span class="cx">     String combinedStringForRendering() const;
</span><span class="cx">     bool isCombined() const { return m_isCombined; }
</span><span class="cx">     float combinedTextWidth(const FontCascade&amp; font) const { return font.size(); }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderDeprecatedFlexibleBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -433,7 +433,7 @@
</span><span class="cx"> 
</span><span class="cx">             // Update our height and overflow height.
</span><span class="cx">             if (style().boxAlign() == BBASELINE) {
</span><del>-                LayoutUnit ascent = child-&gt;firstLineBaseline().valueOr(child-&gt;height() + child-&gt;marginBottom());
</del><ins>+                LayoutUnit ascent = child-&gt;firstLineBaseline().value_or(child-&gt;height() + child-&gt;marginBottom());
</ins><span class="cx">                 ascent += child-&gt;marginTop();
</span><span class="cx">                 LayoutUnit descent = (child-&gt;height() + child-&gt;verticalMarginExtent()) - ascent;
</span><span class="cx"> 
</span><span class="lines">@@ -508,7 +508,7 @@
</span><span class="cx">                     childY += child-&gt;marginTop() + std::max&lt;LayoutUnit&gt;(0, (contentHeight() - (child-&gt;height() + child-&gt;verticalMarginExtent())) / 2);
</span><span class="cx">                     break;
</span><span class="cx">                 case BBASELINE: {
</span><del>-                    LayoutUnit ascent = child-&gt;firstLineBaseline().valueOr(child-&gt;height() + child-&gt;marginBottom());
</del><ins>+                    LayoutUnit ascent = child-&gt;firstLineBaseline().value_or(child-&gt;height() + child-&gt;marginBottom());
</ins><span class="cx">                     ascent += child-&gt;marginTop();
</span><span class="cx">                     childY += child-&gt;marginTop() + (maxAscent - ascent);
</span><span class="cx">                     break;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFlexibleBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -175,16 +175,16 @@
</span><span class="cx"> 
</span><span class="cx"> int RenderFlexibleBox::baselinePosition(FontBaseline, bool, LineDirectionMode direction, LinePositionMode) const
</span><span class="cx"> {
</span><del>-    int baseline = firstLineBaseline().valueOr(synthesizedBaselineFromContentBox(*this, direction));
</del><ins>+    int baseline = firstLineBaseline().value_or(synthesizedBaselineFromContentBox(*this, direction));
</ins><span class="cx"> 
</span><span class="cx">     int marginAscent = direction == HorizontalLine ? marginTop() : marginRight();
</span><span class="cx">     return baseline + marginAscent;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderFlexibleBox::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderFlexibleBox::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     if (isWritingModeRoot() || m_numberOfInFlowChildrenOnFirstLine &lt;= 0)
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx">     RenderBox* baselineChild = nullptr;
</span><span class="cx">     int childNumber = 0;
</span><span class="cx">     for (RenderBox* child = m_orderIterator.first(); child; child = m_orderIterator.next()) {
</span><span class="lines">@@ -203,27 +203,27 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!baselineChild)
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><span class="cx">     if (!isColumnFlow() &amp;&amp; hasOrthogonalFlow(*baselineChild))
</span><del>-        return Optional&lt;int&gt;(crossAxisExtentForChild(*baselineChild) + baselineChild-&gt;logicalTop());
</del><ins>+        return std::optional&lt;int&gt;(crossAxisExtentForChild(*baselineChild) + baselineChild-&gt;logicalTop());
</ins><span class="cx">     if (isColumnFlow() &amp;&amp; !hasOrthogonalFlow(*baselineChild))
</span><del>-        return Optional&lt;int&gt;(mainAxisExtentForChild(*baselineChild) + baselineChild-&gt;logicalTop());
</del><ins>+        return std::optional&lt;int&gt;(mainAxisExtentForChild(*baselineChild) + baselineChild-&gt;logicalTop());
</ins><span class="cx"> 
</span><del>-    Optional&lt;int&gt; baseline = baselineChild-&gt;firstLineBaseline();
</del><ins>+    std::optional&lt;int&gt; baseline = baselineChild-&gt;firstLineBaseline();
</ins><span class="cx">     if (!baseline) {
</span><span class="cx">         // FIXME: We should pass |direction| into firstLineBoxBaseline and stop bailing out if we're a writing mode root.
</span><span class="cx">         // This would also fix some cases where the flexbox is orthogonal to its container.
</span><span class="cx">         LineDirectionMode direction = isHorizontalWritingMode() ? HorizontalLine : VerticalLine;
</span><del>-        return Optional&lt;int&gt;(synthesizedBaselineFromContentBox(*baselineChild, direction) + baselineChild-&gt;logicalTop());
</del><ins>+        return std::optional&lt;int&gt;(synthesizedBaselineFromContentBox(*baselineChild, direction) + baselineChild-&gt;logicalTop());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Optional&lt;int&gt;(baseline.value() + baselineChild-&gt;logicalTop());
</del><ins>+    return std::optional&lt;int&gt;(baseline.value() + baselineChild-&gt;logicalTop());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderFlexibleBox::inlineBlockBaseline(LineDirectionMode direction) const
</del><ins>+std::optional&lt;int&gt; RenderFlexibleBox::inlineBlockBaseline(LineDirectionMode direction) const
</ins><span class="cx"> {
</span><del>-    if (Optional&lt;int&gt; baseline = firstLineBaseline())
</del><ins>+    if (std::optional&lt;int&gt; baseline = firstLineBaseline())
</ins><span class="cx">         return baseline;
</span><span class="cx"> 
</span><span class="cx">     int marginAscent = direction == HorizontalLine ? marginTop() : marginRight();
</span><span class="lines">@@ -455,12 +455,12 @@
</span><span class="cx">     return contentLogicalWidth();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LayoutUnit&gt; RenderFlexibleBox::computeMainAxisExtentForChild(const RenderBox&amp; child, SizeType sizeType, const Length&amp; size)
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderFlexibleBox::computeMainAxisExtentForChild(const RenderBox&amp; child, SizeType sizeType, const Length&amp; size)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: This is wrong for orthogonal flows. It should use the flexbox's writing-mode, not the child's in order
</span><span class="cx">     // to figure out the logical height/width.
</span><span class="cx">     if (isColumnFlow()) {
</span><del>-        // We don't have to check for &quot;auto&quot; here - computeContentLogicalHeight will just return Nullopt for that case anyway.
</del><ins>+        // We don't have to check for &quot;auto&quot; here - computeContentLogicalHeight will just return std::nullopt for that case anyway.
</ins><span class="cx">         if (size.isIntrinsic())
</span><span class="cx">             const_cast&lt;RenderBox&amp;&gt;(child).layoutIfNeeded(); // FIXME: Should not need to do a layout here.
</span><span class="cx">         return child.computeContentLogicalHeight(sizeType, size, child.logicalHeight() - child.borderAndPaddingLogicalHeight());
</span><span class="lines">@@ -685,7 +685,7 @@
</span><span class="cx">         ASSERT(mainAxisExtent - mainAxisBorderAndPaddingExtentForChild(child) &gt;= 0);
</span><span class="cx">         return mainAxisExtent - mainAxisBorderAndPaddingExtentForChild(child);
</span><span class="cx">     }
</span><del>-    return computeMainAxisExtentForChild(child, MainOrPreferredSize, flexBasis).valueOr(0);
</del><ins>+    return computeMainAxisExtentForChild(child, MainOrPreferredSize, flexBasis).value_or(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderFlexibleBox::layoutFlexItems(bool relayoutChildren, Vector&lt;LineContext&gt;&amp; lineContexts)
</span><span class="lines">@@ -825,7 +825,7 @@
</span><span class="cx"> 
</span><span class="cx"> LayoutUnit RenderFlexibleBox::marginBoxAscentForChild(RenderBox&amp; child)
</span><span class="cx"> {
</span><del>-    LayoutUnit ascent = child.firstLineBaseline().valueOr(crossAxisExtentForChild(child));
</del><ins>+    LayoutUnit ascent = child.firstLineBaseline().value_or(crossAxisExtentForChild(child));
</ins><span class="cx">     return ascent + flowAwareMarginBeforeForChild(child);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -869,12 +869,12 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx">     
</span><del>-Optional&lt;LayoutUnit&gt; RenderFlexibleBox::computeMainSizeFromAspectRatioUsing(const RenderBox&amp; child, Length crossSizeLength) const
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderFlexibleBox::computeMainSizeFromAspectRatioUsing(const RenderBox&amp; child, Length crossSizeLength) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(child.hasAspectRatio());
</span><span class="cx">     ASSERT(child.intrinsicSize().height() &gt; 0);
</span><span class="cx">     
</span><del>-    Optional&lt;LayoutUnit&gt; crossSize;
</del><ins>+    std::optional&lt;LayoutUnit&gt; crossSize;
</ins><span class="cx">     if (crossSizeLength.isFixed())
</span><span class="cx">         crossSize = LayoutUnit(crossSizeLength.value());
</span><span class="cx">     else {
</span><span class="lines">@@ -900,13 +900,13 @@
</span><span class="cx">     Length crossMax = isHorizontalFlow() ? child.style().maxHeight() : child.style().maxWidth();
</span><span class="cx"> 
</span><span class="cx">     if (crossAxisLengthIsDefinite(child, crossMax)) {
</span><del>-        Optional&lt;LayoutUnit&gt; maxValue = computeMainSizeFromAspectRatioUsing(child, crossMax);
</del><ins>+        std::optional&lt;LayoutUnit&gt; maxValue = computeMainSizeFromAspectRatioUsing(child, crossMax);
</ins><span class="cx">         if (maxValue)
</span><span class="cx">             childSize = std::min(maxValue.value(), childSize);
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (crossAxisLengthIsDefinite(child, crossMin)) {
</span><del>-        Optional&lt;LayoutUnit&gt; minValue = computeMainSizeFromAspectRatioUsing(child, crossMin);
</del><ins>+        std::optional&lt;LayoutUnit&gt; minValue = computeMainSizeFromAspectRatioUsing(child, crossMin);
</ins><span class="cx">         if (minValue)
</span><span class="cx">             childSize = std::max(minValue.value(), childSize);
</span><span class="cx">     }
</span><span class="lines">@@ -927,15 +927,15 @@
</span><span class="cx"> LayoutUnit RenderFlexibleBox::adjustChildSizeForMinAndMax(const RenderBox&amp; child, LayoutUnit childSize)
</span><span class="cx"> {
</span><span class="cx">     Length max = isHorizontalFlow() ? child.style().maxWidth() : child.style().maxHeight();
</span><del>-    Optional&lt;LayoutUnit&gt; maxExtent = Nullopt;
</del><ins>+    std::optional&lt;LayoutUnit&gt; maxExtent = std::nullopt;
</ins><span class="cx">     if (max.isSpecifiedOrIntrinsic()) {
</span><span class="cx">         maxExtent = computeMainAxisExtentForChild(child, MaxSize, max);
</span><del>-        childSize = std::min(childSize, maxExtent.valueOr(childSize));
</del><ins>+        childSize = std::min(childSize, maxExtent.value_or(childSize));
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     Length min = isHorizontalFlow() ? child.style().minWidth() : child.style().minHeight();
</span><span class="cx">     if (min.isSpecifiedOrIntrinsic())
</span><del>-        return std::max(childSize, computeMainAxisExtentForChild(child, MinSize, min).valueOr(childSize));
</del><ins>+        return std::max(childSize, computeMainAxisExtentForChild(child, MinSize, min).value_or(childSize));
</ins><span class="cx">     
</span><span class="cx">     if (!isFlexibleBoxImpl() &amp;&amp; min.isAuto() &amp;&amp; mainAxisOverflowForChild(child) == OVISIBLE &amp;&amp; !(isColumnFlow() &amp;&amp; is&lt;RenderFlexibleBox&gt;(child))) {
</span><span class="cx">         // This is the implementation of CSS flexbox section 4.5 which defines the minimum size of &quot;pure&quot; flex
</span><span class="lines">@@ -947,17 +947,17 @@
</span><span class="cx">         ASSERT(contentSize &gt;= 0);
</span><span class="cx">         if (child.hasAspectRatio() &amp;&amp; child.intrinsicSize().height() &gt; 0)
</span><span class="cx">             contentSize = adjustChildSizeForAspectRatioCrossAxisMinAndMax(child, contentSize);
</span><del>-        contentSize = std::min(contentSize, maxExtent.valueOr(contentSize));
</del><ins>+        contentSize = std::min(contentSize, maxExtent.value_or(contentSize));
</ins><span class="cx">         
</span><span class="cx">         Length mainSize = isHorizontalFlow() ? child.style().width() : child.style().height();
</span><span class="cx">         if (mainAxisLengthIsDefinite(child, mainSize)) {
</span><span class="cx">             LayoutUnit resolvedMainSize = computeMainAxisExtentForChild(child, MainOrPreferredSize, mainSize).value();
</span><span class="cx">             ASSERT(resolvedMainSize &gt;= 0);
</span><del>-            LayoutUnit specifiedSize = std::min(resolvedMainSize, maxExtent.valueOr(resolvedMainSize));
</del><ins>+            LayoutUnit specifiedSize = std::min(resolvedMainSize, maxExtent.value_or(resolvedMainSize));
</ins><span class="cx">             return std::max(childSize, std::min(specifiedSize, contentSize));
</span><span class="cx">         } else if (useChildAspectRatio(child)) {
</span><span class="cx">             Length crossSizeLength = isHorizontalFlow() ? child.style().height() : child.style().width();
</span><del>-            Optional&lt;LayoutUnit&gt; transferredSize = computeMainSizeFromAspectRatioUsing(child, crossSizeLength);
</del><ins>+            std::optional&lt;LayoutUnit&gt; transferredSize = computeMainSizeFromAspectRatioUsing(child, crossSizeLength);
</ins><span class="cx">             if (transferredSize) {
</span><span class="cx">                 transferredSize = adjustChildSizeForAspectRatioCrossAxisMinAndMax(child, transferredSize.value());
</span><span class="cx">                 return std::max(childSize, std::min(transferredSize.value(), contentSize));
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFlexibleBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFlexibleBox.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -48,8 +48,8 @@
</span><span class="cx">     void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) final;
</span><span class="cx"> 
</span><span class="cx">     int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const override;
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const override;
-    Optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const override;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const override;
+    std::optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const override;
</ins><span class="cx"> 
</span><span class="cx">     void paintChildren(PaintInfo&amp; forSelf, const LayoutPoint&amp;, PaintInfo&amp; forChild, bool usePrintRect) override;
</span><span class="cx"> 
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">     LayoutUnit mainAxisExtent() const;
</span><span class="cx">     LayoutUnit crossAxisContentExtent() const;
</span><span class="cx">     LayoutUnit mainAxisContentExtent(LayoutUnit contentLogicalHeight);
</span><del>-    Optional&lt;LayoutUnit&gt; computeMainAxisExtentForChild(const RenderBox&amp; child, SizeType, const Length&amp; size);
</del><ins>+    std::optional&lt;LayoutUnit&gt; computeMainAxisExtentForChild(const RenderBox&amp; child, SizeType, const Length&amp; size);
</ins><span class="cx">     WritingMode transformedWritingMode() const;
</span><span class="cx">     LayoutUnit flowAwareBorderStart() const;
</span><span class="cx">     LayoutUnit flowAwareBorderEnd() const;
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">     bool mainAxisLengthIsDefinite(const RenderBox&amp;, const Length&amp;) const;
</span><span class="cx">     bool crossAxisLengthIsDefinite(const RenderBox&amp;, const Length&amp;) const;
</span><span class="cx">     bool useChildAspectRatio(const RenderBox&amp;) const;
</span><del>-    Optional&lt;LayoutUnit&gt; computeMainSizeFromAspectRatioUsing(const RenderBox&amp; child, Length crossSizeLength) const;
</del><ins>+    std::optional&lt;LayoutUnit&gt; computeMainSizeFromAspectRatioUsing(const RenderBox&amp; child, Length crossSizeLength) const;
</ins><span class="cx">     
</span><span class="cx">     virtual bool isFlexibleBoxImpl() const { return false; };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFlowThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFlowThread.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFlowThread.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1087,7 +1087,7 @@
</span><span class="cx">         hasComputedAutoHeight = true;
</span><span class="cx"> 
</span><span class="cx">         // Compute the region height pretending that the offsetBreakInCurrentRegion is the logicalHeight for the auto-height region.
</span><del>-        LayoutUnit regionComputedAutoHeight = namedFlowFragment.constrainContentBoxLogicalHeightByMinMax(offsetBreakInCurrentRegion, Nullopt);
</del><ins>+        LayoutUnit regionComputedAutoHeight = namedFlowFragment.constrainContentBoxLogicalHeightByMinMax(offsetBreakInCurrentRegion, std::nullopt);
</ins><span class="cx"> 
</span><span class="cx">         // The new height of this region needs to be smaller than the initial value, the max height. A forced break is the only way to change the initial
</span><span class="cx">         // height of an auto-height region besides content ending.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx"> 
</span><span class="cx">     void setGrowthLimit(LayoutUnit growthLimit)
</span><span class="cx">     {
</span><del>-        m_growthLimit = growthLimit == infinity ? growthLimit : std::min(growthLimit, m_growthLimitCap.valueOr(growthLimit));
</del><ins>+        m_growthLimit = growthLimit == infinity ? growthLimit : std::min(growthLimit, m_growthLimitCap.value_or(growthLimit));
</ins><span class="cx">         ensureGrowthLimitIsBiggerThanBaseSize();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -140,13 +140,13 @@
</span><span class="cx">     bool infinitelyGrowable() const { return m_infinitelyGrowable; }
</span><span class="cx">     void setInfinitelyGrowable(bool infinitelyGrowable) { m_infinitelyGrowable = infinitelyGrowable; }
</span><span class="cx"> 
</span><del>-    void setGrowthLimitCap(Optional&lt;LayoutUnit&gt; growthLimitCap)
</del><ins>+    void setGrowthLimitCap(std::optional&lt;LayoutUnit&gt; growthLimitCap)
</ins><span class="cx">     {
</span><span class="cx">         ASSERT(!growthLimitCap || growthLimitCap.value() &gt;= 0);
</span><span class="cx">         m_growthLimitCap = growthLimitCap;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;LayoutUnit&gt; growthLimitCap() const { return m_growthLimitCap; }
</del><ins>+    std::optional&lt;LayoutUnit&gt; growthLimitCap() const { return m_growthLimitCap; }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     bool growthLimitIsInfinite() const { return m_growthLimit == infinity; }
</span><span class="lines">@@ -162,7 +162,7 @@
</span><span class="cx">     LayoutUnit m_growthLimit { 0 };
</span><span class="cx">     LayoutUnit m_plannedSize { 0 };
</span><span class="cx">     LayoutUnit m_tempSize { 0 };
</span><del>-    Optional&lt;LayoutUnit&gt; m_growthLimitCap;
</del><ins>+    std::optional&lt;LayoutUnit&gt; m_growthLimitCap;
</ins><span class="cx">     bool m_infinitelyGrowable { false };
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -284,11 +284,11 @@
</span><span class="cx">     Vector&lt;GridTrack*&gt; growBeyondGrowthLimitsTracks;
</span><span class="cx">     Vector&lt;GridItemWithSpan&gt; itemsSortedByIncreasingSpan;
</span><span class="cx"> 
</span><del>-    Optional&lt;LayoutUnit&gt; freeSpace(GridTrackSizingDirection direction) { return direction == ForColumns ? freeSpaceForColumns : freeSpaceForRows; }
-    void setFreeSpace(GridTrackSizingDirection, Optional&lt;LayoutUnit&gt; freeSpace);
</del><ins>+    std::optional&lt;LayoutUnit&gt; freeSpace(GridTrackSizingDirection direction) { return direction == ForColumns ? freeSpaceForColumns : freeSpaceForRows; }
+    void setFreeSpace(GridTrackSizingDirection, std::optional&lt;LayoutUnit&gt; freeSpace);
</ins><span class="cx"> 
</span><del>-    Optional&lt;LayoutUnit&gt; availableSpace() const { return m_availableSpace; }
-    void setAvailableSpace(Optional&lt;LayoutUnit&gt; availableSpace) { m_availableSpace = availableSpace; }
</del><ins>+    std::optional&lt;LayoutUnit&gt; availableSpace() const { return m_availableSpace; }
+    void setAvailableSpace(std::optional&lt;LayoutUnit&gt; availableSpace) { m_availableSpace = availableSpace; }
</ins><span class="cx"> 
</span><span class="cx">     SizingOperation sizingOperation { TrackSizing };
</span><span class="cx"> 
</span><span class="lines">@@ -328,14 +328,14 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Optional&lt;LayoutUnit&gt; freeSpaceForColumns;
-    Optional&lt;LayoutUnit&gt; freeSpaceForRows;
</del><ins>+    std::optional&lt;LayoutUnit&gt; freeSpaceForColumns;
+    std::optional&lt;LayoutUnit&gt; freeSpaceForRows;
</ins><span class="cx">     // No need to store one per direction as it will be only used for computations during each axis
</span><span class="cx">     // track sizing. It's cached here because we need it to compute relative sizes.
</span><del>-    Optional&lt;LayoutUnit&gt; m_availableSpace;
</del><ins>+    std::optional&lt;LayoutUnit&gt; m_availableSpace;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-void RenderGrid::GridSizingData::setFreeSpace(GridTrackSizingDirection direction, Optional&lt;LayoutUnit&gt; freeSpace)
</del><ins>+void RenderGrid::GridSizingData::setFreeSpace(GridTrackSizingDirection direction, std::optional&lt;LayoutUnit&gt; freeSpace)
</ins><span class="cx"> {
</span><span class="cx">     if (direction == ForColumns)
</span><span class="cx">         freeSpaceForColumns = freeSpace;
</span><span class="lines">@@ -526,7 +526,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: We should use RenderBlock::hasDefiniteLogicalHeight() but it does not work for positioned stuff.
</span><span class="cx">     // FIXME: Consider caching the hasDefiniteLogicalHeight value throughout the layout.
</span><del>-    bool hasDefiniteLogicalHeight = hasOverrideLogicalContentHeight() || computeContentLogicalHeight(MainOrPreferredSize, style().logicalHeight(), Nullopt);
</del><ins>+    bool hasDefiniteLogicalHeight = hasOverrideLogicalContentHeight() || computeContentLogicalHeight(MainOrPreferredSize, style().logicalHeight(), std::nullopt);
</ins><span class="cx">     if (!hasDefiniteLogicalHeight)
</span><span class="cx">         computeIntrinsicLogicalHeight(sizingData);
</span><span class="cx">     else
</span><span class="lines">@@ -666,8 +666,8 @@
</span><span class="cx">         const_cast&lt;RenderGrid*&gt;(this)-&gt;placeItemsOnGrid(IntrinsicSizeComputation);
</span><span class="cx"> 
</span><span class="cx">     GridSizingData sizingData(numTracks(ForColumns), numTracks(ForRows));
</span><del>-    sizingData.setAvailableSpace(Nullopt);
-    sizingData.setFreeSpace(ForColumns, Nullopt);
</del><ins>+    sizingData.setAvailableSpace(std::nullopt);
+    sizingData.setFreeSpace(ForColumns, std::nullopt);
</ins><span class="cx">     sizingData.sizingOperation = IntrinsicSizeComputation;
</span><span class="cx">     computeUsedBreadthOfGridTracks(ForColumns, sizingData, minLogicalWidth, maxLogicalWidth);
</span><span class="cx"> 
</span><span class="lines">@@ -686,8 +686,8 @@
</span><span class="cx"> void RenderGrid::computeIntrinsicLogicalHeight(GridSizingData&amp; sizingData)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(sizingData.isValidTransition(ForRows));
</span><del>-    sizingData.setAvailableSpace(Nullopt);
-    sizingData.setFreeSpace(ForRows, Nullopt);
</del><ins>+    sizingData.setAvailableSpace(std::nullopt);
+    sizingData.setFreeSpace(ForRows, std::nullopt);
</ins><span class="cx">     sizingData.sizingOperation = IntrinsicSizeComputation;
</span><span class="cx">     LayoutUnit minHeight, maxHeight;
</span><span class="cx">     computeUsedBreadthOfGridTracks(ForRows, sizingData, minHeight, maxHeight);
</span><span class="lines">@@ -710,10 +710,10 @@
</span><span class="cx">     sizingData.sizingOperation = TrackSizing;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;LayoutUnit&gt; RenderGrid::computeIntrinsicLogicalContentHeightUsing(Length logicalHeightLength, Optional&lt;LayoutUnit&gt; intrinsicLogicalHeight, LayoutUnit borderAndPadding) const
</del><ins>+std::optional&lt;LayoutUnit&gt; RenderGrid::computeIntrinsicLogicalContentHeightUsing(Length logicalHeightLength, std::optional&lt;LayoutUnit&gt; intrinsicLogicalHeight, LayoutUnit borderAndPadding) const
</ins><span class="cx"> {
</span><span class="cx">     if (!intrinsicLogicalHeight)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (logicalHeightLength.isMinContent())
</span><span class="cx">         return m_minContentHeight;
</span><span class="lines">@@ -723,13 +723,13 @@
</span><span class="cx"> 
</span><span class="cx">     if (logicalHeightLength.isFitContent()) {
</span><span class="cx">         LayoutUnit fillAvailableExtent = containingBlock()-&gt;availableLogicalHeight(ExcludeMarginBorderPadding);
</span><del>-        return std::min(m_maxContentHeight.valueOr(0), std::max(m_minContentHeight.valueOr(0), fillAvailableExtent));
</del><ins>+        return std::min(m_maxContentHeight.value_or(0), std::max(m_minContentHeight.value_or(0), fillAvailableExtent));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (logicalHeightLength.isFillAvailable())
</span><span class="cx">         return containingBlock()-&gt;availableLogicalHeight(ExcludeMarginBorderPadding) - borderAndPadding;
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline double normalizedFlexFraction(const GridTrack&amp; track, double flexFactor)
</span><span class="lines">@@ -739,7 +739,7 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizingDirection direction, GridSizingData&amp; sizingData, LayoutUnit&amp; baseSizesWithoutMaximization, LayoutUnit&amp; growthLimitsWithoutMaximization) const
</span><span class="cx"> {
</span><del>-    const Optional&lt;LayoutUnit&gt; initialFreeSpace = sizingData.freeSpace(direction);
</del><ins>+    const std::optional&lt;LayoutUnit&gt; initialFreeSpace = sizingData.freeSpace(direction);
</ins><span class="cx">     Vector&lt;GridTrack&gt;&amp; tracks = (direction == ForColumns) ? sizingData.columnTracks : sizingData.rowTracks;
</span><span class="cx">     Vector&lt;unsigned&gt; flexibleSizedTracksIndex;
</span><span class="cx">     sizingData.contentSizedTracksIndex.shrink(0);
</span><span class="lines">@@ -746,7 +746,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Grid gutters were removed from freeSpace by the caller (if freeSpace is definite),
</span><span class="cx">     // but we must use them to compute relative (i.e. percentages) sizes.
</span><del>-    LayoutUnit maxSize = std::max(LayoutUnit(), sizingData.availableSpace().valueOr(LayoutUnit()));
</del><ins>+    LayoutUnit maxSize = std::max(LayoutUnit(), sizingData.availableSpace().value_or(LayoutUnit()));
</ins><span class="cx">     const bool hasDefiniteFreeSpace = sizingData.sizingOperation == TrackSizing;
</span><span class="cx"> 
</span><span class="cx">     // 1. Initialize per Grid track variables.
</span><span class="lines">@@ -781,7 +781,7 @@
</span><span class="cx">         growthLimitsWithoutMaximization += track.growthLimit();
</span><span class="cx">         // The growth limit caps must be cleared now in order to properly sort tracks by growth
</span><span class="cx">         // potential on an eventual &quot;Maximize Tracks&quot;.
</span><del>-        track.setGrowthLimitCap(Nullopt);
</del><ins>+        track.setGrowthLimitCap(std::nullopt);
</ins><span class="cx">     }
</span><span class="cx">     LayoutUnit freeSpace = initialFreeSpace ? initialFreeSpace.value() - baseSizesWithoutMaximization : LayoutUnit(0);
</span><span class="cx"> 
</span><span class="lines">@@ -973,12 +973,12 @@
</span><span class="cx">     return direction == ForColumns ? child.hasOverrideContainingBlockLogicalWidth() : child.hasOverrideContainingBlockLogicalHeight();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;LayoutUnit&gt; overrideContainingBlockContentSizeForChild(const RenderBox&amp; child, GridTrackSizingDirection direction)
</del><ins>+static std::optional&lt;LayoutUnit&gt; overrideContainingBlockContentSizeForChild(const RenderBox&amp; child, GridTrackSizingDirection direction)
</ins><span class="cx"> {
</span><span class="cx">     return direction == ForColumns ? child.overrideContainingBlockContentLogicalWidth() : child.overrideContainingBlockContentLogicalHeight();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void setOverrideContainingBlockContentSizeForChild(RenderBox&amp; child, GridTrackSizingDirection direction, Optional&lt;LayoutUnit&gt; size)
</del><ins>+static void setOverrideContainingBlockContentSizeForChild(RenderBox&amp; child, GridTrackSizingDirection direction, std::optional&lt;LayoutUnit&gt; size)
</ins><span class="cx"> {
</span><span class="cx">     if (direction == ForColumns)
</span><span class="cx">         child.setOverrideContainingBlockContentLogicalWidth(size);
</span><span class="lines">@@ -1080,7 +1080,7 @@
</span><span class="cx">     // If |child| has a relative logical height, we shouldn't let it override its intrinsic height, which is
</span><span class="cx">     // what we are interested in here. Thus we need to set the block-axis override size to -1 (no possible resolution).
</span><span class="cx">     if (shouldClearOverrideContainingBlockContentSizeForChild(child, ForRows)) {
</span><del>-        setOverrideContainingBlockContentSizeForChild(child, childBlockDirection, Nullopt);
</del><ins>+        setOverrideContainingBlockContentSizeForChild(child, childBlockDirection, std::nullopt);
</ins><span class="cx">         child.setNeedsLayout(MarkOnlyThis);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1104,13 +1104,13 @@
</span><span class="cx">     bool overrideSizeHasChanged = updateOverrideContainingBlockContentSizeForChild(child, childInlineDirection, sizingData);
</span><span class="cx">     if (isRowAxis) {
</span><span class="cx">         LayoutUnit marginLogicalWidth = sizingData.sizingOperation == TrackSizing ? computeMarginLogicalSizeForChild(childInlineDirection, child) : marginIntrinsicLogicalWidthForChild(child);
</span><del>-        return child.computeLogicalWidthInRegionUsing(MinSize, childMinSize, overrideContainingBlockContentSizeForChild(child, childInlineDirection).valueOr(0), *this, nullptr) + marginLogicalWidth;
</del><ins>+        return child.computeLogicalWidthInRegionUsing(MinSize, childMinSize, overrideContainingBlockContentSizeForChild(child, childInlineDirection).value_or(0), *this, nullptr) + marginLogicalWidth;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (overrideSizeHasChanged &amp;&amp; (direction != ForColumns || sizingData.sizingOperation != IntrinsicSizeComputation))
</span><span class="cx">         child.setNeedsLayout(MarkOnlyThis);
</span><span class="cx">     child.layoutIfNeeded();
</span><del>-    return child.computeLogicalHeightUsing(MinSize, childMinSize, Nullopt).valueOr(0) + child.marginLogicalHeight() + child.scrollbarLogicalHeight();
</del><ins>+    return child.computeLogicalHeightUsing(MinSize, childMinSize, std::nullopt).value_or(0) + child.marginLogicalHeight() + child.scrollbarLogicalHeight();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderGrid::updateOverrideContainingBlockContentSizeForChild(RenderBox&amp; child, GridTrackSizingDirection direction, GridSizingData&amp; sizingData) const
</span><span class="lines">@@ -1128,9 +1128,9 @@
</span><span class="cx">     GridTrackSizingDirection childInlineDirection = flowAwareDirectionForChild(child, ForColumns);
</span><span class="cx">     if (direction == childInlineDirection) {
</span><span class="cx">         // If |child| has a relative logical width, we shouldn't let it override its intrinsic width, which is
</span><del>-        // what we are interested in here. Thus we need to set the override logical width to Nullopt (no possible resolution).
</del><ins>+        // what we are interested in here. Thus we need to set the override logical width to std::nullopt (no possible resolution).
</ins><span class="cx">         if (shouldClearOverrideContainingBlockContentSizeForChild(child, ForColumns))
</span><del>-            setOverrideContainingBlockContentSizeForChild(child, childInlineDirection, Nullopt);
</del><ins>+            setOverrideContainingBlockContentSizeForChild(child, childInlineDirection, std::nullopt);
</ins><span class="cx"> 
</span><span class="cx">         // FIXME: It's unclear if we should return the intrinsic width or the preferred width.
</span><span class="cx">         // See http://lists.w3.org/Archives/Public/www-style/2013Jan/0245.html
</span><span class="lines">@@ -1158,7 +1158,7 @@
</span><span class="cx">         // If |child| has a relative logical width, we shouldn't let it override its intrinsic width, which is
</span><span class="cx">         // what we are interested in here. Thus we need to set the inline-axis override size to -1 (no possible resolution).
</span><span class="cx">         if (shouldClearOverrideContainingBlockContentSizeForChild(child, ForColumns))
</span><del>-            setOverrideContainingBlockContentSizeForChild(child, childInlineDirection, Nullopt);
</del><ins>+            setOverrideContainingBlockContentSizeForChild(child, childInlineDirection, std::nullopt);
</ins><span class="cx"> 
</span><span class="cx">         // FIXME: It's unclear if we should return the intrinsic width or the preferred width.
</span><span class="cx">         // See http://lists.w3.org/Archives/Public/www-style/2013Jan/0245.html
</span><span class="lines">@@ -1274,7 +1274,7 @@
</span><span class="cx">     } else if (trackSize.hasMaxContentOrAutoMaxTrackBreadth()) {
</span><span class="cx">         LayoutUnit growthLimit = maxContentForChild(gridItem, direction, sizingData);
</span><span class="cx">         if (trackSize.isFitContent())
</span><del>-            growthLimit = std::min(growthLimit, valueForLength(trackSize.fitContentTrackBreadth().length(), sizingData.availableSpace().valueOr(0)));
</del><ins>+            growthLimit = std::min(growthLimit, valueForLength(trackSize.fitContentTrackBreadth().length(), sizingData.availableSpace().value_or(0)));
</ins><span class="cx">         track.setGrowthLimit(std::max(track.growthLimit(), growthLimit));
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -1462,8 +1462,8 @@
</span><span class="cx">     if (track1HasInfiniteGrowthPotentialWithoutCap || track2HasInfiniteGrowthPotentialWithoutCap)
</span><span class="cx">         return track2HasInfiniteGrowthPotentialWithoutCap;
</span><span class="cx"> 
</span><del>-    LayoutUnit track1Limit = track1-&gt;growthLimitCap().valueOr(track1-&gt;growthLimit());
-    LayoutUnit track2Limit = track2-&gt;growthLimitCap().valueOr(track2-&gt;growthLimit());
</del><ins>+    LayoutUnit track1Limit = track1-&gt;growthLimitCap().value_or(track1-&gt;growthLimit());
+    LayoutUnit track2Limit = track2-&gt;growthLimitCap().value_or(track2-&gt;growthLimit());
</ins><span class="cx">     return (track1Limit - track1-&gt;baseSize()) &lt; (track2Limit - track2-&gt;baseSize());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1532,7 +1532,7 @@
</span><span class="cx"> bool RenderGrid::tracksAreWiderThanMinTrackBreadth(GridTrackSizingDirection direction, GridSizingData&amp; sizingData)
</span><span class="cx"> {
</span><span class="cx">     const Vector&lt;GridTrack&gt;&amp; tracks = (direction == ForColumns) ? sizingData.columnTracks : sizingData.rowTracks;
</span><del>-    const LayoutUnit maxSize = sizingData.availableSpace().valueOr(0);
</del><ins>+    const LayoutUnit maxSize = sizingData.availableSpace().value_or(0);
</ins><span class="cx">     for (unsigned i = 0; i &lt; tracks.size(); ++i) {
</span><span class="cx">         const GridTrackSize&amp; trackSize = gridTrackSize(direction, i, sizingData.sizingOperation);
</span><span class="cx">         if (computeUsedBreadthOfMinLength(trackSize, maxSize) &gt; tracks[i].baseSize())
</span><span class="lines">@@ -1551,19 +1551,19 @@
</span><span class="cx">     if (!autoRepeatTrackListLength)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    Optional&lt;LayoutUnit&gt; availableSize;
</del><ins>+    std::optional&lt;LayoutUnit&gt; availableSize;
</ins><span class="cx">     if (isRowAxis) {
</span><span class="cx">         if (sizingOperation != IntrinsicSizeComputation)
</span><span class="cx">             availableSize =  availableLogicalWidth();
</span><span class="cx">     } else {
</span><del>-        availableSize = computeContentLogicalHeight(MainOrPreferredSize, style().logicalHeight(), Nullopt);
</del><ins>+        availableSize = computeContentLogicalHeight(MainOrPreferredSize, style().logicalHeight(), std::nullopt);
</ins><span class="cx">         if (!availableSize) {
</span><span class="cx">             const Length&amp; maxLength = style().logicalMaxHeight();
</span><span class="cx">             if (!maxLength.isUndefined())
</span><del>-                availableSize = computeContentLogicalHeight(MaxSize, maxLength, Nullopt);
</del><ins>+                availableSize = computeContentLogicalHeight(MaxSize, maxLength, std::nullopt);
</ins><span class="cx">         }
</span><span class="cx">         if (availableSize)
</span><del>-            availableSize = constrainContentBoxLogicalHeightByMinMax(availableSize.value(), Nullopt);
</del><ins>+            availableSize = constrainContentBoxLogicalHeightByMinMax(availableSize.value(), std::nullopt);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool needsToFulfillMinimumSize = false;
</span><span class="lines">@@ -1926,7 +1926,7 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderGrid::applyStretchAlignmentToTracksIfNeeded(GridTrackSizingDirection direction, GridSizingData&amp; sizingData)
</span><span class="cx"> {
</span><del>-    Optional&lt;LayoutUnit&gt; freeSpace = sizingData.freeSpace(direction);
</del><ins>+    std::optional&lt;LayoutUnit&gt; freeSpace = sizingData.freeSpace(direction);
</ins><span class="cx">     if (!freeSpace
</span><span class="cx">         || freeSpace.value() &lt;= 0
</span><span class="cx">         || (direction == ForColumns &amp;&amp; style().resolvedJustifyContentDistribution(contentAlignmentNormalBehaviorGrid()) != ContentDistributionStretch)
</span><span class="lines">@@ -1951,7 +1951,7 @@
</span><span class="cx">         auto&amp; track = tracks[trackIndex];
</span><span class="cx">         track.setBaseSize(track.baseSize() + sizeToIncrease);
</span><span class="cx">     }
</span><del>-    sizingData.setFreeSpace(direction, Optional&lt;LayoutUnit&gt;(0));
</del><ins>+    sizingData.setFreeSpace(direction, std::optional&lt;LayoutUnit&gt;(0));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderGrid::layoutGridItems(GridSizingData&amp; sizingData)
</span><span class="lines">@@ -1968,8 +1968,8 @@
</span><span class="cx"> 
</span><span class="cx">         // Because the grid area cannot be styled, we don't need to adjust
</span><span class="cx">         // the grid breadth to account for 'box-sizing'.
</span><del>-        Optional&lt;LayoutUnit&gt; oldOverrideContainingBlockContentLogicalWidth = child-&gt;hasOverrideContainingBlockLogicalWidth() ? child-&gt;overrideContainingBlockContentLogicalWidth() : LayoutUnit();
-        Optional&lt;LayoutUnit&gt; oldOverrideContainingBlockContentLogicalHeight = child-&gt;hasOverrideContainingBlockLogicalHeight() ? child-&gt;overrideContainingBlockContentLogicalHeight() : LayoutUnit();
</del><ins>+        std::optional&lt;LayoutUnit&gt; oldOverrideContainingBlockContentLogicalWidth = child-&gt;hasOverrideContainingBlockLogicalWidth() ? child-&gt;overrideContainingBlockContentLogicalWidth() : LayoutUnit();
+        std::optional&lt;LayoutUnit&gt; oldOverrideContainingBlockContentLogicalHeight = child-&gt;hasOverrideContainingBlockLogicalHeight() ? child-&gt;overrideContainingBlockContentLogicalHeight() : LayoutUnit();
</ins><span class="cx"> 
</span><span class="cx">         LayoutUnit overrideContainingBlockContentLogicalWidth = gridAreaBreadthForChildIncludingAlignmentOffsets(*child, ForColumns, sizingData);
</span><span class="cx">         LayoutUnit overrideContainingBlockContentLogicalHeight = gridAreaBreadthForChildIncludingAlignmentOffsets(*child, ForRows, sizingData);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderGrid.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">     bool isRenderGrid() const override { return true; }
</span><span class="cx">     void computeIntrinsicLogicalWidths(LayoutUnit&amp; minLogicalWidth, LayoutUnit&amp; maxLogicalWidth) const override;
</span><span class="cx"> 
</span><del>-    Optional&lt;LayoutUnit&gt; computeIntrinsicLogicalContentHeightUsing(Length logicalHeightLength, Optional&lt;LayoutUnit&gt; intrinsicContentHeight, LayoutUnit borderAndPadding) const override;
</del><ins>+    std::optional&lt;LayoutUnit&gt; computeIntrinsicLogicalContentHeightUsing(Length logicalHeightLength, std::optional&lt;LayoutUnit&gt; intrinsicContentHeight, LayoutUnit borderAndPadding) const override;
</ins><span class="cx"> 
</span><span class="cx">     class GridIterator;
</span><span class="cx">     class GridSizingData;
</span><span class="lines">@@ -228,8 +228,8 @@
</span><span class="cx">     HashMap&lt;const RenderBox*, GridArea&gt; m_gridItemArea;
</span><span class="cx">     OrderIterator m_orderIterator;
</span><span class="cx"> 
</span><del>-    Optional&lt;LayoutUnit&gt; m_minContentHeight;
-    Optional&lt;LayoutUnit&gt; m_maxContentHeight;
</del><ins>+    std::optional&lt;LayoutUnit&gt; m_minContentHeight;
+    std::optional&lt;LayoutUnit&gt; m_maxContentHeight;
</ins><span class="cx"> 
</span><span class="cx">     int m_smallestColumnStart;
</span><span class="cx">     int m_smallestRowStart;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -4466,7 +4466,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Now do a paint with the root layer shifted to be us.
</span><span class="cx">     LayoutSize adjustedSubpixelOffset = offsetForThisLayer - LayoutSize(devicePixelSnappedOffsetForThisLayer);
</span><del>-    LayerPaintingInfo transformedPaintingInfo(this, LayoutRect(encloseRectToDevicePixels(transform.inverse().valueOr(AffineTransform()).mapRect(paintingInfo.paintDirtyRect), deviceScaleFactor)),
</del><ins>+    LayerPaintingInfo transformedPaintingInfo(this, LayoutRect(encloseRectToDevicePixels(transform.inverse().value_or(AffineTransform()).mapRect(paintingInfo.paintDirtyRect), deviceScaleFactor)),
</ins><span class="cx">         paintingInfo.paintBehavior, adjustedSubpixelOffset, paintingInfo.subtreePaintRoot, paintingInfo.overlapTestRequests);
</span><span class="cx">     paintLayerContentsAndReflection(context, transformedPaintingInfo, paintFlags);
</span><span class="cx">     context.setCTM(oldTransfrom);
</span><span class="lines">@@ -5100,7 +5100,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Check for hit test on backface if backface-visibility is 'hidden'
</span><span class="cx">     if (localTransformState &amp;&amp; renderer().style().backfaceVisibility() == BackfaceVisibilityHidden) {
</span><del>-        Optional&lt;TransformationMatrix&gt; invertedMatrix = localTransformState-&gt;m_accumulatedTransform.inverse();
</del><ins>+        std::optional&lt;TransformationMatrix&gt; invertedMatrix = localTransformState-&gt;m_accumulatedTransform.inverse();
</ins><span class="cx">         // If the z-vector of the matrix is negative, the back is facing towards the viewer.
</span><span class="cx">         if (invertedMatrix &amp;&amp; invertedMatrix.value().m33() &lt; 0)
</span><span class="cx">             return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -790,9 +790,9 @@
</span><span class="cx">         return m_fromAncestorGraphicsLayer.value();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;LayoutSize&gt; m_fromAncestorGraphicsLayer;
-    Optional&lt;LayoutSize&gt; m_fromParentGraphicsLayer;
-    Optional&lt;LayoutSize&gt; m_fromPrimaryGraphicsLayer;
</del><ins>+    std::optional&lt;LayoutSize&gt; m_fromAncestorGraphicsLayer;
+    std::optional&lt;LayoutSize&gt; m_fromParentGraphicsLayer;
+    std::optional&lt;LayoutSize&gt; m_fromPrimaryGraphicsLayer;
</ins><span class="cx">     
</span><span class="cx">     const RenderLayer&amp; m_renderLayer;
</span><span class="cx">     // Location is relative to the renderer.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListBox.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListBox.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderListBox.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -281,7 +281,7 @@
</span><span class="cx"> void RenderListBox::paintItem(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset, PaintFunction paintFunction)
</span><span class="cx"> {
</span><span class="cx">     int listItemsSize = numItems();
</span><del>-    int firstVisibleItem = m_indexOfFirstVisibleItemInsidePaddingTopArea.valueOr(m_indexOffset);
</del><ins>+    int firstVisibleItem = m_indexOfFirstVisibleItemInsidePaddingTopArea.value_or(m_indexOffset);
</ins><span class="cx">     int endIndex = firstVisibleItem + numVisibleItems(ConsiderPadding::Yes);
</span><span class="cx">     for (int i = firstVisibleItem; i &lt; listItemsSize &amp;&amp; i &lt; endIndex; ++i)
</span><span class="cx">         paintFunction(paintInfo, paintOffset, i);
</span><span class="lines">@@ -597,7 +597,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderListBox::listIndexIsVisible(int index)
</span><span class="cx"> {
</span><del>-    int firstIndex = m_indexOfFirstVisibleItemInsidePaddingTopArea.valueOr(m_indexOffset);
</del><ins>+    int firstIndex = m_indexOfFirstVisibleItemInsidePaddingTopArea.value_or(m_indexOffset);
</ins><span class="cx">     int endIndex = m_indexOfFirstVisibleItemInsidePaddingBottomArea
</span><span class="cx">         ? m_indexOfFirstVisibleItemInsidePaddingBottomArea.value() + numberOfVisibleItemsInPaddingBottom()
</span><span class="cx">         : m_indexOffset + numVisibleItems();
</span><span class="lines">@@ -669,8 +669,8 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderListBox::computeFirstIndexesVisibleInPaddingTopBottomAreas()
</span><span class="cx"> {
</span><del>-    m_indexOfFirstVisibleItemInsidePaddingTopArea = Nullopt;
-    m_indexOfFirstVisibleItemInsidePaddingBottomArea = Nullopt;
</del><ins>+    m_indexOfFirstVisibleItemInsidePaddingTopArea = std::nullopt;
+    m_indexOfFirstVisibleItemInsidePaddingBottomArea = std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     int maximumNumberOfItemsThatFitInPaddingTopArea = paddingTop() / itemHeight();
</span><span class="cx">     if (maximumNumberOfItemsThatFitInPaddingTopArea) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListBox.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListBox.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderListBox.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -175,8 +175,8 @@
</span><span class="cx">     int m_optionsWidth;
</span><span class="cx">     int m_indexOffset;
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; m_indexOfFirstVisibleItemInsidePaddingTopArea;
-    Optional&lt;int&gt; m_indexOfFirstVisibleItemInsidePaddingBottomArea;
</del><ins>+    std::optional&lt;int&gt; m_indexOfFirstVisibleItemInsidePaddingTopArea;
+    std::optional&lt;int&gt; m_indexOfFirstVisibleItemInsidePaddingBottomArea;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Scrollbar&gt; m_vBar;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMenuListh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMenuList.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderMenuList.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -122,8 +122,8 @@
</span><span class="cx">     {
</span><span class="cx">         return RenderBlock::baselinePosition(baseline, firstLine, direction, position);
</span><span class="cx">     }
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const override { return RenderBlock::firstLineBaseline(); }
-    Optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode direction) const override { return RenderBlock::inlineBlockBaseline(direction); }
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const override { return RenderBlock::firstLineBaseline(); }
+    std::optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode direction) const override { return RenderBlock::inlineBlockBaseline(direction); }
</ins><span class="cx"> 
</span><span class="cx">     void getItemBackgroundColor(unsigned listIndex, Color&amp;, bool&amp; itemHasCustomBackgroundColor) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMultiColumnSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -415,7 +415,7 @@
</span><span class="cx">     LayoutUnit availableHeight = multiColumnFlowThread()-&gt;columnHeightAvailable();
</span><span class="cx">     LayoutUnit maxColumnHeight = availableHeight ? availableHeight : RenderFlowThread::maxLogicalHeight();
</span><span class="cx">     if (!multicolStyle.logicalMaxHeight().isUndefined())
</span><del>-        maxColumnHeight = std::min(maxColumnHeight, multicolBlock-&gt;computeContentLogicalHeight(MaxSize, multicolStyle.logicalMaxHeight(), Nullopt).valueOr(maxColumnHeight));
</del><ins>+        maxColumnHeight = std::min(maxColumnHeight, multicolBlock-&gt;computeContentLogicalHeight(MaxSize, multicolStyle.logicalMaxHeight(), std::nullopt).value_or(maxColumnHeight));
</ins><span class="cx">     return heightAdjustedForSetOffset(maxColumnHeight);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTable.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTable.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderTable.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -373,9 +373,9 @@
</span><span class="cx">         }
</span><span class="cx">         return styleLogicalHeight.value() - borders;
</span><span class="cx">     } else if (styleLogicalHeight.isPercentOrCalculated())
</span><del>-        return computePercentageLogicalHeight(styleLogicalHeight).valueOr(0);
</del><ins>+        return computePercentageLogicalHeight(styleLogicalHeight).value_or(0);
</ins><span class="cx">     else if (styleLogicalHeight.isIntrinsic())
</span><del>-        return computeIntrinsicLogicalContentHeightUsing(styleLogicalHeight, logicalHeight() - borderAndPadding, borderAndPadding).valueOr(0);
</del><ins>+        return computeIntrinsicLogicalContentHeightUsing(styleLogicalHeight, logicalHeight() - borderAndPadding, borderAndPadding).value_or(0);
</ins><span class="cx">     else
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">     return LayoutUnit();
</span><span class="lines">@@ -1468,18 +1468,18 @@
</span><span class="cx"> 
</span><span class="cx"> int RenderTable::baselinePosition(FontBaseline baselineType, bool firstLine, LineDirectionMode direction, LinePositionMode linePositionMode) const
</span><span class="cx"> {
</span><del>-    return firstLineBaseline().valueOrCompute([&amp;] {
</del><ins>+    return valueOrCompute(firstLineBaseline(), [&amp;] {
</ins><span class="cx">         return RenderBox::baselinePosition(baselineType, firstLine, direction, linePositionMode);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderTable::inlineBlockBaseline(LineDirectionMode) const
</del><ins>+std::optional&lt;int&gt; RenderTable::inlineBlockBaseline(LineDirectionMode) const
</ins><span class="cx"> {
</span><span class="cx">     // Tables are skipped when computing an inline-block's baseline.
</span><del>-    return Optional&lt;int&gt;();
</del><ins>+    return std::optional&lt;int&gt;();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderTable::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderTable::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     // The baseline of a 'table' is the same as the 'inline-table' baseline per CSS 3 Flexbox (CSS 2.1
</span><span class="cx">     // doesn't define the baseline of a 'table' only an 'inline-table').
</span><span class="lines">@@ -1486,19 +1486,19 @@
</span><span class="cx">     // This is also needed to properly determine the baseline of a cell if it has a table child.
</span><span class="cx"> 
</span><span class="cx">     if (isWritingModeRoot())
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><span class="cx">     recalcSectionsIfNeeded();
</span><span class="cx"> 
</span><span class="cx">     const RenderTableSection* topNonEmptySection = this-&gt;topNonEmptySection();
</span><span class="cx">     if (!topNonEmptySection)
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><del>-    if (Optional&lt;int&gt; baseline = topNonEmptySection-&gt;firstLineBaseline())
-        return Optional&lt;int&gt;(topNonEmptySection-&gt;logicalTop() + baseline.value());
</del><ins>+    if (std::optional&lt;int&gt; baseline = topNonEmptySection-&gt;firstLineBaseline())
+        return std::optional&lt;int&gt;(topNonEmptySection-&gt;logicalTop() + baseline.value());
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: A table row always has a baseline per CSS 2.1. Will this return the right value?
</span><del>-    return Optional&lt;int&gt;();
</del><ins>+    return std::optional&lt;int&gt;();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> LayoutRect RenderTable::overflowClipRect(const LayoutPoint&amp; location, RenderRegion* region, OverlayScrollbarSizeRelevancy relevancy, PaintPhase phase)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTable.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTable.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderTable.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -291,8 +291,8 @@
</span><span class="cx">     bool nodeAtPoint(const HitTestRequest&amp;, HitTestResult&amp;, const HitTestLocation&amp; locationInContainer, const LayoutPoint&amp; accumulatedOffset, HitTestAction) override;
</span><span class="cx"> 
</span><span class="cx">     int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const final;
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const override;
-    Optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const final;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const override;
+    std::optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode) const final;
</ins><span class="cx"> 
</span><span class="cx">     RenderTableCol* slowColElement(unsigned col, bool* startEdge, bool* endEdge) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTableCellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTableCell.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTableCell.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderTableCell.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -401,7 +401,7 @@
</span><span class="cx">     // &lt;http://www.w3.org/TR/2007/CR-CSS21-20070719/tables.html#height-layout&gt;: The baseline of a cell is the baseline of
</span><span class="cx">     // the first in-flow line box in the cell, or the first in-flow table-row in the cell, whichever comes first. If there
</span><span class="cx">     // is no such line box or table-row, the baseline is the bottom of content edge of the cell box.
</span><del>-    return firstLineBaseline().valueOr(borderAndPaddingBefore() + contentLogicalHeight());
</del><ins>+    return firstLineBaseline().value_or(borderAndPaddingBefore() + contentLogicalHeight());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline void markCellDirtyWhenCollapsedBorderChanges(RenderTableCell* cell)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTableSectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTableSection.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTableSection.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderTableSection.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -917,16 +917,16 @@
</span><span class="cx">     m_outerBorderEnd = calcOuterBorderEnd();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderTableSection::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderTableSection::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_grid.size())
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><span class="cx">     int firstLineBaseline = m_grid[0].baseline;
</span><span class="cx">     if (firstLineBaseline)
</span><span class="cx">         return firstLineBaseline + roundToInt(m_rowPos[0]);
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; result;
</del><ins>+    std::optional&lt;int&gt; result;
</ins><span class="cx">     const Row&amp; firstRow = m_grid[0].row;
</span><span class="cx">     for (size_t i = 0; i &lt; firstRow.size(); ++i) {
</span><span class="cx">         const CellStruct&amp; cs = firstRow.at(i);
</span><span class="lines">@@ -934,7 +934,7 @@
</span><span class="cx">         // Only cells with content have a baseline
</span><span class="cx">         if (cell &amp;&amp; cell-&gt;contentLogicalHeight()) {
</span><span class="cx">             int candidate = roundToInt(cell-&gt;logicalTop() + cell-&gt;borderAndPaddingBefore() + cell-&gt;contentLogicalHeight());
</span><del>-            result = std::max(result.valueOr(candidate), candidate);
</del><ins>+            result = std::max(result.value_or(candidate), candidate);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTableSectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTableSection.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTableSection.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderTableSection.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> 
</span><span class="cx">     void addChild(RenderObject* child, RenderObject* beforeChild = 0) override;
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const override;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const override;
</ins><span class="cx"> 
</span><span class="cx">     void addCell(RenderTableCell*, RenderTableRow* row);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderText.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderText.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderText.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -800,7 +800,7 @@
</span><span class="cx">     bool isSpace = false;
</span><span class="cx">     bool firstWord = true;
</span><span class="cx">     bool firstLine = true;
</span><del>-    Optional&lt;unsigned&gt; nextBreakable;
</del><ins>+    std::optional&lt;unsigned&gt; nextBreakable;
</ins><span class="cx">     unsigned lastWordBoundary = 0;
</span><span class="cx"> 
</span><span class="cx">     // Non-zero only when kerning is enabled, in which case we measure words with their trailing
</span><span class="lines">@@ -822,7 +822,7 @@
</span><span class="cx">         minimumSuffixLength = after &lt; 0 ? 2 : after;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; firstGlyphLeftOverflow;
</del><ins>+    std::optional&lt;int&gt; firstGlyphLeftOverflow;
</ins><span class="cx"> 
</span><span class="cx">     bool breakNBSP = style.autoWrap() &amp;&amp; style.nbspMode() == SPACE;
</span><span class="cx">     
</span><span class="lines">@@ -898,7 +898,7 @@
</span><span class="cx">             float currMinWidth = 0;
</span><span class="cx">             bool isSpace = (j &lt; len) &amp;&amp; isSpaceAccordingToStyle(c, style);
</span><span class="cx">             float w;
</span><del>-            Optional&lt;float&gt; wordTrailingSpaceWidth;
</del><ins>+            std::optional&lt;float&gt; wordTrailingSpaceWidth;
</ins><span class="cx">             if (isSpace)
</span><span class="cx">                 wordTrailingSpaceWidth = wordTrailingSpace.width(fallbackFonts);
</span><span class="cx">             if (wordTrailingSpaceWidth)
</span><span class="lines">@@ -915,7 +915,7 @@
</span><span class="cx"> 
</span><span class="cx">                 if (suffixStart) {
</span><span class="cx">                     float suffixWidth;
</span><del>-                    Optional&lt;float&gt; wordTrailingSpaceWidth;
</del><ins>+                    std::optional&lt;float&gt; wordTrailingSpaceWidth;
</ins><span class="cx">                     if (isSpace)
</span><span class="cx">                         wordTrailingSpaceWidth = wordTrailingSpace.width(fallbackFonts);
</span><span class="cx">                     if (wordTrailingSpaceWidth)
</span><span class="lines">@@ -1000,7 +1000,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    glyphOverflow.left = firstGlyphLeftOverflow.valueOr(glyphOverflow.left);
</del><ins>+    glyphOverflow.left = firstGlyphLeftOverflow.value_or(glyphOverflow.left);
</ins><span class="cx"> 
</span><span class="cx">     if ((needsWordSpacing &amp;&amp; len &gt; 1) || (ignoringSpaces &amp;&amp; !firstWord))
</span><span class="cx">         currMaxWidth += wordSpacing;
</span><span class="lines">@@ -1676,9 +1676,9 @@
</span><span class="cx">     secureTextTimer-&gt;restart(offsetAfterLastTypedCharacter);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-StringView RenderText::stringView(unsigned start, Optional&lt;unsigned&gt; stop) const
</del><ins>+StringView RenderText::stringView(unsigned start, std::optional&lt;unsigned&gt; stop) const
</ins><span class="cx"> {
</span><del>-    unsigned destination = stop.valueOr(textLength());
</del><ins>+    unsigned destination = stop.value_or(textLength());
</ins><span class="cx">     ASSERT(start &lt;= length());
</span><span class="cx">     ASSERT(destination &lt;= length());
</span><span class="cx">     ASSERT(start &lt;= destination);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderText.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderText.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderText.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx">     void deleteLineBoxesBeforeSimpleLineLayout();
</span><span class="cx">     const SimpleLineLayout::Layout* simpleLineLayout() const;
</span><span class="cx"> 
</span><del>-    StringView stringView(unsigned start = 0, Optional&lt;unsigned&gt; stop = Nullopt) const;
</del><ins>+    StringView stringView(unsigned start = 0, std::optional&lt;unsigned&gt; stop = std::nullopt) const;
</ins><span class="cx"> 
</span><span class="cx">     LayoutUnit topOfFirstText() const;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControl.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControl.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderTextControl.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -99,8 +99,8 @@
</span><span class="cx">     {
</span><span class="cx">         return RenderBlock::baselinePosition(baseline, firstLine, direction, position);
</span><span class="cx">     }
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const override { return RenderBlock::firstLineBaseline(); }
-    Optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode direction) const override { return RenderBlock::inlineBlockBaseline(direction); }
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const override { return RenderBlock::firstLineBaseline(); }
+    std::optional&lt;int&gt; inlineBlockBaseline(LineDirectionMode direction) const override { return RenderBlock::inlineBlockBaseline(direction); }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     bool isFlexibleBoxImpl() const override { return true; }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderView.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderView.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderView.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -845,7 +845,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderView::setSelection(RenderObject* start, Optional&lt;unsigned&gt; startPos, RenderObject* end, Optional&lt;unsigned&gt; endPos, SelectionRepaintMode blockRepaintMode)
</del><ins>+void RenderView::setSelection(RenderObject* start, std::optional&lt;unsigned&gt; startPos, RenderObject* end, std::optional&lt;unsigned&gt; endPos, SelectionRepaintMode blockRepaintMode)
</ins><span class="cx"> {
</span><span class="cx">     // Make sure both our start and end objects are defined.
</span><span class="cx">     // Check www.msnbc.com and try clicking around to find the case where this happened.
</span><span class="lines">@@ -882,7 +882,7 @@
</span><span class="cx">     splitSelectionBetweenSubtrees(start, startPos, end, endPos, blockRepaintMode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderView::splitSelectionBetweenSubtrees(const RenderObject* start, Optional&lt;unsigned&gt; startPos, const RenderObject* end, Optional&lt;unsigned&gt; endPos, SelectionRepaintMode blockRepaintMode)
</del><ins>+void RenderView::splitSelectionBetweenSubtrees(const RenderObject* start, std::optional&lt;unsigned&gt; startPos, const RenderObject* end, std::optional&lt;unsigned&gt; endPos, SelectionRepaintMode blockRepaintMode)
</ins><span class="cx"> {
</span><span class="cx">     // Compute the visible selection end points for each of the subtrees.
</span><span class="cx">     RenderSubtreesMap renderSubtreesMap;
</span><span class="lines">@@ -907,7 +907,7 @@
</span><span class="cx">             SelectionSubtreeData selectionData = renderSubtreesMap.get(&amp;root);
</span><span class="cx">             if (selectionData.selectionClear()) {
</span><span class="cx">                 selectionData.setSelectionStart(node-&gt;renderer());
</span><del>-                selectionData.setSelectionStartPos(node == startNode ? startPos : Optional&lt;unsigned&gt;(0));
</del><ins>+                selectionData.setSelectionStartPos(node == startNode ? startPos : std::optional&lt;unsigned&gt;(0));
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             selectionData.setSelectionEnd(node-&gt;renderer());
</span><span class="lines">@@ -1102,7 +1102,7 @@
</span><span class="cx">         selectedBlockInfo.value-&gt;repaint();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderView::getSelection(RenderObject*&amp; startRenderer, Optional&lt;unsigned&gt;&amp; startOffset, RenderObject*&amp; endRenderer, Optional&lt;unsigned&gt;&amp; endOffset) const
</del><ins>+void RenderView::getSelection(RenderObject*&amp; startRenderer, std::optional&lt;unsigned&gt;&amp; startOffset, RenderObject*&amp; endRenderer, std::optional&lt;unsigned&gt;&amp; endOffset) const
</ins><span class="cx"> {
</span><span class="cx">     startRenderer = m_selectionUnsplitStart;
</span><span class="cx">     startOffset = m_selectionUnsplitStartPos;
</span><span class="lines">@@ -1113,7 +1113,7 @@
</span><span class="cx"> void RenderView::clearSelection()
</span><span class="cx"> {
</span><span class="cx">     layer()-&gt;repaintBlockSelectionGaps();
</span><del>-    setSelection(nullptr, Nullopt, nullptr, Nullopt, RepaintNewMinusOld);
</del><ins>+    setSelection(nullptr, std::nullopt, nullptr, std::nullopt, RepaintNewMinusOld);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderView::printing() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderView.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderView.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/RenderView.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -84,8 +84,8 @@
</span><span class="cx">     void paintBoxDecorations(PaintInfo&amp;, const LayoutPoint&amp;) override;
</span><span class="cx"> 
</span><span class="cx">     enum SelectionRepaintMode { RepaintNewXOROld, RepaintNewMinusOld, RepaintNothing };
</span><del>-    void setSelection(RenderObject* start, Optional&lt;unsigned&gt; startPos, RenderObject* endObject, Optional&lt;unsigned&gt; endPos, SelectionRepaintMode = RepaintNewXOROld);
-    void getSelection(RenderObject*&amp; startRenderer, Optional&lt;unsigned&gt;&amp; startOffset, RenderObject*&amp; endRenderer, Optional&lt;unsigned&gt;&amp; endOffset) const;
</del><ins>+    void setSelection(RenderObject* start, std::optional&lt;unsigned&gt; startPos, RenderObject* endObject, std::optional&lt;unsigned&gt; endPos, SelectionRepaintMode = RepaintNewXOROld);
+    void getSelection(RenderObject*&amp; startRenderer, std::optional&lt;unsigned&gt;&amp; startOffset, RenderObject*&amp; endRenderer, std::optional&lt;unsigned&gt;&amp; endOffset) const;
</ins><span class="cx">     void clearSelection();
</span><span class="cx">     RenderObject* selectionUnsplitStart() const { return m_selectionUnsplitStart; }
</span><span class="cx">     RenderObject* selectionUnsplitEnd() const { return m_selectionUnsplitEnd; }
</span><span class="lines">@@ -325,7 +325,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool isScrollableOrRubberbandableBox() const override;
</span><span class="cx"> 
</span><del>-    void splitSelectionBetweenSubtrees(const RenderObject* startRenderer, Optional&lt;unsigned&gt; startPos, const RenderObject* endRenderer, Optional&lt;unsigned&gt; endPos, SelectionRepaintMode blockRepaintMode);
</del><ins>+    void splitSelectionBetweenSubtrees(const RenderObject* startRenderer, std::optional&lt;unsigned&gt; startPos, const RenderObject* endRenderer, std::optional&lt;unsigned&gt; endPos, SelectionRepaintMode blockRepaintMode);
</ins><span class="cx">     void clearSubtreeSelection(const SelectionSubtreeRoot&amp;, SelectionRepaintMode, OldSelectionData&amp;) const;
</span><span class="cx">     void updateSelectionForSubtrees(RenderSubtreesMap&amp;, SelectionRepaintMode);
</span><span class="cx">     void applySubtreeSelection(const SelectionSubtreeRoot&amp;, SelectionRepaintMode, const OldSelectionData&amp;);
</span><span class="lines">@@ -337,8 +337,8 @@
</span><span class="cx"> 
</span><span class="cx">     RenderObject* m_selectionUnsplitStart { nullptr };
</span><span class="cx">     RenderObject* m_selectionUnsplitEnd { nullptr };
</span><del>-    Optional&lt;unsigned&gt; m_selectionUnsplitStartPos;
-    Optional&lt;unsigned&gt; m_selectionUnsplitEndPos;
</del><ins>+    std::optional&lt;unsigned&gt; m_selectionUnsplitStartPos;
+    std::optional&lt;unsigned&gt; m_selectionUnsplitEndPos;
</ins><span class="cx"> 
</span><span class="cx">     // Include this RenderView.
</span><span class="cx">     uint64_t m_rendererCount { 1 };
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingSelectionSubtreeRooth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/SelectionSubtreeRoot.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/SelectionSubtreeRoot.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/SelectionSubtreeRoot.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -47,8 +47,8 @@
</span><span class="cx">         {
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Optional&lt;unsigned&gt; selectionStartPos;
-        Optional&lt;unsigned&gt; selectionEndPos;
</del><ins>+        std::optional&lt;unsigned&gt; selectionStartPos;
+        std::optional&lt;unsigned&gt; selectionEndPos;
</ins><span class="cx">         SelectedObjectMap selectedObjects;
</span><span class="cx">         SelectedBlockMap selectedBlocks;
</span><span class="cx">     };
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">     public:
</span><span class="cx">         SelectionSubtreeData() = default;
</span><span class="cx"> 
</span><del>-        SelectionSubtreeData(RenderObject* selectionStart, Optional&lt;unsigned&gt; selectionStartPos, RenderObject* selectionEnd, Optional&lt;unsigned&gt; selectionEndPos)
</del><ins>+        SelectionSubtreeData(RenderObject* selectionStart, std::optional&lt;unsigned&gt; selectionStartPos, RenderObject* selectionEnd, std::optional&lt;unsigned&gt; selectionEndPos)
</ins><span class="cx">             : m_selectionStart(selectionStart)
</span><span class="cx">             , m_selectionStartPos(selectionStartPos)
</span><span class="cx">             , m_selectionEnd(selectionEnd)
</span><span class="lines">@@ -66,9 +66,9 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         RenderObject* selectionStart() const { return m_selectionStart; }
</span><del>-        Optional&lt;unsigned&gt; selectionStartPos() const { return m_selectionStartPos; }
</del><ins>+        std::optional&lt;unsigned&gt; selectionStartPos() const { return m_selectionStartPos; }
</ins><span class="cx">         RenderObject* selectionEnd() const { return m_selectionEnd; }
</span><del>-        Optional&lt;unsigned&gt; selectionEndPos() const { return m_selectionEndPos; }
</del><ins>+        std::optional&lt;unsigned&gt; selectionEndPos() const { return m_selectionEndPos; }
</ins><span class="cx">         bool selectionClear() const
</span><span class="cx">         {
</span><span class="cx">             return !m_selectionStart
</span><span class="lines">@@ -83,22 +83,22 @@
</span><span class="cx">             endPos = m_selectionEndPos.value();
</span><span class="cx">         }
</span><span class="cx">         void setSelectionStart(RenderObject* selectionStart) { m_selectionStart = selectionStart; }
</span><del>-        void setSelectionStartPos(Optional&lt;unsigned&gt; selectionStartPos) { m_selectionStartPos = selectionStartPos;}
</del><ins>+        void setSelectionStartPos(std::optional&lt;unsigned&gt; selectionStartPos) { m_selectionStartPos = selectionStartPos;}
</ins><span class="cx">         void setSelectionEnd(RenderObject* selectionEnd) { m_selectionEnd = selectionEnd; }
</span><del>-        void setSelectionEndPos(Optional&lt;unsigned&gt; selectionEndPos) { m_selectionEndPos = selectionEndPos;}
</del><ins>+        void setSelectionEndPos(std::optional&lt;unsigned&gt; selectionEndPos) { m_selectionEndPos = selectionEndPos;}
</ins><span class="cx">         void clearSelection()
</span><span class="cx">         {
</span><span class="cx">             m_selectionStart = nullptr;
</span><del>-            m_selectionStartPos = Nullopt;
</del><ins>+            m_selectionStartPos = std::nullopt;
</ins><span class="cx">             m_selectionEnd = nullptr;
</span><del>-            m_selectionEndPos = Nullopt;
</del><ins>+            m_selectionEndPos = std::nullopt;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">     private:
</span><span class="cx">         RenderObject* m_selectionStart { nullptr };
</span><del>-        Optional&lt;unsigned&gt; m_selectionStartPos;
</del><ins>+        std::optional&lt;unsigned&gt; m_selectionStartPos;
</ins><span class="cx">         RenderObject* m_selectionEnd { nullptr };
</span><del>-        Optional&lt;unsigned&gt; m_selectionEndPos;
</del><ins>+        std::optional&lt;unsigned&gt; m_selectionEndPos;
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     typedef HashMap&lt;SelectionSubtreeRoot*, SelectionSubtreeData&gt; RenderSubtreesMap;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingSimpleLineLayoutcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/SimpleLineLayout.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/SimpleLineLayout.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/SimpleLineLayout.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -400,11 +400,11 @@
</span><span class="cx">     float logicalLeftOffset() const { return m_logicalLeftOffset; }
</span><span class="cx">     const TextFragmentIterator::TextFragment&amp; overflowedFragment() const { return m_overflowedFragment; }
</span><span class="cx">     bool hasTrailingWhitespace() const { return m_trailingWhitespaceLength; }
</span><del>-    Optional&lt;TextFragmentIterator::TextFragment&gt; lastFragment() const
</del><ins>+    std::optional&lt;TextFragmentIterator::TextFragment&gt; lastFragment() const
</ins><span class="cx">     {
</span><span class="cx">         if (m_fragments.size())
</span><span class="cx">             return m_fragments.last();
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     }
</span><span class="cx">     bool isWhitespaceOnly() const { return m_trailingWhitespaceWidth &amp;&amp; m_runsWidth == m_trailingWhitespaceWidth; }
</span><span class="cx">     bool fits(float extra) const { return m_availableWidth &gt;= m_runsWidth + extra; }
</span><span class="lines">@@ -807,7 +807,7 @@
</span><span class="cx">     return textAlign;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void closeLineEndingAndAdjustRuns(LineState&amp; line, Layout::RunVector&amp; runs, Optional&lt;unsigned&gt; lastRunIndexOfPreviousLine, unsigned&amp; lineCount,
</del><ins>+static void closeLineEndingAndAdjustRuns(LineState&amp; line, Layout::RunVector&amp; runs, std::optional&lt;unsigned&gt; lastRunIndexOfPreviousLine, unsigned&amp; lineCount,
</ins><span class="cx">     const TextFragmentIterator&amp; textFragmentIterator, bool lastLineInFlow)
</span><span class="cx"> {
</span><span class="cx">     if (!runs.size() || (lastRunIndexOfPreviousLine &amp;&amp; runs.size() - 1 == lastRunIndexOfPreviousLine.value()))
</span><span class="lines">@@ -839,7 +839,7 @@
</span><span class="cx">     LineState line;
</span><span class="cx">     bool isEndOfContent = false;
</span><span class="cx">     TextFragmentIterator textFragmentIterator = TextFragmentIterator(flow);
</span><del>-    Optional&lt;unsigned&gt; lastRunIndexOfPreviousLine;
</del><ins>+    std::optional&lt;unsigned&gt; lastRunIndexOfPreviousLine;
</ins><span class="cx">     do {
</span><span class="cx">         flow.setLogicalHeight(lineHeight * lineCount + borderAndPaddingBefore);
</span><span class="cx">         LineState previousLine = line;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingSimpleLineLayoutFunctionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/SimpleLineLayoutFunctions.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/SimpleLineLayoutFunctions.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/SimpleLineLayoutFunctions.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -94,11 +94,11 @@
</span><span class="cx">     textPainter.setFont(style.fontCascade());
</span><span class="cx">     textPainter.setTextPaintStyle(computeTextPaintStyle(flow.frame(), style, paintInfo));
</span><span class="cx"> 
</span><del>-    Optional&lt;TextDecorationPainter&gt; textDecorationPainter;
</del><ins>+    std::optional&lt;TextDecorationPainter&gt; textDecorationPainter;
</ins><span class="cx">     if (style.textDecorationsInEffect() != TextDecorationNone) {
</span><span class="cx">         const RenderText* textRenderer = childrenOfType&lt;RenderText&gt;(flow).first();
</span><span class="cx">         if (textRenderer) {
</span><del>-            textDecorationPainter = TextDecorationPainter(paintInfo.context(), style.textDecorationsInEffect(), *textRenderer, false);
</del><ins>+            textDecorationPainter.emplace(paintInfo.context(), style.textDecorationsInEffect(), *textRenderer, false);
</ins><span class="cx">             textDecorationPainter-&gt;setFont(style.fontCascade());
</span><span class="cx">             textDecorationPainter-&gt;setBaseline(style.fontMetrics().ascent());
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderinglineBreakingContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/line/BreakingContext.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/line/BreakingContext.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/line/BreakingContext.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    WTF::Optional&lt;float&gt; width(HashSet&lt;const Font*&gt;&amp; fallbackFonts)
</del><ins>+    std::optional&lt;float&gt; width(HashSet&lt;const Font*&gt;&amp; fallbackFonts)
</ins><span class="cx">     {
</span><span class="cx">         if (m_state == WordTrailingSpaceState::Computed)
</span><span class="cx">             return m_width;
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> private:
</span><span class="cx">     enum class WordTrailingSpaceState { Uninitialized, Computed };
</span><span class="cx">     WordTrailingSpaceState m_state { WordTrailingSpaceState::Uninitialized };
</span><del>-    WTF::Optional&lt;float&gt; m_width;
</del><ins>+    std::optional&lt;float&gt; m_width;
</ins><span class="cx">     const RenderStyle&amp; m_style;
</span><span class="cx">     TextLayout* m_textLayout { nullptr };
</span><span class="cx"> };
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx">         m_hangsAtEnd = false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void commitLineBreakAtCurrentWidth(RenderObject&amp; object, unsigned offset = 0, Optional&lt;unsigned&gt; nextBreak = Optional&lt;unsigned&gt;())
</del><ins>+    void commitLineBreakAtCurrentWidth(RenderObject&amp; object, unsigned offset = 0, std::optional&lt;unsigned&gt; nextBreak = std::optional&lt;unsigned&gt;())
</ins><span class="cx">     {
</span><span class="cx">         m_width.commit();
</span><span class="cx">         m_lineBreakHistory.moveTo(object, offset, nextBreak);
</span><span class="lines">@@ -210,7 +210,7 @@
</span><span class="cx"> 
</span><span class="cx">         RenderObject* renderer() const { return this-&gt;at(0).renderer(); }
</span><span class="cx">         unsigned offset() const { return this-&gt;at(0).offset(); }
</span><del>-        Optional&lt;unsigned&gt; nextBreakablePosition() const { return this-&gt;at(0).nextBreakablePosition(); }
</del><ins>+        std::optional&lt;unsigned&gt; nextBreakablePosition() const { return this-&gt;at(0).nextBreakablePosition(); }
</ins><span class="cx">         bool atTextParagraphSeparator() const { return this-&gt;at(0).atTextParagraphSeparator(); }
</span><span class="cx">         UChar previousInSameNode() const { return this-&gt;at(0).previousInSameNode(); }
</span><span class="cx">         const InlineIterator&amp; get(size_t i) const { return this-&gt;at(i); };
</span><span class="lines">@@ -217,7 +217,7 @@
</span><span class="cx">         const InlineIterator&amp; current() const { return get(0); }
</span><span class="cx">         size_t historyLength() const { return this-&gt;size(); }
</span><span class="cx"> 
</span><del>-        void moveTo(RenderObject&amp; object, unsigned offset, Optional&lt;unsigned&gt; nextBreak = Nullopt)
</del><ins>+        void moveTo(RenderObject&amp; object, unsigned offset, std::optional&lt;unsigned&gt; nextBreak = std::nullopt)
</ins><span class="cx">         {
</span><span class="cx">             push([&amp;](InlineIterator&amp; modifyMe) {
</span><span class="cx">                 modifyMe.moveTo(object, offset, nextBreak);
</span><span class="lines">@@ -662,7 +662,7 @@
</span><span class="cx">     lineWhitespaceCollapsingState.stopIgnoringSpaces(InlineIterator(0, textParagraphSeparator.renderer(), textParagraphSeparator.offset()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void tryHyphenating(RenderText&amp; text, const FontCascade&amp; font, const AtomicString&amp; localeIdentifier, unsigned consecutiveHyphenatedLines, int consecutiveHyphenatedLinesLimit, int minimumPrefixLimit, int minimumSuffixLimit, unsigned lastSpace, unsigned pos, float xPos, int availableWidth, bool isFixedPitch, bool collapseWhiteSpace, int lastSpaceWordSpacing, InlineIterator&amp; lineBreak, Optional&lt;unsigned&gt; nextBreakable, bool&amp; hyphenated)
</del><ins>+inline void tryHyphenating(RenderText&amp; text, const FontCascade&amp; font, const AtomicString&amp; localeIdentifier, unsigned consecutiveHyphenatedLines, int consecutiveHyphenatedLinesLimit, int minimumPrefixLimit, int minimumSuffixLimit, unsigned lastSpace, unsigned pos, float xPos, int availableWidth, bool isFixedPitch, bool collapseWhiteSpace, int lastSpaceWordSpacing, InlineIterator&amp; lineBreak, std::optional&lt;unsigned&gt; nextBreakable, bool&amp; hyphenated)
</ins><span class="cx"> {
</span><span class="cx">     // Map 'hyphenate-limit-{before,after}: auto;' to 2.
</span><span class="cx">     unsigned minimumPrefixLength;
</span><span class="lines">@@ -740,7 +740,7 @@
</span><span class="cx">     wordMeasurement.startOffset = lastSpace;
</span><span class="cx">     
</span><span class="cx">     float additionalTempWidth = 0;
</span><del>-    WTF::Optional&lt;float&gt; wordTrailingSpaceWidth;
</del><ins>+    std::optional&lt;float&gt; wordTrailingSpaceWidth;
</ins><span class="cx">     if (currentCharacter == ' ')
</span><span class="cx">         wordTrailingSpaceWidth = wordTrailingSpace.width(fallbackFonts);
</span><span class="cx">     if (wordTrailingSpaceWidth)
</span><span class="lines">@@ -870,7 +870,7 @@
</span><span class="cx">             midWordBreak = m_width.committedWidth() + wrapW + charWidth &gt; m_width.availableWidth();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Optional&lt;unsigned&gt; nextBreakablePosition = m_current.nextBreakablePosition();
</del><ins>+        std::optional&lt;unsigned&gt; nextBreakablePosition = m_current.nextBreakablePosition();
</ins><span class="cx">         bool betweenWords = c == '\n' || (m_currWS != PRE &amp;&amp; !m_atStart &amp;&amp; isBreakable(m_renderTextInfo.lineBreakIterator, m_current.offset(), nextBreakablePosition, breakNBSP, isLooseCJKMode, keepAllWords)
</span><span class="cx">             &amp;&amp; (style.hyphens() != HyphensNone || (m_current.previousInSameNode() != softHyphen)));
</span><span class="cx">         m_current.setNextBreakablePosition(nextBreakablePosition);
</span><span class="lines">@@ -972,7 +972,7 @@
</span><span class="cx">                     }
</span><span class="cx">                     // Check if the last breaking position is a soft-hyphen.
</span><span class="cx">                     if (!hyphenated &amp;&amp; style.hyphens() != HyphensNone) {
</span><del>-                        Optional&lt;unsigned&gt; lastBreakingPositon;
</del><ins>+                        std::optional&lt;unsigned&gt; lastBreakingPositon;
</ins><span class="cx">                         const RenderObject* rendererAtBreakingPosition = nullptr;
</span><span class="cx">                         if (m_lineBreakHistory.offset() || m_lineBreakHistory.nextBreakablePosition()) {
</span><span class="cx">                             lastBreakingPositon = m_lineBreakHistory.offset();
</span><span class="lines">@@ -983,7 +983,7 @@
</span><span class="cx">                             rendererAtBreakingPosition = m_current.renderer();
</span><span class="cx">                         }
</span><span class="cx">                         if (lastBreakingPositon) {
</span><del>-                            Optional&lt;UChar&gt; characterBeforeBreakingPosition;
</del><ins>+                            std::optional&lt;UChar&gt; characterBeforeBreakingPosition;
</ins><span class="cx">                             // When last breaking position points to the start of the current context, we need to look at the last character from
</span><span class="cx">                             // the previous non-empty text renderer.
</span><span class="cx">                             if (!lastBreakingPositon.value())
</span><span class="lines">@@ -1336,7 +1336,7 @@
</span><span class="cx">         return lineBreak;
</span><span class="cx">     bool isLooseCJKMode = m_renderTextInfo.text != &amp;renderText &amp;&amp; m_renderTextInfo.lineBreakIterator.isLooseCJKMode();
</span><span class="cx">     bool breakNBSP = m_autoWrap &amp;&amp; m_currentStyle-&gt;nbspMode() == SPACE;
</span><del>-    Optional&lt;unsigned&gt; nextBreakablePosition = lineBreak.nextBreakablePosition();
</del><ins>+    std::optional&lt;unsigned&gt; nextBreakablePosition = lineBreak.nextBreakablePosition();
</ins><span class="cx">     isBreakable(m_renderTextInfo.lineBreakIterator, lineBreak.offset() + 1, nextBreakablePosition, breakNBSP, isLooseCJKMode, m_currentStyle-&gt;wordBreak() == KeepAllWordBreak);
</span><span class="cx">     if (!nextBreakablePosition || nextBreakablePosition.value() != renderText.textLength())
</span><span class="cx">         return lineBreak;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlMathMLStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -135,10 +135,10 @@
</span><span class="cx">     // The displaystyle and mathvariant attributes override the default behavior.
</span><span class="cx">     auto* element = downcast&lt;RenderElement&gt;(renderer)-&gt;element();
</span><span class="cx">     if (is&lt;MathMLElement&gt;(element)) {
</span><del>-        Optional&lt;bool&gt; displayStyle = downcast&lt;MathMLElement&gt;(element)-&gt;specifiedDisplayStyle();
</del><ins>+        std::optional&lt;bool&gt; displayStyle = downcast&lt;MathMLElement&gt;(element)-&gt;specifiedDisplayStyle();
</ins><span class="cx">         if (displayStyle)
</span><span class="cx">             m_displayStyle = displayStyle.value();
</span><del>-        Optional&lt;MathMLElement::MathVariant&gt; mathVariant = downcast&lt;MathMLElement&gt;(element)-&gt;specifiedMathVariant();
</del><ins>+        std::optional&lt;MathMLElement::MathVariant&gt; mathVariant = downcast&lt;MathMLElement&gt;(element)-&gt;specifiedMathVariant();
</ins><span class="cx">         if (mathVariant)
</span><span class="cx">             m_mathVariant = mathVariant.value();
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx">     if (linePositionMode == PositionOfInteriorLineBoxes)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    return firstLineBaseline().valueOr(RenderBlock::baselinePosition(baselineType, firstLine, direction, linePositionMode));
</del><ins>+    return firstLineBaseline().value_or(RenderBlock::baselinePosition(baselineType, firstLine, direction, linePositionMode));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DEBUG_MATH_LAYOUT)
</span><span class="lines">@@ -173,11 +173,11 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderMathMLTable::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderMathMLTable::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     // By default the vertical center of &lt;mtable&gt; is aligned on the math axis.
</span><span class="cx">     // This is different than RenderTable::firstLineBoxBaseline, which returns the baseline of the first row of a &lt;table&gt;.
</span><del>-    return Optional&lt;int&gt;(logicalHeight() / 2 + axisHeight(style()));
</del><ins>+    return std::optional&lt;int&gt;(logicalHeight() / 2 + axisHeight(style()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLBlock::layoutItems(bool relayoutChildren)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx"> 
</span><span class="cx">     static LayoutUnit ascentForChild(const RenderBox&amp; child)
</span><span class="cx">     {
</span><del>-        return child.firstLineBaseline().valueOr(child.logicalHeight());
</del><ins>+        return child.firstLineBaseline().value_or(child.logicalHeight());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) override;
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> private:
</span><span class="cx">     bool isRenderMathMLTable() const final { return true; }
</span><span class="cx">     const char* renderName() const final { return &quot;RenderMathMLTable&quot;; }
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const final;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const final;
</ins><span class="cx"> 
</span><span class="cx">     Ref&lt;MathMLStyle&gt; m_mathMLStyle;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLFractioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -242,10 +242,10 @@
</span><span class="cx">     info.context().drawLine(adjustedPaintOffset, roundedIntPoint(LayoutPoint(adjustedPaintOffset.x() + logicalWidth(), adjustedPaintOffset.y())));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderMathMLFraction::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderMathMLFraction::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     if (isValid())
</span><del>-        return Optional&lt;int&gt;(std::lround(static_cast&lt;float&gt;(m_ascent)));
</del><ins>+        return std::optional&lt;int&gt;(std::lround(static_cast&lt;float&gt;(m_ascent)));
</ins><span class="cx">     return RenderMathMLBlock::firstLineBaseline();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLFractionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> 
</span><span class="cx">     void computePreferredLogicalWidths() final;
</span><span class="cx">     void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) final;
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const final;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const final;
</ins><span class="cx">     void paint(PaintInfo&amp;, const LayoutPoint&amp;) final;
</span><span class="cx">     RenderMathMLOperator* unembellishedOperator() final;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -287,10 +287,10 @@
</span><span class="cx">     return (m_stretchDepthBelowBaseline - m_stretchHeightAboveBaseline - m_mathOperator.descent() + m_mathOperator.ascent()) / 2;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderMathMLOperator::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderMathMLOperator::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     if (useMathOperator())
</span><del>-        return Optional&lt;int&gt;(std::lround(static_cast&lt;float&gt;(m_mathOperator.ascent() - verticalStretchedOperatorShift())));
</del><ins>+        return std::optional&lt;int&gt;(std::lround(static_cast&lt;float&gt;(m_mathOperator.ascent() - verticalStretchedOperatorShift())));
</ins><span class="cx">     return RenderMathMLToken::firstLineBaseline();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLOperatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">     bool isRenderMathMLOperator() const final { return true; }
</span><span class="cx">     bool isInvisibleOperator() const;
</span><span class="cx"> 
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const final;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const final;
</ins><span class="cx">     RenderMathMLOperator* unembellishedOperator() final { return this; }
</span><span class="cx"> 
</span><span class="cx">     LayoutUnit verticalStretchedOperatorShift() const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLPaddedcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx">     clearNeedsLayout();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderMathMLPadded::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderMathMLPadded::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     // We try and calculate the baseline from the position of the first child.
</span><span class="cx">     LayoutUnit ascent;
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx">         ascent = ascentForChild(*baselineChild) + baselineChild-&gt;logicalTop() + voffset();
</span><span class="cx">     else
</span><span class="cx">         ascent = mpaddedHeight(0);
</span><del>-    return Optional&lt;int&gt;(std::lround(static_cast&lt;float&gt;(ascent)));
</del><ins>+    return std::optional&lt;int&gt;(std::lround(static_cast&lt;float&gt;(ascent)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLPaddedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> 
</span><span class="cx">     void computePreferredLogicalWidths() final;
</span><span class="cx">     void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) final;
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const final;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const final;
</ins><span class="cx"> 
</span><span class="cx">     MathMLPaddedElement&amp; element() const { return static_cast&lt;MathMLPaddedElement&amp;&gt;(nodeForNonAnonymous()); }
</span><span class="cx">     LayoutUnit voffset() const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLRowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -49,13 +49,13 @@
</span><span class="cx">     return static_cast&lt;MathMLRowElement&amp;&gt;(nodeForNonAnonymous());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderMathMLRow::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderMathMLRow::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     auto* baselineChild = firstChildBox();
</span><span class="cx">     if (!baselineChild)
</span><del>-        return Optional&lt;int&gt;();
</del><ins>+        return std::optional&lt;int&gt;();
</ins><span class="cx"> 
</span><del>-    return Optional&lt;int&gt;(static_cast&lt;int&gt;(lroundf(ascentForChild(*baselineChild) + baselineChild-&gt;logicalTop())));
</del><ins>+    return std::optional&lt;int&gt;(static_cast&lt;int&gt;(lroundf(ascentForChild(*baselineChild) + baselineChild-&gt;logicalTop())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLRow::computeLineVerticalStretch(LayoutUnit&amp; ascent, LayoutUnit&amp; descent)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLRowh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) override;
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const override;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const override;
</ins><span class="cx"> 
</span><span class="cx">     void layoutRowItems(LayoutUnit&amp; ascent, LayoutUnit&amp; descent);
</span><span class="cx">     void computeLineVerticalStretch(LayoutUnit&amp; ascent, LayoutUnit&amp; descent);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -76,13 +76,13 @@
</span><span class="cx">     return downcast&lt;RenderMathMLBlock&gt;(base)-&gt;unembellishedOperator();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;RenderMathMLScripts::ReferenceChildren&gt; RenderMathMLScripts::validateAndGetReferenceChildren()
</del><ins>+std::optional&lt;RenderMathMLScripts::ReferenceChildren&gt; RenderMathMLScripts::validateAndGetReferenceChildren()
</ins><span class="cx"> {
</span><span class="cx">     // All scripted elements must have at least one child.
</span><span class="cx">     // The first child is the base.
</span><span class="cx">     auto base = firstChildBox();
</span><span class="cx">     if (!base)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     ReferenceChildren reference;
</span><span class="cx">     reference.base = base;
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx">         // &lt;mover&gt; base overscript &lt;/mover&gt;
</span><span class="cx">         auto script = base-&gt;nextSiblingBox();
</span><span class="cx">         if (!script || isPrescriptDelimiter(*script) || script-&gt;nextSiblingBox())
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         reference.firstPostScript = script;
</span><span class="cx">         return reference;
</span><span class="cx">     }
</span><span class="lines">@@ -115,10 +115,10 @@
</span><span class="cx">         // &lt;munderover&gt; base subscript superscript &lt;/munderover&gt;
</span><span class="cx">         auto subScript = base-&gt;nextSiblingBox();
</span><span class="cx">         if (!subScript || isPrescriptDelimiter(*subScript))
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         auto superScript = subScript-&gt;nextSiblingBox();
</span><span class="cx">         if (!superScript || isPrescriptDelimiter(*superScript) || superScript-&gt;nextSiblingBox())
</span><del>-            return Nullopt;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         reference.firstPostScript = subScript;
</span><span class="cx">         return reference;
</span><span class="cx">     }
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx">             if (isPrescriptDelimiter(*script)) {
</span><span class="cx">                 // This is a &lt;mprescripts/&gt;. Let's check 2a) and 2c).
</span><span class="cx">                 if (!numberOfScriptIsEven || reference.firstPreScript)
</span><del>-                    return Nullopt;
</del><ins>+                    return std::nullopt;
</ins><span class="cx">                 reference.firstPreScript = script-&gt;nextSiblingBox(); // We do 1).
</span><span class="cx">                 reference.prescriptDelimiter = script;
</span><span class="cx">                 continue;
</span><span class="lines">@@ -155,12 +155,12 @@
</span><span class="cx">             }
</span><span class="cx">             numberOfScriptIsEven = !numberOfScriptIsEven;
</span><span class="cx">         }
</span><del>-        return numberOfScriptIsEven ? Optional&lt;ReferenceChildren&gt;(reference) : Nullopt; // We verify 2b).
</del><ins>+        return numberOfScriptIsEven ? std::optional&lt;ReferenceChildren&gt;(reference) : std::nullopt; // We verify 2b).
</ins><span class="cx">     }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> LayoutUnit RenderMathMLScripts::spaceAfterScript()
</span><span class="lines">@@ -471,13 +471,13 @@
</span><span class="cx">     clearNeedsLayout();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderMathMLScripts::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderMathMLScripts::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!needsLayout());
</span><span class="cx">     auto* base = firstChildBox();
</span><span class="cx">     if (!base)
</span><del>-        return Optional&lt;int&gt;();
-    return Optional&lt;int&gt;(static_cast&lt;int&gt;(lroundf(ascentForChild(*base) + base-&gt;logicalTop())));
</del><ins>+        return std::optional&lt;int&gt;();
+    return std::optional&lt;int&gt;(static_cast&lt;int&gt;(lroundf(ascentForChild(*base) + base-&gt;logicalTop())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLScriptsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     MathMLScriptsElement&amp; element() const;
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const final;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const final;
</ins><span class="cx">     struct ReferenceChildren {
</span><span class="cx">         RenderBox* base;
</span><span class="cx">         RenderBox* prescriptDelimiter;
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">         RenderBox* firstPostScript;
</span><span class="cx">         RenderBox* firstPreScript;
</span><span class="cx">     };
</span><del>-    Optional&lt;ReferenceChildren&gt; validateAndGetReferenceChildren();
</del><ins>+    std::optional&lt;ReferenceChildren&gt; validateAndGetReferenceChildren();
</ins><span class="cx">     LayoutUnit spaceAfterScript();
</span><span class="cx">     LayoutUnit italicCorrection(const ReferenceChildren&amp;);
</span><span class="cx">     struct VerticalParameters {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLSpacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -82,11 +82,11 @@
</span><span class="cx">     clearNeedsLayout();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderMathMLSpace::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderMathMLSpace::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     LayoutUnit height, depth;
</span><span class="cx">     getSpaceHeightAndDepth(height, depth);
</span><del>-    return Optional&lt;int&gt;(height);
</del><ins>+    return std::optional&lt;int&gt;(height);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLSpaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     bool isChildAllowed(const RenderObject&amp;, const RenderStyle&amp;) const final { return false; }
</span><span class="cx">     void computePreferredLogicalWidths() final;
</span><span class="cx">     void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) final;
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const final;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const final;
</ins><span class="cx"> 
</span><span class="cx">     LayoutUnit spaceWidth() const;
</span><span class="cx">     void getSpaceHeightAndDepth(LayoutUnit&amp; height, LayoutUnit&amp; depth) const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLTokencpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -516,7 +516,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_mathVariantGlyphDirty);
</span><span class="cx"> 
</span><del>-    m_mathVariantCodePoint = Nullopt;
</del><ins>+    m_mathVariantCodePoint = std::nullopt;
</ins><span class="cx">     m_mathVariantGlyphDirty = false;
</span><span class="cx"> 
</span><span class="cx">     // Early return if the token element contains RenderElements.
</span><span class="lines">@@ -551,12 +551,12 @@
</span><span class="cx">     setMathVariantGlyphDirty();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;int&gt; RenderMathMLToken::firstLineBaseline() const
</del><ins>+std::optional&lt;int&gt; RenderMathMLToken::firstLineBaseline() const
</ins><span class="cx"> {
</span><span class="cx">     if (m_mathVariantCodePoint) {
</span><span class="cx">         auto mathVariantGlyph = style().fontCascade().glyphDataForCharacter(m_mathVariantCodePoint.value(), m_mathVariantIsMirrored);
</span><span class="cx">         if (mathVariantGlyph.font)
</span><del>-            return Optional&lt;int&gt;(static_cast&lt;int&gt;(lroundf(-mathVariantGlyph.font-&gt;boundsForGlyph(mathVariantGlyph.glyph).y())));
</del><ins>+            return std::optional&lt;int&gt;(static_cast&lt;int&gt;(lroundf(-mathVariantGlyph.font-&gt;boundsForGlyph(mathVariantGlyph.glyph).y())));
</ins><span class="cx">     }
</span><span class="cx">     return RenderMathMLBlock::firstLineBaseline();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLTokenh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> protected:
</span><span class="cx">     void paint(PaintInfo&amp;, const LayoutPoint&amp;) override;
</span><span class="cx">     void paintChildren(PaintInfo&amp; forSelf, const LayoutPoint&amp;, PaintInfo&amp; forChild, bool usePrintRect) override;
</span><del>-    Optional&lt;int&gt; firstLineBaseline() const override;
</del><ins>+    std::optional&lt;int&gt; firstLineBaseline() const override;
</ins><span class="cx">     void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) override;
</span><span class="cx">     void computePreferredLogicalWidths() override;
</span><span class="cx"> 
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">         m_mathVariantGlyphDirty = true;
</span><span class="cx">         setNeedsLayoutAndPrefWidthsRecalc();
</span><span class="cx">     }
</span><del>-    Optional&lt;UChar32&gt; m_mathVariantCodePoint { Nullopt };
</del><ins>+    std::optional&lt;UChar32&gt; m_mathVariantCodePoint { std::nullopt };
</ins><span class="cx">     bool m_mathVariantIsMirrored { false };
</span><span class="cx">     bool m_mathVariantGlyphDirty { false };
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGContainercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx">     if (!pointIsInsideViewportClip(pointInParent))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    FloatPoint localPoint = localToParentTransform().inverse().valueOr(AffineTransform()).mapPoint(pointInParent);
</del><ins>+    FloatPoint localPoint = localToParentTransform().inverse().value_or(AffineTransform()).mapPoint(pointInParent);
</ins><span class="cx"> 
</span><span class="cx">     if (!SVGRenderSupport::pointInClippingArea(*this, localPoint))
</span><span class="cx">         return false;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGForeignObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -183,7 +183,7 @@
</span><span class="cx">     if (hitTestAction != HitTestForeground)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    FloatPoint localPoint = localTransform().inverse().valueOr(AffineTransform()).mapPoint(pointInParent);
</del><ins>+    FloatPoint localPoint = localTransform().inverse().value_or(AffineTransform()).mapPoint(pointInParent);
</ins><span class="cx"> 
</span><span class="cx">     // Early exit if local point is not contained in clipped viewport area
</span><span class="cx">     if (SVGRenderSupport::isOverflowHidden(*this) &amp;&amp; !m_viewport.contains(localPoint))
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -185,7 +185,7 @@
</span><span class="cx">     PointerEventsHitRules hitRules(PointerEventsHitRules::SVG_IMAGE_HITTESTING, request, style().pointerEvents());
</span><span class="cx">     bool isVisible = (style().visibility() == VISIBLE);
</span><span class="cx">     if (isVisible || !hitRules.requireVisible) {
</span><del>-        FloatPoint localPoint = localToParentTransform().inverse().valueOr(AffineTransform()).mapPoint(pointInParent);
</del><ins>+        FloatPoint localPoint = localToParentTransform().inverse().value_or(AffineTransform()).mapPoint(pointInParent);
</ins><span class="cx">             
</span><span class="cx">         if (!SVGRenderSupport::pointInClippingArea(*this, localPoint))
</span><span class="cx">             return false;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGResourceClippercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -267,10 +267,10 @@
</span><span class="cx">         AffineTransform transform;
</span><span class="cx">         transform.translate(objectBoundingBox.x(), objectBoundingBox.y());
</span><span class="cx">         transform.scaleNonUniform(objectBoundingBox.width(), objectBoundingBox.height());
</span><del>-        point = transform.inverse().valueOr(AffineTransform()).mapPoint(point);
</del><ins>+        point = transform.inverse().value_or(AffineTransform()).mapPoint(point);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    point = clipPathElement().animatedLocalTransform().inverse().valueOr(AffineTransform()).mapPoint(point);
</del><ins>+    point = clipPathElement().animatedLocalTransform().inverse().value_or(AffineTransform()).mapPoint(point);
</ins><span class="cx"> 
</span><span class="cx">     for (Node* childNode = clipPathElement().firstChild(); childNode; childNode = childNode-&gt;nextSibling()) {
</span><span class="cx">         RenderObject* renderer = childNode-&gt;renderer();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGResourceFiltercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -268,7 +268,7 @@
</span><span class="cx"> 
</span><span class="cx">         ImageBuffer* resultImage = lastEffect-&gt;asImageBuffer();
</span><span class="cx">         if (resultImage) {
</span><del>-            context-&gt;concatCTM(filterData-&gt;shearFreeAbsoluteTransform.inverse().valueOr(AffineTransform()));
</del><ins>+            context-&gt;concatCTM(filterData-&gt;shearFreeAbsoluteTransform.inverse().value_or(AffineTransform()));
</ins><span class="cx"> 
</span><span class="cx">             context-&gt;scale(FloatSize(1 / filterData-&gt;filter-&gt;filterResolution().width(), 1 / filterData-&gt;filter-&gt;filterResolution().height()));
</span><span class="cx">             context-&gt;drawImageBuffer(*resultImage, lastEffect-&gt;absolutePaintRect());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGRootcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -430,7 +430,7 @@
</span><span class="cx">     // Only test SVG content if the point is in our content box.
</span><span class="cx">     // FIXME: This should be an intersection when rect-based hit tests are supported by nodeAtFloatPoint.
</span><span class="cx">     if (contentBoxRect().contains(pointInBorderBox)) {
</span><del>-        FloatPoint localPoint = localToParentTransform().inverse().valueOr(AffineTransform()).mapPoint(FloatPoint(pointInParent));
</del><ins>+        FloatPoint localPoint = localToParentTransform().inverse().value_or(AffineTransform()).mapPoint(FloatPoint(pointInParent));
</ins><span class="cx"> 
</span><span class="cx">         for (RenderObject* child = lastChild(); child; child = child-&gt;previousSibling()) {
</span><span class="cx">             // FIXME: nodeAtFloatPoint() doesn't handle rect-based hit tests yet.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGShapecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -200,7 +200,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderSVGShape::setupNonScalingStrokeContext(AffineTransform&amp; strokeTransform, GraphicsContextStateSaver&amp; stateSaver)
</span><span class="cx"> {
</span><del>-    Optional&lt;AffineTransform&gt; inverse = strokeTransform.inverse();
</del><ins>+    std::optional&lt;AffineTransform&gt; inverse = strokeTransform.inverse();
</ins><span class="cx">     if (!inverse)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -338,7 +338,7 @@
</span><span class="cx">     if (hitTestAction != HitTestForeground)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    FloatPoint localPoint = m_localTransform.inverse().valueOr(AffineTransform()).mapPoint(pointInParent);
</del><ins>+    FloatPoint localPoint = m_localTransform.inverse().value_or(AffineTransform()).mapPoint(pointInParent);
</ins><span class="cx"> 
</span><span class="cx">     if (!SVGRenderSupport::pointInClippingArea(*this, localPoint))
</span><span class="cx">         return false;
</span><span class="lines">@@ -410,7 +410,7 @@
</span><span class="cx">         BoundingRectStrokeStyleApplier strokeStyle(*this);
</span><span class="cx">         if (hasNonScalingStroke()) {
</span><span class="cx">             AffineTransform nonScalingTransform = nonScalingStrokeTransform();
</span><del>-            if (Optional&lt;AffineTransform&gt; inverse = nonScalingTransform.inverse()) {
</del><ins>+            if (std::optional&lt;AffineTransform&gt; inverse = nonScalingTransform.inverse()) {
</ins><span class="cx">                 Path* usePath = nonScalingStrokePath(m_path.get(), nonScalingTransform);
</span><span class="cx">                 FloatRect strokeBoundingRect = usePath-&gt;strokeBoundingRect(&amp;strokeStyle);
</span><span class="cx">                 strokeBoundingRect = inverse.value().mapRect(strokeBoundingRect);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -433,7 +433,7 @@
</span><span class="cx">     if (isVisible || !hitRules.requireVisible) {
</span><span class="cx">         if ((hitRules.canHitStroke &amp;&amp; (style().svgStyle().hasStroke() || !hitRules.requireStroke))
</span><span class="cx">             || (hitRules.canHitFill &amp;&amp; (style().svgStyle().hasFill() || !hitRules.requireFill))) {
</span><del>-            FloatPoint localPoint = localToParentTransform().inverse().valueOr(AffineTransform()).mapPoint(pointInParent);
</del><ins>+            FloatPoint localPoint = localToParentTransform().inverse().value_or(AffineTransform()).mapPoint(pointInParent);
</ins><span class="cx"> 
</span><span class="cx">             if (!SVGRenderSupport::pointInClippingArea(*this, localPoint))
</span><span class="cx">                 return false;       
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGRenderSupportcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -370,7 +370,7 @@
</span><span class="cx">     if (localToRootTransform.isIdentity())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    AffineTransform rootToLocalTransform = localToRootTransform.inverse().valueOr(AffineTransform());
</del><ins>+    AffineTransform rootToLocalTransform = localToRootTransform.inverse().value_or(AffineTransform());
</ins><span class="cx">     repaintRect = rootToLocalTransform.mapRect(repaintRect);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGRenderingContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -318,7 +318,7 @@
</span><span class="cx"> 
</span><span class="cx">     // The mask image has been created in the absolute coordinate space, as the image should not be scaled.
</span><span class="cx">     // So the actual masking process has to be done in the absolute coordinate space as well.
</span><del>-    context.concatCTM(absoluteTransform.inverse().valueOr(AffineTransform()));
</del><ins>+    context.concatCTM(absoluteTransform.inverse().value_or(AffineTransform()));
</ins><span class="cx">     context.clipToImageBuffer(*imageBuffer, absoluteTargetRect);
</span><span class="cx">     context.concatCTM(absoluteTransform);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextQuerycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextQuery.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextQuery.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/rendering/svg/SVGTextQuery.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx">     bool alterStartPosition = true;
</span><span class="cx">     bool alterEndPosition = true;
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned&gt; lastPositionOffset;
</del><ins>+    std::optional&lt;unsigned&gt; lastPositionOffset;
</ins><span class="cx">     for (; textMetricsOffset &lt; textMetricsSize &amp;&amp; positionOffset &lt; positionSize; ++textMetricsOffset) {
</span><span class="cx">         SVGTextMetrics&amp; metrics = textMetricsValues[textMetricsOffset];
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorestyleRenderTreeUpdatercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/RenderTreeUpdater.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/RenderTreeUpdater.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/style/RenderTreeUpdater.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> RenderTreeUpdater::Parent::Parent(Element&amp; element, Style::Change styleChange)
</span><span class="cx">     : element(&amp;element)
</span><span class="cx">     , styleChange(styleChange)
</span><del>-    , renderTreePosition(element.renderer() ? makeOptional(RenderTreePosition(*element.renderer())) : Nullopt)
</del><ins>+    , renderTreePosition(element.renderer() ? std::make_optional(RenderTreePosition(*element.renderer())) : std::nullopt)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorestyleRenderTreeUpdaterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/RenderTreeUpdater.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/RenderTreeUpdater.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/style/RenderTreeUpdater.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">     struct Parent {
</span><span class="cx">         Element* element { nullptr };
</span><span class="cx">         Style::Change styleChange { Style::NoChange };
</span><del>-        Optional&lt;RenderTreePosition&gt; renderTreePosition;
</del><ins>+        std::optional&lt;RenderTreePosition&gt; renderTreePosition;
</ins><span class="cx"> 
</span><span class="cx">         Parent(ContainerNode&amp; root);
</span><span class="cx">         Parent(Element&amp;, Style::Change);
</span></span></pre></div>
<a id="trunkSourceWebCorestyleStyleScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/StyleScope.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/StyleScope.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/style/StyleScope.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx">     int m_pendingStyleSheetCount { 0 };
</span><span class="cx">     bool m_didUpdateActiveStyleSheets { false };
</span><span class="cx"> 
</span><del>-    Optional&lt;UpdateType&gt; m_pendingUpdate;
</del><ins>+    std::optional&lt;UpdateType&gt; m_pendingUpdate;
</ins><span class="cx">     bool m_hasDescendantWithPendingUpdate { false };
</span><span class="cx"> 
</span><span class="cx">     ListHashSet&lt;Node*&gt; m_styleSheetCandidateNodes;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGElement.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGElement.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/svg/SVGElement.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -461,7 +461,7 @@
</span><span class="cx">     if (name == HTMLNames::tabindexAttr) {
</span><span class="cx">         if (value.isEmpty())
</span><span class="cx">             clearTabIndexExplicitlyIfNeeded();
</span><del>-        else if (Optional&lt;int&gt; tabIndex = parseHTMLInteger(value))
</del><ins>+        else if (std::optional&lt;int&gt; tabIndex = parseHTMLInteger(value))
</ins><span class="cx">             setTabIndexExplicitly(tabIndex.value());
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -726,7 +726,7 @@
</span><span class="cx">     contextElement-&gt;synchronizeSystemLanguage();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ElementStyle&gt; SVGElement::resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle*)
</del><ins>+std::optional&lt;ElementStyle&gt; SVGElement::resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle*)
</ins><span class="cx"> {
</span><span class="cx">     // If the element is in a &lt;use&gt; tree we get the style from the definition tree.
</span><span class="cx">     if (auto* styleElement = this-&gt;correspondingElement())
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGElement.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGElement.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/svg/SVGElement.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx">     void synchronizeAnimatedSVGAttribute(const QualifiedName&amp;) const;
</span><span class="cx">     static void synchronizeAllAnimatedSVGAttribute(SVGElement*);
</span><span class="cx">  
</span><del>-    Optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</del><ins>+    std::optional&lt;ElementStyle&gt; resolveCustomStyle(const RenderStyle&amp; parentStyle, const RenderStyle* shadowHostStyle) override;
</ins><span class="cx"> 
</span><span class="cx">     static void synchronizeRequiredFeatures(SVGElement* contextElement);
</span><span class="cx">     static void synchronizeRequiredExtensions(SVGElement* contextElement);
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGToOTFFontConversioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx"> 
</span><span class="cx">     uint32_t calculateChecksum(size_t startingOffset, size_t endingOffset) const;
</span><span class="cx"> 
</span><del>-    void processGlyphElement(const SVGElement&amp; glyphOrMissingGlyphElement, const SVGGlyphElement*, float defaultHorizontalAdvance, float defaultVerticalAdvance, const String&amp; codepoints, Optional&lt;FloatRect&gt;&amp; boundingBox);
</del><ins>+    void processGlyphElement(const SVGElement&amp; glyphOrMissingGlyphElement, const SVGGlyphElement*, float defaultHorizontalAdvance, float defaultVerticalAdvance, const String&amp; codepoints, std::optional&lt;FloatRect&gt;&amp; boundingBox);
</ins><span class="cx"> 
</span><span class="cx">     typedef void (SVGToOTFFontConverter::*FontAppendingFunction)();
</span><span class="cx">     void appendTable(const char identifier[4], FontAppendingFunction);
</span><span class="lines">@@ -221,7 +221,7 @@
</span><span class="cx"> 
</span><span class="cx">     void appendValidCFFString(const String&amp;);
</span><span class="cx"> 
</span><del>-    Vector&lt;char&gt; transcodeGlyphPaths(float width, const SVGElement&amp; glyphOrMissingGlyphElement, Optional&lt;FloatRect&gt;&amp; boundingBox) const;
</del><ins>+    Vector&lt;char&gt; transcodeGlyphPaths(float width, const SVGElement&amp; glyphOrMissingGlyphElement, std::optional&lt;FloatRect&gt;&amp; boundingBox) const;
</ins><span class="cx"> 
</span><span class="cx">     void addCodepointRanges(const UnicodeRanges&amp;, HashSet&lt;Glyph&gt;&amp; glyphSet) const;
</span><span class="cx">     void addCodepoints(const HashSet&lt;String&gt;&amp; codepoints, HashSet&lt;Glyph&gt;&amp; glyphSet) const;
</span><span class="lines">@@ -1155,7 +1155,7 @@
</span><span class="cx">         m_cffData.append(rMoveTo);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; boundingBox() const
</del><ins>+    std::optional&lt;FloatRect&gt; boundingBox() const
</ins><span class="cx">     {
</span><span class="cx">         return m_boundingBox;
</span><span class="cx">     }
</span><span class="lines">@@ -1246,11 +1246,11 @@
</span><span class="cx">     Vector&lt;char&gt;&amp; m_cffData;
</span><span class="cx">     FloatPoint m_startingPoint;
</span><span class="cx">     FloatPoint m_current;
</span><del>-    Optional&lt;FloatRect&gt; m_boundingBox;
</del><ins>+    std::optional&lt;FloatRect&gt; m_boundingBox;
</ins><span class="cx">     float m_unitsPerEmScalar;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-Vector&lt;char&gt; SVGToOTFFontConverter::transcodeGlyphPaths(float width, const SVGElement&amp; glyphOrMissingGlyphElement, Optional&lt;FloatRect&gt;&amp; boundingBox) const
</del><ins>+Vector&lt;char&gt; SVGToOTFFontConverter::transcodeGlyphPaths(float width, const SVGElement&amp; glyphOrMissingGlyphElement, std::optional&lt;FloatRect&gt;&amp; boundingBox) const
</ins><span class="cx"> {
</span><span class="cx">     Vector&lt;char&gt; result;
</span><span class="cx"> 
</span><span class="lines">@@ -1286,7 +1286,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SVGToOTFFontConverter::processGlyphElement(const SVGElement&amp; glyphOrMissingGlyphElement, const SVGGlyphElement* glyphElement, float defaultHorizontalAdvance, float defaultVerticalAdvance, const String&amp; codepoints, Optional&lt;FloatRect&gt;&amp; boundingBox)
</del><ins>+void SVGToOTFFontConverter::processGlyphElement(const SVGElement&amp; glyphOrMissingGlyphElement, const SVGGlyphElement* glyphElement, float defaultHorizontalAdvance, float defaultVerticalAdvance, const String&amp; codepoints, std::optional&lt;FloatRect&gt;&amp; boundingBox)
</ins><span class="cx"> {
</span><span class="cx">     bool ok;
</span><span class="cx">     float horizontalAdvance = scaleUnitsPerEm(glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::horiz_adv_xAttr).toFloat(&amp;ok));
</span><span class="lines">@@ -1298,7 +1298,7 @@
</span><span class="cx">         verticalAdvance = defaultVerticalAdvance;
</span><span class="cx">     m_advanceHeightMax = std::max(m_advanceHeightMax, verticalAdvance);
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; glyphBoundingBox;
</del><ins>+    std::optional&lt;FloatRect&gt; glyphBoundingBox;
</ins><span class="cx">     auto path = transcodeGlyphPaths(horizontalAdvance, glyphOrMissingGlyphElement, glyphBoundingBox);
</span><span class="cx">     if (!path.size()) {
</span><span class="cx">         // It's better to use a fallback font rather than use a font without all its glyphs.
</span><span class="lines">@@ -1311,7 +1311,7 @@
</span><span class="cx">     if (glyphBoundingBox)
</span><span class="cx">         m_minRightSideBearing = std::min(m_minRightSideBearing, horizontalAdvance - glyphBoundingBox.value().maxX());
</span><span class="cx"> 
</span><del>-    m_glyphs.append(GlyphData(WTFMove(path), glyphElement, horizontalAdvance, verticalAdvance, glyphBoundingBox.valueOr(FloatRect()), codepoints));
</del><ins>+    m_glyphs.append(GlyphData(WTFMove(path), glyphElement, horizontalAdvance, verticalAdvance, glyphBoundingBox.value_or(FloatRect()), codepoints));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SVGToOTFFontConverter::appendLigatureGlyphs()
</span><span class="lines">@@ -1421,7 +1421,7 @@
</span><span class="cx"> 
</span><span class="cx">     populateEmptyGlyphCharString(m_emptyGlyphCharString, s_outputUnitsPerEm);
</span><span class="cx"> 
</span><del>-    Optional&lt;FloatRect&gt; boundingBox;
</del><ins>+    std::optional&lt;FloatRect&gt; boundingBox;
</ins><span class="cx">     if (m_missingGlyphElement)
</span><span class="cx">         processGlyphElement(*m_missingGlyphElement, nullptr, defaultHorizontalAdvance, defaultVerticalAdvance, String(), boundingBox);
</span><span class="cx">     else {
</span><span class="lines">@@ -1435,7 +1435,7 @@
</span><span class="cx">             processGlyphElement(glyphElement, &amp;glyphElement, defaultHorizontalAdvance, defaultVerticalAdvance, unicodeAttribute, boundingBox);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_boundingBox = boundingBox.valueOr(FloatRect());
</del><ins>+    m_boundingBox = boundingBox.value_or(FloatRect());
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 101000
</span><span class="cx">     // &lt;rdar://problem/20086223&gt; Cocoa has a bug where glyph bounding boxes are not correctly respected for frustum culling. Work around this by
</span><span class="lines">@@ -1584,13 +1584,13 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;Vector&lt;char&gt;&gt; convertSVGToOTFFont(const SVGFontElement&amp; element)
</del><ins>+std::optional&lt;Vector&lt;char&gt;&gt; convertSVGToOTFFont(const SVGFontElement&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     SVGToOTFFontConverter converter(element);
</span><span class="cx">     if (converter.error())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     if (!converter.convertSVGToOTFFont())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     return converter.releaseResult();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGToOTFFontConversionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGToOTFFontConversion.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGToOTFFontConversion.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/svg/SVGToOTFFontConversion.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -32,6 +32,6 @@
</span><span class="cx"> 
</span><span class="cx"> class SVGFontElement;
</span><span class="cx"> 
</span><del>-Optional&lt;Vector&lt;char&gt;&gt; convertSVGToOTFFont(const SVGFontElement&amp;);
</del><ins>+std::optional&lt;Vector&lt;char&gt;&gt; convertSVGToOTFFont(const SVGFontElement&amp;);
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/testing/Internals.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -854,7 +854,7 @@
</span><span class="cx">     return contextDocument()-&gt;isTimerThrottlingEnabled();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setEventThrottlingBehaviorOverride(Optional&lt;EventThrottlingBehavior&gt; value)
</del><ins>+void Internals::setEventThrottlingBehaviorOverride(std::optional&lt;EventThrottlingBehavior&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;page())
</span><span class="lines">@@ -861,7 +861,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (!value) {
</span><del>-        document-&gt;page()-&gt;setEventThrottlingBehaviorOverride(Nullopt);
</del><ins>+        document-&gt;page()-&gt;setEventThrottlingBehaviorOverride(std::nullopt);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -875,15 +875,15 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;Internals::EventThrottlingBehavior&gt; Internals::eventThrottlingBehaviorOverride() const
</del><ins>+std::optional&lt;Internals::EventThrottlingBehavior&gt; Internals::eventThrottlingBehaviorOverride() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;page())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto behavior = document-&gt;page()-&gt;eventThrottlingBehaviorOverride();
</span><span class="cx">     if (!behavior)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx">     
</span><span class="cx">     switch (behavior.value()) {
</span><span class="cx">     case WebCore::EventThrottlingBehavior::Responsive:
</span><span class="lines">@@ -892,7 +892,7 @@
</span><span class="cx">         return Internals::EventThrottlingBehavior::Unresponsive;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String Internals::visiblePlaceholder(Element&amp; element)
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/testing/Internals.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -122,8 +122,8 @@
</span><span class="cx">     bool areTimersThrottled() const;
</span><span class="cx"> 
</span><span class="cx">     enum EventThrottlingBehavior { Responsive, Unresponsive };
</span><del>-    void setEventThrottlingBehaviorOverride(Optional&lt;EventThrottlingBehavior&gt;);
-    Optional&lt;EventThrottlingBehavior&gt; eventThrottlingBehaviorOverride() const;
</del><ins>+    void setEventThrottlingBehaviorOverride(std::optional&lt;EventThrottlingBehavior&gt;);
+    std::optional&lt;EventThrottlingBehavior&gt; eventThrottlingBehaviorOverride() const;
</ins><span class="cx"> 
</span><span class="cx">     // Spatial Navigation testing.
</span><span class="cx">     ExceptionOr&lt;unsigned&gt; lastSpatialNavigationCandidateCount() const;
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/Worker.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/Worker.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/workers/Worker.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     RefPtr&lt;WorkerScriptLoader&gt; m_scriptLoader;
</span><span class="cx">     String m_identifier;
</span><span class="cx">     WorkerGlobalScopeProxy* m_contextProxy; // The proxy outlives the worker to perform thread shutdown.
</span><del>-    Optional&lt;ContentSecurityPolicyResponseHeaders&gt; m_contentSecurityPolicyResponseHeaders;
</del><ins>+    std::optional&lt;ContentSecurityPolicyResponseHeaders&gt; m_contentSecurityPolicyResponseHeaders;
</ins><span class="cx">     bool m_shouldBypassMainWorldContentSecurityPolicy { false };
</span><span class="cx">     JSC::RuntimeFlags m_runtimeFlags;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -476,10 +476,10 @@
</span><span class="cx">     return open(method, urlWithCredentials, async);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;ExceptionOr&lt;void&gt;&gt; XMLHttpRequest::prepareToSend()
</del><ins>+std::optional&lt;ExceptionOr&lt;void&gt;&gt; XMLHttpRequest::prepareToSend()
</ins><span class="cx"> {
</span><del>-    // A return value other than Nullopt means we should not try to send, and we should return that value to the caller.
-    // Nullopt means we are ready to send and should continue with the send algorithm.
</del><ins>+    // A return value other than std::nullopt means we should not try to send, and we should return that value to the caller.
+    // std::nullopt means we are ready to send and should continue with the send algorithm.
</ins><span class="cx"> 
</span><span class="cx">     if (!scriptExecutionContext())
</span><span class="cx">         return ExceptionOr&lt;void&gt; { };
</span><span class="lines">@@ -501,7 +501,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     m_error = false;
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ExceptionOr&lt;void&gt; XMLHttpRequest::send(Document&amp; document)
</span><span class="lines">@@ -980,7 +980,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_responseBuilder.shrinkToFit();
</span><span class="cx"> 
</span><del>-    Optional&lt;String&gt; decodedText;
</del><ins>+    std::optional&lt;String&gt; decodedText;
</ins><span class="cx">     if (!m_binaryResponseBuilder)
</span><span class="cx">         decodedText = m_responseBuilder.toStringPreserveCapacity();
</span><span class="cx">     InspectorInstrumentation::didFinishXHRLoading(scriptExecutionContext(), this, identifier, decodedText, m_url, m_lastSendURL, m_lastSendLineNumber, m_lastSendColumnNumber);
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -153,7 +153,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool responseIsXML() const;
</span><span class="cx"> 
</span><del>-    Optional&lt;ExceptionOr&lt;void&gt;&gt; prepareToSend();
</del><ins>+    std::optional&lt;ExceptionOr&lt;void&gt;&gt; prepareToSend();
</ins><span class="cx">     ExceptionOr&lt;void&gt; sendBytesData(const void*, size_t);
</span><span class="cx"> 
</span><span class="cx">     void changeState(State);
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1,3 +1,32 @@
</span><ins>+2016-11-26  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
+
+        [WTF] Import std::optional reference implementation as WTF::Optional
+        https://bugs.webkit.org/show_bug.cgi?id=164199
+
+        Reviewed by Saam Barati and Sam Weinig.
+
+        Use WTF::Optional::value_or.
+
+        * DOM/DOMHTMLOptionsCollection.mm:
+        (-[DOMHTMLOptionsCollection add:index:]):
+        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
+        (WebKit::NetscapePluginInstanceProxy::evaluate):
+        * Plugins/WebNetscapePluginView.mm:
+        (-[WebNetscapePluginView sendEvent:isDrawRect:]):
+        * WebCoreSupport/WebFrameLoaderClient.h:
+        * WebCoreSupport/WebFrameLoaderClient.mm:
+        (WebFrameLoaderClient::dispatchDidCommitLoad):
+        * WebCoreSupport/WebPaymentCoordinatorClient.h:
+        * WebCoreSupport/WebPaymentCoordinatorClient.mm:
+        (WebPaymentCoordinatorClient::completeShippingMethodSelection):
+        (WebPaymentCoordinatorClient::completeShippingContactSelection):
+        (WebPaymentCoordinatorClient::completePaymentMethodSelection):
+        * WebCoreSupport/WebSecurityOrigin.mm:
+        (-[WebSecurityOrigin port]):
+        * WebView/WebHTMLView.mm:
+        (toAction):
+        (toTag):
+
</ins><span class="cx"> 2016-11-26  Sam Weinig  &lt;sam@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Convert IntersectionObserver over to using RuntimeEnabledFeatures so it can be properly excluded from script
</span></span></pre></div>
<a id="trunkSourceWebKitmacDOMDOMHTMLOptionsCollectionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/DOM/DOMHTMLOptionsCollection.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/DOM/DOMHTMLOptionsCollection.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/DOM/DOMHTMLOptionsCollection.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx">     WebCore::JSMainThreadNullState state;
</span><span class="cx">     if (!option)
</span><span class="cx">         raiseTypeErrorException();
</span><del>-    raiseOnDOMError(IMPL-&gt;add(core(option), Optional&lt;WebCore::HTMLOptionsCollection::HTMLElementOrInt&gt; { static_cast&lt;int&gt;(index) }));
</del><ins>+    raiseOnDOMError(IMPL-&gt;add(core(option), std::optional&lt;WebCore::HTMLOptionsCollection::HTMLElementOrInt&gt; { static_cast&lt;int&gt;(index) }));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)remove:(unsigned)index
</span></span></pre></div>
<a id="trunkSourceWebKitmacPluginsHostedNetscapePluginInstanceProxymm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -889,7 +889,7 @@
</span><span class="cx">     Strong&lt;JSGlobalObject&gt; globalObject(vm, frame-&gt;script().globalObject(pluginWorld()));
</span><span class="cx">     ExecState* exec = globalObject-&gt;globalExec();
</span><span class="cx"> 
</span><del>-    UserGestureIndicator gestureIndicator(allowPopups ? Optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : Nullopt);
</del><ins>+    UserGestureIndicator gestureIndicator(allowPopups ? std::optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : std::nullopt);
</ins><span class="cx">     
</span><span class="cx">     JSValue result = JSC::evaluate(exec, makeSource(script));
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKitmacPluginsWebNetscapePluginViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Plugins/WebNetscapePluginView.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Plugins/WebNetscapePluginView.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/Plugins/WebNetscapePluginView.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -666,7 +666,7 @@
</span><span class="cx">     ASSERT(_eventHandler);
</span><span class="cx">     {
</span><span class="cx">         JSC::JSLock::DropAllLocks dropAllLocks(JSDOMWindowBase::commonVM());
</span><del>-        UserGestureIndicator gestureIndicator(_eventHandler-&gt;currentEventIsUserGesture() ? Optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : Nullopt);
</del><ins>+        UserGestureIndicator gestureIndicator(_eventHandler-&gt;currentEventIsUserGesture() ? std::optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : std::nullopt);
</ins><span class="cx">         acceptedEvent = [_pluginPackage.get() pluginFuncs]-&gt;event(plugin, event);
</span><span class="cx">     }
</span><span class="cx">     [self didCallPlugInFunction];
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx">     void dispatchDidReceiveIcon() override;
</span><span class="cx">     void dispatchDidStartProvisionalLoad() override;
</span><span class="cx">     void dispatchDidReceiveTitle(const WebCore::StringWithDirection&amp;) override;
</span><del>-    void dispatchDidCommitLoad(Optional&lt;WebCore::HasInsecureContent&gt;) override;
</del><ins>+    void dispatchDidCommitLoad(std::optional&lt;WebCore::HasInsecureContent&gt;) override;
</ins><span class="cx">     void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&amp;) override;
</span><span class="cx">     void dispatchDidFailLoad(const WebCore::ResourceError&amp;) override;
</span><span class="cx">     void dispatchDidFinishDocumentLoad() override;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -690,7 +690,7 @@
</span><span class="cx">         CallFrameLoadDelegate(implementations-&gt;didReceiveTitleForFrameFunc, webView, @selector(webView:didReceiveTitle:forFrame:), (NSString *)title.string(), m_webFrame.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebFrameLoaderClient::dispatchDidCommitLoad(Optional&lt;HasInsecureContent&gt;)
</del><ins>+void WebFrameLoaderClient::dispatchDidCommitLoad(std::optional&lt;HasInsecureContent&gt;)
</ins><span class="cx"> {
</span><span class="cx">     // Tell the client we've committed this URL.
</span><span class="cx">     ASSERT([m_webFrame-&gt;_private-&gt;webFrameView documentView] != nil);
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebPaymentCoordinatorClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebPaymentCoordinatorClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebPaymentCoordinatorClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebPaymentCoordinatorClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -42,9 +42,9 @@
</span><span class="cx">     void openPaymentSetup(const String&amp; merchantIdentifier, const String&amp; domainName, std::function&lt;void (bool)&gt; completionHandler) override;
</span><span class="cx">     bool showPaymentUI(const WebCore::URL&amp;, const Vector&lt;WebCore::URL&gt;&amp; linkIconURLs, const WebCore::PaymentRequest&amp;) override;
</span><span class="cx">     void completeMerchantValidation(const WebCore::PaymentMerchantSession&amp;) override;
</span><del>-    void completeShippingMethodSelection(WebCore::PaymentAuthorizationStatus, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) override;
-    void completeShippingContactSelection(WebCore::PaymentAuthorizationStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp;, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) override;
-    void completePaymentMethodSelection(Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;) override;
</del><ins>+    void completeShippingMethodSelection(WebCore::PaymentAuthorizationStatus, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) override;
+    void completeShippingContactSelection(WebCore::PaymentAuthorizationStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp;, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) override;
+    void completePaymentMethodSelection(std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;) override;
</ins><span class="cx">     void completePaymentSession(WebCore::PaymentAuthorizationStatus) override;
</span><span class="cx">     void abortPaymentSession() override;
</span><span class="cx">     void paymentCoordinatorDestroyed() override;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebPaymentCoordinatorClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebPaymentCoordinatorClient.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebPaymentCoordinatorClient.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebPaymentCoordinatorClient.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -71,15 +71,15 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinatorClient::completeShippingMethodSelection(WebCore::PaymentAuthorizationStatus, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;)
</del><ins>+void WebPaymentCoordinatorClient::completeShippingMethodSelection(WebCore::PaymentAuthorizationStatus, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinatorClient::completeShippingContactSelection(WebCore::PaymentAuthorizationStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp;, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;)
</del><ins>+void WebPaymentCoordinatorClient::completeShippingContactSelection(WebCore::PaymentAuthorizationStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp;, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinatorClient::completePaymentMethodSelection(Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;)
</del><ins>+void WebPaymentCoordinatorClient::completePaymentMethodSelection(std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebSecurityOriginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (unsigned short)port
</span><span class="cx"> {
</span><del>-    return reinterpret_cast&lt;SecurityOrigin*&gt;(_private)-&gt;port().valueOr(0);
</del><ins>+    return reinterpret_cast&lt;SecurityOrigin*&gt;(_private)-&gt;port().value_or(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // FIXME: Overriding isEqual: without overriding hash will cause trouble if this ever goes into an NSSet or is the key in an NSDictionary,
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebHTMLViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebHTMLView.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebHTMLView.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLView.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx"> - (void)forwardContextMenuAction:(id)sender;
</span><span class="cx"> @end
</span><span class="cx"> 
</span><del>-static Optional&lt;ContextMenuAction&gt; toAction(NSInteger tag)
</del><ins>+static std::optional&lt;ContextMenuAction&gt; toAction(NSInteger tag)
</ins><span class="cx"> {
</span><span class="cx">     if (tag &gt;= ContextMenuItemBaseCustomTag &amp;&amp; tag &lt;= ContextMenuItemLastCustomTag) {
</span><span class="cx">         // Just pass these through.
</span><span class="lines">@@ -357,14 +357,14 @@
</span><span class="cx">     case WebMenuItemTagDictationAlternative:
</span><span class="cx">         return ContextMenuItemTagDictationAlternative;
</span><span class="cx">     }
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;NSInteger&gt; toTag(ContextMenuAction action)
</del><ins>+static std::optional&lt;NSInteger&gt; toTag(ContextMenuAction action)
</ins><span class="cx"> {
</span><span class="cx">     switch (action) {
</span><span class="cx">     case ContextMenuItemTagNoAction:
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     case ContextMenuItemTagOpenLinkInNewWindow:
</span><span class="cx">         return WebMenuItemTagOpenLinkInNewWindow;
</span><span class="lines">@@ -547,7 +547,7 @@
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static WebMenuTarget* target;
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/win/ChangeLog        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2016-11-26  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
+
+        [WTF] Import std::optional reference implementation as WTF::Optional
+        https://bugs.webkit.org/show_bug.cgi?id=164199
+
+        Reviewed by Saam Barati and Sam Weinig.
+
+        Use WTF::Optional::value_or.
+
+        * Plugins/PluginView.cpp:
+        (WebCore::PluginView::performRequest):
+        * WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebFrameLoaderClient::dispatchDidCommitLoad):
+        * WebCoreSupport/WebFrameLoaderClient.h:
+        * WebSecurityOrigin.cpp:
+        (WebSecurityOrigin::port):
+
</ins><span class="cx"> 2016-11-19  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS WK2] When zoomed in and panning on pages with fixed bars, parts of the bars are sometimes missing
</span></span></pre></div>
<a id="trunkSourceWebKitwinPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/Plugins/PluginView.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/Plugins/PluginView.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/win/Plugins/PluginView.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -406,7 +406,7 @@
</span><span class="cx">     URL requestURL = request-&gt;frameLoadRequest().resourceRequest().url();
</span><span class="cx">     String jsString = scriptStringIfJavaScriptURL(requestURL);
</span><span class="cx"> 
</span><del>-    UserGestureIndicator gestureIndicator(request-&gt;shouldAllowPopups() ? Optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : Nullopt);
</del><ins>+    UserGestureIndicator gestureIndicator(request-&gt;shouldAllowPopups() ? std::optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : std::nullopt);
</ins><span class="cx"> 
</span><span class="cx">     if (jsString.isNull()) {
</span><span class="cx">         // if this is not a targeted request, create a stream for it. otherwise,
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -423,7 +423,7 @@
</span><span class="cx">         frameLoadDelegate-&gt;didReceiveTitle(webView, BString(title.string()), m_webFrame);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebFrameLoaderClient::dispatchDidCommitLoad(Optional&lt;HasInsecureContent&gt;)
</del><ins>+void WebFrameLoaderClient::dispatchDidCommitLoad(std::optional&lt;HasInsecureContent&gt;)
</ins><span class="cx"> {
</span><span class="cx">     WebView* webView = m_webFrame-&gt;webView();
</span><span class="cx">     COMPtr&lt;IWebFrameLoadDelegate&gt; frameLoadDelegate;
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebFrameLoaderClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">     void dispatchDidReceiveIcon() override;
</span><span class="cx">     void dispatchDidStartProvisionalLoad() override;
</span><span class="cx">     void dispatchDidReceiveTitle(const WebCore::StringWithDirection&amp;) override;
</span><del>-    void dispatchDidCommitLoad(Optional&lt;WebCore::HasInsecureContent&gt;) override;
</del><ins>+    void dispatchDidCommitLoad(std::optional&lt;WebCore::HasInsecureContent&gt;) override;
</ins><span class="cx">     void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&amp;) override;
</span><span class="cx">     void dispatchDidFailLoad(const WebCore::ResourceError&amp;) override;
</span><span class="cx">     void dispatchDidFinishDocumentLoad() override;
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebSecurityOrigincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebSecurityOrigin.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebSecurityOrigin.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit/win/WebSecurityOrigin.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx">     if (!result)
</span><span class="cx">         return E_POINTER;
</span><span class="cx"> 
</span><del>-    *result = m_securityOrigin-&gt;port().valueOr(0);
</del><ins>+    *result = m_securityOrigin-&gt;port().value_or(0);
</ins><span class="cx"> 
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/ChangeLog        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1,3 +1,191 @@
</span><ins>+2016-11-26  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
+
+        [WTF] Import std::optional reference implementation as WTF::Optional
+        https://bugs.webkit.org/show_bug.cgi?id=164199
+
+        Reviewed by Saam Barati and Sam Weinig.
+
+        * NetworkProcess/NetworkDataTask.cpp:
+        (WebKit::NetworkDataTask::didReceiveResponse):
+        * NetworkProcess/NetworkLoad.h:
+        * NetworkProcess/cache/NetworkCache.cpp:
+        (WebKit::NetworkCache::responseHasExpired):
+        * NetworkProcess/cache/NetworkCacheCoders.h:
+        (WebKit::NetworkCache::Coder&lt;std::optional&lt;T&gt;&gt;::encode):
+        (WebKit::NetworkCache::Coder&lt;std::optional&lt;T&gt;&gt;::decode):
+        (WebKit::NetworkCache::Coder&lt;Optional&lt;T&gt;&gt;::encode): Deleted.
+        (WebKit::NetworkCache::Coder&lt;Optional&lt;T&gt;&gt;::decode): Deleted.
+        * NetworkProcess/cache/NetworkCacheData.cpp:
+        (WebKit::NetworkCache::readOrMakeSalt):
+        * NetworkProcess/cache/NetworkCacheData.h:
+        * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
+        (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry):
+        (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::revalidationRequest):
+        (WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
+        * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
+        * NetworkProcess/cache/NetworkCacheStatistics.cpp:
+        (WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest):
+        (WebKit::NetworkCache::Statistics::recordRetrievalFailure):
+        (WebKit::NetworkCache::Statistics::queryWasEverRequested):
+        * NetworkProcess/cache/NetworkCacheStatistics.h:
+        * NetworkProcess/cache/NetworkCacheStorage.cpp:
+        (WebKit::NetworkCache::Storage::storeBodyAsBlob):
+        (WebKit::NetworkCache::Storage::encodeRecord):
+        (WebKit::NetworkCache::Storage::dispatchWriteOperation):
+        * NetworkProcess/cache/NetworkCacheStorage.h:
+        * Platform/IPC/ArgumentCoders.h:
+        (IPC::ArgumentCoder&lt;std::optional&lt;T&gt;&gt;::encode):
+        (IPC::ArgumentCoder&lt;std::optional&lt;T&gt;&gt;::decode):
+        (IPC::ArgumentCoder&lt;WTF::Optional&lt;T&gt;&gt;::encode): Deleted.
+        (IPC::ArgumentCoder&lt;WTF::Optional&lt;T&gt;&gt;::decode): Deleted.
+        * Platform/IPC/Connection.h:
+        (IPC::Connection::sendWithReply):
+        * Platform/SharedMemory.h:
+        * Platform/unix/SharedMemoryUnix.cpp:
+        (WebKit::SharedMemory::map):
+        * Scripts/webkit/messages.py:
+        (class_template_headers):
+        * Shared/API/APISecurityOrigin.h:
+        (API::SecurityOrigin::create):
+        * Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
+        * Shared/API/c/WKSecurityOriginRef.cpp:
+        (WKSecurityOriginGetPort):
+        * Shared/SessionState.h:
+        * Shared/WebPageCreationParameters.h:
+        * Shared/mac/ObjCObjectGraph.mm:
+        (WebKit::typeFromObject):
+        * Shared/mac/SecItemShim.cpp:
+        (WebKit::sendSecItemRequest):
+        * UIProcess/API/C/WKKeyValueStorageManager.cpp:
+        (WKKeyValueStorageManagerGetStorageDetailsByOrigin):
+        * UIProcess/API/Cocoa/WKSecurityOrigin.mm:
+        (-[WKSecurityOrigin port]):
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _didCommitLayerTree:]):
+        (-[WKWebView _navigationGestureDidEnd]):
+        * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
+        (WebKit::toWebsiteDataType):
+        * UIProcess/API/efl/EwkView.cpp:
+        (EwkView::setCursor):
+        * UIProcess/API/mac/WKView.mm:
+        (toCoreScrollbarStyle):
+        (toAPIScrollbarStyle):
+        * UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
+        (WebKit::WebPaymentCoordinatorProxy::completeShippingMethodSelection):
+        (WebKit::WebPaymentCoordinatorProxy::completeShippingContactSelection):
+        (WebKit::WebPaymentCoordinatorProxy::completePaymentMethodSelection):
+        * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
+        * UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:
+        * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
+        (WebKit::toPKPaymentSummaryItem):
+        (WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection):
+        (WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection):
+        (WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection):
+        * UIProcess/Automation/WebAutomationSession.cpp:
+        (WebKit::WebAutomationSession::webFrameIDForHandle):
+        (WebKit::WebAutomationSession::switchToBrowsingContext):
+        (WebKit::WebAutomationSession::evaluateJavaScriptFunction):
+        (WebKit::WebAutomationSession::resolveChildFrameHandle):
+        (WebKit::WebAutomationSession::resolveParentFrameHandle):
+        (WebKit::WebAutomationSession::computeElementLayout):
+        * UIProcess/Automation/WebAutomationSession.h:
+        * UIProcess/Cocoa/WebViewImpl.h:
+        * UIProcess/Cocoa/WebViewImpl.mm:
+        (WebKit::WebViewImpl::updateViewExposedRect):
+        (WebKit::WebViewImpl::setOverlayScrollbarStyle):
+        (WebKit::WebViewImpl::overlayScrollbarStyle):
+        * UIProcess/DrawingAreaProxy.cpp:
+        (WebKit::DrawingAreaProxy::setViewExposedRect):
+        * UIProcess/DrawingAreaProxy.h:
+        (WebKit::DrawingAreaProxy::viewExposedRect):
+        * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
+        (WebKit::WebSocketServerConnection::didReceiveSocketStreamData):
+        * UIProcess/InspectorServer/WebSocketServerConnection.h:
+        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
+        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll):
+        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
+        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
+        (WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):
+        * UIProcess/Scrolling/RemoteScrollingTree.h:
+        * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
+        (WebKit::fileCreationTime):
+        (WebKit::fileModificationTime):
+        * UIProcess/Storage/LocalStorageDatabaseTracker.h:
+        * UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
+        (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
+        * UIProcess/WebBackForwardList.cpp:
+        (WebKit::WebBackForwardList::backForwardListState):
+        (WebKit::WebBackForwardList::restoreFromState):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didCommitLoadForFrame):
+        (WebKit::WebPageProxy::creationParameters):
+        (WebKit::WebPageProxy::setOverlayScrollbarStyle):
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::overlayScrollbarStyle):
+        * UIProcess/WebPageProxy.messages.in:
+        * UIProcess/WebsiteData/WebsiteDataRecord.h:
+        * UIProcess/efl/WebView.cpp:
+        (WebKit::WebView::transformFromScene):
+        * UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
+        * UIProcess/gtk/WebPreferencesGtk.cpp:
+        (WebKit::WebPreferences::platformInitializeStore):
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _scrollOffsetForEvent:]):
+        (-[WKContentView _interpretKeyEvent:isCharEvent:]):
+        * UIProcess/mac/LegacySessionStateCoding.cpp:
+        (WebKit::encodeFormDataElement):
+        (WebKit::decodeFormDataElement):
+        (WebKit::decodeV1SessionHistory):
+        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
+        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
+        (WebKit::RemoteLayerTreeDrawingAreaProxy::setViewExposedRect):
+        * WebProcess/ApplePay/WebPaymentCoordinator.cpp:
+        (WebKit::WebPaymentCoordinator::completeShippingMethodSelection):
+        (WebKit::WebPaymentCoordinator::completeShippingContactSelection):
+        (WebKit::WebPaymentCoordinator::completePaymentMethodSelection):
+        * WebProcess/ApplePay/WebPaymentCoordinator.h:
+        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+        (WKBundlePageSetEventThrottlingBehaviorOverride):
+        * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
+        (WebKit::PDFPlugin::convertFromPDFViewToRootView):
+        (WebKit::PDFPlugin::convertFromPDFViewToScreen):
+        (WebKit::PDFPlugin::boundsOnScreen):
+        (WebKit::PDFPlugin::geometryDidChange):
+        * WebProcess/Plugins/PDF/PDFPlugin.mm:
+        (WebKit::PDFPlugin::geometryDidChange):
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::performFrameLoadURLRequest):
+        (WebKit::PluginView::evaluate):
+        * WebProcess/Plugins/WebPluginInfoProvider.cpp:
+        (WebKit::WebPluginInfoProvider::pluginLoadClientPolicyForHost):
+        * WebProcess/Plugins/WebPluginInfoProvider.h:
+        * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
+        (WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):
+        * WebProcess/WebCoreSupport/SessionStateConversion.cpp:
+        (WebKit::toFormData):
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::preferredScrollbarOverlayStyle):
+        * WebProcess/WebCoreSupport/WebChromeClient.h:
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+        * WebProcess/WebPage/DrawingArea.h:
+        * WebProcess/WebPage/DrawingArea.messages.in:
+        * WebProcess/WebPage/WebFrame.cpp:
+        (WebKit::WebFrame::certificateInfo):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::m_userInterfaceLayoutDirection):
+        (WebKit::WebPage::setScrollbarOverlayStyle):
+        * WebProcess/WebPage/WebPage.h:
+        (WebKit::WebPage::scrollbarOverlayStyle):
+        * WebProcess/WebPage/WebPage.messages.in:
+        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
+        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
+        (WebKit::RemoteLayerTreeDrawingArea::setViewExposedRect):
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+        (WebKit::TiledCoreAnimationDrawingArea::setViewExposedRect):
+
</ins><span class="cx"> 2016-11-26  Sam Weinig  &lt;sam@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Convert IntersectionObserver over to using RuntimeEnabledFeatures so it can be properly excluded from script
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkDataTaskcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx">     ASSERT(m_client);
</span><span class="cx">     if (response.isHttpVersion0_9()) {
</span><span class="cx">         auto url = response.url();
</span><del>-        Optional&lt;uint16_t&gt; port = url.port();
</del><ins>+        std::optional&lt;uint16_t&gt; port = url.port();
</ins><span class="cx">         if (port &amp;&amp; !isDefaultPortForProtocol(port.value(), url.protocol())) {
</span><span class="cx">             cancel();
</span><span class="cx">             m_client-&gt;didCompleteWithError({ String(), 0, url, &quot;Cancelled load from '&quot; + url.stringCenterEllipsizedToLength() + &quot;' because it is using HTTP/0.9.&quot; });
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkLoadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">     const NetworkLoadParameters m_parameters;
</span><span class="cx"> #if USE(NETWORK_SESSION)
</span><span class="cx">     RefPtr&lt;NetworkDataTask&gt; m_task;
</span><del>-    Optional&lt;WebCore::AuthenticationChallenge&gt; m_challenge;
</del><ins>+    std::optional&lt;WebCore::AuthenticationChallenge&gt; m_challenge;
</ins><span class="cx"> #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
</span><span class="cx">     ChallengeCompletionHandler m_challengeCompletionHandler;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool responseHasExpired(const WebCore::ResourceResponse&amp; response, std::chrono::system_clock::time_point timestamp, Optional&lt;std::chrono::microseconds&gt; maxStale)
</del><ins>+static bool responseHasExpired(const WebCore::ResourceResponse&amp; response, std::chrono::system_clock::time_point timestamp, std::optional&lt;std::chrono::microseconds&gt; maxStale)
</ins><span class="cx"> {
</span><span class="cx">     if (response.cacheControlContainsNoCache())
</span><span class="cx">         return true;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheCodersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -80,8 +80,8 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt; struct Coder&lt;Optional&lt;T&gt;&gt; {
-    static void encode(Encoder&amp; encoder, const Optional&lt;T&gt;&amp; optional)
</del><ins>+template&lt;typename T&gt; struct Coder&lt;std::optional&lt;T&gt;&gt; {
+    static void encode(Encoder&amp; encoder, const std::optional&lt;T&gt;&amp; optional)
</ins><span class="cx">     {
</span><span class="cx">         if (!optional) {
</span><span class="cx">             encoder &lt;&lt; false;
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">         encoder &lt;&lt; optional.value();
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    static bool decode(Decoder&amp; decoder, Optional&lt;T&gt;&amp; optional)
</del><ins>+    static bool decode(Decoder&amp; decoder, std::optional&lt;T&gt;&amp; optional)
</ins><span class="cx">     {
</span><span class="cx">         bool isEngaged;
</span><span class="cx">         if (!decoder.decode(isEngaged))
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx">             return false;
</span><span class="cx">         
</span><span class="cx">         if (!isEngaged) {
</span><del>-            optional = Nullopt;
</del><ins>+            optional = std::nullopt;
</ins><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="cx">         
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx">     return salt;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;Salt&gt; readOrMakeSalt(const String&amp; path)
</del><ins>+std::optional&lt;Salt&gt; readOrMakeSalt(const String&amp; path)
</ins><span class="cx"> {
</span><span class="cx">     auto cpath = WebCore::fileSystemRepresentation(path);
</span><span class="cx">     auto fd = open(cpath.data(), O_RDONLY, 0);
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx"> 
</span><span class="cx"> using Salt = std::array&lt;uint8_t, 8&gt;;
</span><span class="cx"> 
</span><del>-Optional&lt;Salt&gt; readOrMakeSalt(const String&amp; path);
</del><ins>+std::optional&lt;Salt&gt; readOrMakeSalt(const String&amp; path);
</ins><span class="cx"> SHA1::Digest computeSHA1(const Data&amp;, const Salt&amp;);
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx"> class SpeculativeLoadManager::PreloadedEntry : private ExpiringEntry {
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    PreloadedEntry(std::unique_ptr&lt;Entry&gt; entry, Optional&lt;ResourceRequest&gt;&amp;&amp; speculativeValidationRequest, std::function&lt;void()&gt;&amp;&amp; lifetimeReachedHandler)
</del><ins>+    PreloadedEntry(std::unique_ptr&lt;Entry&gt; entry, std::optional&lt;ResourceRequest&gt;&amp;&amp; speculativeValidationRequest, std::function&lt;void()&gt;&amp;&amp; lifetimeReachedHandler)
</ins><span class="cx">         : ExpiringEntry(WTFMove(lifetimeReachedHandler))
</span><span class="cx">         , m_entry(WTFMove(entry))
</span><span class="cx">         , m_speculativeValidationRequest(WTFMove(speculativeValidationRequest))
</span><span class="lines">@@ -145,12 +145,12 @@
</span><span class="cx">         return WTFMove(m_entry);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    const Optional&lt;ResourceRequest&gt;&amp; revalidationRequest() const { return m_speculativeValidationRequest; }
</del><ins>+    const std::optional&lt;ResourceRequest&gt;&amp; revalidationRequest() const { return m_speculativeValidationRequest; }
</ins><span class="cx">     bool wasRevalidated() const { return !!m_speculativeValidationRequest; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     std::unique_ptr&lt;Entry&gt; m_entry;
</span><del>-    Optional&lt;ResourceRequest&gt; m_speculativeValidationRequest;
</del><ins>+    std::optional&lt;ResourceRequest&gt; m_speculativeValidationRequest;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class SpeculativeLoadManager::PendingFrameLoad : public RefCounted&lt;PendingFrameLoad&gt; {
</span><span class="lines">@@ -380,7 +380,7 @@
</span><span class="cx">         pendingFrameLoad-&gt;registerSubresourceLoad(request, resourceKey);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SpeculativeLoadManager::addPreloadedEntry(std::unique_ptr&lt;Entry&gt; entry, const GlobalFrameID&amp; frameID, Optional&lt;ResourceRequest&gt;&amp;&amp; revalidationRequest)
</del><ins>+void SpeculativeLoadManager::addPreloadedEntry(std::unique_ptr&lt;Entry&gt; entry, const GlobalFrameID&amp; frameID, std::optional&lt;ResourceRequest&gt;&amp;&amp; revalidationRequest)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(entry);
</span><span class="cx">     ASSERT(!entry-&gt;needsValidation());
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> private:
</span><span class="cx">     class PreloadedEntry;
</span><span class="cx"> 
</span><del>-    void addPreloadedEntry(std::unique_ptr&lt;Entry&gt;, const GlobalFrameID&amp;, Optional&lt;WebCore::ResourceRequest&gt;&amp;&amp; revalidationRequest = Nullopt);
</del><ins>+    void addPreloadedEntry(std::unique_ptr&lt;Entry&gt;, const GlobalFrameID&amp;, std::optional&lt;WebCore::ResourceRequest&gt;&amp;&amp; revalidationRequest = std::nullopt);
</ins><span class="cx">     void preloadEntry(const Key&amp;, const SubresourceInfo&amp;, const GlobalFrameID&amp;);
</span><span class="cx">     void retrieveEntryFromStorage(const Key&amp;, RetrieveCompletionHandler&amp;&amp;);
</span><span class="cx">     void revalidateEntry(std::unique_ptr&lt;Entry&gt;, const SubresourceInfo&amp;, const GlobalFrameID&amp;);
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheStatisticscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatistics.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatistics.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatistics.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -216,7 +216,7 @@
</span><span class="cx">     ASSERT(retrieveDecision != RetrieveDecision::Yes);
</span><span class="cx"> 
</span><span class="cx">     auto hash = key.hashAsString();
</span><del>-    queryWasEverRequested(hash, NeedUncachedReason::No, [this, hash, requestURL = request.url(), webPageID, retrieveDecision](bool wasEverRequested, const Optional&lt;StoreDecision&gt;&amp;) {
</del><ins>+    queryWasEverRequested(hash, NeedUncachedReason::No, [this, hash, requestURL = request.url(), webPageID, retrieveDecision](bool wasEverRequested, const std::optional&lt;StoreDecision&gt;&amp;) {
</ins><span class="cx">         if (wasEverRequested) {
</span><span class="cx">             String diagnosticKey = retrieveDecisionToDiagnosticKey(retrieveDecision);
</span><span class="cx">             LOG(NetworkCache, &quot;(NetworkProcess) webPageID %&quot; PRIu64 &quot;: %s was previously requested but we are not using the cache, reason: %s&quot;, webPageID, requestURL.string().ascii().data(), diagnosticKey.utf8().data());
</span><span class="lines">@@ -256,7 +256,7 @@
</span><span class="cx"> void Statistics::recordRetrievalFailure(uint64_t webPageID, const Key&amp; key, const WebCore::ResourceRequest&amp; request)
</span><span class="cx"> {
</span><span class="cx">     auto hash = key.hashAsString();
</span><del>-    queryWasEverRequested(hash, NeedUncachedReason::Yes, [this, hash, requestURL = request.url(), webPageID](bool wasPreviouslyRequested, const Optional&lt;StoreDecision&gt;&amp; storeDecision) {
</del><ins>+    queryWasEverRequested(hash, NeedUncachedReason::Yes, [this, hash, requestURL = request.url(), webPageID](bool wasPreviouslyRequested, const std::optional&lt;StoreDecision&gt;&amp; storeDecision) {
</ins><span class="cx">         if (wasPreviouslyRequested) {
</span><span class="cx">             String diagnosticKey = storeDecisionToDiagnosticKey(storeDecision.value());
</span><span class="cx">             LOG(NetworkCache, &quot;(NetworkProcess) webPageID %&quot; PRIu64 &quot;: %s was previously request but is not in the cache, reason: %s&quot;, webPageID, requestURL.string().ascii().data(), diagnosticKey.utf8().data());
</span><span class="lines">@@ -351,7 +351,7 @@
</span><span class="cx">     // Query pending writes first.
</span><span class="cx">     bool wasAlreadyRequested = m_hashesToAdd.contains(hash);
</span><span class="cx">     if (wasAlreadyRequested &amp;&amp; needUncachedReason == NeedUncachedReason::No) {
</span><del>-        completionHandler(true, Nullopt);
</del><ins>+        completionHandler(true, std::nullopt);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (needUncachedReason == NeedUncachedReason::Yes &amp;&amp; m_storeDecisionsToAdd.contains(hash)) {
</span><span class="lines">@@ -365,7 +365,7 @@
</span><span class="cx">     m_activeQueries.add(WTFMove(everRequestedQuery));
</span><span class="cx">     serialBackgroundIOQueue().dispatch([this, wasAlreadyRequested, &amp;query] () mutable {
</span><span class="cx">         WebCore::SQLiteTransactionInProgressAutoCounter transactionCounter;
</span><del>-        Optional&lt;StoreDecision&gt; storeDecision;
</del><ins>+        std::optional&lt;StoreDecision&gt; storeDecision;
</ins><span class="cx">         if (m_database.isOpen()) {
</span><span class="cx">             if (!wasAlreadyRequested) {
</span><span class="cx">                 WebCore::SQLiteStatement statement(m_database, ASCIILiteral(&quot;SELECT hash FROM AlreadyRequested WHERE hash=?&quot;));
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheStatisticsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatistics.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatistics.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatistics.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     void addStoreDecisionsToDatabase(const HashMap&lt;String, NetworkCache::StoreDecision&gt;&amp;);
</span><span class="cx">     void writeTimerFired();
</span><span class="cx"> 
</span><del>-    typedef std::function&lt;void (bool wasEverRequested, const Optional&lt;StoreDecision&gt;&amp;)&gt; RequestedCompletionHandler;
</del><ins>+    typedef std::function&lt;void (bool wasEverRequested, const std::optional&lt;StoreDecision&gt;&amp;)&gt; RequestedCompletionHandler;
</ins><span class="cx">     enum class NeedUncachedReason { No, Yes };
</span><span class="cx">     void queryWasEverRequested(const String&amp;, NeedUncachedReason, RequestedCompletionHandler&amp;&amp;);
</span><span class="cx">     void markAsRequested(const String&amp; hash);
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheStoragecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -480,7 +480,7 @@
</span><span class="cx">     return Data(encoder.buffer(), encoder.bufferSize());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;BlobStorage::Blob&gt; Storage::storeBodyAsBlob(WriteOperation&amp; writeOperation)
</del><ins>+std::optional&lt;BlobStorage::Blob&gt; Storage::storeBodyAsBlob(WriteOperation&amp; writeOperation)
</ins><span class="cx"> {
</span><span class="cx">     auto blobPath = blobPathForKey(writeOperation.record.key);
</span><span class="cx"> 
</span><span class="lines">@@ -505,7 +505,7 @@
</span><span class="cx">     return blob;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Data Storage::encodeRecord(const Record&amp; record, Optional&lt;BlobStorage::Blob&gt; blob)
</del><ins>+Data Storage::encodeRecord(const Record&amp; record, std::optional&lt;BlobStorage::Blob&gt; blob)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!blob || bytesEqual(blob.value().data, record.body));
</span><span class="cx"> 
</span><span class="lines">@@ -719,7 +719,7 @@
</span><span class="cx">         ++writeOperation.activeCount;
</span><span class="cx"> 
</span><span class="cx">         bool shouldStoreAsBlob = shouldStoreBodyAsBlob(writeOperation.record.body);
</span><del>-        auto blob = shouldStoreAsBlob ? storeBodyAsBlob(writeOperation) : Nullopt;
</del><ins>+        auto blob = shouldStoreAsBlob ? storeBodyAsBlob(writeOperation) : std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">         auto recordData = encodeRecord(writeOperation.record, blob);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheStorageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -124,8 +124,8 @@
</span><span class="cx">     void dispatchPendingWriteOperations();
</span><span class="cx">     void finishWriteOperation(WriteOperation&amp;);
</span><span class="cx"> 
</span><del>-    Optional&lt;BlobStorage::Blob&gt; storeBodyAsBlob(WriteOperation&amp;);
-    Data encodeRecord(const Record&amp;, Optional&lt;BlobStorage::Blob&gt;);
</del><ins>+    std::optional&lt;BlobStorage::Blob&gt; storeBodyAsBlob(WriteOperation&amp;);
+    Data encodeRecord(const Record&amp;, std::optional&lt;BlobStorage::Blob&gt;);
</ins><span class="cx">     void readRecord(ReadOperation&amp;, const Data&amp;);
</span><span class="cx"> 
</span><span class="cx">     void updateFileModificationTime(const String&amp; path);
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCArgumentCodersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/ArgumentCoders.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/ArgumentCoders.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Platform/IPC/ArgumentCoders.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -69,8 +69,8 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt; struct ArgumentCoder&lt;WTF::Optional&lt;T&gt;&gt; {
-    static void encode(Encoder&amp; encoder, const WTF::Optional&lt;T&gt;&amp; optional)
</del><ins>+template&lt;typename T&gt; struct ArgumentCoder&lt;std::optional&lt;T&gt;&gt; {
+    static void encode(Encoder&amp; encoder, const std::optional&lt;T&gt;&amp; optional)
</ins><span class="cx">     {
</span><span class="cx">         if (!optional) {
</span><span class="cx">             encoder &lt;&lt; false;
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx">         encoder &lt;&lt; optional.value();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool decode(Decoder&amp; decoder, WTF::Optional&lt;T&gt;&amp; optional)
</del><ins>+    static bool decode(Decoder&amp; decoder, std::optional&lt;T&gt;&amp; optional)
</ins><span class="cx">     {
</span><span class="cx">         bool isEngaged;
</span><span class="cx">         if (!decoder.decode(isEngaged))
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">             return false;
</span><span class="cx"> 
</span><span class="cx">         if (!isEngaged) {
</span><del>-            optional = Nullopt;
</del><ins>+            optional = std::nullopt;
</ins><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/Connection.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/Connection.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Platform/IPC/Connection.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx">     void postConnectionDidCloseOnConnectionWorkQueue();
</span><span class="cx"> 
</span><span class="cx">     template&lt;typename T&gt; bool send(T&amp;&amp; message, uint64_t destinationID, OptionSet&lt;SendOption&gt; sendOptions = { });
</span><del>-    template&lt;typename T&gt; void sendWithReply(T&amp;&amp; message, uint64_t destinationID, FunctionDispatcher&amp; replyDispatcher, Function&lt;void (Optional&lt;typename CodingType&lt;typename T::Reply&gt;::Type&gt;)&gt;&amp;&amp; replyHandler);
</del><ins>+    template&lt;typename T&gt; void sendWithReply(T&amp;&amp; message, uint64_t destinationID, FunctionDispatcher&amp; replyDispatcher, Function&lt;void (std::optional&lt;typename CodingType&lt;typename T::Reply&gt;::Type&gt;)&gt;&amp;&amp; replyHandler);
</ins><span class="cx">     template&lt;typename T&gt; bool sendSync(T&amp;&amp; message, typename T::Reply&amp;&amp; reply, uint64_t destinationID, Seconds timeout = Seconds::infinity(), OptionSet&lt;SendSyncOption&gt; sendSyncOptions = { });
</span><span class="cx">     template&lt;typename T&gt; bool waitForAndDispatchImmediately(uint64_t destinationID, Seconds timeout, OptionSet&lt;WaitForOption&gt; waitForOptions = { });
</span><span class="cx"> 
</span><span class="lines">@@ -345,7 +345,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T&gt;
</span><del>-void Connection::sendWithReply(T&amp;&amp; message, uint64_t destinationID, FunctionDispatcher&amp; replyDispatcher, Function&lt;void (Optional&lt;typename CodingType&lt;typename T::Reply&gt;::Type&gt;)&gt;&amp;&amp; replyHandler)
</del><ins>+void Connection::sendWithReply(T&amp;&amp; message, uint64_t destinationID, FunctionDispatcher&amp; replyDispatcher, Function&lt;void (std::optional&lt;typename CodingType&lt;typename T::Reply&gt;::Type&gt;)&gt;&amp;&amp; replyHandler)
</ins><span class="cx"> {
</span><span class="cx">     uint64_t requestID = 0;
</span><span class="cx">     std::unique_ptr&lt;Encoder&gt; encoder = createSyncMessageEncoder(T::receiverName(), T::name(), destinationID, requestID);
</span><span class="lines">@@ -361,7 +361,7 @@
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        replyHandler(Nullopt);
</del><ins>+        replyHandler(std::nullopt);
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformSharedMemoryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/SharedMemory.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/SharedMemory.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Platform/SharedMemory.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx">     Protection m_protection;
</span><span class="cx"> 
</span><span class="cx"> #if USE(UNIX_DOMAIN_SOCKETS)
</span><del>-    Optional&lt;int&gt; m_fileDescriptor;
</del><ins>+    std::optional&lt;int&gt; m_fileDescriptor;
</ins><span class="cx">     bool m_isWrappingMap { false };
</span><span class="cx"> #elif OS(DARWIN)
</span><span class="cx">     mach_port_t m_port;
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformunixSharedMemoryUnixcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/unix/SharedMemoryUnix.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/unix/SharedMemoryUnix.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Platform/unix/SharedMemoryUnix.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -164,7 +164,7 @@
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;SharedMemory&gt; instance = wrapMap(data, handle.m_attachment.size(), -1);
</span><del>-    instance-&gt;m_fileDescriptor = Nullopt;
</del><ins>+    instance-&gt;m_fileDescriptor = std::nullopt;
</ins><span class="cx">     instance-&gt;m_isWrappingMap = false;
</span><span class="cx">     return instance;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2Scriptswebkitmessagespy"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Scripts/webkit/messages.py (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Scripts/webkit/messages.py        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Scripts/webkit/messages.py        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -290,7 +290,7 @@
</span><span class="cx"> 
</span><span class="cx">     class_template_types = {
</span><span class="cx">         'HashMap': {'headers': ['&lt;wtf/HashMap.h&gt;'], 'argument_coder_headers': ['&quot;ArgumentCoders.h&quot;']},
</span><del>-        'Optional': {'headers': ['&lt;wtf/Optional.h&gt;'], 'argument_coder_headers': ['&quot;ArgumentCoders.h&quot;']},
</del><ins>+        'std::optional': {'headers': ['&lt;wtf/Optional.h&gt;'], 'argument_coder_headers': ['&quot;ArgumentCoders.h&quot;']},
</ins><span class="cx">         'OptionSet': {'headers': ['&lt;wtf/OptionSet.h&gt;'], 'argument_coder_headers': ['&quot;ArgumentCoders.h&quot;']},
</span><span class="cx">         'Vector': {'headers': ['&lt;wtf/Vector.h&gt;'], 'argument_coder_headers': ['&quot;ArgumentCoders.h&quot;']},
</span><span class="cx">         'std::pair': {'headers': ['&lt;utility&gt;'], 'argument_coder_headers': ['&quot;ArgumentCoders.h&quot;']},
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPIAPISecurityOriginh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/APISecurityOrigin.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/APISecurityOrigin.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Shared/API/APISecurityOrigin.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx">         return create(WebCore::SecurityOrigin::createFromString(string));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static RefPtr&lt;SecurityOrigin&gt; create(const WTF::String&amp; protocol, const WTF::String&amp; host, Optional&lt;uint16_t&gt; port)
</del><ins>+    static RefPtr&lt;SecurityOrigin&gt; create(const WTF::String&amp; protocol, const WTF::String&amp; host, std::optional&lt;uint16_t&gt; port)
</ins><span class="cx">     {
</span><span class="cx">         return create(WebCore::SecurityOrigin::create(protocol, host, port));
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPICocoa_WKRemoteObjectInterfacemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/Cocoa/_WKRemoteObjectInterface.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/Cocoa/_WKRemoteObjectInterface.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Shared/API/Cocoa/_WKRemoteObjectInterface.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">         CString replySignature;
</span><span class="cx">         Vector&lt;HashSet&lt;Class&gt;&gt; allowedReplyClasses;
</span><span class="cx">     };
</span><del>-    Optional&lt;ReplyInfo&gt; replyInfo;
</del><ins>+    std::optional&lt;ReplyInfo&gt; replyInfo;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> @implementation _WKRemoteObjectInterface {
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPIcWKSecurityOriginRefcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/c/WKSecurityOriginRef.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/c/WKSecurityOriginRef.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Shared/API/c/WKSecurityOriginRef.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx"> 
</span><span class="cx"> unsigned short WKSecurityOriginGetPort(WKSecurityOriginRef securityOrigin)
</span><span class="cx"> {
</span><del>-    return toImpl(securityOrigin)-&gt;securityOrigin().port().valueOr(0);
</del><ins>+    return toImpl(securityOrigin)-&gt;securityOrigin().port().value_or(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // For backwards ABI compatibility.
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedSessionStateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/SessionState.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/SessionState.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Shared/SessionState.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -66,8 +66,8 @@
</span><span class="cx">         // File.
</span><span class="cx">         String filePath;
</span><span class="cx">         int64_t fileStart;
</span><del>-        Optional&lt;int64_t&gt; fileLength;
-        Optional&lt;double&gt; expectedFileModificationTime;
</del><ins>+        std::optional&lt;int64_t&gt; fileLength;
+        std::optional&lt;double&gt; expectedFileModificationTime;
</ins><span class="cx"> 
</span><span class="cx">         // Blob.
</span><span class="cx">         String blobURLString;
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx">     String target;
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;String&gt; documentState;
</span><del>-    Optional&lt;Vector&lt;uint8_t&gt;&gt; stateObjectData;
</del><ins>+    std::optional&lt;Vector&lt;uint8_t&gt;&gt; stateObjectData;
</ins><span class="cx"> 
</span><span class="cx">     int64_t documentSequenceNumber;
</span><span class="cx">     int64_t itemSequenceNumber;
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">     WebCore::IntPoint scrollPosition;
</span><span class="cx">     float pageScaleFactor;
</span><span class="cx"> 
</span><del>-    Optional&lt;HTTPBody&gt; httpBody;
</del><ins>+    std::optional&lt;HTTPBody&gt; httpBody;
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: These should not be per frame.
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx">     static bool decode(IPC::Decoder&amp;, BackForwardListState&amp;);
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;BackForwardListItemState&gt; items;
</span><del>-    Optional&lt;uint32_t&gt; currentIndex;
</del><ins>+    std::optional&lt;uint32_t&gt; currentIndex;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> struct SessionState {
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebPageCreationParametersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebPageCreationParameters.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebPageCreationParameters.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Shared/WebPageCreationParameters.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -109,9 +109,9 @@
</span><span class="cx">     
</span><span class="cx">     WebCore::ScrollPinningBehavior scrollPinningBehavior;
</span><span class="cx"> 
</span><del>-    // FIXME: This should be WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt;, but we would need to
</del><ins>+    // FIXME: This should be std::optional&lt;WebCore::ScrollbarOverlayStyle&gt;, but we would need to
</ins><span class="cx">     // correctly handle enums inside Optionals when encoding and decoding. 
</span><del>-    WTF::Optional&lt;uint32_t&gt; scrollbarOverlayStyle;
</del><ins>+    std::optional&lt;uint32_t&gt; scrollbarOverlayStyle;
</ins><span class="cx"> 
</span><span class="cx">     bool backgroundExtendsBeyondPage;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacObjCObjectGraphmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/ObjCObjectGraph.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/ObjCObjectGraph.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Shared/mac/ObjCObjectGraph.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-static Optional&lt;ObjCType&gt; typeFromObject(id object)
</del><ins>+static std::optional&lt;ObjCType&gt; typeFromObject(id object)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(object);
</span><span class="cx"> 
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx">         return ObjCType::WKTypeRefWrapper;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ObjCObjectGraph::encode(IPC::Encoder&amp; encoder, id object)
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacSecItemShimcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/SecItemShim.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/SecItemShim.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/Shared/mac/SecItemShim.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -71,9 +71,9 @@
</span><span class="cx">     return *workQueue;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;SecItemResponseData&gt; sendSecItemRequest(SecItemRequestData::Type requestType, CFDictionaryRef query, CFDictionaryRef attributesToMatch = 0)
</del><ins>+static std::optional&lt;SecItemResponseData&gt; sendSecItemRequest(SecItemRequestData::Type requestType, CFDictionaryRef query, CFDictionaryRef attributesToMatch = 0)
</ins><span class="cx"> {
</span><del>-    Optional&lt;SecItemResponseData&gt; response;
</del><ins>+    std::optional&lt;SecItemResponseData&gt; response;
</ins><span class="cx"> 
</span><span class="cx">     auto semaphore = adoptOSObject(dispatch_semaphore_create(0));
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKKeyValueStorageManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -101,9 +101,9 @@
</span><span class="cx"> 
</span><span class="cx">             detailsMap.set(toImpl(WKKeyValueStorageManagerGetOriginKey())-&gt;string(), origin);
</span><span class="cx">             if (originDetails.creationTime)
</span><del>-                detailsMap.set(toImpl(WKKeyValueStorageManagerGetCreationTimeKey())-&gt;string(), API::Double::create(originDetails.creationTime.valueOr(0)));
</del><ins>+                detailsMap.set(toImpl(WKKeyValueStorageManagerGetCreationTimeKey())-&gt;string(), API::Double::create(originDetails.creationTime.value_or(0)));
</ins><span class="cx">             if (originDetails.modificationTime)
</span><del>-                detailsMap.set(toImpl(WKKeyValueStorageManagerGetModificationTimeKey())-&gt;string(), API::Double::create(originDetails.modificationTime.valueOr(0)));
</del><ins>+                detailsMap.set(toImpl(WKKeyValueStorageManagerGetModificationTimeKey())-&gt;string(), API::Double::create(originDetails.modificationTime.value_or(0)));
</ins><span class="cx"> 
</span><span class="cx">             result.uncheckedAppend(API::Dictionary::create(WTFMove(detailsMap)));
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKSecurityOriginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKSecurityOrigin.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (NSInteger)port
</span><span class="cx"> {
</span><del>-    return _securityOrigin-&gt;securityOrigin().port().valueOr(0);
</del><ins>+    return _securityOrigin-&gt;securityOrigin().port().value_or(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #pragma mark WKObject protocol implementation
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -235,11 +235,11 @@
</span><span class="cx">     uint64_t _firstPaintAfterCommitLoadTransactionID;
</span><span class="cx">     DynamicViewportUpdateMode _dynamicViewportUpdateMode;
</span><span class="cx">     CATransform3D _resizeAnimationTransformAdjustments;
</span><del>-    Optional&lt;uint64_t&gt; _resizeAnimationTransformTransactionID;
</del><ins>+    std::optional&lt;uint64_t&gt; _resizeAnimationTransformTransactionID;
</ins><span class="cx">     RetainPtr&lt;UIView&gt; _resizeAnimationView;
</span><span class="cx">     CGFloat _lastAdjustmentForScroller;
</span><del>-    Optional&lt;CGRect&gt; _frozenVisibleContentRect;
-    Optional&lt;CGRect&gt; _frozenUnobscuredContentRect;
</del><ins>+    std::optional&lt;CGRect&gt; _frozenVisibleContentRect;
+    std::optional&lt;CGRect&gt; _frozenUnobscuredContentRect;
</ins><span class="cx"> 
</span><span class="cx">     BOOL _needsToRestoreScrollPosition;
</span><span class="cx">     BOOL _commitDidRestoreScrollPosition;
</span><span class="lines">@@ -1271,7 +1271,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (_dynamicViewportUpdateMode != DynamicViewportUpdateMode::NotResizing) {
</span><span class="cx">         if (_resizeAnimationTransformTransactionID &amp;&amp; layerTreeTransaction.transactionID() &gt;= _resizeAnimationTransformTransactionID.value()) {
</span><del>-            _resizeAnimationTransformTransactionID = Nullopt;
</del><ins>+            _resizeAnimationTransformTransactionID = std::nullopt;
</ins><span class="cx">             [_resizeAnimationView layer].sublayerTransform = _resizeAnimationTransformAdjustments;
</span><span class="cx">             if (_dynamicViewportUpdateMode == DynamicViewportUpdateMode::ResizingWithDocumentHidden) {
</span><span class="cx">                 [_contentView setHidden:NO];
</span><span class="lines">@@ -2301,8 +2301,8 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)_navigationGestureDidEnd
</span><span class="cx"> {
</span><del>-    _frozenVisibleContentRect = Nullopt;
-    _frozenUnobscuredContentRect = Nullopt;
</del><ins>+    _frozenVisibleContentRect = std::nullopt;
+    _frozenUnobscuredContentRect = std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif // PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebsiteDataRecordInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx">     return (WKWebsiteDataRecord *)websiteDataRecord.wrapper();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline Optional&lt;WebsiteDataType&gt; toWebsiteDataType(NSString *websiteDataType)
</del><ins>+static inline std::optional&lt;WebsiteDataType&gt; toWebsiteDataType(NSString *websiteDataType)
</ins><span class="cx"> {
</span><span class="cx">     if ([websiteDataType isEqualToString:WKWebsiteDataTypeCookies])
</span><span class="cx">         return WebsiteDataType::Cookies;
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     if ([websiteDataType isEqualToString:_WKWebsiteDataTypeResourceLoadStatistics])
</span><span class="cx">         return WebsiteDataType::WebsiteDataTypeResourceLoadStatistics;
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline OptionSet&lt;WebKit::WebsiteDataType&gt; toWebsiteDataTypes(NSSet *websiteDataTypes)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIeflEwkViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/efl/EwkView.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/efl/EwkView.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/API/efl/EwkView.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -451,7 +451,7 @@
</span><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         
</span><del>-        Optional&lt;IntPoint&gt; hotSpot = cursorImage-&gt;hotSpot();
</del><ins>+        std::optional&lt;IntPoint&gt; hotSpot = cursorImage-&gt;hotSpot();
</ins><span class="cx">         Ecore_X_Cursor customCursor = createCustomCursor(window, cursorImage, IntSize(cursorImage-&gt;size()), hotSpot ? hotSpot.value() : IntPoint());
</span><span class="cx">         if (!customCursor)
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1329,7 +1329,7 @@
</span><span class="cx">     return _data-&gt;_impl-&gt;totalHeightOfBanners();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; toCoreScrollbarStyle(_WKOverlayScrollbarStyle scrollbarStyle)
</del><ins>+static std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; toCoreScrollbarStyle(_WKOverlayScrollbarStyle scrollbarStyle)
</ins><span class="cx"> {
</span><span class="cx">     switch (scrollbarStyle) {
</span><span class="cx">     case _WKOverlayScrollbarStyleDark:
</span><span class="lines">@@ -1343,10 +1343,10 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static _WKOverlayScrollbarStyle toAPIScrollbarStyle(WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; coreScrollbarStyle)
</del><ins>+static _WKOverlayScrollbarStyle toAPIScrollbarStyle(std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; coreScrollbarStyle)
</ins><span class="cx"> {
</span><span class="cx">     if (!coreScrollbarStyle)
</span><span class="cx">         return _WKOverlayScrollbarStyleAutomatic;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessApplePayWebPaymentCoordinatorProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx">     m_merchantValidationState = MerchantValidationState::ValidationComplete;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinatorProxy::completeShippingMethodSelection(uint32_t opaqueStatus, const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</del><ins>+void WebPaymentCoordinatorProxy::completeShippingMethodSelection(uint32_t opaqueStatus, const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</ins><span class="cx"> {
</span><span class="cx">     // It's possible that the payment has been canceled already.
</span><span class="cx">     if (m_state == State::Idle)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx">     m_state = State::Active;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinatorProxy::completeShippingContactSelection(uint32_t opaqueStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</del><ins>+void WebPaymentCoordinatorProxy::completeShippingContactSelection(uint32_t opaqueStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</ins><span class="cx"> {
</span><span class="cx">     // It's possible that the payment has been canceled already.
</span><span class="cx">     if (m_state == State::Idle)
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx">     m_state = State::Active;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinatorProxy::completePaymentMethodSelection(const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</del><ins>+void WebPaymentCoordinatorProxy::completePaymentMethodSelection(const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</ins><span class="cx"> {
</span><span class="cx">     // It's possible that the payment has been canceled already.
</span><span class="cx">     if (m_state == State::Idle)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessApplePayWebPaymentCoordinatorProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -80,9 +80,9 @@
</span><span class="cx">     void openPaymentSetup(const String&amp; merchantIdentifier, const String&amp; domainName, uint64_t requestID);
</span><span class="cx">     void showPaymentUI(const String&amp; originatingURLString, const Vector&lt;String&gt;&amp; linkIconURLStrings, const WebCore::PaymentRequest&amp;, bool&amp; result);
</span><span class="cx">     void completeMerchantValidation(const WebCore::PaymentMerchantSession&amp;);
</span><del>-    void completeShippingMethodSelection(uint32_t opaqueStatus, const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
-    void completeShippingContactSelection(uint32_t opaqueStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
-    void completePaymentMethodSelection(const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
</del><ins>+    void completeShippingMethodSelection(uint32_t opaqueStatus, const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
+    void completeShippingContactSelection(uint32_t opaqueStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
+    void completePaymentMethodSelection(const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
</ins><span class="cx">     void completePaymentSession(uint32_t opaqueStatus);
</span><span class="cx">     void abortPaymentSession();
</span><span class="cx"> 
</span><span class="lines">@@ -98,9 +98,9 @@
</span><span class="cx">     void platformOpenPaymentSetup(const String&amp; merchantIdentifier, const String&amp; domainName, std::function&lt;void (bool)&gt; completionHandler);
</span><span class="cx">     void platformShowPaymentUI(const WebCore::URL&amp; originatingURL, const Vector&lt;WebCore::URL&gt;&amp; linkIconURLs, const WebCore::PaymentRequest&amp;, std::function&lt;void (bool)&gt; completionHandler);
</span><span class="cx">     void platformCompleteMerchantValidation(const WebCore::PaymentMerchantSession&amp;);
</span><del>-    void platformCompleteShippingMethodSelection(WebCore::PaymentAuthorizationStatus, const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
-    void platformCompleteShippingContactSelection(WebCore::PaymentAuthorizationStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
-    void platformCompletePaymentMethodSelection(const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
</del><ins>+    void platformCompleteShippingMethodSelection(WebCore::PaymentAuthorizationStatus, const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
+    void platformCompleteShippingContactSelection(WebCore::PaymentAuthorizationStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
+    void platformCompletePaymentMethodSelection(const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp;);
</ins><span class="cx">     void platformCompletePaymentSession(WebCore::PaymentAuthorizationStatus);
</span><span class="cx"> 
</span><span class="cx">     WebPageProxy&amp; m_webPageProxy;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessApplePayWebPaymentCoordinatorProxymessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -32,9 +32,9 @@
</span><span class="cx"> 
</span><span class="cx">     ShowPaymentUI(String originatingURLString, Vector&lt;String&gt; linkIconURLStrings, WebCore::PaymentRequest paymentRequest) -&gt; (bool result)
</span><span class="cx">     CompleteMerchantValidation(WebCore::PaymentMerchantSession paymentMerchantSession);
</span><del>-    CompleteShippingMethodSelection(uint32_t opaqueStatus, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
-    CompleteShippingContactSelection(uint32_t opaqueStatus, Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt; newShippingMethods, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
-    CompletePaymentMethodSelection(Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</del><ins>+    CompleteShippingMethodSelection(uint32_t opaqueStatus, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
+    CompleteShippingContactSelection(uint32_t opaqueStatus, Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt; newShippingMethods, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
+    CompletePaymentMethodSelection(std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</ins><span class="cx">     CompletePaymentSession(uint32_t opaqueStatus)
</span><span class="cx">     AbortPaymentSession()
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessApplePaycocoaWebPaymentCoordinatorProxyCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -275,7 +275,7 @@
</span><span class="cx"> 
</span><span class="cx"> static RetainPtr&lt;PKPaymentSummaryItem&gt; toPKPaymentSummaryItem(const WebCore::PaymentRequest::LineItem&amp; lineItem)
</span><span class="cx"> {
</span><del>-    return [getPKPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount.valueOr(0)).get() type:toPKPaymentSummaryItemType(lineItem.type)];
</del><ins>+    return [getPKPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount.value_or(0)).get() type:toPKPaymentSummaryItemType(lineItem.type)];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static PKMerchantCapability toPKMerchantCapabilities(const WebCore::PaymentRequest::MerchantCapabilities&amp; merchantCapabilities)
</span><span class="lines">@@ -468,7 +468,7 @@
</span><span class="cx">     m_paymentAuthorizationViewControllerDelegate-&gt;_sessionBlock = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection(WebCore::PaymentAuthorizationStatus status, const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</del><ins>+void WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection(WebCore::PaymentAuthorizationStatus status, const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_paymentAuthorizationViewController);
</span><span class="cx">     ASSERT(m_paymentAuthorizationViewControllerDelegate);
</span><span class="lines">@@ -490,7 +490,7 @@
</span><span class="cx">     m_paymentAuthorizationViewControllerDelegate-&gt;_didSelectShippingMethodCompletion = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection(WebCore::PaymentAuthorizationStatus status, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</del><ins>+void WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection(WebCore::PaymentAuthorizationStatus status, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_paymentAuthorizationViewController);
</span><span class="cx">     ASSERT(m_paymentAuthorizationViewControllerDelegate);
</span><span class="lines">@@ -518,7 +518,7 @@
</span><span class="cx">     m_paymentAuthorizationViewControllerDelegate-&gt;_didSelectShippingContactCompletion = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection(const Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</del><ins>+void WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection(const std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;&amp; newTotalAndLineItems)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_paymentAuthorizationViewController);
</span><span class="cx">     ASSERT(m_paymentAuthorizationViewControllerDelegate);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAutomationWebAutomationSessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> static const char* const errorNameAndDetailsSeparator = &quot;;&quot;;
</span><span class="cx"> 
</span><span class="cx"> // Make sure the predefined error name is valid, otherwise use InternalError.
</span><del>-#define VALIDATED_ERROR_MESSAGE(errorString) Inspector::Protocol::AutomationHelpers::parseEnumValueFromString&lt;Inspector::Protocol::Automation::ErrorMessage&gt;(errorString).valueOr(Inspector::Protocol::Automation::ErrorMessage::InternalError)
</del><ins>+#define VALIDATED_ERROR_MESSAGE(errorString) Inspector::Protocol::AutomationHelpers::parseEnumValueFromString&lt;Inspector::Protocol::Automation::ErrorMessage&gt;(errorString).value_or(Inspector::Protocol::Automation::ErrorMessage::InternalError)
</ins><span class="cx"> 
</span><span class="cx"> // If the error name is incorrect for these macros, it will be a compile-time error.
</span><span class="cx"> #define STRING_FOR_PREDEFINED_ERROR_NAME(errorName) Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::errorName)
</span><span class="lines">@@ -174,7 +174,7 @@
</span><span class="cx">     return handle;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;uint64_t&gt; WebAutomationSession::webFrameIDForHandle(const String&amp; handle)
</del><ins>+std::optional&lt;uint64_t&gt; WebAutomationSession::webFrameIDForHandle(const String&amp; handle)
</ins><span class="cx"> {
</span><span class="cx">     if (handle.isEmpty())
</span><span class="cx">         return 0;
</span><span class="lines">@@ -181,7 +181,7 @@
</span><span class="cx"> 
</span><span class="cx">     auto iter = m_handleWebFrameMap.find(handle);
</span><span class="cx">     if (iter == m_handleWebFrameMap.end())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return iter-&gt;value;
</span><span class="cx"> }
</span><span class="lines">@@ -300,7 +300,7 @@
</span><span class="cx">     if (!page)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(WindowNotFound);
</span><span class="cx"> 
</span><del>-    Optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(optionalFrameHandle ? *optionalFrameHandle : emptyString());
</del><ins>+    std::optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(optionalFrameHandle ? *optionalFrameHandle : emptyString());
</ins><span class="cx">     if (!frameID)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(FrameNotFound);
</span><span class="cx"> 
</span><span class="lines">@@ -484,7 +484,7 @@
</span><span class="cx">     if (!page)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(WindowNotFound);
</span><span class="cx"> 
</span><del>-    Optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(optionalFrameHandle ? *optionalFrameHandle : emptyString());
</del><ins>+    std::optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(optionalFrameHandle ? *optionalFrameHandle : emptyString());
</ins><span class="cx">     if (!frameID)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(FrameNotFound);
</span><span class="cx"> 
</span><span class="lines">@@ -527,7 +527,7 @@
</span><span class="cx">     if (!page)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(WindowNotFound);
</span><span class="cx"> 
</span><del>-    Optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(optionalFrameHandle ? *optionalFrameHandle : emptyString());
</del><ins>+    std::optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(optionalFrameHandle ? *optionalFrameHandle : emptyString());
</ins><span class="cx">     if (!frameID)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(FrameNotFound);
</span><span class="cx"> 
</span><span class="lines">@@ -570,7 +570,7 @@
</span><span class="cx">     if (!page)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(WindowNotFound);
</span><span class="cx"> 
</span><del>-    Optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(frameHandle);
</del><ins>+    std::optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(frameHandle);
</ins><span class="cx">     if (!frameID)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(FrameNotFound);
</span><span class="cx"> 
</span><span class="lines">@@ -598,7 +598,7 @@
</span><span class="cx">     if (!page)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(WindowNotFound);
</span><span class="cx"> 
</span><del>-    Optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(frameHandle);
</del><ins>+    std::optional&lt;uint64_t&gt; frameID = webFrameIDForHandle(frameHandle);
</ins><span class="cx">     if (!frameID)
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR(FrameNotFound);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAutomationWebAutomationSessionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">     String handleForWebPageProxy(const WebPageProxy&amp;);
</span><span class="cx">     RefPtr&lt;Inspector::Protocol::Automation::BrowsingContext&gt; buildBrowsingContextForPage(WebPageProxy&amp;);
</span><span class="cx"> 
</span><del>-    Optional&lt;uint64_t&gt; webFrameIDForHandle(const String&amp;);
</del><ins>+    std::optional&lt;uint64_t&gt; webFrameIDForHandle(const String&amp;);
</ins><span class="cx">     String handleForWebFrameID(uint64_t frameID);
</span><span class="cx">     String handleForWebFrameProxy(const WebFrameProxy&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaWebViewImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -230,8 +230,8 @@
</span><span class="cx">     NSColor *underlayColor() const;
</span><span class="cx">     NSColor *pageExtendedBackgroundColor() const;
</span><span class="cx"> 
</span><del>-    void setOverlayScrollbarStyle(WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; scrollbarStyle);
-    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; overlayScrollbarStyle() const;
</del><ins>+    void setOverlayScrollbarStyle(std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; scrollbarStyle);
+    std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; overlayScrollbarStyle() const;
</ins><span class="cx"> 
</span><span class="cx">     void beginDeferringViewInWindowChanges();
</span><span class="cx">     // FIXME: Merge these two?
</span><span class="lines">@@ -686,7 +686,7 @@
</span><span class="cx">     String m_promisedFilename;
</span><span class="cx">     String m_promisedURL;
</span><span class="cx"> 
</span><del>-    WTF::Optional&lt;NSInteger&gt; m_spellCheckerDocumentTag;
</del><ins>+    std::optional&lt;NSInteger&gt; m_spellCheckerDocumentTag;
</ins><span class="cx"> 
</span><span class="cx">     CGFloat m_totalHeightOfBanners { 0 };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaWebViewImplmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1635,7 +1635,7 @@
</span><span class="cx">         exposedRect = CGRectUnion(m_contentPreparationRect, exposedRect);
</span><span class="cx"> 
</span><span class="cx">     if (auto drawingArea = m_page-&gt;drawingArea())
</span><del>-        drawingArea-&gt;setViewExposedRect(m_clipsToVisibleRect ? Optional&lt;WebCore::FloatRect&gt;(exposedRect) : Nullopt);
</del><ins>+        drawingArea-&gt;setViewExposedRect(m_clipsToVisibleRect ? std::optional&lt;WebCore::FloatRect&gt;(exposedRect) : std::nullopt);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebViewImpl::setClipsToVisibleRect(bool clipsToVisibleRect)
</span><span class="lines">@@ -2084,12 +2084,12 @@
</span><span class="cx">     return WebCore::nsColor(color);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebViewImpl::setOverlayScrollbarStyle(WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; scrollbarStyle)
</del><ins>+void WebViewImpl::setOverlayScrollbarStyle(std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; scrollbarStyle)
</ins><span class="cx"> {
</span><span class="cx">     m_page-&gt;setOverlayScrollbarStyle(scrollbarStyle);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; WebViewImpl::overlayScrollbarStyle() const
</del><ins>+std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; WebViewImpl::overlayScrollbarStyle() const
</ins><span class="cx"> {
</span><span class="cx">     return m_page-&gt;overlayScrollbarStyle();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessDrawingAreaProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-void DrawingAreaProxy::setViewExposedRect(Optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</del><ins>+void DrawingAreaProxy::setViewExposedRect(std::optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_webPageProxy.isValid())
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessDrawingAreaProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -82,8 +82,8 @@
</span><span class="cx">     virtual void commitTransientZoom(double, WebCore::FloatPoint) { }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-    virtual void setViewExposedRect(Optional&lt;WebCore::FloatRect&gt;);
-    Optional&lt;WebCore::FloatRect&gt; viewExposedRect() const { return m_viewExposedRect; }
</del><ins>+    virtual void setViewExposedRect(std::optional&lt;WebCore::FloatRect&gt;);
+    std::optional&lt;WebCore::FloatRect&gt; viewExposedRect() const { return m_viewExposedRect; }
</ins><span class="cx">     void viewExposedRectChangedTimerFired();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -136,8 +136,8 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     RunLoop::Timer&lt;DrawingAreaProxy&gt; m_viewExposedRectChangedTimer;
</span><del>-    Optional&lt;WebCore::FloatRect&gt; m_viewExposedRect;
-    Optional&lt;WebCore::FloatRect&gt; m_lastSentViewExposedRect;
</del><ins>+    std::optional&lt;WebCore::FloatRect&gt; m_viewExposedRect;
+    std::optional&lt;WebCore::FloatRect&gt; m_lastSentViewExposedRect;
</ins><span class="cx"> #endif // PLATFORM(MAC)
</span><span class="cx"> #endif
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessInspectorServerWebSocketServerConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx">     m_server-&gt;didCloseWebSocketServerConnection(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebSocketServerConnection::didReceiveSocketStreamData(SocketStreamHandle&amp;, const char* data, Optional&lt;size_t&gt; length)
</del><ins>+void WebSocketServerConnection::didReceiveSocketStreamData(SocketStreamHandle&amp;, const char* data, std::optional&lt;size_t&gt; length)
</ins><span class="cx"> {
</span><span class="cx">     // Each didReceiveData call adds more data to our buffer.
</span><span class="cx">     // We clear the buffer when we have handled data from it.
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessInspectorServerWebSocketServerConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">     // SocketStreamHandleClient implementation.
</span><span class="cx">     void didOpenSocketStream(WebCore::SocketStreamHandle&amp;) final { }
</span><span class="cx">     void didCloseSocketStream(WebCore::SocketStreamHandle&amp;) final;
</span><del>-    void didReceiveSocketStreamData(WebCore::SocketStreamHandle&amp;, const char* data, Optional&lt;size_t&gt; length) final;
</del><ins>+    void didReceiveSocketStreamData(WebCore::SocketStreamHandle&amp;, const char* data, std::optional&lt;size_t&gt; length) final;
</ins><span class="cx">     void didUpdateBufferedAmount(WebCore::SocketStreamHandle&amp;, size_t bufferedAmount) final;
</span><span class="cx">     void didFailSocketStream(WebCore::SocketStreamHandle&amp;, const WebCore::SocketStreamError&amp;) final { }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // This comes from the scrolling tree.
</span><del>-void RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll(ScrollingNodeID scrolledNodeID, const FloatPoint&amp; newScrollPosition, const Optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction scrollingLayerPositionAction)
</del><ins>+void RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll(ScrollingNodeID scrolledNodeID, const FloatPoint&amp; newScrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction scrollingLayerPositionAction)
</ins><span class="cx"> {
</span><span class="cx">     // Scroll updates for the main frame are sent via WebPageProxy::updateVisibleContentRects()
</span><span class="cx">     // so don't send them here.
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     bool visualViewportEnabled() const { return m_scrollingTree &amp;&amp; m_scrollingTree-&gt;visualViewportEnabled(); }
</span><span class="cx"> 
</span><span class="cx">     // Inform the web process that the scroll position changed (called from the scrolling tree)
</span><del>-    void scrollingTreeNodeDidScroll(WebCore::ScrollingNodeID, const WebCore::FloatPoint&amp; newScrollPosition, const Optional&lt;WebCore::FloatPoint&gt;&amp; layoutViewportOrigin, WebCore::ScrollingLayerPositionAction);
</del><ins>+    void scrollingTreeNodeDidScroll(WebCore::ScrollingNodeID, const WebCore::FloatPoint&amp; newScrollPosition, const std::optional&lt;WebCore::FloatPoint&gt;&amp; layoutViewportOrigin, WebCore::ScrollingLayerPositionAction);
</ins><span class="cx">     void scrollingTreeNodeRequestsScroll(WebCore::ScrollingNodeID, const WebCore::FloatPoint&amp; scrollPosition, bool representsProgrammaticScroll);
</span><span class="cx"> 
</span><span class="cx">     WebCore::TrackingType eventTrackingTypeForPoint(const AtomicString&amp; eventName, WebCore::IntPoint) const;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void RemoteScrollingTree::scrollingTreeNodeDidScroll(ScrollingNodeID nodeID, const FloatPoint&amp; scrollPosition, const Optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction scrollingLayerPositionAction)
</del><ins>+void RemoteScrollingTree::scrollingTreeNodeDidScroll(ScrollingNodeID nodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction scrollingLayerPositionAction)
</ins><span class="cx"> {
</span><span class="cx">     m_scrollingCoordinatorProxy.scrollingTreeNodeDidScroll(nodeID, scrollPosition, layoutViewportOrigin, scrollingLayerPositionAction);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> 
</span><span class="cx">     const RemoteScrollingCoordinatorProxy&amp; scrollingCoordinatorProxy() const { return m_scrollingCoordinatorProxy; }
</span><span class="cx"> 
</span><del>-    void scrollingTreeNodeDidScroll(WebCore::ScrollingNodeID, const WebCore::FloatPoint&amp; scrollPosition, const Optional&lt;WebCore::FloatPoint&gt;&amp; layoutViewportOrigin, WebCore::ScrollingLayerPositionAction = WebCore::ScrollingLayerPositionAction::Sync) override;
</del><ins>+    void scrollingTreeNodeDidScroll(WebCore::ScrollingNodeID, const WebCore::FloatPoint&amp; scrollPosition, const std::optional&lt;WebCore::FloatPoint&gt;&amp; layoutViewportOrigin, WebCore::ScrollingLayerPositionAction = WebCore::ScrollingLayerPositionAction::Sync) override;
</ins><span class="cx">     void scrollingTreeNodeRequestsScroll(WebCore::ScrollingNodeID, const WebCore::FloatPoint&amp; scrollPosition, bool representsProgrammaticScroll) override;
</span><span class="cx"> 
</span><span class="cx">     void currentSnapPointIndicesDidChange(WebCore::ScrollingNodeID, unsigned horizontal, unsigned vertical) override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessStorageLocalStorageDatabaseTrackercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -125,17 +125,17 @@
</span><span class="cx">     deleteEmptyDirectory(m_localStorageDirectory);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;time_t&gt; fileCreationTime(const String&amp; filePath)
</del><ins>+static std::optional&lt;time_t&gt; fileCreationTime(const String&amp; filePath)
</ins><span class="cx"> {
</span><span class="cx">     time_t time;
</span><del>-    return getFileCreationTime(filePath, time) ? time : Optional&lt;time_t&gt;(Nullopt);
</del><ins>+    return getFileCreationTime(filePath, time) ? time : std::optional&lt;time_t&gt;(std::nullopt);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Optional&lt;time_t&gt; fileModificationTime(const String&amp; filePath)
</del><ins>+static std::optional&lt;time_t&gt; fileModificationTime(const String&amp; filePath)
</ins><span class="cx"> {
</span><span class="cx">     time_t time;
</span><span class="cx">     if (!getFileModificationTime(filePath, time))
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return time;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessStorageLocalStorageDatabaseTrackerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -61,8 +61,8 @@
</span><span class="cx"> 
</span><span class="cx">     struct OriginDetails {
</span><span class="cx">         String originIdentifier;
</span><del>-        Optional&lt;time_t&gt; creationTime;
-        Optional&lt;time_t&gt; modificationTime;
</del><ins>+        std::optional&lt;time_t&gt; creationTime;
+        std::optional&lt;time_t&gt; modificationTime;
</ins><span class="cx">     };
</span><span class="cx">     Vector&lt;OriginDetails&gt; originDetails();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessUserMediaPermissionRequestManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -213,8 +213,8 @@
</span><span class="cx">     auto request = UserMediaPermissionCheckProxy::create(*this, userMediaID);
</span><span class="cx">     m_pendingDeviceRequests.add(userMediaID, request.ptr());
</span><span class="cx"> 
</span><del>-    auto userMediaOrigin = API::SecurityOrigin::create(SecurityOriginData::fromDatabaseIdentifier(userMediaDocumentOriginIdentifier).valueOr(SecurityOriginData()).securityOrigin());
-    auto topLevelOrigin = API::SecurityOrigin::create(SecurityOriginData::fromDatabaseIdentifier(topLevelDocumentOriginIdentifier).valueOr(SecurityOriginData()).securityOrigin());
</del><ins>+    auto userMediaOrigin = API::SecurityOrigin::create(SecurityOriginData::fromDatabaseIdentifier(userMediaDocumentOriginIdentifier).value_or(SecurityOriginData()).securityOrigin());
+    auto topLevelOrigin = API::SecurityOrigin::create(SecurityOriginData::fromDatabaseIdentifier(topLevelDocumentOriginIdentifier).value_or(SecurityOriginData()).securityOrigin());
</ins><span class="cx"> 
</span><span class="cx">     if (!m_page.uiClient().checkUserMediaPermissionForOrigin(m_page, *m_page.process().webFrame(frameID), *userMediaOrigin.get(), *topLevelOrigin.get(), request.get())) {
</span><span class="cx">         m_pendingDeviceRequests.take(userMediaID);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebBackForwardListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebBackForwardList.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebBackForwardList.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/WebBackForwardList.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -415,7 +415,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (backForwardListState.items.isEmpty())
</span><del>-        backForwardListState.currentIndex = Nullopt;
</del><ins>+        backForwardListState.currentIndex = std::nullopt;
</ins><span class="cx">     else if (backForwardListState.items.size() &lt;= backForwardListState.currentIndex.value())
</span><span class="cx">         backForwardListState.currentIndex = backForwardListState.items.size() - 1;
</span><span class="cx"> 
</span><span class="lines">@@ -432,7 +432,7 @@
</span><span class="cx">         items.uncheckedAppend(WebBackForwardListItem::create(WTFMove(backForwardListItemState), m_page-&gt;pageID()));
</span><span class="cx">     }
</span><span class="cx">     m_hasCurrentIndex = !!backForwardListState.currentIndex;
</span><del>-    m_currentIndex = backForwardListState.currentIndex.valueOr(0);
</del><ins>+    m_currentIndex = backForwardListState.currentIndex.value_or(0);
</ins><span class="cx">     m_entries = WTFMove(items);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -3295,7 +3295,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; mimeType, bool frameHasCustomContentProvider, uint32_t opaqueFrameLoadType, const WebCore::CertificateInfo&amp; certificateInfo, bool containsPluginDocument, Optional&lt;HasInsecureContent&gt; hasInsecureContent, const UserData&amp; userData)
</del><ins>+void WebPageProxy::didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; mimeType, bool frameHasCustomContentProvider, uint32_t opaqueFrameLoadType, const WebCore::CertificateInfo&amp; certificateInfo, bool containsPluginDocument, std::optional&lt;HasInsecureContent&gt; hasInsecureContent, const UserData&amp; userData)
</ins><span class="cx"> {
</span><span class="cx">     PageClientProtector protector(m_pageClient);
</span><span class="cx"> 
</span><span class="lines">@@ -5552,7 +5552,7 @@
</span><span class="cx">     if (m_scrollbarOverlayStyle)
</span><span class="cx">         parameters.scrollbarOverlayStyle = m_scrollbarOverlayStyle.value();
</span><span class="cx">     else
</span><del>-        parameters.scrollbarOverlayStyle = Nullopt;
</del><ins>+        parameters.scrollbarOverlayStyle = std::nullopt;
</ins><span class="cx">     parameters.backgroundExtendsBeyondPage = m_backgroundExtendsBeyondPage;
</span><span class="cx">     parameters.layerHostingMode = m_layerHostingMode;
</span><span class="cx">     parameters.controlledByAutomation = m_controlledByAutomation;
</span><span class="lines">@@ -6180,7 +6180,7 @@
</span><span class="cx">         m_process-&gt;send(Messages::WebPage::SetScrollPinningBehavior(pinning), m_pageID);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::setOverlayScrollbarStyle(WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; scrollbarStyle)
</del><ins>+void WebPageProxy::setOverlayScrollbarStyle(std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; scrollbarStyle)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_scrollbarOverlayStyle &amp;&amp; !scrollbarStyle)
</span><span class="cx">         return;
</span><span class="lines">@@ -6190,7 +6190,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_scrollbarOverlayStyle = scrollbarStyle;
</span><span class="cx"> 
</span><del>-    WTF::Optional&lt;uint32_t&gt; scrollbarStyleForMessage;
</del><ins>+    std::optional&lt;uint32_t&gt; scrollbarStyleForMessage;
</ins><span class="cx">     if (scrollbarStyle)
</span><span class="cx">         scrollbarStyleForMessage = static_cast&lt;ScrollbarOverlayStyle&gt;(scrollbarStyle.value());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1018,8 +1018,8 @@
</span><span class="cx">     void setScrollPinningBehavior(WebCore::ScrollPinningBehavior);
</span><span class="cx">     WebCore::ScrollPinningBehavior scrollPinningBehavior() const { return m_scrollPinningBehavior; }
</span><span class="cx"> 
</span><del>-    void setOverlayScrollbarStyle(WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt;);
-    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; overlayScrollbarStyle() const { return m_scrollbarOverlayStyle; }
</del><ins>+    void setOverlayScrollbarStyle(std::optional&lt;WebCore::ScrollbarOverlayStyle&gt;);
+    std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; overlayScrollbarStyle() const { return m_scrollbarOverlayStyle; }
</ins><span class="cx"> 
</span><span class="cx">     bool shouldRecordNavigationSnapshots() const { return m_shouldRecordNavigationSnapshots; }
</span><span class="cx">     void setShouldRecordNavigationSnapshots(bool shouldRecordSnapshots) { m_shouldRecordNavigationSnapshots = shouldRecordSnapshots; }
</span><span class="lines">@@ -1217,7 +1217,7 @@
</span><span class="cx">     void didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp;, const UserData&amp;);
</span><span class="cx">     void didChangeProvisionalURLForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; url);
</span><span class="cx">     void didFailProvisionalLoadForFrame(uint64_t frameID, const WebCore::SecurityOriginData&amp; frameSecurityOrigin, uint64_t navigationID, const String&amp; provisionalURL, const WebCore::ResourceError&amp;, const UserData&amp;);
</span><del>-    void didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; mimeType, bool frameHasCustomContentProvider, uint32_t frameLoadType, const WebCore::CertificateInfo&amp;, bool containsPluginDocument, Optional&lt;WebCore::HasInsecureContent&gt; forcedHasInsecureContent, const UserData&amp;);
</del><ins>+    void didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; mimeType, bool frameHasCustomContentProvider, uint32_t frameLoadType, const WebCore::CertificateInfo&amp;, bool containsPluginDocument, std::optional&lt;WebCore::HasInsecureContent&gt; forcedHasInsecureContent, const UserData&amp;);
</ins><span class="cx">     void didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData&amp;);
</span><span class="cx">     void didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData&amp;);
</span><span class="cx">     void didFailLoadForFrame(uint64_t frameID, uint64_t navigationID, const WebCore::ResourceError&amp;, const UserData&amp;);
</span><span class="lines">@@ -1915,7 +1915,7 @@
</span><span class="cx">     HiddenPageThrottlingAutoIncreasesCounter::Token m_hiddenPageDOMTimerThrottlingAutoIncreasesCount;
</span><span class="cx">         
</span><span class="cx">     WebCore::ScrollPinningBehavior m_scrollPinningBehavior;
</span><del>-    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; m_scrollbarOverlayStyle;
</del><ins>+    std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; m_scrollbarOverlayStyle;
</ins><span class="cx"> 
</span><span class="cx">     uint64_t m_navigationID;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxymessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx">     DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, WebKit::UserData userData)
</span><span class="cx">     DidChangeProvisionalURLForFrame(uint64_t frameID, uint64_t navigationID, String url)
</span><span class="cx">     DidFailProvisionalLoadForFrame(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, String provisionalURL, WebCore::ResourceError error, WebKit::UserData userData)
</span><del>-    DidCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, String mimeType, bool hasCustomContentProvider, uint32_t loadType, WebCore::CertificateInfo certificateInfo, bool containsPluginDocument, Optional&lt;WebCore::HasInsecureContent&gt; forcedHasInsecureContent, WebKit::UserData userData)
</del><ins>+    DidCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, String mimeType, bool hasCustomContentProvider, uint32_t loadType, WebCore::CertificateInfo certificateInfo, bool containsPluginDocument, std::optional&lt;WebCore::HasInsecureContent&gt; forcedHasInsecureContent, WebKit::UserData userData)
</ins><span class="cx">     DidFailLoadForFrame(uint64_t frameID, uint64_t navigationID, WebCore::ResourceError error, WebKit::UserData userData)
</span><span class="cx">     DidFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, WebKit::UserData userData)
</span><span class="cx">     DidFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, WebKit::UserData userData)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebsiteDataWebsiteDataRecordh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataRecord.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataRecord.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataRecord.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">         uint64_t totalSize;
</span><span class="cx">         HashMap&lt;unsigned, uint64_t&gt; typeSizes;
</span><span class="cx">     };
</span><del>-    Optional&lt;Size&gt; size;
</del><ins>+    std::optional&lt;Size&gt; size;
</ins><span class="cx"> 
</span><span class="cx">     HashSet&lt;WebCore::SecurityOriginData&gt; origins;
</span><span class="cx">     HashSet&lt;String&gt; cookieHostNames;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcesseflWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/efl/WebView.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/efl/WebView.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/efl/WebView.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -348,7 +348,7 @@
</span><span class="cx"> 
</span><span class="cx"> AffineTransform WebView::transformFromScene() const
</span><span class="cx"> {
</span><del>-    return transformToScene().inverse().valueOr(AffineTransform());
</del><ins>+    return transformToScene().inverse().value_or(AffineTransform());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> AffineTransform WebView::transformToScene() const
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessgtkAcceleratedBackingStoreX11cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/gtk/AcceleratedBackingStoreX11.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/gtk/AcceleratedBackingStoreX11.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/gtk/AcceleratedBackingStoreX11.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-static Optional&lt;int&gt; s_damageEventBase;
</del><ins>+static std::optional&lt;int&gt; s_damageEventBase;
</ins><span class="cx"> 
</span><span class="cx"> class XDamageNotifier {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(XDamageNotifier);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessgtkWebPreferencesGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/gtk/WebPreferencesGtk.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/gtk/WebPreferencesGtk.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/gtk/WebPreferencesGtk.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> #if USE(REDIRECTED_XCOMPOSITE_WINDOW)
</span><span class="cx">     if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::X11) {
</span><span class="cx">         auto&amp; display = downcast&lt;PlatformDisplayX11&gt;(PlatformDisplay::sharedDisplay());
</span><del>-        Optional&lt;int&gt; damageBase;
</del><ins>+        std::optional&lt;int&gt; damageBase;
</ins><span class="cx">         if (!display.supportsXComposite() || !display.supportsXDamage(damageBase))
</span><span class="cx">             setAcceleratedCompositingEnabled(false);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKContentViewInteractionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -3188,16 +3188,16 @@
</span><span class="cx">     _uiEventBeingResent = nil;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (Optional&lt;FloatPoint&gt;)_scrollOffsetForEvent:(WebIOSEvent *)event
</del><ins>+- (std::optional&lt;FloatPoint&gt;)_scrollOffsetForEvent:(WebIOSEvent *)event
</ins><span class="cx"> {
</span><span class="cx">     static const unsigned kWebSpaceKey = 0x20;
</span><span class="cx"> 
</span><span class="cx">     if (_page-&gt;editorState().isContentEditable)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     NSString *charactersIgnoringModifiers = event.charactersIgnoringModifiers;
</span><span class="cx">     if (!charactersIgnoringModifiers.length)
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     enum ScrollingIncrement { Document, Page, Line };
</span><span class="cx">     enum ScrollingDirection { Up, Down, Left, Right };
</span><span class="lines">@@ -3249,7 +3249,7 @@
</span><span class="cx">     if ([charactersIgnoringModifiers characterAtIndex:0] == kWebSpaceKey)
</span><span class="cx">         return computeOffset(Page, (event.modifierFlags &amp; WebEventFlagMaskShift) ? Up : Down);
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)_interpretKeyEvent:(WebIOSEvent *)event isCharEvent:(BOOL)isCharEvent
</span><span class="lines">@@ -3266,7 +3266,7 @@
</span><span class="cx">     if (!contentEditable &amp;&amp; event.isTabKey)
</span><span class="cx">         return NO;
</span><span class="cx"> 
</span><del>-    if (Optional&lt;FloatPoint&gt; scrollOffset = [self _scrollOffsetForEvent:event]) {
</del><ins>+    if (std::optional&lt;FloatPoint&gt; scrollOffset = [self _scrollOffsetForEvent:event]) {
</ins><span class="cx">         [_webView _scrollByContentOffset:*scrollOffset];
</span><span class="cx">         return YES;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacLegacySessionStateCodingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/LegacySessionStateCoding.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/LegacySessionStateCoding.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/mac/LegacySessionStateCoding.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -282,8 +282,8 @@
</span><span class="cx">         encoder &lt;&lt; false;
</span><span class="cx"> 
</span><span class="cx">         encoder &lt;&lt; element.fileStart;
</span><del>-        encoder &lt;&lt; element.fileLength.valueOr(-1);
-        encoder &lt;&lt; element.expectedFileModificationTime.valueOr(std::numeric_limits&lt;double&gt;::quiet_NaN());
</del><ins>+        encoder &lt;&lt; element.fileLength.value_or(-1);
+        encoder &lt;&lt; element.expectedFileModificationTime.value_or(std::numeric_limits&lt;double&gt;::quiet_NaN());
</ins><span class="cx">         break;
</span><span class="cx"> 
</span><span class="cx">     case HTTPBody::Element::Type::Blob:
</span><span class="lines">@@ -704,13 +704,13 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     template&lt;typename T&gt;
</span><del>-    auto operator&gt;&gt;(Optional&lt;T&gt;&amp; value) -&gt; typename std::enable_if&lt;std::is_enum&lt;T&gt;::value, HistoryEntryDataDecoder&amp;&gt;::type
</del><ins>+    auto operator&gt;&gt;(std::optional&lt;T&gt;&amp; value) -&gt; typename std::enable_if&lt;std::is_enum&lt;T&gt;::value, HistoryEntryDataDecoder&amp;&gt;::type
</ins><span class="cx">     {
</span><span class="cx">         uint32_t underlyingEnumValue;
</span><span class="cx">         *this &gt;&gt; underlyingEnumValue;
</span><span class="cx"> 
</span><span class="cx">         if (!isValid() || !isValidEnum(static_cast&lt;T&gt;(underlyingEnumValue)))
</span><del>-            value = Nullopt;
</del><ins>+            value = std::nullopt;
</ins><span class="cx">         else
</span><span class="cx">             value = static_cast&lt;T&gt;(underlyingEnumValue);
</span><span class="cx"> 
</span><span class="lines">@@ -790,7 +790,7 @@
</span><span class="cx"> 
</span><span class="cx"> static void decodeFormDataElement(HistoryEntryDataDecoder&amp; decoder, HTTPBody::Element&amp; formDataElement)
</span><span class="cx"> {
</span><del>-    Optional&lt;FormDataElementType&gt; elementType;
</del><ins>+    std::optional&lt;FormDataElementType&gt; elementType;
</ins><span class="cx">     decoder &gt;&gt; elementType;
</span><span class="cx">     if (!elementType)
</span><span class="cx">         return;
</span><span class="lines">@@ -1068,7 +1068,7 @@
</span><span class="cx">     auto currentIndexNumber = dynamic_cf_cast&lt;CFNumberRef&gt;(CFDictionaryGetValue(sessionHistoryDictionary, sessionHistoryCurrentIndexKey));
</span><span class="cx">     if (!currentIndexNumber) {
</span><span class="cx">         // No current index means the dictionary represents an empty session.
</span><del>-        backForwardListState.currentIndex = Nullopt;
</del><ins>+        backForwardListState.currentIndex = std::nullopt;
</ins><span class="cx">         backForwardListState.items = { };
</span><span class="cx">         return true;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacRemoteLayerTreeDrawingAreaProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     void dispatchAfterEnsuringDrawing(std::function&lt;void (CallbackBase::Error)&gt;) override;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-    void setViewExposedRect(Optional&lt;WebCore::FloatRect&gt;) override;
</del><ins>+    void setViewExposedRect(std::optional&lt;WebCore::FloatRect&gt;) override;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     float indicatorScale(WebCore::IntSize contentsSize) const;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacRemoteLayerTreeDrawingAreaProxymm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx"> static const float indicatorInset = 10;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-void RemoteLayerTreeDrawingAreaProxy::setViewExposedRect(Optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</del><ins>+void RemoteLayerTreeDrawingAreaProxy::setViewExposedRect(std::optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</ins><span class="cx"> {
</span><span class="cx">     DrawingAreaProxy::setViewExposedRect(viewExposedRect);
</span><span class="cx">     updateDebugIndicatorPosition();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessApplePayWebPaymentCoordinatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/ApplePay/WebPaymentCoordinator.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/ApplePay/WebPaymentCoordinator.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/ApplePay/WebPaymentCoordinator.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -117,17 +117,17 @@
</span><span class="cx">     m_webPage.send(Messages::WebPaymentCoordinatorProxy::CompleteMerchantValidation(paymentMerchantSession));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinator::completeShippingMethodSelection(WebCore::PaymentAuthorizationStatus status, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</del><ins>+void WebPaymentCoordinator::completeShippingMethodSelection(WebCore::PaymentAuthorizationStatus status, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</ins><span class="cx"> {
</span><span class="cx">     m_webPage.send(Messages::WebPaymentCoordinatorProxy::CompleteShippingMethodSelection(static_cast&lt;uint32_t&gt;(status), newTotalAndItems));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinator::completeShippingContactSelection(WebCore::PaymentAuthorizationStatus status, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</del><ins>+void WebPaymentCoordinator::completeShippingContactSelection(WebCore::PaymentAuthorizationStatus status, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp; newShippingMethods, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</ins><span class="cx"> {
</span><span class="cx">     m_webPage.send(Messages::WebPaymentCoordinatorProxy::CompleteShippingContactSelection(static_cast&lt;uint32_t&gt;(status), newShippingMethods, newTotalAndItems));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPaymentCoordinator::completePaymentMethodSelection(Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</del><ins>+void WebPaymentCoordinator::completePaymentMethodSelection(std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems)
</ins><span class="cx"> {
</span><span class="cx">     m_webPage.send(Messages::WebPaymentCoordinatorProxy::CompletePaymentMethodSelection(newTotalAndItems));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessApplePayWebPaymentCoordinatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/ApplePay/WebPaymentCoordinator.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/ApplePay/WebPaymentCoordinator.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/ApplePay/WebPaymentCoordinator.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -59,9 +59,9 @@
</span><span class="cx">     void openPaymentSetup(const String&amp; merchantIdentifier, const String&amp; domainName, std::function&lt;void (bool)&gt; completionHandler) override;
</span><span class="cx">     bool showPaymentUI(const WebCore::URL&amp; originatingURL, const Vector&lt;WebCore::URL&gt;&amp; linkIconURLs, const WebCore::PaymentRequest&amp;) override;
</span><span class="cx">     void completeMerchantValidation(const WebCore::PaymentMerchantSession&amp;) override;
</span><del>-    void completeShippingMethodSelection(WebCore::PaymentAuthorizationStatus, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) override;
-    void completeShippingContactSelection(WebCore::PaymentAuthorizationStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp;, Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) override;
-    void completePaymentMethodSelection(Optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;) override;
</del><ins>+    void completeShippingMethodSelection(WebCore::PaymentAuthorizationStatus, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) override;
+    void completeShippingContactSelection(WebCore::PaymentAuthorizationStatus, const Vector&lt;WebCore::PaymentRequest::ShippingMethod&gt;&amp;, std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt; newTotalAndItems) override;
+    void completePaymentMethodSelection(std::optional&lt;WebCore::PaymentRequest::TotalAndLineItems&gt;) override;
</ins><span class="cx">     void completePaymentSession(WebCore::PaymentAuthorizationStatus) override;
</span><span class="cx">     void abortPaymentSession() override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -694,7 +694,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WKBundlePageSetEventThrottlingBehaviorOverride(WKBundlePageRef page, EventThrottlingBehavior* behavior)
</span><span class="cx"> {
</span><del>-    Optional&lt;WebCore::EventThrottlingBehavior&gt; behaviorValue;
</del><ins>+    std::optional&lt;WebCore::EventThrottlingBehavior&gt; behaviorValue;
</ins><span class="cx">     if (behavior) {
</span><span class="cx">         switch (*behavior) {
</span><span class="cx">         case EventThrottlingBehaviorResponsive:
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1196,7 +1196,7 @@
</span><span class="cx"> IntPoint PDFPlugin::convertFromPDFViewToRootView(const IntPoint&amp; point) const
</span><span class="cx"> {
</span><span class="cx">     IntPoint pointInPluginCoordinates(point.x(), size().height() - point.y());
</span><del>-    return m_rootViewToPluginTransform.inverse().valueOr(AffineTransform()).mapPoint(pointInPluginCoordinates);
</del><ins>+    return m_rootViewToPluginTransform.inverse().value_or(AffineTransform()).mapPoint(pointInPluginCoordinates);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> FloatRect PDFPlugin::convertFromPDFViewToScreen(const FloatRect&amp; rect) const
</span><span class="lines">@@ -1207,7 +1207,7 @@
</span><span class="cx">         return FloatRect();
</span><span class="cx"> 
</span><span class="cx">     FloatPoint originInPluginCoordinates(rect.x(), size().height() - rect.y() - rect.height());
</span><del>-    FloatRect rectInRootViewCoordinates = m_rootViewToPluginTransform.inverse().valueOr(AffineTransform()).mapRect(FloatRect(originInPluginCoordinates, rect.size()));
</del><ins>+    FloatRect rectInRootViewCoordinates = m_rootViewToPluginTransform.inverse().value_or(AffineTransform()).mapRect(FloatRect(originInPluginCoordinates, rect.size()));
</ins><span class="cx"> 
</span><span class="cx">     return frameView-&gt;contentsToScreen(enclosingIntRect(rectInRootViewCoordinates));
</span><span class="cx"> }
</span><span class="lines">@@ -1220,7 +1220,7 @@
</span><span class="cx">         return IntRect();
</span><span class="cx"> 
</span><span class="cx">     FloatRect bounds = FloatRect(FloatPoint(), size());
</span><del>-    FloatRect rectInRootViewCoordinates = m_rootViewToPluginTransform.inverse().valueOr(AffineTransform()).mapRect(bounds);
</del><ins>+    FloatRect rectInRootViewCoordinates = m_rootViewToPluginTransform.inverse().value_or(AffineTransform()).mapRect(bounds);
</ins><span class="cx">     return frameView-&gt;contentsToScreen(enclosingIntRect(rectInRootViewCoordinates));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1230,7 +1230,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_size = pluginSize;
</span><del>-    m_rootViewToPluginTransform = pluginToRootViewTransform.inverse().valueOr(AffineTransform());
</del><ins>+    m_rootViewToPluginTransform = pluginToRootViewTransform.inverse().value_or(AffineTransform());
</ins><span class="cx">     [m_pdfLayerController setFrameSize:pluginSize];
</span><span class="cx"> 
</span><span class="cx">     [CATransaction begin];
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -932,7 +932,7 @@
</span><span class="cx"> void PDFPlugin::geometryDidChange(const IntSize&amp; pluginSize, const IntRect&amp;, const AffineTransform&amp; pluginToRootViewTransform)
</span><span class="cx"> {
</span><span class="cx">     m_pluginToRootViewTransform = pluginToRootViewTransform;
</span><del>-    m_rootViewToPluginTransform = pluginToRootViewTransform.inverse().valueOr(AffineTransform());
</del><ins>+    m_rootViewToPluginTransform = pluginToRootViewTransform.inverse().value_or(AffineTransform());
</ins><span class="cx">     m_size = pluginSize;
</span><span class="cx"> 
</span><span class="cx">     FrameView* frameView = webFrame()-&gt;coreFrame()-&gt;view();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1205,7 +1205,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    UserGestureIndicator gestureIndicator(request-&gt;allowPopups() ? Optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : Nullopt);
</del><ins>+    UserGestureIndicator gestureIndicator(request-&gt;allowPopups() ? std::optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : std::nullopt);
</ins><span class="cx"> 
</span><span class="cx">     // First, try to find a target frame.
</span><span class="cx">     Frame* targetFrame = frame-&gt;loader().findFrameForNavigation(request-&gt;target());
</span><span class="lines">@@ -1500,7 +1500,7 @@
</span><span class="cx">     // protect the plug-in view from destruction.
</span><span class="cx">     NPRuntimeObjectMap::PluginProtector pluginProtector(&amp;m_npRuntimeObjectMap);
</span><span class="cx"> 
</span><del>-    UserGestureIndicator gestureIndicator(allowPopups ? Optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : Nullopt);
</del><ins>+    UserGestureIndicator gestureIndicator(allowPopups ? std::optional&lt;ProcessingUserGestureState&gt;(ProcessingUserGesture) : std::nullopt);
</ins><span class="cx">     return m_npRuntimeObjectMap.evaluate(npObject, scriptString, result);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsWebPluginInfoProvidercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -164,7 +164,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-Optional&lt;WebCore::PluginLoadClientPolicy&gt; WebPluginInfoProvider::pluginLoadClientPolicyForHost(const String&amp; host, const WebCore::PluginInfo&amp; info) const
</del><ins>+std::optional&lt;WebCore::PluginLoadClientPolicy&gt; WebPluginInfoProvider::pluginLoadClientPolicyForHost(const String&amp; host, const WebCore::PluginInfo&amp; info) const
</ins><span class="cx"> {
</span><span class="cx">     String hostToLookUp = host;
</span><span class="cx">     String identifier = info.bundleIdentifier;
</span><span class="lines">@@ -181,7 +181,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     if (policiesByIdentifierIterator == m_hostsToPluginIdentifierData.end())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto&amp; policiesByIdentifier = policiesByIdentifierIterator-&gt;value;
</span><span class="cx"> 
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (identifierPolicyIterator == policiesByIdentifier.end())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto&amp; versionsToPolicies = identifierPolicyIterator-&gt;value;
</span><span class="cx"> 
</span><span class="lines">@@ -209,7 +209,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (policyIterator == versionsToPolicies.end())
</span><del>-        return Nullopt;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     return policyIterator-&gt;value;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsWebPluginInfoProviderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-    Optional&lt;WebCore::PluginLoadClientPolicy&gt; pluginLoadClientPolicyForHost(const String&amp;, const WebCore::PluginInfo&amp;) const;
</del><ins>+    std::optional&lt;WebCore::PluginLoadClientPolicy&gt; pluginLoadClientPolicyForHost(const String&amp;, const WebCore::PluginInfo&amp;) const;
</ins><span class="cx">     String longestMatchedWildcardHostForHost(const String&amp; host) const;
</span><span class="cx">     bool replaceHostWithMatchedWildcardHost(String&amp; host, const String&amp; identifier) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessScrollingRemoteScrollingCoordinatormm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Scrolling/RemoteScrollingCoordinator.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Scrolling/RemoteScrollingCoordinator.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/Scrolling/RemoteScrollingCoordinator.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> // Notification from the UI process that we scrolled.
</span><span class="cx"> void RemoteScrollingCoordinator::scrollPositionChangedForNode(ScrollingNodeID nodeID, const FloatPoint&amp; scrollPosition, bool syncLayerPosition)
</span><span class="cx"> {
</span><del>-    scheduleUpdateScrollPositionAfterAsyncScroll(nodeID, scrollPosition, Nullopt, false /* FIXME */, syncLayerPosition ? ScrollingLayerPositionAction::Sync : ScrollingLayerPositionAction::Set);
</del><ins>+    scheduleUpdateScrollPositionAfterAsyncScroll(nodeID, scrollPosition, std::nullopt, false /* FIXME */, syncLayerPosition ? ScrollingLayerPositionAction::Sync : ScrollingLayerPositionAction::Set);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RemoteScrollingCoordinator::currentSnapPointIndicesChangedForNode(ScrollingNodeID nodeID, unsigned horizontal, unsigned vertical)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportSessionStateConversioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/SessionStateConversion.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/SessionStateConversion.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/SessionStateConversion.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx">             break;
</span><span class="cx"> 
</span><span class="cx">         case HTTPBody::Element::Type::File:
</span><del>-            formData-&gt;appendFileRange(element.filePath, element.fileStart, element.fileLength.valueOr(BlobDataItem::toEndOfFile), element.expectedFileModificationTime.valueOr(invalidFileTime()));
</del><ins>+            formData-&gt;appendFileRange(element.filePath, element.fileStart, element.fileLength.value_or(BlobDataItem::toEndOfFile), element.expectedFileModificationTime.value_or(invalidFileTime()));
</ins><span class="cx">             break;
</span><span class="cx"> 
</span><span class="cx">         case HTTPBody::Element::Type::Blob:
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -970,7 +970,7 @@
</span><span class="cx">     m_page-&gt;send(Messages::WebPageProxy::RecommendedScrollbarStyleDidChange(static_cast&lt;int32_t&gt;(newStyle)));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WTF::Optional&lt;ScrollbarOverlayStyle&gt; WebChromeClient::preferredScrollbarOverlayStyle()
</del><ins>+std::optional&lt;ScrollbarOverlayStyle&gt; WebChromeClient::preferredScrollbarOverlayStyle()
</ins><span class="cx"> {
</span><span class="cx">     return m_page-&gt;scrollbarOverlayStyle(); 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx">     void notifyScrollerThumbIsVisibleInRect(const WebCore::IntRect&amp;) override;
</span><span class="cx">     void recommendedScrollbarStyleDidChange(WebCore::ScrollbarStyle newStyle) override;
</span><span class="cx"> 
</span><del>-    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; preferredScrollbarOverlayStyle() override;
</del><ins>+    std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; preferredScrollbarOverlayStyle() override;
</ins><span class="cx"> 
</span><span class="cx">     WebCore::Color underlayColor() const override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -439,7 +439,7 @@
</span><span class="cx">     webPage-&gt;send(Messages::WebPageProxy::DidReceiveTitleForFrame(m_frame-&gt;frameID(), title.string(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebFrameLoaderClient::dispatchDidCommitLoad(Optional&lt;HasInsecureContent&gt; hasInsecureContent)
</del><ins>+void WebFrameLoaderClient::dispatchDidCommitLoad(std::optional&lt;HasInsecureContent&gt; hasInsecureContent)
</ins><span class="cx"> {
</span><span class="cx">     WebPage* webPage = m_frame-&gt;page();
</span><span class="cx">     if (!webPage)
</span><span class="lines">@@ -454,7 +454,7 @@
</span><span class="cx">     webPage-&gt;sandboxExtensionTracker().didCommitProvisionalLoad(m_frame);
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidCommitLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), documentLoader.response().mimeType(), m_frameHasCustomContentProvider, static_cast&lt;uint32_t&gt;(m_frame-&gt;coreFrame()-&gt;loader().loadType()), documentLoader.response().certificateInfo().valueOrCompute([] { return CertificateInfo(); }), m_frame-&gt;coreFrame()-&gt;document()-&gt;isPluginDocument(), hasInsecureContent, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidCommitLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), documentLoader.response().mimeType(), m_frameHasCustomContentProvider, static_cast&lt;uint32_t&gt;(m_frame-&gt;coreFrame()-&gt;loader().loadType()), valueOrCompute(documentLoader.response().certificateInfo(), [] { return CertificateInfo(); }), m_frame-&gt;coreFrame()-&gt;document()-&gt;isPluginDocument(), hasInsecureContent, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx">     webPage-&gt;didCommitLoad(m_frame);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">     void dispatchDidReceiveIcon() override;
</span><span class="cx">     void dispatchDidStartProvisionalLoad() override;
</span><span class="cx">     void dispatchDidReceiveTitle(const WebCore::StringWithDirection&amp;) override;
</span><del>-    void dispatchDidCommitLoad(Optional&lt;WebCore::HasInsecureContent&gt;) override;
</del><ins>+    void dispatchDidCommitLoad(std::optional&lt;WebCore::HasInsecureContent&gt;) override;
</ins><span class="cx">     void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&amp;) override;
</span><span class="cx">     void dispatchDidFailLoad(const WebCore::ResourceError&amp;) override;
</span><span class="cx">     void dispatchDidFinishDocumentLoad() override;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageDrawingAreah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -88,8 +88,8 @@
</span><span class="cx">     virtual void mainFrameContentSizeChanged(const WebCore::IntSize&amp;) { }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>-    virtual void setViewExposedRect(Optional&lt;WebCore::FloatRect&gt;) = 0;
-    virtual Optional&lt;WebCore::FloatRect&gt; viewExposedRect() const = 0;
</del><ins>+    virtual void setViewExposedRect(std::optional&lt;WebCore::FloatRect&gt;) = 0;
+    virtual std::optional&lt;WebCore::FloatRect&gt; viewExposedRect() const = 0;
</ins><span class="cx"> 
</span><span class="cx">     virtual void acceleratedAnimationDidStart(uint64_t /*layerID*/, const String&amp; /*key*/, double /*startTime*/) { }
</span><span class="cx">     virtual void acceleratedAnimationDidEnd(uint64_t /*layerID*/, const String&amp; /*key*/) { }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageDrawingAreamessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.messages.in (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.messages.in        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.messages.in        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx">     UpdateGeometry(WebCore::IntSize viewSize, WebCore::IntSize layerPosition, bool flushSynchronously, WebCore::MachSendRight fencePort)
</span><span class="cx">     SetDeviceScaleFactor(float deviceScaleFactor)
</span><span class="cx">     SetColorSpace(struct WebKit::ColorSpaceData colorSpace)
</span><del>-    SetViewExposedRect(Optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</del><ins>+    SetViewExposedRect(std::optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</ins><span class="cx"> 
</span><span class="cx">     AdjustTransientZoom(double scale, WebCore::FloatPoint origin)
</span><span class="cx">     CommitTransientZoom(double scale, WebCore::FloatPoint origin)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -418,7 +418,7 @@
</span><span class="cx">     if (!documentLoader)
</span><span class="cx">         return { };
</span><span class="cx"> 
</span><del>-    return documentLoader-&gt;response().certificateInfo().valueOrCompute([] { return CertificateInfo(); });
</del><ins>+    return valueOrCompute(documentLoader-&gt;response().certificateInfo(), [] { return CertificateInfo(); });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebFrame::innerText() const
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -449,7 +449,7 @@
</span><span class="cx">     if (parameters.scrollbarOverlayStyle)
</span><span class="cx">         m_scrollbarOverlayStyle = static_cast&lt;ScrollbarOverlayStyle&gt;(parameters.scrollbarOverlayStyle.value());
</span><span class="cx">     else
</span><del>-        m_scrollbarOverlayStyle = WTF::Optional&lt;ScrollbarOverlayStyle&gt;();
</del><ins>+        m_scrollbarOverlayStyle = std::optional&lt;ScrollbarOverlayStyle&gt;();
</ins><span class="cx"> 
</span><span class="cx">     setBackgroundExtendsBeyondPage(parameters.backgroundExtendsBeyondPage);
</span><span class="cx"> 
</span><span class="lines">@@ -5398,12 +5398,12 @@
</span><span class="cx">     m_page-&gt;mainFrame().view()-&gt;setScrollPinningBehavior(m_scrollPinningBehavior);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPage::setScrollbarOverlayStyle(WTF::Optional&lt;uint32_t&gt; scrollbarStyle)
</del><ins>+void WebPage::setScrollbarOverlayStyle(std::optional&lt;uint32_t&gt; scrollbarStyle)
</ins><span class="cx"> {
</span><span class="cx">     if (scrollbarStyle)
</span><span class="cx">         m_scrollbarOverlayStyle = static_cast&lt;ScrollbarOverlayStyle&gt;(scrollbarStyle.value());
</span><span class="cx">     else
</span><del>-        m_scrollbarOverlayStyle = WTF::Optional&lt;ScrollbarOverlayStyle&gt;();
</del><ins>+        m_scrollbarOverlayStyle = std::optional&lt;ScrollbarOverlayStyle&gt;();
</ins><span class="cx">     m_page-&gt;mainFrame().view()-&gt;recalculateScrollbarOverlayStyle();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -910,8 +910,8 @@
</span><span class="cx">     WebCore::ScrollPinningBehavior scrollPinningBehavior() { return m_scrollPinningBehavior; }
</span><span class="cx">     void setScrollPinningBehavior(uint32_t /* WebCore::ScrollPinningBehavior */ pinning);
</span><span class="cx"> 
</span><del>-    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; scrollbarOverlayStyle() { return m_scrollbarOverlayStyle; }
-    void setScrollbarOverlayStyle(WTF::Optional&lt;uint32_t /* WebCore::ScrollbarOverlayStyle */&gt; scrollbarStyle);
</del><ins>+    std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; scrollbarOverlayStyle() { return m_scrollbarOverlayStyle; }
+    void setScrollbarOverlayStyle(std::optional&lt;uint32_t /* WebCore::ScrollbarOverlayStyle */&gt; scrollbarStyle);
</ins><span class="cx"> 
</span><span class="cx">     Ref&lt;WebCore::DocumentLoader&gt; createDocumentLoader(WebCore::Frame&amp;, const WebCore::ResourceRequest&amp;, const WebCore::SubstituteData&amp;);
</span><span class="cx">     void updateCachedDocumentLoader(WebDocumentLoader&amp;, WebCore::Frame&amp;);
</span><span class="lines">@@ -1484,7 +1484,7 @@
</span><span class="cx">     unsigned m_maximumRenderingSuppressionToken { 0 };
</span><span class="cx">     
</span><span class="cx">     WebCore::ScrollPinningBehavior m_scrollPinningBehavior { WebCore::DoNotPin };
</span><del>-    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; m_scrollbarOverlayStyle;
</del><ins>+    std::optional&lt;WebCore::ScrollbarOverlayStyle&gt; m_scrollbarOverlayStyle;
</ins><span class="cx"> 
</span><span class="cx">     bool m_useAsyncScrolling { false };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagemessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -404,7 +404,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     SetScrollPinningBehavior(uint32_t pinning)
</span><del>-    SetScrollbarOverlayStyle(Optional&lt;uint32_t&gt; scrollbarStyle)
</del><ins>+    SetScrollbarOverlayStyle(std::optional&lt;uint32_t&gt; scrollbarStyle)
</ins><span class="cx"> 
</span><span class="cx">     GetBytecodeProfile(uint64_t callbackID)
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacRemoteLayerTreeDrawingAreah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -83,8 +83,8 @@
</span><span class="cx">     void forceRepaint() override;
</span><span class="cx">     bool forceRepaintAsync(uint64_t) override { return false; }
</span><span class="cx"> 
</span><del>-    void setViewExposedRect(Optional&lt;WebCore::FloatRect&gt;) override;
-    Optional&lt;WebCore::FloatRect&gt; viewExposedRect() const override { return m_scrolledViewExposedRect; }
</del><ins>+    void setViewExposedRect(std::optional&lt;WebCore::FloatRect&gt;) override;
+    std::optional&lt;WebCore::FloatRect&gt; viewExposedRect() const override { return m_scrolledViewExposedRect; }
</ins><span class="cx"> 
</span><span class="cx">     void acceleratedAnimationDidStart(uint64_t layerID, const String&amp; key, double startTime) override;
</span><span class="cx">     void acceleratedAnimationDidEnd(uint64_t layerID, const String&amp; key) override;
</span><span class="lines">@@ -141,8 +141,8 @@
</span><span class="cx"> 
</span><span class="cx">     WebCore::IntSize m_viewSize;
</span><span class="cx"> 
</span><del>-    Optional&lt;WebCore::FloatRect&gt; m_viewExposedRect;
-    Optional&lt;WebCore::FloatRect&gt; m_scrolledViewExposedRect;
</del><ins>+    std::optional&lt;WebCore::FloatRect&gt; m_viewExposedRect;
+    std::optional&lt;WebCore::FloatRect&gt; m_scrolledViewExposedRect;
</ins><span class="cx"> 
</span><span class="cx">     WebCore::Timer m_layerFlushTimer;
</span><span class="cx">     bool m_isFlushingSuspended;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacRemoteLayerTreeDrawingAreamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -230,7 +230,7 @@
</span><span class="cx">     m_remoteLayerTreeContext-&gt;animationDidEnd(layerID, key);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RemoteLayerTreeDrawingArea::setViewExposedRect(Optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</del><ins>+void RemoteLayerTreeDrawingArea::setViewExposedRect(std::optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</ins><span class="cx"> {
</span><span class="cx">     m_viewExposedRect = viewExposedRect;
</span><span class="cx">     updateScrolledExposedRect();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacTiledCoreAnimationDrawingAreah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -72,8 +72,8 @@
</span><span class="cx">     void updatePreferences(const WebPreferencesStore&amp;) override;
</span><span class="cx">     void mainFrameContentSizeChanged(const WebCore::IntSize&amp;) override;
</span><span class="cx"> 
</span><del>-    void setViewExposedRect(Optional&lt;WebCore::FloatRect&gt;) override;
-    Optional&lt;WebCore::FloatRect&gt; viewExposedRect() const override { return m_scrolledViewExposedRect; }
</del><ins>+    void setViewExposedRect(std::optional&lt;WebCore::FloatRect&gt;) override;
+    std::optional&lt;WebCore::FloatRect&gt; viewExposedRect() const override { return m_scrolledViewExposedRect; }
</ins><span class="cx"> 
</span><span class="cx">     bool supportsAsyncScrolling() override { return true; }
</span><span class="cx"> 
</span><span class="lines">@@ -137,8 +137,8 @@
</span><span class="cx"> 
</span><span class="cx">     bool m_isPaintingSuspended;
</span><span class="cx"> 
</span><del>-    Optional&lt;WebCore::FloatRect&gt; m_viewExposedRect;
-    Optional&lt;WebCore::FloatRect&gt; m_scrolledViewExposedRect;
</del><ins>+    std::optional&lt;WebCore::FloatRect&gt; m_viewExposedRect;
+    std::optional&lt;WebCore::FloatRect&gt; m_scrolledViewExposedRect;
</ins><span class="cx"> 
</span><span class="cx">     WebCore::IntSize m_lastSentIntrinsicContentSize;
</span><span class="cx">     bool m_inUpdateGeometry;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacTiledCoreAnimationDrawingAreamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -511,7 +511,7 @@
</span><span class="cx">     [[NSNotificationCenter defaultCenter] postNotificationName:@&quot;NSCAViewRenderDidResumeNotification&quot; object:nil userInfo:[NSDictionary dictionaryWithObject:m_hostingLayer.get() forKey:@&quot;layer&quot;]];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void TiledCoreAnimationDrawingArea::setViewExposedRect(Optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</del><ins>+void TiledCoreAnimationDrawingArea::setViewExposedRect(std::optional&lt;WebCore::FloatRect&gt; viewExposedRect)
</ins><span class="cx"> {
</span><span class="cx">     m_viewExposedRect = viewExposedRect;
</span><span class="cx">     updateScrolledExposedRect();
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Tools/ChangeLog        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -1,3 +1,36 @@
</span><ins>+2016-11-26  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
+
+        [WTF] Import std::optional reference implementation as WTF::Optional
+        https://bugs.webkit.org/show_bug.cgi?id=164199
+
+        Reviewed by Saam Barati and Sam Weinig.
+
+        Use WTF::Optional::value_or.
+
+        * DumpRenderTree/ios/UIScriptControllerIOS.mm:
+        (WTR::UIScriptController::stableStateOverride):
+        (WTR::UIScriptController::setStableStateOverride):
+        * TestRunnerShared/Bindings/JSWrappable.h:
+        (WTR::JSValueMakeBooleanOrNull):
+        (WTR::JSValueToNullableBoolean):
+        * TestRunnerShared/UIScriptContext/UIScriptController.cpp:
+        (WTR::UIScriptController::stableStateOverride):
+        (WTR::UIScriptController::setStableStateOverride):
+        * TestRunnerShared/UIScriptContext/UIScriptController.h:
+        * TestWebKitAPI/Tests/WTF/Optional.cpp:
+        (TestWebKitAPI::TEST):
+        * TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp:
+        (TestWebKitAPI::testParseHTMLInteger):
+        (TestWebKitAPI::testParseHTMLNonNegativeInteger):
+        * TestWebKitAPI/Tests/WebCore/URLParser.cpp:
+        (TestWebKitAPI::checkURL):
+        (TestWebKitAPI::checkRelativeURL):
+        (TestWebKitAPI::checkURLDifferences):
+        (TestWebKitAPI::checkRelativeURLDifferences):
+        * WebKitTestRunner/ios/UIScriptControllerIOS.mm:
+        (WTR::UIScriptController::stableStateOverride):
+        (WTR::UIScriptController::setStableStateOverride):
+
</ins><span class="cx"> 2016-11-26  Sam Weinig  &lt;sam@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Convert IntersectionObserver over to using RuntimeEnabledFeatures so it can be properly excluded from script
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeiosUIScriptControllerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/ios/UIScriptControllerIOS.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/ios/UIScriptControllerIOS.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Tools/DumpRenderTree/ios/UIScriptControllerIOS.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -199,12 +199,12 @@
</span><span class="cx">     return gWebScrollView.maximumZoomScale;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;bool&gt; UIScriptController::stableStateOverride() const
</del><ins>+std::optional&lt;bool&gt; UIScriptController::stableStateOverride() const
</ins><span class="cx"> {
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UIScriptController::setStableStateOverride(Optional&lt;bool&gt;)
</del><ins>+void UIScriptController::setStableStateOverride(std::optional&lt;bool&gt;)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsTestRunnerSharedBindingsJSWrappableh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestRunnerShared/Bindings/JSWrappable.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestRunnerShared/Bindings/JSWrappable.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Tools/TestRunnerShared/Bindings/JSWrappable.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -37,14 +37,14 @@
</span><span class="cx">     virtual JSClassRef wrapperClass() = 0;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-inline JSValueRef JSValueMakeBooleanOrNull(JSContextRef context, Optional&lt;bool&gt; value)
</del><ins>+inline JSValueRef JSValueMakeBooleanOrNull(JSContextRef context, std::optional&lt;bool&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     return value ? JSValueMakeBoolean(context, value.value()) : JSValueMakeNull(context);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Optional&lt;bool&gt; JSValueToNullableBoolean(JSContextRef context, JSValueRef value)
</del><ins>+inline std::optional&lt;bool&gt; JSValueToNullableBoolean(JSContextRef context, JSValueRef value)
</ins><span class="cx"> {
</span><del>-    return JSValueIsUndefined(context, value) || JSValueIsNull(context, value) ? Nullopt : Optional&lt;bool&gt;(JSValueToBoolean(context, value));
</del><ins>+    return JSValueIsUndefined(context, value) || JSValueIsNull(context, value) ? std::nullopt : std::optional&lt;bool&gt;(JSValueToBoolean(context, value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline JSValueRef JSValueMakeStringOrNull(JSContextRef context, JSStringRef stringOrNull)
</span></span></pre></div>
<a id="trunkToolsTestRunnerSharedUIScriptContextUIScriptControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -288,12 +288,12 @@
</span><span class="cx">     return 1;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;bool&gt; UIScriptController::stableStateOverride() const
</del><ins>+std::optional&lt;bool&gt; UIScriptController::stableStateOverride() const
</ins><span class="cx"> {
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UIScriptController::setStableStateOverride(Optional&lt;bool&gt;)
</del><ins>+void UIScriptController::setStableStateOverride(std::optional&lt;bool&gt;)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsTestRunnerSharedUIScriptContextUIScriptControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.h (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.h        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.h        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -122,8 +122,8 @@
</span><span class="cx">     double minimumZoomScale() const;
</span><span class="cx">     double maximumZoomScale() const;
</span><span class="cx">     
</span><del>-    Optional&lt;bool&gt; stableStateOverride() const;
-    void setStableStateOverride(Optional&lt;bool&gt;);
</del><ins>+    std::optional&lt;bool&gt; stableStateOverride() const;
+    void setStableStateOverride(std::optional&lt;bool&gt;);
</ins><span class="cx"> 
</span><span class="cx">     JSObjectRef contentVisibleRect() const;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkToolsTestWebKitAPITestsWTFOptionalcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/Optional.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/Tests/WTF/Optional.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/Optional.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -32,13 +32,13 @@
</span><span class="cx"> TEST(WTF_Optional, Disengaged)
</span><span class="cx"> {
</span><span class="cx">     {
</span><del>-        Optional&lt;int&gt; optional;
</del><ins>+        std::optional&lt;int&gt; optional;
</ins><span class="cx"> 
</span><span class="cx">         EXPECT_FALSE(static_cast&lt;bool&gt;(optional));
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     {
</span><del>-        Optional&lt;int&gt; optional { Nullopt };
</del><ins>+        std::optional&lt;int&gt; optional { std::nullopt };
</ins><span class="cx"> 
</span><span class="cx">         EXPECT_FALSE(static_cast&lt;bool&gt;(optional));
</span><span class="cx">     }
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> 
</span><span class="cx"> TEST(WTF_Optional, Engaged)
</span><span class="cx"> {
</span><del>-    Optional&lt;int&gt; optional { 10 };
</del><ins>+    std::optional&lt;int&gt; optional { 10 };
</ins><span class="cx"> 
</span><span class="cx">     EXPECT_TRUE(static_cast&lt;bool&gt;(optional));
</span><span class="cx">     EXPECT_EQ(10, optional.value());
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     {
</span><del>-        Optional&lt;A&gt; optional { InPlace };
</del><ins>+        std::optional&lt;A&gt; optional { std::in_place };
</ins><span class="cx"> 
</span><span class="cx">         EXPECT_TRUE(static_cast&lt;bool&gt;(optional));
</span><span class="cx">     }
</span><span class="lines">@@ -75,8 +75,8 @@
</span><span class="cx"> TEST(WTF_Optional, Callback)
</span><span class="cx"> {
</span><span class="cx">     bool called = false;
</span><del>-    Optional&lt;int&gt; a;
-    int result = a.valueOrCompute([&amp;] {
</del><ins>+    std::optional&lt;int&gt; a;
+    int result = valueOrCompute(a, [&amp;] {
</ins><span class="cx">         called = true;
</span><span class="cx">         return 300;
</span><span class="cx">     });
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> 
</span><span class="cx">     a = 250;
</span><span class="cx">     called = false;
</span><del>-    result = a.valueOrCompute([&amp;] {
</del><ins>+    result = valueOrCompute(a, [&amp;] {
</ins><span class="cx">         called = true;
</span><span class="cx">         return 300;
</span><span class="cx">     });
</span><span class="lines">@@ -95,12 +95,12 @@
</span><span class="cx"> 
</span><span class="cx"> TEST(WTF_Optional, Equality)
</span><span class="cx"> {
</span><del>-    Optional&lt;int&gt; unengaged1;
-    Optional&lt;int&gt; unengaged2;
</del><ins>+    std::optional&lt;int&gt; unengaged1;
+    std::optional&lt;int&gt; unengaged2;
</ins><span class="cx"> 
</span><del>-    Optional&lt;int&gt; engaged1 { 1 };
-    Optional&lt;int&gt; engaged2 { 2 };
-    Optional&lt;int&gt; engagedx2 { 2 };
</del><ins>+    std::optional&lt;int&gt; engaged1 { 1 };
+    std::optional&lt;int&gt; engaged2 { 2 };
+    std::optional&lt;int&gt; engagedx2 { 2 };
</ins><span class="cx"> 
</span><span class="cx">     EXPECT_TRUE(unengaged1 == unengaged2);
</span><span class="cx">     EXPECT_FALSE(engaged1 == engaged2);
</span><span class="lines">@@ -107,10 +107,10 @@
</span><span class="cx">     EXPECT_FALSE(engaged1 == unengaged1);
</span><span class="cx">     EXPECT_TRUE(engaged2 == engagedx2);
</span><span class="cx"> 
</span><del>-    EXPECT_TRUE(unengaged1 == Nullopt);
-    EXPECT_FALSE(engaged1 == Nullopt);
-    EXPECT_TRUE(Nullopt == unengaged1);
-    EXPECT_FALSE(Nullopt == engaged1);
</del><ins>+    EXPECT_TRUE(unengaged1 == std::nullopt);
+    EXPECT_FALSE(engaged1 == std::nullopt);
+    EXPECT_TRUE(std::nullopt == unengaged1);
+    EXPECT_FALSE(std::nullopt == engaged1);
</ins><span class="cx"> 
</span><span class="cx">     EXPECT_TRUE(engaged1 == 1);
</span><span class="cx">     EXPECT_TRUE(1 == engaged1);
</span><span class="lines">@@ -120,12 +120,12 @@
</span><span class="cx"> 
</span><span class="cx"> TEST(WTF_Optional, Inequality)
</span><span class="cx"> {
</span><del>-    Optional&lt;int&gt; unengaged1;
-    Optional&lt;int&gt; unengaged2;
</del><ins>+    std::optional&lt;int&gt; unengaged1;
+    std::optional&lt;int&gt; unengaged2;
</ins><span class="cx"> 
</span><del>-    Optional&lt;int&gt; engaged1 { 1 };
-    Optional&lt;int&gt; engaged2 { 2 };
-    Optional&lt;int&gt; engagedx2 { 2 };
</del><ins>+    std::optional&lt;int&gt; engaged1 { 1 };
+    std::optional&lt;int&gt; engaged2 { 2 };
+    std::optional&lt;int&gt; engagedx2 { 2 };
</ins><span class="cx"> 
</span><span class="cx">     EXPECT_FALSE(unengaged1 != unengaged2);
</span><span class="cx">     EXPECT_TRUE(engaged1 != engaged2);
</span><span class="lines">@@ -132,10 +132,10 @@
</span><span class="cx">     EXPECT_TRUE(engaged1 != unengaged1);
</span><span class="cx">     EXPECT_FALSE(engaged2 != engagedx2);
</span><span class="cx"> 
</span><del>-    EXPECT_FALSE(unengaged1 != Nullopt);
-    EXPECT_TRUE(engaged1 != Nullopt);
-    EXPECT_FALSE(Nullopt != unengaged1);
-    EXPECT_TRUE(Nullopt != engaged1);
</del><ins>+    EXPECT_FALSE(unengaged1 != std::nullopt);
+    EXPECT_TRUE(engaged1 != std::nullopt);
+    EXPECT_FALSE(std::nullopt != unengaged1);
+    EXPECT_TRUE(std::nullopt != engaged1);
</ins><span class="cx"> 
</span><span class="cx">     EXPECT_FALSE(engaged1 != 1);
</span><span class="cx">     EXPECT_TRUE(engaged1 != 2);
</span></span></pre></div>
<a id="trunkToolsTestWebKitAPITestsWebCoreHTMLParserIdiomscpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> {
</span><span class="cx">     auto optionalResult = parseHTMLInteger(input);
</span><span class="cx">     EXPECT_TRUE(!!optionalResult);
</span><del>-    return optionalResult.valueOr(0);
</del><ins>+    return optionalResult.value_or(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool parseHTMLIntegerFails(const String&amp; input)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> {
</span><span class="cx">     auto optionalResult = parseHTMLNonNegativeInteger(input);
</span><span class="cx">     EXPECT_TRUE(!!optionalResult);
</span><del>-    return optionalResult.valueOr(0);
</del><ins>+    return optionalResult.value_or(0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool parseHTMLNonNegativeIntegerFails(const String&amp; input)
</span></span></pre></div>
<a id="trunkToolsTestWebKitAPITestsWebCoreURLParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(parts.user, url.user()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.password, url.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.host, url.host()));
</span><del>-    EXPECT_EQ(parts.port, url.port().valueOr(0));
</del><ins>+    EXPECT_EQ(parts.port, url.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(parts.path, url.path()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.query, url.query()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.fragment, url.fragmentIdentifier()));
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(parts.user, oldURL.user()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.password, oldURL.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.host, oldURL.host()));
</span><del>-    EXPECT_EQ(parts.port, oldURL.port().valueOr(0));
</del><ins>+    EXPECT_EQ(parts.port, oldURL.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(parts.path, oldURL.path()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.query, oldURL.query()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.fragment, oldURL.fragmentIdentifier()));
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(parts.user, url.user()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.password, url.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.host, url.host()));
</span><del>-    EXPECT_EQ(parts.port, url.port().valueOr(0));
</del><ins>+    EXPECT_EQ(parts.port, url.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(parts.path, url.path()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.query, url.query()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.fragment, url.fragmentIdentifier()));
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(parts.user, oldURL.user()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.password, oldURL.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.host, oldURL.host()));
</span><del>-    EXPECT_EQ(parts.port, oldURL.port().valueOr(0));
</del><ins>+    EXPECT_EQ(parts.port, oldURL.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(parts.path, oldURL.path()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.query, oldURL.query()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.fragment, oldURL.fragmentIdentifier()));
</span><span class="lines">@@ -187,7 +187,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.user, url.user()));
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.password, url.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.host, url.host()));
</span><del>-    EXPECT_EQ(partsNew.port, url.port().valueOr(0));
</del><ins>+    EXPECT_EQ(partsNew.port, url.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(partsNew.path, url.path()));
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.query, url.query()));
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.fragment, url.fragmentIdentifier()));
</span><span class="lines">@@ -197,7 +197,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.user, oldURL.user()));
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.password, oldURL.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.host, oldURL.host()));
</span><del>-    EXPECT_EQ(partsOld.port, oldURL.port().valueOr(0));
</del><ins>+    EXPECT_EQ(partsOld.port, oldURL.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(partsOld.path, oldURL.path()));
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.query, oldURL.query()));
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.fragment, oldURL.fragmentIdentifier()));
</span><span class="lines">@@ -232,7 +232,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.user, url.user()));
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.password, url.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.host, url.host()));
</span><del>-    EXPECT_EQ(partsNew.port, url.port().valueOr(0));
</del><ins>+    EXPECT_EQ(partsNew.port, url.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(partsNew.path, url.path()));
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.query, url.query()));
</span><span class="cx">     EXPECT_TRUE(eq(partsNew.fragment, url.fragmentIdentifier()));
</span><span class="lines">@@ -242,7 +242,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.user, oldURL.user()));
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.password, oldURL.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.host, oldURL.host()));
</span><del>-    EXPECT_EQ(partsOld.port, oldURL.port().valueOr(0));
</del><ins>+    EXPECT_EQ(partsOld.port, oldURL.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(partsOld.path, oldURL.path()));
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.query, oldURL.query()));
</span><span class="cx">     EXPECT_TRUE(eq(partsOld.fragment, oldURL.fragmentIdentifier()));
</span><span class="lines">@@ -282,7 +282,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(parts.user, url.user()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.password, url.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.host, url.host()));
</span><del>-    EXPECT_EQ(parts.port, url.port().valueOr(0));
</del><ins>+    EXPECT_EQ(parts.port, url.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(parts.path, url.path()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.query, url.query()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.fragment, url.fragmentIdentifier()));
</span><span class="lines">@@ -308,7 +308,7 @@
</span><span class="cx">     EXPECT_TRUE(eq(parts.user, url.user()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.password, url.pass()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.host, url.host()));
</span><del>-    EXPECT_EQ(parts.port, url.port().valueOr(0));
</del><ins>+    EXPECT_EQ(parts.port, url.port().value_or(0));
</ins><span class="cx">     EXPECT_TRUE(eq(parts.path, url.path()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.query, url.query()));
</span><span class="cx">     EXPECT_TRUE(eq(parts.fragment, url.fragmentIdentifier()));
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunneriosUIScriptControllerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm (208984 => 208985)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm        2016-11-27 04:40:58 UTC (rev 208984)
+++ trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm        2016-11-27 06:08:16 UTC (rev 208985)
</span><span class="lines">@@ -405,16 +405,16 @@
</span><span class="cx">     return webView.scrollView.maximumZoomScale;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional&lt;bool&gt; UIScriptController::stableStateOverride() const
</del><ins>+std::optional&lt;bool&gt; UIScriptController::stableStateOverride() const
</ins><span class="cx"> {
</span><span class="cx">     TestRunnerWKWebView *webView = TestController::singleton().mainWebView()-&gt;platformView();
</span><span class="cx">     if (webView._stableStateOverride)
</span><span class="cx">         return webView._stableStateOverride.boolValue;
</span><span class="cx"> 
</span><del>-    return Nullopt;
</del><ins>+    return std::nullopt;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UIScriptController::setStableStateOverride(Optional&lt;bool&gt; overrideValue)
</del><ins>+void UIScriptController::setStableStateOverride(std::optional&lt;bool&gt; overrideValue)
</ins><span class="cx"> {
</span><span class="cx">     TestRunnerWKWebView *webView = TestController::singleton().mainWebView()-&gt;platformView();
</span><span class="cx">     if (overrideValue)
</span></span></pre>
</div>
</div>

</body>
</html>